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

Edit元件按enter按順序跳

答題得分者是:wameng
goodjimmy
一般會員


發表:20
回覆:26
積分:9
註冊:2004-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-22 15:05:56 IP:192.192.xxx.xxx 未訂閱
請問:     如何控制edit元件內的游標,按enter,可以照我要的順序跳呢?是不是改tab order的順序,可是我有改,還是無法照我的設計走    程式碼如下:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var x, y: Integer;
    t: TEdit;
begin
    if key = #13 then begin
        y := 1;
        for x := 0 to Componentcount - 1 do begin
            if (Components[x] is TEdit) then
               if TEdit(Components[x]).Focused then y := x   1;
        end;
              if y = componentcount then y := y   1;
           TEdit(Components[y]).SetFocus;
        end;
end;
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-22 15:17:46 IP:61.222.xxx.xxx 未訂閱
按照 TabOrder 順序 改用 procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then Perform(WM_NEXTDLGCTL,0,0); end;
a6475
高階會員


發表:67
回覆:230
積分:154
註冊:2002-09-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-22 15:45:06 IP:211.23.xxx.xxx 未訂閱
引言: 按照 TabOrder 順序 改用 procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then Perform(WM_NEXTDLGCTL,0,0); end;
站上有大大寫了一個TdosMove 不錯用。 大大可以下載議試看 ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎
藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁
change.jian
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-22 15:46:47 IP:61.218.xxx.xxx 未訂閱
check一下你的form.KeyPreview是否設為True,如果false,就收不到Key了
goodjimmy
一般會員


發表:20
回覆:26
積分:9
註冊:2004-02-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-22 18:19:35 IP:218.162.xxx.xxx 未訂閱
太神奇了! 高手可否解說一下 Perform(WM_NEXTDLGCTL,0,0)此寫法是如何找尋出來的?? ps:謝謝其它大大的回應
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-22 19:26:43 IP:61.222.xxx.xxx 未訂閱
引言: 太神奇了! 高手可否解說一下 Perform(WM_NEXTDLGCTL,0,0)此寫法是如何找尋出來的?? ps:謝謝其它大大的回應
我再作一點補充: Perform(WM_NEXTDLGCTL,1,0); 表示往上移。就是依照TabOrder 次序由大至小。 事實上,Windows 系統本身就是訊息類的系統。 您也可以直接用 SendMessage(Handle,WM_NEXTDLGCTL,0,0); 比如: SendMessage(Handle,WM_SYSCOMMAND,SC_TASKLIST,0); 就是開啟 -->系統「開始」功能選單 發表人 - wameng 於 2004/10/22 19:33:35
系統時間:2024-05-02 16:56:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!