在Delphi中实现启动画面的最佳方法是什么?
答案 0 :(得分:7)
创建表单,将其设为FormStyle
= fsStayOnTop
,将其边框样式设置为无,并将其标题设置为空白。这将创建一个顶部没有标题栏的表单。在表单上放一个TImage
并将位图加载到其中。
在表单上删除一个TTimer(这将用于确保启动屏幕在至少某段时间内保持不变。
以下是我在启动表格中的代码:
TSplashForm = class (TForm)
Image1: TImage;
CloseTimer: TTimer;
procedure CloseTimerTimer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
private
FStartTicks: integer;
FOKToClose: boolean;
public
property OKToClose: boolean read FOKToClose write FOKToClose;
end;
var
SplashForm: TSplashForm;
在FormCreate中:
procedure TSplashForm.FormCreate(Sender: TObject);
begin
FStartTicks := GetTickCount;
end;
procedure TSplashForm.CloseTimerTimer(Sender: TObject);
const
CTimeout = 3000;
begin
if (GetTickCount - FStartTicks > CTimeout) and OKToClose then
Close;
end;
procedure TSplashForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TSplashForm.FormDestroy(Sender: TObject);
begin
SplashForm := nil;
end;
在项目文件中,执行以下操作:
begin
SplashForm := TSplashForm.Create(nil)
Application.Initialize;
Application.Title := 'My Program';
//create your forms, initialise database connections etc here
Application.CreateForm(TForm1, Form1);
if Assigned(SplashForm) then
SplashForm.OkToClose := True;
Application.Run;
end.
(这些代码的大部分内容都是我的头脑,它可能无法直接编译)
答案 1 :(得分:1)
启动画面在技术上并不困难,它只是一个弹出然后消失的形式。因此,在Delphi中实现启动画面的最佳方法是:让图形设计师为您绘制一个!
答案 2 :(得分:0)
这就是我这样做的方法:首先通过向项目中添加一个空表单来创建一个新单元(file-> new->表单),让我们调用这个单元splashy,将其(表单的)边框样式设置为bsnone并将其名称属性设置为'splashscreen'或者你想要的东西,设计它(形式)首先使用mspaint或某些东西设计图片然后在表单上删除一个timage组件并通过它打开图像文件,添加一行:'splashscreen :Tsplashscreen;(agian,你可以根据需要命名)'到单位 var 部分然后将这个单位的名字添加到第一个单位的使用条款 以下代码中的第一个单元形成oncreate事件:
procedure TForm1.FormCreate(Sender: TObject);
var
splash : Tsplashscreen;
begin
Splash := TSplashScreen.Create(Application);
Splash.Show;
Sleep(1000); //as long as you want screen to be displayed 1000 = 1 second
Splash.Hide;
Splash.Free;
end;