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