Ich zeige dir mal die Erzeugung meines SplashScreens, vieelicht siehst du etwas auffälliges:
Delphi-Quellcode:
procedure TLoaderForm.FormActivate(Sender: TObject);
var i: Integer;
oleVoice: OLEVariant;
begin
// wird aufgerufen, wenn Form auf dem Schirm "sichtbar" ist. (ist ja noch transparent)
// In Schleife einblenden
for i := 0 to 230 do
begin
LoaderForm.AlphaBlendValue := i;
Application.ProcessMessages;
end;
sleep(500); // eine halbe Sek. warten (kann natürlich entfernt werden)
end;
procedure TLoaderForm.FormClose(Sender: TObject; var Action: TCloseAction);
var i: Integer;
begin
// Wenn Form geschlossen wird, ausblenden und "Self.Free" machen
for i := 230 downto 0 do
begin
LoaderForm.AlphaBlendValue := i;
Application.ProcessMessages;
end;
Action := caFree;
end;
procedure TLoaderForm.FormCreate(Sender: TObject);
begin
AnzeigeLabel.Caption := '';
end;
procedure TLoaderForm.FormShow(Sender: TObject);
begin
LoaderForm.AlphaBlendValue := 0;
LoaderForm.AlphaBlend := true; // Form ist nun trasparent (=unsichtbar)
end;
auf caFree setze ich das erst wieder bei der Destroy-Funktion, kann es eventuell daran liegen? Die LoaderForm wird geladen, nachdem die HauptForm unsichtbar geöffnet wird. Sieht in der Create-Fkt so aus:
Delphi-Quellcode:
procedure TBedienForm.FormCreate(Sender: TObject);
begin
BedienForm.Enabled := false;
LoaderForm := TLoaderForm.Create(Application);
LoaderForm.Show;
LoaderForm.Refresh;
end;
2. Account Sero