checkbox onkeydown events |
答題得分者是:hagar
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
引言:引言:引言: > >>< face="Verdana, Arial, Helvetica"> QOO10: CheckBox.SetFocus; 試試看肯定有 > >>< face="Verdana, Arial, Helvetica"> 附上 SOURCE unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; CheckBox1: TCheckBox; Edit2: TEdit; procedure CheckBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure CheckBox1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin SHOWMESSAGE('KEY UP'); end; procedure TForm1.CheckBox1KeyPress(Sender: TObject; var Key: Char); begin SHOWMESSAGE('KEY UP'); end; end. |
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
QOO10你好:
試一試
procedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=#13 then
SHOWMESSAGE('KEY UP');
end; procedure TForm1.CheckBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
SHOWMESSAGE('KEY UP');
end;
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
大概像這樣吧:
procedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_UP, VK_PRIOR: Edit1.SetFocus; // 往下鍵 / PageUp 鍵 VK_DOWN, VK_NEXT: Edit2.SetFocus; // 往上鍵 / PageDown 鍵 end; end;-- Believe the unbelievable. |
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
引言:cmf前輩: 我將程式改成如下: (還是不行) 若改在 onexit 則無法得知user 案的鍵 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; CheckBox1: TCheckBox; procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = VK_UP then if ActiveControl is TCheckBox then showmessage('1111'); end; end.引言: 大概像這樣吧:hagar兄: 在 CheckBox 內的 ONKeyDown 是無法 爪到 VK_UP & VK_DOWN 因為它 CheckBox 會 將 這兩個key 直接 傳給 Parent 然後 Parent 會切換 focusprocedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_UP, VK_PRIOR: Edit1.SetFocus; // 往下鍵 / PageUp 鍵 VK_DOWN, VK_NEXT: Edit2.SetFocus; // 往上鍵 / PageDown 鍵 end; end;-- Believe the unbelievable. |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
引言: hagar兄: 在 CheckBox 內的 ONKeyDown 是無法 爪到 VK_UP & VK_DOWN 因為它 CheckBox 會 將 這兩個key 直接 傳給 Parent 然後 Parent 會切換 focus那改成如下的方式, 應該就可以抓得到 VK_UP 等鍵了 procedure CMDialogKey(Var Msg: TWMKey); message CM_DIALOGKEY; procedure TForm1.CMDialogKey(Var Msg: TWMKEY); begin if (ActiveControl = CheckBox1) then begin case Msg.Charcode of VK_UP, VK_PRIOR: Edit1.SetFocus; // 往下鍵 / PageUp 鍵 VK_DOWN, VK_NEXT: Edit2.SetFocus; // 往上鍵 / PageDown 鍵 end; end; inherited; end;-- Believe the unbelievable. |
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
引言:hagar兄: 你好 CMDialogKey 我要放在 form1.onkeyDowm call 他嗎?? 我試過,但 CMDialogKey 必須傳入 TWMKEY type 但我不知如何將 onkeydown 之 key (word) 如何轉成 TWMKEY ??還煩您教導.tks!!引言: hagar兄: 在 CheckBox 內的 ONKeyDown 是無法 爪到 VK_UP & VK_DOWN 因為它 CheckBox 會 將 這兩個key 直接 傳給 Parent 然後 Parent 會切換 focus那改成如下的方式, 應該就可以抓得到 VK_UP 等鍵了procedure CMDialogKey(Var Msg: TWMKey); message CM_DIALOGKEY; procedure TForm1.CMDialogKey(Var Msg: TWMKEY); begin if (ActiveControl = CheckBox1) then begin case Msg.Charcode of VK_UP, VK_PRIOR: Edit1.SetFocus; // 往下鍵 / PageUp 鍵 VK_DOWN, VK_NEXT: Edit2.SetFocus; // 往上鍵 / PageDown 鍵 end; end; inherited; end;-- Believe the unbelievable. |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
引言:兩位前輩,KeyPreview 有設 True 但如下程式,我不懂的再轉行態部分 非常感謝兩位!! type TForm1 = class(TForm) Edit1: TEdit; CheckBox1: TCheckBox; Edit2: TEdit; DBGrid1: TDBGrid; procedure FormKeyPress(Sender: TObject; var Key: Char); private { Private declarations } procedure CMDialogKey(Var Msg: TWMKey); message CM_DIALOGKEY; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.CMDialogKey(Var Msg: TWMKEY); begin if (ActiveControl = CheckBox1) then begin case Msg.Charcode of VK_UP, VK_PRIOR: sHOWMESSAGE('up'); end; end; inherited; end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin CMDialogKey(key); // 型態不對 end; end.引言:type TForm1 = class(TForm) Edit1: TEdit; CheckBox1: TCheckBox; Edit2: TEdit; procedure CheckBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure CheckBox1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } //放在這裡 procedure CMDialogKey(Var Msg: TWMKey); message CM_DIALOGKEY; public { Public declarations } end;引言:hagar兄: 你好 CMDialogKey 我要放在 form1.onkeyDowm call 他嗎?? 我試過,但 CMDialogKey 必須傳入 TWMKEY type 但我不知如何將 onkeydown 之 key (word) 如何轉成 TWMKEY ??還煩您教導.tks!!引言: hagar兄: 在 CheckBox 內的 ONKeyDown 是無法 爪到 VK_UP & VK_DOWN 因為它 CheckBox 會 將 這兩個key 直接 傳給 Parent 然後 Parent 會切換 focus那改成如下的方式, 應該就可以抓得到 VK_UP 等鍵了procedure CMDialogKey(Var Msg: TWMKey); message CM_DIALOGKEY; procedure TForm1.CMDialogKey(Var Msg: TWMKEY); begin if (ActiveControl = CheckBox1) then begin case Msg.Charcode of VK_UP, VK_PRIOR: Edit1.SetFocus; // 往下鍵 / PageUp 鍵 VK_DOWN, VK_NEXT: Edit2.SetFocus; // 往上鍵 / PageDown 鍵 end; end; inherited; end;-- Believe the unbelievable. |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
QOO10
初階會員 發表:59 回覆:89 積分:29 註冊:2002-12-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |