如何获得Delphi IDE的主表单?

时间:2009-06-08 22:24:36

标签: delphi ide

我正在为Delphi编写属性编辑器,我希望它显示在正确的屏幕上以支持多显示器。为了定位它,我想引用Delphi IDE的“主”形式。

我已尝试使用Application的MainForm属性和Application对象本身,但似乎都不起作用。我相信这是因为MainForm实际上是Nathanial Woolls在本文中引用的隐藏的TApplication实例(搜索“申请表”):

http://www.installationexcellence.com/articles/VistaWithDelphi/Original/Index.html

有没有人知道如何获取IDE的可见主窗体的句柄。我试图避免一些俗气,比如迭代所有表格并在标题中搜索“CodeGear RAD Studio”。

2 个答案:

答案 0 :(得分:4)

IDE的主要形式是Application.MainForm。我的快速测试设计包:

procedure DoStuff(Form: TCustomForm);
var
  S: string;
begin
  S := Form.Caption;
  Form.Caption := S + ' - this one';
  try
    ShowMessage(Format('%s [%s] on monitor %d', [Form.Name, Form.ClassName, Form.Monitor.MonitorNum]));
  finally
    Form.Caption := S;
  end;
end;

initialization
  DoStuff(Application.MainForm);

在我的情况下,在监视器0上显示“AppBuilder [TAppBuilder]”,我可以在主窗体的标题中看到“ - this this”后缀。 什么似乎不适用于你的情况?

答案 1 :(得分:2)

IIRC主要表单称为TAppBuilder,因此FindWindow('TAppBuilder',nil)之类的内容可能是您的起点。