2013-04-01 31 views
0

我們使用的是修改後的TToolWindow97 = class(TCustomControl)組件。如何查找當聚焦屬性返回False時是否重點關注TCustomControl?

enter image description here

我只能找到它TForm.ComponentsTForm.Controls上沒有。所以,TForm.ActiveControl是零和TToolWindow97.Focused = FalseTToolWindow97是重點。我需要知道它的重點。

我還試圖找到TToolWindow97上的任何集中控制。但他們都返回Focused = False

如何確定TToolWindow97(繼承自TCustomControl)是否專注於Focused屬性總是返回False

P.S. TToolWindow97窗口在圖像上有陰影。只有重點關注TToolWindow97窗口 - 所以重點存在。我可能會把重點放在它上面。但他們都返回Focused = False。我不知道爲什麼。

非常感謝您的幫助!

+0

這是Jordan Russell的Toolbar97嗎?如果是這樣,如果我記得正確的話,工具窗口在運行時就會自動嵌套在頂層窗口中。找到工具窗口的頂層窗口並測試它是否爲活動窗口(GetActiveWindow)。 –

+0

GetActiveWindow根本沒有幫助。 – Dmitry

+1

我懷疑你沒有正確識別工具窗口所在的頂層窗口... –

回答

0

1)。掃描下面的把手時TBToolWindow集中,而不是:

 aHandle := (Sender as TForm).Handle; 
     aHandle := aVisible.Handle; 
     aHandle := GetForegroundWindow; 
     aHandle := GetActiveWindow; 
     aHandle := Screen.ActiveForm.Handle; 
     aHandle := Application.ActiveFormHandle; 

所以,區別只在Screen.ActiveForm.Handle。 2)。安裝Microsoft Spy。 3)。將Screen.ActiveForm.Handle轉換爲HEX並在Spy上找到它們。 4)。看看課程。所以,當TTBToolWindow集中時,aHandle的類是TBFloatingWindowParent。 5)。編寫代碼以通過TBFloatingWindowParent控件查找正確的活動浮動窗口(TTBToolWindow)。

+0

是的,這就是我已經評論過的 - *「查找工具窗口的頂層窗口並測試是否...」* –

4

工具欄按鈕沒有焦點。在圖像中,很明顯,網格控件具有焦點 - 它具有虛線焦點矩形,單元格使用焦點顏色突出顯示。

帶有陰影圖像的「15」按鈕正在指向與鼠標。它處於「懸停」或「熱」狀態,而不是其「焦點」狀態。在代碼中,狀態的名稱是bsMouseIn,它存儲在FState字段中;該領域保護了知名度並且不通過任何公共財產或方法暴露。您可能對OnMouseEnterOnMouseExit事件感興趣。

工具欄按鈕很少獲得焦點。它們只能用鼠標操作。要使用鍵盤操作它們,您需要按相應的快捷鍵組合。特定的按鈕控件TToolbarButton97絕對不會獲得焦點,因爲它從TGraphicControl下降。 1)。

+0

沒有TToolbarButton97組件。按鈕來自Toolbar2000。 – Dmitry

+0

網格沒有專注於'聚焦'屬性(但它是事實)。另外我的問題是關於'TTBToolWindow' - 而不是它內部的控件。對不起,但答案完全是uselles。 – Dmitry

+0

這是您第一次提到TTBToolWindow。那是什麼? –

相關問題