Inno Setup passt FinishedLabel mit Pascal Script an
Mein Ziel mit Inno Setup 6.x ist es, den FinishedLabelText im Code anzupassen , dh Pascal Script. Der Grund, warum ich Pascal Script verwende, ist, dass ich das Label nur anpassen / ändern möchte, wenn IsAdminMode()es wahr ist. Wie kann ich das machen?
Die folgenden zwei Ansätze funktionieren nicht:
Verwenden Sie eine Skriptkonstante:
[Messages] FinishedLabel={code:GetFinishedLabel}[Code] function GetFinishedLabel(Param: String): String; begin Result := 'BLA'; end;Dies zeigt "{code: GetFinishedLabel}" anstelle von "BLA".
Passen Sie den Assistenten in an
InitializeWizard.Vollständiges (fehlgeschlagenes) Beispiel:
[Code] procedure InitializeWizard(); begin WizardForm.FinishedLabel.Caption := 'BLA'; end;Das
FinishLabelzeigt noch den Originaltext vonDefault.isl
Irgendwelche Ideen?
Antworten
Das FinishedLabelwird am Ende der Installation nach verschiedenen Faktoren aktualisiert. Ihr eingestellter Wert InitializeWizardwird also überschrieben. Sie müssen Ihre benutzerdefinierte Nachricht später festlegen, z. B CurPageChanged(wpFinished).:
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
WizardForm.FinishedLabel.Caption := 'BLA';
end;
end;
Sie können den Code verbessern, um das zu tun, was Inno Setup tun würde:
- Berücksichtigt, wenn ein Neustart erforderlich ist (
FinishedRestartLabel); - Berücksichtigt, ob Symbole erstellt wurden (
FinishedLabelvs.FinishedLabelNoIcons); - Anpassen der Etikettenhöhe an die Nachricht;
- Schaltposition
RunListentsprechend der Nachrichtenhöhe.