控制焦點的轉移 |
尚未結案
|
XaioBin
一般會員 發表:2 回覆:2 積分:0 註冊:2005-04-18 發送簡訊給我 |
在表單有三個Edit,Edit1、Edit2、Edit3;當Edit1輸入內容為某個特定值時,按TAB遊標直接跳過Edit2,跑到Edit3。我把override SetFocusedControl函數,實作如下:
if (Control = Edit2)and (TEdit(Control) = ‘’) then
BEGIN
ActiveControl := Edit3;
Control := Edit3;
END;
inherited SetFocusedControl(Control); 但是現在輸入接收框是Edit3,但遊標卻在Edit2上。
多謝!!!
|
speedup
資深會員 發表:19 回覆:259 積分:280 註冊:2003-07-04 發送簡訊給我 |
|
XaioBin
一般會員 發表:2 回覆:2 積分:0 註冊:2005-04-18 發送簡訊給我 |
问题已经解决了,以下两方法即可!
function TForm1.SetFocusedControl(Control: TWinControl): Boolean;
begin
if (Control = Edit2)and (TEdit(Control).Text='') then
BEGIN
Control := Edit3;
PostMessage(Edit2.Handle,WM_KILLFOCUS,0,0);
PostMessage(Edit3.Handle,WM_SETFOCUS,0,0);
END;
Result := inherited SetFocusedControl(Control);//缺省处理
end; 这样也可以的,
if (Control = Edit2) and (TEdit(Control).Text = '') then
BEGIN
Control := Edit3;
SetActiveWindow(Application.Handle);
END;
inherited SetFocusedControl(Control); 發表人 - XaioBin 於 2005/04/18 22:13:36
|
tiao
一般會員 發表:11 回覆:19 積分:6 註冊:2005-02-01 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Sorry !! 插一下花 在 Edit1 的 OnExit 事件上加入下列程式碼即可
procedure TForm1.Edit1Exit(Sender: TObject); begin if TEdit(Sender).Text = '' then // 自行指定特定值 Edit2.SetFocus else Edit3.SetFocus; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
XaioBin
一般會員 發表:2 回覆:2 積分:0 註冊:2005-04-18 發送簡訊給我 |
引言: Sorry !! 插一下花 在 Edit1 的 OnExit 事件上加入下列程式碼即可procedure TForm1.Edit1Exit(Sender: TObject); begin if TEdit(Sender).Text = '' then // 自行指定特定值 Edit2.SetFocus else Edit3.SetFocus; end;---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- >>< face="Verdana, Arial, Helvetica"> 因為在我做的系統中有很多類似的要控制的表單,所以就寫在父表單中 .就不需要重複寫! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |