获取打开新表单的表单的名称

时间:2013-01-30 17:56:04

标签: delphi delphi-7

我在Delphi7应用程序中有一个搜索窗口,根据打开搜索时哪个窗体处于活动状态,需要表现不同。具体来说,有两种形式需要在搜索中显示不同的按钮,当它来自所有其他形式时应该是不可见的。

有没有办法访问存储表单名称的属性(访问Name属性,甚至是Caption属性),我可以将其作为参数发送?或者另一种更好/更清洁的方法,如果你知道一个。

2 个答案:

答案 0 :(得分:7)

在MDI应用程序中,主窗体的ActiveMDIChild属性为您提供当前活动的子窗体。

答案 1 :(得分:2)

一种方法是

以表格之一

procedure TFormMain.btnSearchClick(Sender: TObject);
begin
   TFormSearch.CallForm(self); 
end;

另一种形式:

procedure TFormMain2.btnSearchClick(Sender: TObject);
begin
   TFormSearch.CallForm(self); 
end;

其他:

procedure TFormMain3.btnSearchClick(Sender: TObject);
begin
   TFormSearch.CallForm(self); 
end;

在TFormSearch源代码中,你可以获得在onshow事件中打开的表单的名称

class procedure TFormSearch.CallForm(AOwner: TComponent);
begin
   with TFormSearch.Create(AOwner) do
   begin
      showmodal;
      free;
   end;
end;

procedure TFormSearch.FormShow(Sender: TObject);
begin
  Showmessage(Owner.ClassName);
end;

您需要从Project-> Option-> Forms

中的自动创建表单列表中删除TFormSearch

我希望它能帮助你