Hallo Leute,
ich habe für mein Programm einen Splashscreen (Ladefenster wie auch immer...) erstellt. Aber wenn ich das Programm ausführe erhalte ich immer einen Zugriffsfehler (s.Anhang)!
Funktionieren tuts trotzdem! Doch hab ich nicht immer lust erst irgendwo auf 'OK' klicken zu müssen um das Programm nutzen zu können.
Delphi-Quellcode:
program DesktopUhr6;
uses
Forms,
Main in 'Main.pas' {Form1},
Einstellungen in 'Einstellungen.pas' {Form2},
Hilfe in 'Hilfe.pas' {Form3},
laden in 'laden.pas' {frmLaden};
{$R *.res}
begin
frmLaden := TfrmLaden.Create(Application);
try
frmLaden.Show;
frmLaden.Refresh;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
finally
frmLaden.InitializationDone := True;
end;
while frmLaden <> nil do
Application.ProcessMessages;
Application.Run;
end.
Vllt ist hier ein Fehler drinne?!
Weiterer Code den ich auf dem Form zum Laden habe:
Delphi-Quellcode:
procedure TfrmLaden.SetInitializationDone(const Value: Boolean);
begin
FInitializationDone := Value;
Close;
end;
procedure TfrmLaden.FormCreate(Sender: TObject);
begin
frmLaden.Color := clBlack;
frmLaden.DoubleBuffered := true;
end;
procedure TfrmLaden.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
Close;
end;
procedure TfrmLaden.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := (not Timer1.Enabled) and FInitializationDone;
end;
procedure TfrmLaden.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
frmLaden := nil;
end;
UNd auf dem Hauptformular ist folgendes:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Sleep(300);
frmLaden.Refresh;
end;
Ich hab mal die (unfertige) EXE angehängt, vllt hilft euch das ja auch was.