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

TEdit 與 TLabel 的問題?????

尚未結案
rickychung
一般會員


發表:9
回覆:7
積分:3
註冊:2003-08-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-03 12:14:27 IP:211.21.xxx.xxx 未訂閱
在我的Form裡面有4個Edit及4個相對應的Label 在每一個Edit有 Keypress的時候 Label會立即顯示使用者所輸入的字 我知道可以在每一個Edit裡的 KeyPress 方法寫下列的程式碼 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin Label1.Caption :=Edit1.Text ; end; 請問有別種寫法可以達成每一個Edit有輸入的時候會對應到相對的Label嗎??
william
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-03 12:32:03 IP:147.8.xxx.xxx 未訂閱
There are many ways to do it.... A quick and easy way...    
{ set all Edit's OnKeyPress to this handler }
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
var
    Label: TLabel;
begin
    if Sender=Edit1 then
        Label := Label1
    else
        Label := Label2; { ... etc ...}
    Label.Caption := TEdit(Sender).Text ;
end;
Using function like FindControl may look 'smarter'
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-03 16:39:40 IP:203.218.xxx.xxx 未訂閱
TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; procedure FormCreate(Sender: TObject); procedure SyncLabel(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormShow(Sender: TObject); private { Private declarations } aArrayLabel : Array[1..4] of TLabel ; aArrayEdit : Array[1..4] of TEdit ; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i : Integer ; begin aArrayLabel[1] := Label1 ; aArrayLabel[2] := Label2 ; aArrayLabel[3] := Label3 ; aArrayLabel[4] := Label4 ; aArrayEdit[1] := Edit1 ; aArrayEdit[2] := Edit2 ; aArrayEdit[3] := Edit3 ; aArrayEdit[4] := Edit4 ; for i := 1 to Length(aArrayEdit) do begin aArrayLabel[i].Tag := i ; aArrayEdit[i].Tag := i ; aArrayEdit[i].OnKeyUp := SyncLabel ; end; end; procedure TForm1.SyncLabel(Sender: TObject; var Key: Word; Shift: TShiftState); begin {用 Edit 的 tag 去對應相對的 Label } aArrayLabel[(Sender as TEdit).Tag].Caption := (Sender as TEdit).Text ; end; 你試試吧,應該可以解決到你的問題,但有一點要注意,應該用 KeyUp 而不是 KeyPress 。
rickychung
一般會員


發表:9
回覆:7
積分:3
註冊:2003-08-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-03 18:34:55 IP:211.21.xxx.xxx 未訂閱
感謝你們的回答```問題已經解決 關於板主有提到FindControl 這一類的 Function 可以提供一些參考的資料ㄇ 謝謝!!!!
系統時間:2024-05-18 15:29:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!