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

请问,怎样动态设定窗体上的一个CONTROL为ACTIVECONTROL

答題得分者是:hagar
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-15 18:44:58 IP:218.16.xxx.xxx 未訂閱
请问,怎样动态设定窗体上的一个CONTROL为ACTIVECONTROL 谢谢!!! 發表人 - xiaoning79627 於 2003/06/15 19:12:11
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-15 19:45:12 IP:218.16.xxx.xxx 未訂閱
1. ActiveControl := Panel1; 2. ActiveControl := FindComponent('Panel1'); 3. 在 Edit1 輸入 Panel1 ActiveControl := FindComponent(Edit1.Text);
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-15 20:07:09 IP:202.39.xxx.xxx 未訂閱
SomeControl.SetFocus;    --- 每個人都是一本書
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-15 20:10:41 IP:218.16.xxx.xxx 未訂閱
引言: SomeControl.SetFocus; --- 每個人都是一本書
如果我是TIMAGE,它属于TGRIPHIC,没有SETFOCUS,该怎么办。谢谢!!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-15 20:17:28 IP:202.39.xxx.xxx 未訂閱
ActiveControl 屬於 WinControl 類別 TImage 不是, 所以沒辦法 SetFocus 也沒辦法成為 ActiveControl    --- 每個人都是一本書
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-15 20:26:02 IP:218.16.xxx.xxx 未訂閱
引言: ActiveControl 屬於 WinControl 類別 TImage 不是, 所以沒辦法 SetFocus 也沒辦法成為 ActiveControl --- 每個人都是一本書
请问,我想在按下一按钮后,让TIMAGE获的焦点该怎么做!! 谢谢!
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-15 20:35:24 IP:218.16.xxx.xxx 未訂閱
引言: ActiveControl 屬於 WinControl 類別 TImage 不是, 所以沒辦法 SetFocus 也沒辦法成為 ActiveControl --- 每個人都是一本書
在Justmade版主的RunTimeMoveResize实例中通过 [code:]procedure TForm1.miDesignClick(Sender: TObject); var i : integer; begin for i := 1 to 4 do SetLength(aMethods[i],ComponentCount); for i := 0 to ComponentCount - 1 do if Components[i] is TControl then begin aMethods[1,i] := TMethod(TC(Components[i]).onClick); aMethods[2,i] := TMethod(TC(Components[i]).onMouseDown); aMethods[3,i] := TMethod(TC(Components[i]).onMouseMove); aMethods[4,i] := TMethod(TC(Components[i]).onMouseUp); TC(Components[i]).OnClick := nil; TC(Components[i]).OnMouseDown := conMouseDown; TC(Components[i]).OnMouseMove := conMouseMove; TC(Components[i]).OnMouseUp := myMouseUp; end; CreateDragSpot('TL',crSizeNWSE); CreateDragSpot('CL',crSizeWE); CreateDragSpot('BL',crSizeNESW); CreateDragSpot('TC',crSizeNS); CreateDragSpot('BC',crSizeNS); CreateDragSpot('TR',crSizeNESW); CreateDragSpot('CR',crSizeWE); CreateDragSpot('BR',crSizeNWSE); Con := ActiveControl;//是不是通过这句代码获得当前选中的TCONTROL,而其中也有TIMAGE,TLABLE等,为什么可以??? RenewDragSpots; miDesign.Enabled := false; miNormal.Enabled := true; end; 小弟愚笨,请版主指教
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-15 20:36:08 IP:202.39.xxx.xxx 未訂閱
TImage 不能取得 Focus    --- 每個人都是一本書
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-15 20:45:50 IP:218.16.xxx.xxx 未訂閱
引言: TImage 不能取得 Focus --- 每個人都是一本書
能告诉为什么吗?是不是我理解错了!谢谢
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-06-15 21:07:57 IP:202.39.xxx.xxx 未訂閱
有 Window Handle 的(有 Handle 這個 property) 亦即為 TWinControl 後代的才能有 Focus 也才可以是 ActiveControl 簡單做個實驗, New 一個 Application 在 Form1 上放一個 TImage 元件 點選 Form1 的 ActiveControl 的屬性 可以發現該屬性的下拉選單中是沒有值的. 而 Con := ActiveControl 這一行 Con 宣告為 TControl, ActiveControl 雖為 TWinControl TWinControl 可以轉為 TControl, 因為 TWinControl 為 TControl 的後代 而 TImage/TLabel 雖是 TControl 的後代, 但不是 TWinControl 的後代, 所以沒有 Handle 屬性, 也不能取得 Focus    --- 每個人都是一本書 發表人 - hagar 於 2003/06/15 21:09:43
系統時間:2024-04-19 10:36:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!