我正在尝试为Delphi 7程序添加启动画面。我正在使用this post中的示例,除了我没有最小3秒。一旦主表单加载并准备好,我就希望关闭它。
启动窗体包含一个Timage(在设计时静态加载BMP)和一个Tlabel。该表单在IDE中看起来正确。
运行程序时,会显示启动画面窗口的背景,但不会出现Timage或Tlabel。它只是一个带有表单背景颜色的空矩形。当主窗口显示时,它会正确消失。 我错过了什么?
这是program.dpr中的启动代码:
Application.Initialize;
FormSplash := TFormSplash.Create(nil);
try
FormSplash.Show;
// Create application forms here
Application.Title := 'Sysex Filer';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TFormKroTimbreCopy, FormKroTimbreCopy);
// remove the test for timer complete, and just hide the splash when we get here
FormSplash.Hide;
finally
FormSplash.Free;
end;
Application.Run;
end.
这是Splash Unit:
unit SplashUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TFormSplash = class(TForm)
Image1: TImage;
Label1: TLabel;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormSplash: TFormSplash;
implementation
{$R *.dfm}
procedure TFormSplash.FormShow(Sender: TObject);
begin
OnShow := nil;
{ // comment out the timer and the completed flag
Completed := False;
Timer1.Interval := 3000; // 3s minimum time to show splash screen
Timer1.Enabled := True;
}
end;
end.
答案 0 :(得分:0)
我找到了解决方案。我不确定它是否是最好的解决方案,但它确实有效。 我把
FormSplash.Update;
之后的DPR文件中的
FormSplash.Show;