2017-01-15 5 views
-1

Я создаю небольшое приложение с некоторыми горячими клавишами «Поиск», от F1 до F4, чтобы искать в разных таблицах базы данных, поэтому я создал TPageControl для хранения поиска поля, а также отображать результаты, поэтому у меня есть 1 PageControl и 4 вкладки, но я пытаюсь поставить один оператор if, чтобы установить фокус на правильном поле поиска, и я вызываю его в событии OnShow TPageControl, но я получаю сообщение об ошибке: Форма: 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. –

 Смежные вопросы

  • Нет связанных вопросов^_^