2017-07-08 1 views
1

Il existe une question connexe pour ceux qui sont intéressés here. J'ai été encouragé à poser une des questions séparément.Utilisation d'un message Inno Setup standard dans la description de l'entrée Exécuter

J'ai donc ce code [Run]:

Filename: "{cmd}"; Parameters: "/C exit"; Description: "Exit Setup"; \ 
    Flags: nowait postinstall runasoriginaluser unchecked skipifsilent; Check: IsWin64 

Il fonctionne bien. Elle montre la fenêtre suivante à la fin de l'installation:

InnoSetup install complete

Mais le problème est que le libellé Exit Setup est codé en dur en anglais. Maintenant, je l'ai examiné le dossier de default.isl et situé:

ExitSetupTitle=Exit Setup 
ClickFinish=Click Finish to exit Setup. 

Je ne sais pas si je devrais utiliser l'un de ces messages. Il est logique pour moi d'utiliser le ClickFinish parce que c'est ce que l'utilisateur va faire.

Mais je ne peux pas savoir comment utiliser ce message dans l'instruction d'exécution.

Mise à jour

J'ai modifié la réponse fournie à:

function GetClickFinishSetupMessage(Param: string): string; 
var 
    I: integer; 
    S1: string; 
    S2: string; 
begin 

    S1 := SetupMessage(msgClickFinish); 
    I := Length(S1); 
    S2 := Copy(S1, I-1, 1); 
    if(S2 = '.') then 
     S1 := Delete(S1, I-1, 1); 
    end; 

    result := S1; 
end; 

donc je pourrais enlever la dernière période. Mais il ne sera pas compilé. Il dit qu'il y a une discordance pour le troisième paramètre de Delete.

Répondre

2

Utilisez SetupMessage support function d'un scripted constant:

[Run] 
Filename: ...; Description: {code:GetClickFinishSetupMessage} 
[Code] 

function GetClickFinishSetupMessage(Param: string): string; 
begin 
    Result := SetupMessage(msgClickFinish); 

    { Drop trailing dot, if any } 
    if Copy(Result, Length(Result), 1) = '.' then 
    SetLength(Result, Length(Result) - 1); 
end; 
+0

Ah, je l'avais remarqué 'SetupMessage' mais ne pouvait pas trouver comment utiliser cette de la section de script. Je vous remercie. Le seul hic * cosmétique que j'ai maintenant est que cette constante a une période à la fin (du moins en anglais). Donc, les deux premiers n'ont pas de période. Dans le contexte d'une option * radio *, je ne m'attendrais pas à une période. Pouvons-nous supprimer ce dernier caractère s'il s'agit d'un "."? –

+0

Veuillez voir la question mise à jour. –

+0

Voir ma réponse mise à jour. –