Inno Setup personnalise FinishedLabel avec Pascal Script
Mon objectif avec Inno Setup 6.x est de personnaliser le FinishedLabeltexte dans le code, c'est-à-dire Pascal Script. La raison pour laquelle j'utilise Pascal Script est que je ne souhaite personnaliser / modifier l'étiquette que si elle IsAdminMode()est vraie. Comment puis je faire ça?
Les deux approches suivantes ne fonctionnent pas:
Utilisez une constante scriptée:
[Messages] FinishedLabel={code:GetFinishedLabel}[Code] function GetFinishedLabel(Param: String): String; begin Result := 'BLA'; end;Cela montre "{code: GetFinishedLabel}" plutôt que "BLA".
Personnalisez l'assistant dans
InitializeWizard.Exemple complet (échec):
[Code] procedure InitializeWizard(); begin WizardForm.FinishedLabel.Caption := 'BLA'; end;Le
FinishLabelmontre toujours le texte original deDefault.isl
Des idées?
Réponses
Le FinishedLabelest mis à jour à la fin de l'installation en fonction de divers facteurs. Ainsi, votre valeur définie dans InitializeWizardest remplacée. Vous devez définir votre message personnalisé ultérieurement, comme dans CurPageChanged(wpFinished):
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
WizardForm.FinishedLabel.Caption := 'BLA';
end;
end;
Vous pourriez envisager d'améliorer le code pour faire ce que ferait Inno Setup, comme:
- Prise en compte, si un redémarrage est nécessaire (
FinishedRestartLabel); - Prise en compte, si des icônes ont été créées (
FinishedLabelvs.FinishedLabelNoIcons); - Ajuster la hauteur de l'étiquette en fonction du message;
- Changement de
RunListposition en fonction de la hauteur du message.