我一直在使用以下代码检查表单是否已经存在:
function FormExists(apForm: TObject): boolean;
var i: Word;
begin
Result := False;
for i := 0 to Application.ComponentCount-1 do
if Application.Components[i] = apForm then begin
Result := True;
Break;
end;
end;
几年前,我从一个参与的项目中获得了它。这是我最初的Delphi项目之一。
有用。
但是,这周我流连于是否有更好,更快的方法来做到这一点。
最佳答案
您可以使用Screen.Forms代替。它减少了您要遍历的项目:
function FormExists(apForm: TForm): boolean;
var
i: Word;
begin
Result := False;
for i := 0 to Screen.FormCount - 1 do
if Screen.Forms[i] = apForm then
begin
Result := True;
Break;
end;
end;
但是,值得注意的是,如果您已经有了
apForm
,就知道它存在,并且不需要搜索它。关于delphi - 表格已经打开了吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11943695/