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

按Enter時讓Edit跳TabOrder+1

尚未結案
scottirisa
一般會員


發表:5
回覆:3
積分:1
註冊:2004-01-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-24 18:08:01 IP:218.32.xxx.xxx 未訂閱
請教高手 我的做法事在每一個Edit的KeyDown事件下,判斷key是否等於13,然後做SetFocus,可是我覺得很麻煩。所以想請教如何寫成共用程式。(如寫成function 讓所有程式都可以使用)或則說各位高手有什麼好辦法。 謝謝ㄜ
Chance36
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-24 18:29:39 IP:211.20.xxx.xxx 未訂閱
引言: 請教高手 我的做法事在每一個Edit的KeyDown事件下,判斷key是否等於13,然後做SetFocus,可是我覺得很麻煩。所以想請教如何寫成共用程式。(如寫成function 讓所有程式都可以使用)或則說各位高手有什麼好辦法。 謝謝ㄜ
scottirisa 你好 從以下連結下載DosMove http://delphi.ktop.com.tw/topic.php?topic_id=44491 安裝後,只要在你的Form放上該元件,然後好像把它的Active設為True就OK了。 若須更多關於DosMove的資訊,請在站上輸入[DosMove]搜尋就有好多資料說明。 發表人 - chance36 於 2004/03/24 18:31:44
jest0024
高階會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-24 19:47:01 IP:211.74.xxx.xxx 未訂閱
引言: 請教高手 我的做法事在每一個Edit的KeyDown事件下,判斷key是否等於13,然後做SetFocus,可是我覺得很麻煩。所以想請教如何寫成共用程式。(如寫成function 讓所有程式都可以使用)或則說各位高手有什麼好辦法。 謝謝ㄜ
1. form KeyPreview屬性設true KeyDown事件 if(Key=VK_RETURN)then begin Key:=0; SendMessage(Handle,CN_KEYDOWN,VK_TAB,0); end; 2.使用HOOK攔劫.
Mickey
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-24 21:00:10 IP:218.32.xxx.xxx 未訂閱
scottirisa 你好:    用 TApplicationEvents 元件參考看看
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  Case Msg.message of
    WM_KEYDOWN:
        case msg.wParam of
          VK_RETURN: begin
            with Screen.ActiveForm do
                Perform(WM_NEXTDLGCTL,0,0);
          end;
        end;
  end;
end;
moggy
一般會員


發表:0
回覆:4
積分:0
註冊:2002-07-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-25 11:40:41 IP:202.39.xxx.xxx 未訂閱
在TForm的KeyPress中加入以下程式碼:
  if Key = #13 then
  begin
    Key:= #0;
    Perform(WM_NextDlgCtl, 0, 0);
  end;
將TForm的KeyPreview屬性設為True 試試看是不是您想要的~
alice
初階會員


發表:41
回覆:49
積分:28
註冊:2002-04-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-25 13:20:47 IP:211.75.xxx.xxx 未訂閱
我的做法 Form KeyPreview屬性設true,  若有DBGrid的元件, 則DBGrid的Options屬性中的dgAlwaysShowEditor設true, 在Form的KeyDown事件  
 if Key=VK_RETURN then begin  //按Enter視同Tab鍵
      if ActiveControl is TCustomGrid then begin
         keybd_event(VK_TAB,0,0,0);
         keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0)
       end else
         sendMessage( handle, WM_NEXTDLGCTL, 0, 0);
  end;
按Enter就像按Tab鍵一樣了, 當然你的Form中Tab Order要排好你要的順序, 這樣就會照你的順序移動囉!!
scottirisa
一般會員


發表:5
回覆:3
積分:1
註冊:2004-01-26

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-26 00:07:46 IP:218.162.xxx.xxx 未訂閱
謝謝大家ㄜ
系統時間:2024-06-21 14:09:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!