Hm... also das klappt wie gesagt wunderbar aber jetzt gibt es kein Splash-Screen bevor der Installer startet
Code:
[Code[
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
procedure InitializeWizard();
begin
ExtractTemporaryFile('Splash.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}\Splash.png'),1000,1500,1000,0,255,True,$FFFFFF,10);
end;
Wobei nur das Bild nicht angezeigt wird, denn die Zeit die der Installer dann zum starten benötigt lässt darauf schließen, dass das Bild schon angezeigt wird, nur unsichtbar.
Dazu sollte man sagen, dass ich *.png benutze und das Problem da auftritt, beim *.bmp-File mit diesem Code geht es
Code:
var Splash : TSetupForm;
function InitializeSetup(): Boolean;
var
BitmapImage1 : TBitmapImage;
begin
Splash := CreateCustomForm;
Splash.BorderStyle := bsNone;
BitmapImage1 := TBitmapImage.Create(Splash);
BitmapImage1.AutoSize := True;
BitmapImage1.Align := alClient;
BitmapImage1.Left := 0;
BitmapImage1.Top := 0;
BitmapImage1.stretch := True;
BitmapImage1.Parent := Splash;
ExtractTemporaryFile('Splash.bmp');
BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\Splash.bmp');
Splash.Width := BitmapImage1.Width;
Splash.Height := BitmapImage1.Height;
Splash.Center;
Splash.Show;
BitmapImage1.Refresh;
Sleep(2000)
Result := True;
end;
procedure InitializeWizard();
begin
Splash.Close;
end;
Wobei im "Originalcode" die "isgsg.dll" angegeben ist und im zweiten nicht (habe aber auch keine Idee wo ich die Datei dann angeben müsste).