1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2011
    Messages : 32
    Points : 29
    Points
    29

    Par défaut Composant et Pages perso

    Bonjour,

    Je prépare un setup pour l'installation et/ou la maj de mon logiciel

    J'ai créé des composants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    [Types]
    Name: Reseau; Description: Reseau
    Name: Client; Description: Client
    Name: Client_Install; Description: Installation
    Name: Client_MAJ; Description: MAJ
     
     
    [Components]
     
    //Si il n'y a eu aucune installation du logiciel déjà faite sur le poste c'est cette liste de composants qui apparait
    Name: Reseau_New; Description: Reseau; Flags: exclusive; Languages: ; Types: Reseau
    Name: Reseau_New\Client_New; Description: Client; Flags: exclusive; Languages: ; Types: Client
     
    //Si il y a déjà eu une installation de faite sur le poste (Check clé de registre) c'est cette liste de composants qui apparait 
    //on laisse la possibilité à l'utilisateur de mettre à jour le logiciel ou d'installer une nouvelle version
    Name: Reseau; Description: Reseau; Flags: exclusive; Languages: ; Types: Reseau
    Name: Reseau\Client; Description: Client; Flags: exclusive; Languages: ; Types: Client
    Name: Reseau\Client\Install; Description: Installation Client; Flags: exclusive; Languages: ; Types: Client_Install
    Name: Reseau\Client\MAJ; Description: MAJ Client; Flags: exclusive; Languages: ; Types: Client_MAJ
    Le système des composants fonctionne bien
    Selon le composant sélectionné je veux faire apparaitre des pages perso

    Si c'est le composant Reseau\Client\MAJ qui est sélectionné voici la page qui doit apparaitre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    var
      PageClientMAJ: TInputDirWizardPage;
      CheckValue4 : string;
    procedure CreateTheWizardPages3;
    begin
      PageClientMAJ := CreateInputDirPage(wpSelectComponents,
    		'Répertoires d''installation',
    		'Définissez le répertoire d''installation du programme :',
    			'Cliquer sur "Suivant" pour continuer. Pour définir un répertoire différent, cliquez sur "Parcourir".',
    		False, 'New Folder');
    	PageClientMAJ.Add('Répertoire d''installation');
    	CheckValue4 := ExpandConstant('{reg:HKLM\SOFTWARE\MonProg\Client,LastInstallationPath}') ;
      PageClientMAJ.Values[0] := CheckValue4;
    end;
     
    function GetPageClientMAJ(Param: String): string;
    begin
    result := PageClientMAJ.Values[0];
    end;
    Si c'est un des 2 autres composants Reseau\Client\Install ou Reseau_New\Client_New c'est cette page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    35
    36
    37
    38
    39
    40
    var
      UserPageNew: TInputDirWizardPage; 
      CheckValue8 : string;
    procedure CreateTheWizardPages6;
    begin
    UserPageNew := CreateInputDirPage(wpSelectComponents,
        'Répertoires d''installation',
    		'Définissez le répertoire d''installation du programme :',
    			'Cliquer sur "Suivant" pour continuer. Pour définir un répertoire différent, cliquez sur "Parcourir".',
    		False, 'New Folder')
      UserPageNew.Add('Répertoire d''installation');
      CheckValue8 :=  ExpandConstant('C:\MonProg');
      UserPageNew.Values[0] := CheckValue8;
    end;
     
     
    var
      PageClientNew: TInputQueryWizardPage;
    procedure CreateTheWizardPages7;
    begin
    PageClientNew := CreateInputQueryPage(UserPageNew.id,'Installation client', 'Information serveur',
        'Merci de renseigner les informations réseau. Puis appuyer sur suivant.');
      PageClientNew.Add('IP du serveur:', False);
      PageClientNew.Add('Port du serveur de BDD:', False);
    end;
     
    function GetPageClientNew(Param: String): string;
    begin
    result := UserPageNew.Values[0];
    end;
     
    function GetIPClientNew(Param: String): string;
    begin
    result := PageClientNew.Values[0];
    end;
     
    function GetPortSERVERClientNew(Param: String): string;
    begin
    result := PageClientNew.Values[1];
    end;
    Et voici mon code pour la gestion des pages
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure InitializeWizard();
    begin
        CreateTheWizardPages3;
        CreateTheWizardPages6;
        CreateTheWizardPages7;
    end;
     
    function ShouldSkipPage(PageID: Integer): Boolean;
    begin
     Result := ((PageFromID(PageID) = PageClientMAJ) and not IsComponentSelected('Reseau\Client\MAJ')) or
               ((PageFromID(PageID) = UserPageNew) and not IsComponentSelected('Reseau\Client\Install')) or
               ((PageFromID(PageID) = UserPageNew) and not IsComponentSelected('Reseau_New\Client_New')) ;
    end;
    Mais cela ne fonctionne pas quand je sélectionne 'Reseau\Client\Install' ou 'Reseau_New\Client_New' j'ai que la page PageClientNew qui s'affiche et la page UserPageNew qui doit apparaitre avant ne s'affiche pas

    Et quand je sélectionne 'Reseau\Client\MAJ' la page PageClientMAJ s'affiche mais avant j'ai aussi la page PageClientNew qui s'affiche alors qu'elle ne devrait pas

    Auriez-vous une idée je tourne en rond

    Merci pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    4 343
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : septembre 2008
    Messages : 4 343
    Points : 8 773
    Points
    8 773

    Par défaut

    PageClientNew n'est pas conditionnée, normal qu'elle apparaisse systématiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function ShouldSkipPage(PageID: Integer): Boolean;
    begin
     Result := ((PageFromID(PageID) = PageClientMAJ) and not IsComponentSelected('Reseau\Client\MAJ')) or
               ((PageFromID(PageID) = UserPageNew) and not IsComponentSelected('Reseau\Client\Install')) or
               ((PageFromID(PageID) = UserPageNewPageClientNew) and not IsComponentSelected('Reseau_New\Client_New')) ;
    end;
    Ensuite, pas sûr qu'on puisse placer plusieurs pages à la suite de la même page (ici wpSelectComponents).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UserPageNew := CreateInputDirPage(PageClientMAJ.id, ...);

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2011
    Messages : 32
    Points : 29
    Points
    29

    Par défaut

    Merci pour cette réponse.
    J'ai peut être trouvé une solution pour détourner mon problème

    Est-il possible de créer une pages perso avec une zone de sélection de dossier et des zones de texte ?

    Je sais faire des pages qui combine les 2 types de zones

Discussions similaires

  1. Inno Setup : Page perso après sélection composant
    Par Mimie37 dans le forum Outils
    Réponses: 2
    Dernier message: 10/02/2015, 16h55
  2. un serveur JSP gratuit pour page perso ?
    Par VerrNum dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 26/04/2006, 10h14
  3. [TomCat] afficher la trace TomCat dans une page perso
    Par danyboy85 dans le forum Tomcat
    Réponses: 9
    Dernier message: 02/03/2006, 11h30
  4. Migration base access sur page perso
    Par fanfan91 dans le forum Access
    Réponses: 1
    Dernier message: 13/09/2005, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo