2010-02-01 2 views
1

Il s'agit probablement d'une solution simple, mais je n'arrive pas à la contourner. J'ai une application à installer qui aura besoin de l'utilisateur pour sélectionner 1 des 3 fichiers INI possibles pour accompagner l'installation. Je pourrais facilement faire 3 configurations différentes, chacune utilisant une INI différente mais je voudrais simplifier les choses et donner à l'utilisateur le choix d'INI au moment de l'installation. Les fichiers INI ont le même nom, donc lorsqu'ils seront empaquetés, ils devront avoir des noms différents. Une fois que l'utilisateur sélectionne l'INI à installer, il est extrait dans le répertoire de l'application et renommé. Est-ce qu'il y a un moyen de faire ça?Configuration INNO: Définition des fichiers de configuration dans le programme d'installation

Merci pour votre aide!

Répondre

0

Une façon possible est de créer une section [Exécuter] (ou de l'ajouter) et d'exécuter (AfterInstall: paramètre) une routine Pascal qui supprime les fichiers ini supplémentaires et renomme le fichier restant.

+0

Merci! Je vais vérifier cela et voir ce que je peux faire. –

1

Vous pouvez ajouter des entrées pour les trois fichiers INI à la section [Fichiers], leur donner le même nom de destination, et utilisez le paramètre Check pour décider à l'exécution d'un seul qui est installé. Un extrait d'un de mes scripts d'installation:

[Files] 
Source: "{src}\Line1.ini"; DestDir: "{app}"; DestName: "Line.ini"; \ 
    Flags: external; Check: IsLine1 
Source: "{src}\Line2.ini"; DestDir: "{app}"; DestName: "Line.ini"; \ 
    Flags: external; Check: IsLine2 
Source: "{src}\Line3.ini"; DestDir: "{app}"; DestName: "Line.ini"; \ 
    Flags: external; Check: IsLine3 

et les fonctions de soutien dans le [Code] L'article:

function IsLine(ID: integer): boolean; 
begin 
    Result := (ID = 1 + LinePage.SelectedValueIndex); 
end; 

function IsLine1(): boolean; 
begin 
    Result := IsLine(1); 
end; 

function IsLine2(): boolean; 
begin 
    Result := IsLine(2); 
end; 

function IsLine3(): boolean; 
begin 
    Result := IsLine(3); 
end; 

LinePage est une page personnalisée de type TInputOptionWizardPage. L'utilisateur sélectionne avec un groupe radio pour quelle ligne de production le programme doit être installé, et seul le fichier INI correspondant est copié. Notez qu'ils sont external dans mon cas, mais ils pourraient tout aussi bien être compilés dans la configuration.

Questions connexes