Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Eventhandling problem/ahnungslosigkeit

  Alt 5. Mär 2015, 10:56
Also für eine simple Splash-Form genügt das hier:

Die Projekt-Datei (nichts Auffälliges dort):
Delphi-Quellcode:
program dp_184173;

uses
  Vcl.Forms,
  Form.MyMainForm in 'Form.MyMainForm.pas{MyMainForm},
  Form.MySplashForm in 'Form.MySplashForm.pas{MySplashForm};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TMyMainForm, MyMainForm);
  Application.Run;
end.
Die MainForm
Delphi-Quellcode:
unit Form.MyMainForm;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
  TMyMainForm = class( TForm )
  private

  public
    procedure AfterConstruction; override;

  end;

var
  MyMainForm: TMyMainForm;

implementation

{$R *.dfm}

uses
  Form.MySplashForm;

{ TMyMainForm }

procedure TMyMainForm.AfterConstruction;
var
  LSplash : TMySplashForm;
begin
  inherited;
  // Die MainForm soll NICHT angezeigt werden
  Application.ShowMainForm := False;

  // Eine Splash-Form erzeugen und anzeigen
  LSplash := TMySplashForm.Create( Application );
  LSplash.Show;
end;

end.
Die Splash-Form:
Delphi-Quellcode:
unit Form.MySplashForm;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TMySplashForm = class( TForm )
    Button1: TButton;
    procedure Button1Click( Sender: TObject );
  private
  protected
    procedure DoClose( var Action: TCloseAction ); override;

  public

  end;

var
  MySplashForm: TMySplashForm;

implementation

{$R *.dfm}

procedure TMySplashForm.Button1Click( Sender: TObject );
begin
  Self.Close;
end;

procedure TMySplashForm.DoClose( var Action: TCloseAction );
begin
  // Diese Form-Instanz zerstören
  Action := caFree;

  // Die MainForm sichtbar machen
  Application.MainForm.Visible := True;
  inherited;

end;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat