德尔福,按名称查找表格

时间:2014-09-01 17:35:47

标签: forms delphi

如何按姓名查找表格?在这个表格上我有编辑(TEdit),我想在这个TEdit中写一些东西(它的名字例如:adress),但我只有表格名称。 你能救我吗?

3 个答案:

答案 0 :(得分:8)

有一种更简单的方法可以按名称查找表单。由于所有auto-created表单对象都归Application个对象所有,而TApplication继承自TComponent,因此您可以迭代直到Application.Components数组属性或使用{{3方法。

var 
  Form: TForm;
begin
  Form := Application.FindComponent('LostForm1') as TForm;
  if Assigned(Form) then
    Form.Show
  else
    { error, can't find it } 

请注意,FindComponent不区分大小写。

答案 1 :(得分:4)

这个答案假定您正在制作VCL应用程序。我不知道FireMonkey是否有类似的解决方案。

创建时,所有表单都将添加到全局屏幕(在Vcl.Forms中声明)对象中。因此你可以像这样做一个小帮手功能

function FindFormByName(const AName: string): TForm;
var
  i: Integer;
begin
  for i := 0 to Screen.FormCount - 1 do
  begin
    Result := Screen.Forms[i];
    if (Result.Name = AName) then
      Exit;
  end;
  Result := nil;
end;

答案 2 :(得分:0)

如果您知道表单的表单标题或类名,则可以使用FindWindow函数。