我使用字符串来创建可用的表单,但我不知道如何测试表单是否已经创建。我只需要每个表单的一个示例。
Procedure TMainForm.CreateFormFromName(const FormName:String);
var
fc:TFormClass;
f:Tform
begin
fc := TFormClass(FindClass(FormName));
f := fc.Create(Application);
f.show
end;
Procedure TMainForm.FormCreate(Sender:TObject);
begin
RegisterClass(TfrmTest);
end;
我可以发送一个字符串到表单,它确实创建了表单。但是,我如何锁定第二次尝试创建相同的形式?
2条答案
按热度按时间uklbhaso1#
由于表单的所有者可能不是在所有情况下都是
Application
,因此迭代Screen.Forms/Screen.FormCount
可能是更好的方法。如果这些形式不是从
TForm
导出的,而是从TCustomForm
导出的,那么还有Screen.CustomForms/Screen.CustomFormCount
。8yparm6h2#
所有表单的所有者都是
Application
,所以只要检查它是否已经用必要的类约束了表单:用你想搜索的类调用它,f.e.: