给我写信:
[email protected]
我发给你~

解决方案 »

  1.   

    方法一:调用Showmodal函数来实现。Showmodal方式使一个窗口为激活窗口,和Show相似,但它令窗口模式化。现举一例说明:⒈开始一个新工程。给表格起名为MainForm,MainForm的单元起名为Main, 工程文件起名为Test。
    ⒉在MainForm中插入一个Button部件,将其Caption属性设为“关闭”,为该部件的OnClick事件创建一个过程,并在过程的begin和end之间插入Close语句。
    ⒊在应用程序添加一个表格,将这个表格起名为MoveForm,MoveForm 的单元起名为Move。
    ⒋为便于演示,在MoveForm中插入一个Label部件,设置其Caption 属性为“欢迎进入本系统”。
    ⒌建立两个表格之间的关联。在Unit Main的 implementation 中加入语句 usesmove;再为MainForm创建OnActivate事件。
    procedure TMainForm.FormActivate(sender:TObject);
    begin
    MoveForm.Showmodal;
    end;
    ⒍从Component模板的System类别中选择一个计时器(Timer),添加入 MoveForm表格中,设置其Interval属性为3000(可根据需要自定义),再为其OnTimer事件添加语句close;加入一个Timer部件目的是用以控制闪现窗口显示时间。在此, MoveForm显示了3秒钟后关闭,主窗口MainForm自动被激活。
    ⒎编译、运行程序,就能得到延迟为3秒的闪现窗口。
    方法二:你可通过修改工程文件中的源代码来实现,这在Delphi 的编程中是很少见的。现举一例具体说明:
    前四步同方法一。
    ⒌选择View/Project Manager,击Option按钮,选择结果Project Option 对话底部的Forms页栏目。注意,MainForm和MoveForm是在Auto-create forms 列表中。选择MoveForm并击右键头按钮,把这个表格移到 Available forms 。 所有的Delphi表格通过缺省方式自动在内存中建立,因此它们要消耗内存和系统资源。在类似这里(程序运行时创建一个表格)的情况下,你应该将表格从自动创建列表格中去掉。
    ⒍下一步修改工程的源代码。选择View/Project Source,修改begin和end之间的语句如下:
    程序清单Test.Dpr
    program Test
    uses
    forms,
    Main in 'MAIN.PAS'{MainForm},
    Move in 'Move.PAS'{MoveForm}{$R *.RES}begin
    MoveForm:=TMoveForm.Create(Application);{Create创建闪现窗口对象}
    MoveForm.Show;
    MoveForm.Update;
    Application.CreateForm(TMainForm,MainForm);
    MoveForm.Hide;
    MoveForm.Free;{Free从内存中释放对象}
    Application.Run;
    end.
      第一条语句创建了对象,该对象存在内存中,但还不能看见,为了让它出现并更新它的内容,调用对象的Show和Update成员函数:Show和Update。当闪现窗口使用完后,用Hide函数将它隐藏起来,然后用Free函数释放它所占据的内存。
    ⒎如果此刻你编译和运行程序,MoveForm窗口一闪而过,你可能未来得及看清。为使MoveForm窗口显示几秒种,我们可为MainForm的OnCreate 事件创建一个处理程序,延迟MoveForm窗口的显现时间。
    program TMainForm.FormCreate(sender:Tobject);
    var 
    currentTime:LongInt;
    begin
    currentTime:=GetTickCount div 1000;
    while ((GetTickCount div 1000)<(currentTime+3) do
    {不做任何事);
    end;
    end.
      GetTickCount函数返回窗口启动后过去的毫秒数,这个值除以1000 转化为秒数。此时你编译运行程序,就能得到一个延迟3秒多的闪现窗口。为闪现窗口添加上Image部件,再对字体及窗口进行修饰,我们就能为应用程序,创建一个精美的封面或在程序启动时显示重要提示。
      

  2.   

    首先lvloj()说的是对的,但我以前在以往的帖子上看过一样的留言,我不知道以前的是不是你写的。是到无所谓。但要不是的话,就太。我还是觉得还是自己写比较好。抄别人的太不好了。
      

  3.   

      Delphi在启动时会首先显示一个图片,等到将所有的初始化工作全做完后该图片自动消失。为达到这一效果,建立一个示例程序。 
      建立一个新Application,包括两个Form,其中Form1为主窗口,Form2为要显示的图片Form,不妨将Form2的边框类型设为无,同时在Form2中加入一个TImage类的构件Image1,Align属性为Client,AutoSize设为True,然后为Image1指定任意一个图片。 
      选Project1/Options菜单,点取Application页,将Form2从左边列表框中移到右边列表框,这样Project1.dpr源程序就不会生成建立Form2的代码。下一步是手工修改Project1.DPR源代码,因为Form2应该在Form1之前建立并显示,但不能使用Application的CreateForm方法(第一个用此方法建立的Form被认为是主Form),具体的代码如下,当运行至Application.CreateForm(...)一行时Form2已经建立并显示出来,然后该行建立主Form并激发主Form的OnCreate事件,你可以在OnCreate事件处理过程中完成你的初始化工作。 Project1.dpr program Project1; uses 
    Forms, 
    Unit1 in 'Unit1.pas' {Form1}, 
    Unit2 in 'Unit2.pas' {Form2}; {$R *.RES} begin 
    Application.Initialize; {程序初始化} 
    Form2 := TForm2.Create(Application); {建立徽标Form} 
    Form2.Show; {显示徽标Form} 
    Form2.Update; {重画徽标Form,确保其中的图片被显示出来} 
    Application.CreateForm(TForm1, Form1); {建立主Form} 
    Form2.Hide; {隐藏徽标Form,使主Form显示出来} 
    Form2.Free; {释放徽标Form占用的资源} 
    Application.Run; {程序运行} 
    end. 
      在主Form的OnCreate事件处理过程中我们用一些延时代码来模拟耗时的初始化工作,这样可以更清楚地看到Form2显示并停留数秒,直到主Form的OnCreate事件处理过程执行完毕后自动消失。 Unit1.pas unit unit1; interface uses 
    Windows, Messages, SysUtils, 
    Classes, Graphics, Controls, 
    Forms, ExtCtrls; type 
    TForm1 = class(TForm) 
    procedure FormCreate(Sender: TObject); 
    private 
    public 
    end; var 
    Form1: TForm1; implementation {$R *.DFM} { OnCreate事件处理过程,延时五秒 } 
    procedure TForm1.FormCreate(Sender: TObject); 
    var 
    CurrTime: TSystemTime; 
    Sec: Word; 
    begin 
    GetSystemTime(CurrTime); 
    Sec := CurrTime.wSecond + 5; 
    while Sec>CurrTime.wSecond do 
    GetSystemTime(CurrTime); 
    end; end. 
      执行这个程序,会看到令人满意的效果:启动画面成功地显示出来,而且当鼠标移至画面上时会自动变成沙漏形状,五秒钟后画面消失,主窗口出现。