Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pascal 如何在表单创建中调用集合焦点_Pascal_Lazarus - Fatal编程技术网

Pascal 如何在表单创建中调用集合焦点

Pascal 如何在表单创建中调用集合焦点,pascal,lazarus,Pascal,Lazarus,我正在创建一个带有一些“搜索”热键的小应用程序,F1到F4用于搜索数据库的不同表,因此我创建了一个TPageControl来保存搜索字段并显示结果,因此我有1个PageControl和4个选项卡,但我试图使用一个if语句将焦点设置在适当的搜索字段上,并在TPageControl的OnShow事件中调用它,但我收到一条错误消息:Form:TForm无法聚焦 如果我没有完全弄错,那是因为找不到文本字段,考虑到我在应用程序创建页面内部元素之前显示了页面,所以,我如何编辑此代码,或者在何处使用它使其工作

我正在创建一个带有一些“搜索”热键的小应用程序,F1到F4用于搜索数据库的不同表,因此我创建了一个TPageControl来保存搜索字段并显示结果,因此我有1个PageControl和4个选项卡,但我试图使用一个if语句将焦点设置在适当的搜索字段上,并在TPageControl的OnShow事件中调用它,但我收到一条错误消息:Form:TForm无法聚焦

如果我没有完全弄错,那是因为找不到文本字段,考虑到我在应用程序创建页面内部元素之前显示了页面,所以,我如何编辑此代码,或者在何处使用它使其工作,只是记住我需要稍后用热键调用此过程

我用来设置焦点的过程只是一个简单的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;

来自另一个论坛的更“明确”的帮助:

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

if Visible then
ActiveControl.SetFocus;
end;

你试过设置ActiveControl吗?在网上找不到这个(至少我不能理解),你能举个例子吗?ActiveControl:=editFieldNames;这是一种可能性,但我不知道如何使用它,特别是在你的“简短”示例中,但感谢awser,我认为代码不是视觉辅助工具。不要养成请求现成代码的习惯,否则会浪费学习编程的时间。为什么在这里调用ActiveControl.SetFocus?这是自动完成的。我自己在学习编程,遗憾的是,我在我的镇上没有任何地方可以学习课程(几乎住在小村庄=/),这是我第一次听说关于我学习的ActiveControl,所以我有点迷路了,我稍后会尝试不用它,谢谢你的建议^^别担心。一门课程可能也不会告诉你ActiveControl。