線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1828
推到 Plurk!
推到 Facebook!

Edit 欄位內,如何將文字向右邊靠齊?

答題得分者是:wameng
kyusikin
一般會員


發表:18
回覆:13
積分:6
註冊:2003-03-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-25 17:16:12 IP:203.70.xxx.xxx 未訂閱
各位大大: 因為該 Edit 之 Text 為數字屬性,所以希望可以將輸入之數值往欄位右邊靠齊。請問如何做呢?謝謝!
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-25 19:05:17 IP:61.31.xxx.xxx 未訂閱
不需要改元件的作法。    
procedure TForm1.FormCreate(Sender: TObject);
var
  AStyle:Longint;
begin
  AStyle:=GetWindowLong(Edit1.Handle,GWL_STYLE);
  AStyle:=AStyle and (Not ES_LEFT);
  AStyle:=AStyle or ES_RIGHT;
  SetWindowLong(Edit1.Handle,GWL_STYLE,AStyle);
end;
發表人 - wameng 於 2004/10/25 19:06:08
kyusikin
一般會員


發表:18
回覆:13
積分:6
註冊:2003-03-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-25 23:24:06 IP:218.162.xxx.xxx 未訂閱
引言: 不需要改元件的作法。
procedure TForm1.FormCreate(Sender: TObject);
var
  AStyle:Longint;
begin
  AStyle:=GetWindowLong(Edit1.Handle,GWL_STYLE);
  AStyle:=AStyle and (Not ES_LEFT);
  AStyle:=AStyle or ES_RIGHT;
  SetWindowLong(Edit1.Handle,GWL_STYLE,AStyle);
end;
發表人 - wameng 於 2004/10/25 19:06:08
wameng 大大: 這實在是很棒的方法,可否請問您,倘若是運用在 StringGrid 之欄位上呢?譬如 StringGrid1.Cols[2] ,怎樣也可以達到欄位內的文字向右靠呢?
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-27 11:31:01 IP:211.23.xxx.xxx 未訂閱
引言: 不需要改元件的作法。
procedure TForm1.FormCreate(Sender: TObject);
var
  AStyle:Longint;
begin
  AStyle:=GetWindowLong(Edit1.Handle,GWL_STYLE);
  AStyle:=AStyle and (Not ES_LEFT);
  AStyle:=AStyle or ES_RIGHT;
  SetWindowLong(Edit1.Handle,GWL_STYLE,AStyle);
end;
發表人 - wameng 於 2004/10/25 19:06:08
抱歉補充一下, 剛剛試了一下wameng大大的方法發現沒有反應, 查了一下MSDN, 才發現這樣設是不行的, MSDN是這樣寫的: To create an edit control using the CreateWindow or CreateWindowEx function, specify the EDIT class, appropriate window style constants, and a combination of the following edit control styles. After the control has been created, these styles cannot be modified. 所以要用william大大的方法才行.
kyusikin
一般會員


發表:18
回覆:13
積分:6
註冊:2003-03-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-27 11:57:07 IP:203.70.xxx.xxx 未訂閱
引言:
引言: 不需要改元件的作法。
procedure TForm1.FormCreate(Sender: TObject);
var
  AStyle:Longint;
begin
  AStyle:=GetWindowLong(Edit1.Handle,GWL_STYLE);
  AStyle:=AStyle and (Not ES_LEFT);
  AStyle:=AStyle or ES_RIGHT;
  SetWindowLong(Edit1.Handle,GWL_STYLE,AStyle);
end;
發表人 - wameng 於 2004/10/25 19:06:08
抱歉補充一下, 剛剛試了一下wameng大大的方法發現沒有反應, 查了一下MSDN, 才發現這樣設是不行的, MSDN是這樣寫的: To create an edit control using the CreateWindow or CreateWindowEx function, specify the EDIT class, appropriate window style constants, and a combination of the following edit control styles. After the control has been created, these styles cannot be modified. 所以要用william大大的方法才行.
抱歉喔,可是我是試過,wameng 提供的方法真的可行。請你再試試看。
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-27 12:03:09 IP:211.23.xxx.xxx 未訂閱
引言: 抱歉喔,可是我是試過,wameng 提供的方法真的可行。請你再試試看。
請問您的工作環境是? 我用BCB5, D5, 把wameng 的碼直接copy過去都沒反應....
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-10-27 12:50:05 IP:211.23.xxx.xxx 未訂閱
引言:
引言: 抱歉喔,可是我是試過,wameng 提供的方法真的可行。請你再試試看。
請問您的工作環境是? 我用BCB5, D5, 把wameng 的碼直接copy過去都沒反應....
有結論了, wameng大的方法在Win2000不行運作, 在WinXP才可正常運作, Win95/98沒試過不知可不可以. william大的才是最正確的解法, 在任一系統下都可運行. 由此可見MSDN的文件該更新了....
系統時間:2024-11-23 11:23:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!