打印本文 打印本文 关闭窗口 关闭窗口
在Delphi 中用程序实现自定义窗体的创建和显示顺序(1)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2007  更新时间:2009/4/23 18:37:44  文章录入:mintao  责任编辑:mintao

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]  下一页

打印本文 打印本文 关闭窗口 关闭窗口