Delphi判断MDI子窗体是否打开

在 Delphi 开发 MDI 应用时,判断子窗体是否已经打开是个常见需求。其实,挺,你只需要遍历 MDI 父窗体的子窗体列表,找到你要的子窗体就行。如果已经打开,直接切换到它。比如,用这段代码可以实现:

procedure Tf_Main.btnUpdateClick(Sender: TObject);
var i: Integer;
begin
  for i := 0 to f_main.MDIChildCount - 1 do
    if (f_main.MDIChildren[i] is Tf_Pass) then
    begin
      self.MDIChildren[i].BringToFront; //把子窗体放到最前面
      self.MDIChildren[i].SetFocus; //设置子窗体获取焦点
      Exit;
    end;
end;

这段代码遍历所有子窗体,找到匹配的`Tf_Pass`后,就把它放到最前面并获取焦点。如果没有找到,啥也不做,挺高效的。

此外,MDI 父窗体的窗口菜单也可以方便地帮你管理所有已打开的子窗体。你可以在创建子窗体时动态地把它添加到菜单中,用户点击菜单项就能快速切换子窗体,提升用户体验。

,MDI 窗口的子窗体管理比较直观,理解了这个方法,做 MDI 应用时就能更加得心应手了。如果你正好在做 MDI 开发,可以参考这段代码,效果还不错。

docx 文件大小:13.46KB