高手请教........(50分)

  • 主题发起人 主题发起人 vbuser
  • 开始时间 开始时间
V

vbuser

Unregistered / Unconfirmed
GUEST, unregistred user!
"软件封面"显示几秒后就自动退出,然后再显示主界面.就像DELPHI刚启动显示DELPHI的软件封面一样.<<请教怎么样才能实现这个功能呢?>>
 
最简单的实现方法:建立一个新Form,BorderStyle设为bsNone,position设为poScreenCenter,再放一个TTimer控件Timer1,在Timer1的OnTimer事件中加入如下代码
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=False;
Self.Hide;
Form2.ShowModal;
Close;
end;

其中Form1是软件封面,Form2是主界面。
Project中按照下面显示的顺序即可

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;

这样你就可以在Form1中设计自己的封面样式了。
 
我们在Project菜单下执行“View
Source”就可以看到程序是如何初始化的,一般是这种形式:

program lklb;

begin
Application.Initialize;
Application.Title := '劳保管理';
Application.CreateForm(TMainForm, MainForm);

Application.CreateForm(Tflashwin, flashwin);
Application.Run;
end.

  如果是这种形式肯定是不行的,因为flash窗体不可能在主窗体前运行。下面是改写后的代码:

var
mydate:Tdatetime;
{$R *.RES}
begin
flashwin:=Tflashwin.create(application);
flashwin.show;
flashwin.update;
mydate:=gettickcount;
 while((GetTickCount-mydate) / 1000 <2) do;
 Application.Initialize;
 Application.Title := '社区卫生';
 Application.CreateForm(TMainForm, MainForm);

flashwin.Close;
flashwin.free;

 Application.Run;

  上面这段代码首先创建启动窗口,并延时两秒种后初始化程序,在主窗口显示出来后再关闭启动窗口并释放内存。上面的代码可以再变通一下:如果你的程序启动很慢,那么就把延时的两行代码删除吧,如果你的程序启动很快就可以把延时时间再增加。上面的代码中启动窗体的关闭代码写在Application.Run之前可充分保证在主窗口没显示之前启动窗口不会消失。
 
赶快散分啊,快没分用了!!
 
人家是后台程序启动时忙的不得了,
而我们却要故意延时
 
program Project1;

uses
Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
var
StartTime: Double;
begin
Application.Initialize;
Form1:=Tform1.Create(application);
Form1.Show;
Form1.Update;
StartTime := Now;
while Now > StartTime + 0.5 * (1/24/60) do
begin
Application.ProcessMessages;
end;
Form1.Hide;
Form1.Free;
Application.Run;
 
非常感谢你们的支持.希望以后能多多沟通!谢谢!
 
谢谢您!希望以后能多多指教!
 
后退
顶部