全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1534
推到 Plurk!
推到 Facebook!

新手發問 KeyPress event

尚未結案
erutluv
一般會員


發表:7
回覆:7
積分:7
註冊:2003-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-11 10:14:52 IP:210.66.xxx.xxx 未訂閱
procedure TfrmProglbl.edt1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin edt2.Focused; end; end; ================================================== 當 key = vk_Return 時, 跳到下一個 edit 怎麼沒有用,我哪裡寫錯了 不吝指教
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-11 10:31:21 IP:211.21.xxx.xxx 未訂閱
引言: procedure TfrmProglbl.edt1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin edt2.Focused; end; end; ================================================== 當 key = vk_Return 時, 跳到下一個 edit 怎麼沒有用,我哪裡寫錯了 不吝指教
procedure TfrmProglbl.edt1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    edt2.SetFocus;
  end;
end;
<補充:> 如何將Form焦點移動改用Enter與上下鍵移動,可參閱此篇文章: http://delphi.ktop.com.tw/topic.php?topic_id=300 ~小弟淺見,參考看看~ 發表人 - channel 於 2003/07/11 10:44:13
------
~小弟淺見,參考看看~
erutluv
一般會員


發表:7
回覆:7
積分:7
註冊:2003-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-16 13:53:46 IP:210.66.xxx.xxx 未訂閱
procedure TfrmProglbl.edt1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin edt2.SetFocus; end; end; ========================== 還是不行 請不吝指教 =============================
pwq
一般會員


發表:5
回覆:13
積分:3
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-16 14:14:37 IP:211.148.xxx.xxx 未訂閱
if key=#13 then begin SelectNextContril((Sender As TWincontrol),true,true); key = #0; end;
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-16 18:15:23 IP:211.21.xxx.xxx 未訂閱
引言: procedure TfrmProglbl.edt1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then begin edt2.SetFocus; end; end; ========================== 還是不行 請不吝指教 =============================
不太可能吧! 您測試一下:
  • New Application
  • 在Form1上放兩個TEdit(Edit1, Edit2)
  • 在Edit1的KeyPress事件打上:
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
        Edit2.SetFocus;
    end;
    
小弟測試過了沒有問題啊.... [建議] 不知您為什麼一定要這麼做? 這麼做有一些缺點:當您的Form上有10個TEdit,那您不就要寫程式碼寫9次 有一個比較好的方法,一勞永逸,可以讓您按Enter跳下一個物件,方法如下:
  • 將Form的屬性KeyPreview設為True
  • 必須uses dbctrls, dbgrids;
  • 在Form的KeyPress事件打上:
    procedure TCCLForm.FormKeyPress(Sender: TObject; var Key: Char);
    begin//按Enter跳下一個物件
      if (key = #13) and (Not(ActiveControl is TDBMemo)) and
         (Not(ActiveControl is TDBGrid)) then
      begin
        key := #0;
        PerForm(WM_NEXTDLGCTL,0,0);
      end;
    end;
    
~小弟淺見,參考看看~ 發表人 - channel 於 2003/07/16 18:26:32
------
~小弟淺見,參考看看~
系統時間:2024-04-30 1:56:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!