Delphi启动画面 - 没有绘制Timage和Tlabel

时间:2014-07-26 18:46:53

标签: image delphi-7 splash-screen

我正在尝试为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.

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我不确定它是否是最好的解决方案,但它确实有效。 我把

FormSplash.Update; 

之后的DPR文件中的

FormSplash.Show;