delphi - 如何检查子窗口是否存在?

标签 delphi

我有一个主窗体 (MainForm) 和一个 MDI 子窗口 (TFormChild)。 我想创建多个 TFormChild 表单,但第一个表单必须以某种方式运行,因此我需要检测 TFormChild 窗口是否已存在。

我使用此代码,但它不起作用:

function FindChildWindowByClass(CONST aParent: HWnd; CONST aClass: string): THandle;   
begin
  Result:= FindWindowEx(aParent, 0, PChar(aClass), NIL);
end;

我这样调用它:

Found:= FindChildWindowByClass(MainForm.Handle, 'TFormChild')> 0;   

最佳答案

在表单中,您可以引用 MDIChildCount 和 MDIChildren 属性。

例如:

var
  i: integer;
begin
  for i:= 0 to MainForm.MDIChildCount-1 do
  begin
    if MainForm.MDIChildren[i] is TFormChild  then
    ...
  end;
  ...
end;

关于delphi - 如何检查子窗口是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6844988/

相关文章:

delphi - Delphi 中 TDataSetProvider 所需的信息

c++ - 将 CreateProcess 与通过 bat 文件设置的环境变量一起使用

delphi - 如何使用Delphi IDE保存断点?

Delphi XE2 - 处理 blob 字段

delphi - 如何查询 Delphi 组件面板?

delphi - 在远程计算机上运行应用程序或进程

delphi - 如何保护代码片段免于在 Delphi 中自动格式化 CTRL+D

delphi - DWScript 是线程安全的吗?

delphi - 映射网络驱动器 (WebDAV) 不适用于 Windows XP

delphi - 虚拟字符串树 : Search for a text where type is not a String