在Delphi 中用程序实现自定义窗体的创建和显示顺序(1)
摘要:本文介绍了一种简单而实用的方法用来动态创建和显示窗体,在Project.dpr中编写代码实现窗体的动态选择创建,同时对 Delphi的窗体创建,应用程序的创建,运行和结束的机制作了深入的探讨。
关键字:Delphi 窗体 创建 显示 动态选择
一. 问题的提出
在Delphi 中我们可以通过两种方法创建多个窗体并设置他们的创建顺序,第一种方法是在新添加了多个窗体后,按Delphi 工具栏上的Project->Options… , 在出现的Forms 一页设置窗体的创建顺序。如下图:
第二中方法是在Delphi的工程文件中修改,在这里假设是Project1.dpr,其代码将显示如下:
program Project1;
uses
Forms,
Unit1 in ''''Unit1.pas'''' {Form1},
Unit2 in ''''Unit2.pas'''' {Form2},
Unit3 in ''''Unit3.pas'''' {Form3};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.Run;
end.
(代码1)
可以通过调整上面代码中语句的顺序来调整创建3个窗体的顺序,效果跟第一种方法一样。
但是上面这两种方法都存在一个缺陷,就是Delphi编译器默认会把排在第一位创建的窗体作为主窗体,每次程序启动都会首先显示主窗体,并且窗体的加载顺序是不变的。
如何做成可以根据需要动态改变程序加载顺序呢?
二. Delphi窗体创建大揭密
1. 窗体权限的转移实验
新建3个Form , 在Project->Options… 中的Forms 一页把Form2和Form3 放置在 Available forms中,保留Form1在Auto-create forms中,让Form1在程序一开始运行就创建。
在Form1(主窗体)中的OnCreate()事件函数中加入以下代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:=''''Form1 Create Completed!'''';
Form1.Show;
Application.CreateForm(TForm2, Form2);
end;
(代码2)
在Form2的OnCreate()事件函数中加入以下代码:
[1] [2] 下一页 [Delphi程序]在DELPHI 文 本 和 图 形 的 打 印 [Delphi程序]在Delphi 中用程序实现自定义窗体的创建和显示顺序… [Web开发]在Delphi 7中用dbexpress连接MySQL
|