為何鍵盤的Tab 不會產生FormKeyDown事件 |
尚未結案
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
Sorry 是我記錯了
protected procedure WndProc( var msg : TMessage);override; procedure TForm1.WndProc( var msg: TMessage ); begin inherited; case msg.Msg of CM_CHILDKEY: begin if msg.wParam = VK_Tab then ShowMessage('Tab'); end; end; end;測試過可行 發表人 - Justmade 於 2003/06/24 00:02:28 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
另一種方法: http://www.delphi32.com/info_facts/faq/faq_457.asp
type TForm1 = class(TForm) private procedure CMDialogKey(var msg: TCMDialogKey); message CM_DIALOGKEY; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.CMDialogKey(var msg: TCMDialogKey); begin if msg.Charcode <> VK_TAB then inherited; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_TAB then Form .Caption := 'Tab Key Down!'; end;--- 每個人都是一本書 |
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
SORRY 小弟失查~~我試了一下~~還真的攔不到 TAB 鍵~~ 在這裡小弟再提供另一個解決的辦法~~ 1.先放入 ApplicationEvents 元件(這個元件好像要DELPHI 6以上才有) 2.ApplicationEvents OnMessage 事件中
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if Msg.message = WM_KEYDOWN then if Msg.wParam = VK_TAB then ShowMessage('Is TAB') else ShowMessage('Not TAB') end;OK 完成~收工 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
Jasonwong
版主 發表:49 回覆:931 積分:581 註冊:2006-10-27 發送簡訊給我 |
引言: 若用 ApplicationEvent 要小心 你用一個 Form 試時沒問題 若超過一個 Form 所有 Form 的都會被攔 若放在子視窗關閉時又沒取消該 Event 會出現Error 因 TForm1.ApplicationEvents1Message 已不存在 所以若你要是欄整個 Application 的 Tab 這是一個最簡單的好方法 但若只是針對某一/幾個 Form 的話其他兩個方法較好嗯嗯~~Justmade 大大說的沒錯~~因為他是針對整個 APPLICATION 去作業的~~ -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |