创建一个表单,使其为FormStyle
= fsStayOnTop
,将其边框样式设置为none,并将其标题设置为空白.这将创建一个顶部没有标题栏的表单.删除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;
Run Code Online (Sandbox Code Playgroud)
在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;
Run Code Online (Sandbox Code Playgroud)
在项目文件中,执行以下操作:
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.
Run Code Online (Sandbox Code Playgroud)
(这些代码的大部分内容都是在我的脑海中编写的,它可能无法直接编译)