TfrmMain和TApplication - 这些是为了什么?

时间:2008-12-09 01:09:53

标签: delphi

我是Delphi新手,但我正在尝试使用Spy ++理解TApplication和TfrmMain窗口之间的关系。看起来TfrmMain窗口是具有正确屏幕坐标的真实窗口,但TApplication窗口是Windows任务栏中显示的窗口。而且,它们似乎根本没有相互关联。一个不是另一个的父窗口,那么窗口如何链接在一起?为什么非UI窗口是获取Windows任务栏按钮的窗口?任何Delphi专家都能帮我理解吗?

2 个答案:

答案 0 :(得分:9)

TApplication是封装应用程序并处理Windows Messaging等内容的类。 TfrmMain将成为TForm的子类,它将成为您的应用程序“主要表单”。

所以基本上,TApplication是控制器可以这么说,它拥有并创建TfrmMain,并将消息转发给它,或者它的任何一个孩子。

查看projectname.pas文件,你会看到类似的内容:

program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
  Application.Initialize;
  Application.CreateForm(TfrmMain, frmMain) ;
  Application.Run;
end.

其中Application的类型为TApplication。

答案 1 :(得分:2)

使用Delphi BEFORE Delphi 2007版本的应用程序,“秘密窗口”将成为Vista的Flip 3D或预览中的可见窗口。这是一篇很棒的文章,解释了如何在Delphi 2006(及更早版本)上编译Delphi应用程序,以便不显示“秘密窗口”:here