2017-01-15 44 views
-1

我正在創建一個帶有「搜索」熱鍵的小應用程序,F1到F4來搜索數據庫的不同表格,所以我創建了一個TPageControl來保存搜索字段,並顯示結果,所以我有1 PageControl和4選項卡表,但我試圖把一個if語句將焦點設置在正確的搜索字段,我將它調用TPageControl的OnShow事件,但我收到一條錯誤消息:窗體:TForm不能集中如何調用表單創建的集中

如果我沒有得到它全部錯誤,這是因爲無法找到文本字段,考慮到我在應用程序可以創建內部元素之前顯示頁面因此,如何編輯此代碼或我可以在哪裏使用它來使其工作,只記得我需要用t調用此過程他後來熱門。

我使用設定對焦的過程僅僅是一個簡單的IF有4個條件,我的真實案例:

procedure TForm.searchFocus; begin 
if pgcSearches.TabIndex=0 then begin 
editFieldNames.SetFocus; 
end 
else if pgcSearches.TabIndex=1 then begin 
editFieldAdresses.SetFocus 
end; 
end; 
+0

你嘗試設置ActiveControl嗎? –

+0

無法通過網絡找到它(至少不是我能理解的),你能舉個例子嗎? – douglascast

+0

ActiveControl:= editFieldNames; –

回答

1

從另一個論壇上更「明確」的幫助:

procedure TfrmMain.pcSearchesChange; 
begin 
case pcSearches.TabIndex of 
0: ActiveControl:=edtSearchSongs; 
1: ActiveControl:=edtSearchBibles; 
2: ActiveControl:=edtSearchWarning; 
end; 

if Visible then 
ActiveControl.SetFocus; 
end; 
+0

爲什麼在這裏調用ActiveControl.SetFocus?這是自動完成的。 –

+0

我正在自學程序設計,可惜我沒有任何地方可以在我的小鎮上課(幾乎住在Small Vile = /),而且這是我第一次聽說我學習ActiveControl,所以我有點遺憾,我會嘗試沒有它後,謝謝你的建議^^ – douglascast

+0

不要擔心。一門課程可能不會告訴你關於ActiveControl的事情。 –