Autor Beitrag
Rhodium70
Hält's aus hier
Beiträge: 3

Windows 11 Pro
deutsch
BeitragVerfasst: So 03.07.22 00:46 
Hallo,

ich habe ein kleines Problem bei Inno Setup. Der Titel erwähnt es ja schon. Ich habe auch erfolgreich mein Setup erstellt und es funktionier auch (jedenfalls auf meinem PC). Den passenden Code dafür hab ich ja auch. Und dieser funktioniert auch soweit. Nun wollte ich das Programm auf meinem Laptop ausführen und dieser gibt mir ein Fehler aus. "WizardHintergrund.bmp" kann nicht angezeigt werden bzw. fehlt.

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
[Files]
Source: "WizardHintergrund.bmp"; DestDir: "{tmp}"; Flags: ignoreversion dontcopy

/// großes Bild als Wizard


var
  WelcomePageID: Integer;
  BitmapImage: TBitmapImage;

procedure InitializeWizard4;
var
  WelcomePage: TWizardPage;  
begin
  WelcomePage := CreateCustomPage(wpWelcome, '', '');
  WelcomePageID := WelcomePage.ID;
  BitmapImage := TBitmapImage.Create(WizardForm);
  BitmapImage.Bitmap.LoadFromFile('D:\Source\WizardHintergrund.bmp');
  BitmapImage.Top := 0;
  BitmapImage.Left := 0;
  BitmapImage.AutoSize := True;
  BitmapImage.Cursor := crHand;
  BitmapImage.Visible := False;
  BitmapImage.Parent := WizardForm.InnerPage;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  BitmapImage.Visible := CurPageID = WelcomePageID;
  WizardForm.Bevel1.Visible := CurPageID <> WelcomePageID;
  WizardForm.MainPanel.Visible := CurPageID <> WelcomePageID;
  WizardForm.InnerNotebook.Visible := CurPageID <> WelcomePageID;
end;


Begrüßungsseite

user defined image

2. Seite mit Vollbild

user defined image

3. Seite und so weiter

user defined image

So sieht es, soll es aussehen. Funktioniert aber nur wenn das Hintergrundbild auf dem PC oder Laptop bereits in dem entsprechenden Verzeichnis liegt. Das sollte es aber nicht. Es soll in dem TMP Verzeichnis {tmp} liegen was Inno Setup bei der Installation anlegt. Jetzt meine Frage. Wie muss ich den Code in Zeile 18 anpassen?

Für Eure Hilfe wäre ich echt sehr dankbar. Ich suche schon seit Monaten im Netz nach einer Lösung und finde nur ähnliche Codes mit fester Verzeichnisangabe.

Moderiert von user profile iconNarses: Beitragsformatierung überarbeitet: Hightlight-Tag eingefügt.
Moderiert von user profile iconNarses: Topic aus Alle Sprachen - Alle Plattformen verschoben am So 03.07.2022 um 01:56
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 03.07.22 01:54 
Moin und :welcome: in der EE!

Du suchst schon Monate nach einer Lösung und hast das hier übersehen? :zwinker: 1min googlen... ;)

cu Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: Rhodium70
Rhodium70 Threadstarter
Hält's aus hier
Beiträge: 3

Windows 11 Pro
deutsch
BeitragVerfasst: So 03.07.22 02:10 
Moin Narses,

nein hab ich nicht übersehen. Dort habe ich das selbe Problem geschildert. Nur kann ich kein Englisch und die Leute haben mich nicht wirklich verstanden. Ich hab über 4.000 Einträge da angesehen, mit Google übersetzen lassen, was Inno Setup angeht. Und der Code soll für eine De-Installation sein. Und das andere Problem ist, das die Grafik dann nicht komplett von der Kopf bis zur Fußzeile und von links nach rechts angezeigt wird. Aber danke für die erste Info. :)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 03.07.22 02:17 
Moin!

OK, du kannst kein Englisch, da wäre ich so ohne weiteres nicht drauf gekommen. Dann dürfte Programmieren in Pascal aber eine ziemliche Herausforderung für dich sein... :shock:

Dann wollen wir dir mal auf die Sprünge helfen. Die erste Antwort/Lösung im referenzierten SO-Thread lautet:
Zitat:
If you need to use some file during uninstallation, you have to install it in the installer and then use the installed copy in the uninstaller.

liefert in Goole Translate:
Zitat:
Wenn Sie während der Deinstallation eine Datei verwenden müssen, müssen Sie sie im Installationsprogramm installieren und dann die installierte Kopie im Deinstallationsprogramm verwenden.

und wird mit diesem Code-Beispiel demonstriert:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
[Files]
Source: "WizardSmallImageFile.bmp"; DestDir: "{app}";

[Code]

function InitializeUninstall(): Boolean;
begin
  ...
  BitmapImage := TBitmapImage.Create(...);
  ...
  BitmapImage.Bitmap.LoadFromFile(
    ExpandConstant('{app}\WizardSmallImageFile.bmp'));
  ...
end;

Ich hab´s nicht ausprobiert, aber ich würde das als die Lösung einstufen. :nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.

Für diesen Beitrag haben gedankt: Rhodium70
Rhodium70 Threadstarter
Hält's aus hier
Beiträge: 3

Windows 11 Pro
deutsch
BeitragVerfasst: So 03.07.22 03:15 
Moin noch mal ...

Ich hab dank deiner Hilfe die Lösung endlich gefunden. Wahnsinn. Jetzt läuft mein Setup endlic so wie es soll.

Mit transparrenten Splash, Musik im Hintergrund und dem Vollbild im Wizard. Auch auf meinem Laptop ohne Fehler.

Hier noch mal der geänderte Code, falls mal jemand Interesse hat.

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
 /// großes Bild als Wizard

[Files]
Source: "WizardHintergrund.bmp"; DestDir: "{tmp}"; Flags: ignoreversion dontcopy


var
  WelcomePageID: Integer;
  BitmapImage: TBitmapImage;

procedure InitializeWizard4;
var
  WelcomePage: TWizardPage;  
begin
  WelcomePage := CreateCustomPage(wpWelcome, '', '');
  WelcomePageID := WelcomePage.ID;
  BitmapImage := TBitmapImage.Create(WizardForm);
  ExtractTemporaryFile('WizardHintergrund.bmp');
  BitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardHintergrund.bmp'));
  BitmapImage.Top := 0;
  BitmapImage.Left := 0;
  BitmapImage.AutoSize := True;
  BitmapImage.Cursor := crHand;
  BitmapImage.Visible := False;
  BitmapImage.Parent := WizardForm.InnerPage;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  BitmapImage.Visible := CurPageID = WelcomePageID;
  WizardForm.Bevel1.Visible := CurPageID <> WelcomePageID;
  WizardForm.MainPanel.Visible := CurPageID <> WelcomePageID;
  WizardForm.InnerNotebook.Visible := CurPageID <> WelcomePageID;
end;


Die jetzige Zeile 18 hat gefehlt. Und Zeile 19 verweist jetzt auf den TMP Ordner. Danke noch mal, dein Hinweis hat mich in die richtige Richtung verwiesen.