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

ToolButton如何觸發TEdit的OnExit事件

尚未結案
aeromika
一般會員


發表:4
回覆:6
積分:2
註冊:2004-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-03 19:08:28 IP:220.130.xxx.xxx 未訂閱
我現在將TEdit的驗證寫在OnExit的事件上, 但當按下ToolButton, 並不會觸發此事件, 若改成TSpeedButton則就沒問題, 但問題是..... 工具列上通常會有 "儲存" 和 "放棄" 兩種按鈕, 若是按儲存當然得要先觸發驗證, 若是按下放棄, 則便不需觸發驗證, 假設在某個TEdit上會驗證欄位不得空白, 若按下 儲存當然要警告不得空白, 但按下放棄時就算是空白也不能出現警告, 所以, 我選擇 使用ToolButton, 希望在按下儲存時能先觸發目前作用中TEdit的OnExit事件, 這樣的想法對嗎? 請教大家是如何實作這功能?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-03 19:23:42 IP:211.20.xxx.xxx 未訂閱
aeromika 你好
在儲存的ToolButton的onClick事件中    Begin
  Edit1.Onclick(Edit1);//觸發
  儲存的動作
  ....
End;    或是先定義一個Function saveCheck:Boolean;
然後 Edit1.onexit及儲存按鈕的OnClick中呼叫saveCheck 功能    
發表人 - chance36 於 2004/05/03 19:26:19
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-03 20:44:05 IP:61.229.xxx.xxx 未訂閱
可以直接在ToolButton的OnClick事件裡,呼叫另一個個元件的SetFocus,藉以觸發原TEdit.OnExit事件
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-03 22:13:41 IP:218.32.xxx.xxx 未訂閱
aeromika 你好:    我的看法, 還是不要用 ToolButton, 因為 ToolButton 並沒有獨立的 Window Handle.    以下的 Code, 是 Edit1.OnExit 當按了 "OKBtn" (TButton), 才會被觸發 ShowMessage.
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  if (Activecontrol is TButton) and (TButton(Activecontrol).Name='OKBtn') then
    showmessage('Edit On Exit');
end;
aeromika
一般會員


發表:4
回覆:6
積分:2
註冊:2004-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-04 11:13:30 IP:220.130.xxx.xxx 未訂閱
多謝三位先進的解惑, 似乎Mickey版大的寫法好像比較易讀~~  但另一疑問是若
monkey66
一般會員


發表:1
回覆:6
積分:6
註冊:2002-06-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-04 14:51:24 IP:61.65.xxx.xxx 未訂閱
以Tbutton來講如果有兩個button1,button2將button1的tag 設為 11,button2 的tag 設為 12 將直接編輯button1 onclick事件並將button2的onclick 設為 button1 onclick procedure TForm2.button1Click(Sender: TObject); case Tcomponent(sender).tag of 11: begin showmessage('this is button1'); end; 12: begin showmessage('this is button2'); end; end;
aeromika
一般會員


發表:4
回覆:6
積分:2
註冊:2004-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-05-04 17:34:35 IP:220.130.xxx.xxx 未訂閱
嗯~~ 用tag來作index的判斷... good idea!! 感謝monkey66兄的經驗分享!!
jest0024
高階會員


發表:11
回覆:310
積分:224
註冊:2002-11-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-05-04 18:12:28 IP:211.74.xxx.xxx 未訂閱
引言:
另一種使用方法
procedure ButtonClick(Sender:TObject);
var Obj:TButton;
begin
  if Sender is TButton then begin
    Obj:=TButton(Sender);
    //這樣能直接拿哪個But按下的元件來處理
  end;
end;
學而時習之不亦樂乎!
系統時間:2024-06-26 15:32:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!