我一直在使用以下代码检查表单是否已经存在:

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/

10-09 16:57