請問如何捉到目前Focus的元件名稱 |
尚未結案
|
yx_huang77
一般會員 發表:46 回覆:64 積分:22 註冊:2004-03-19 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問如何取得目前Focus的元件類別yx_huang77 你好: 試試這篇文章中的做法是否可行? src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
yx_huang77
一般會員 發表:46 回覆:64 積分:22 註冊:2004-03-19 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
將form->KeyPreview設為true,
然後:
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(Key == VK_RETURN) { this->Perform(WM_NEXTDLGCTL,0,0); } }------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D ------------------------------- |
yx_huang77
一般會員 發表:46 回覆:64 積分:22 註冊:2004-03-19 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
一樣將form的KeyPreview屬性設為true,
在FormKeyDown中寫入:
if Key == VK_RETURN then begin Self.Perform(WM_NEXTDLGCTL,0,0); end;------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D ------------------------------- 發表人 - anpino 於 2004/05/10 13:50:06 |
yx_huang77
一般會員 發表:46 回覆:64 積分:22 註冊:2004-03-19 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
引言: anpino這樣子好像沒有做到偵測類別如果是tdbmemo的功能你不是要用enter鍵代替tab鍵嗎? 原始引用如下: 引言: 我的意思是我想在FormKeyPress去寫段程式控制按enter鍵時會跳到下一個欄位,但遇到TDBMemo時是換行而不是跳到下一個欄位,謝謝偵測類別很簡單, 自己在FormKeyDown多加一個判斷不就好了。 或者用下面這個方法: if Key == VK_RETURN then begin int:x; x = self.ActiveControl.ComponentIndex; x ; try TEdit(self.components[x]).SetFocus; catch TEdit(self.components[0]).SetFocus; x = 0; end;------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D ------------------------------- |
yx_huang77
一般會員 發表:46 回覆:64 積分:22 註冊:2004-03-19 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
引言: 我是在tdbedit要用enter鍵代替tab鍵但在Tdbmemo時他是換行鍵而不是tab鍵原來如此, 請試試: if Key == VK_RETURN then begin int:x; x := self.ActiveControl.ComponentIndex;// 取得目前component的Index if ( Components[x] <> TDBMemo) then // 若不是TDBMemo則跳到下一個component. begin Self.Perform(WM_NEXTDLGCTL,0,0); end; end;------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D ------------------------------- 發表人 - anpino 於 2004/05/10 17:48:23 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |