IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

[Inno Setup] Changer la hauteur d'un label


Sujet :

Outils Delphi

  1. #1
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut [Inno Setup] Changer la hauteur d'un label
    Hello

    Je galère sur un code Inno Setup qui, selon la doc, doit être programmé en Pascal.
    Je voudrais pouvoir changer la hauteur d'un label pour y introduire un texte de plusieurs lignes.
    J'ai pu déterminer que la fiche de Inno Setup est la 12 ème.
    Mon code est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure CurPageChanged(CurPageID: Integer);
    var
      FormPage : TWizardPage;
      MyLabel : TLabel;
      i : Integer;
    begin
      if CurPageID = 12 then
      begin
        FormPage := PageFromId(12);
        For i := 0 to FormPage.ComponentCount - 1 do
        if FormPage.Components[i] is TLabel then MyLabel := FormPage.Components[i];
    Ce code génère une erreur "Type Mismatch" sur l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyLabel := FormPage.Components[i];
    Où réside l'erreur ?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Comme je n'y connais rien à Inno Setup, je répondrai avec prudence. Je pense qu'il faut faire pointer MyLabel sur FormPage.Components[i], donc une instruction du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if FormPage.Components[i] is TLabel then MyLabel := @FormPage.Components[i];
    Mais pourquoi passer par une variable temporaire MyLabel ? Tu ne peux pas accéder aux propriétés de FormPage.Components[i] directement ?
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Je voudrais bien mais quand je code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormPage.Components[i].Height;
    cela génère le message d'erreur «Unknown identifier 'HEIGHT'»

    Quant au code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if FormPage.Components[i] is TLabel then MyLabel := @FormPage.Components[i];
    il me renvoie «Unknown identifier 'FormPage'»

  4. #4
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    je suppose que c'est pas toi qui l'a créé?

    c'est sur quel page?
    Car dans l'aide -> pascal scripting - support classes reference - twizardform
    tu as pas mal d'element et tu aura le type de ton element exemple WelcomeLabel2 est de type TNewStaticText et sur cette même page tu verra:

    TNewStaticText = class(TWinControl)
    function AdjustHeight: Integer;
    property AutoSize: Boolean; read write;
    property Caption: String; read write;
    property Color: TColor; read write;
    property FocusControl: TWinControl; read write;
    property Font: TFont; read write;
    property ForceLTRReading: Boolean; read write;
    property ShowAccelChar: Boolean; read write;
    property WordWrap: Boolean; read write;
    property OnClick: TNotifyEvent; read write;
    property OnDblClick: TNotifyEvent; read write;
    end;
    donc la tu devrai y arriver avec exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WizardForm.WelcomeLabel2.Font.Size := 16;
    et peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WizardForm.WelcomeLabel2.AutoSize := True;
    la faut essayer, déjà identifie ce que tu veux modifier

    sinon pour le TLabel même page tu verra:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    TLabel = class(TCustomLabel)
      property Alignment: TAlignment; read  write;
      property AutoSize: Boolean; read write;
      property Caption:  String; read write;
      property Color: TColor; read write;
      property  FocusControl: TWinControl; read write;
      property Font: TFont; read  write;
      property WordWrap: Boolean; read write;
      property OnClick:  TNotifyEvent; read write;
      property OnDblClick: TNotifyEvent; read  write;
    end;
    d'ou ton message d'erreur
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  5. #5
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure CurPageChanged(CurPageID: Integer);
    begin
       if CurPageID = 6 then
       begin
         WizardForm.WelcomeLabel2.AutoSize := True;
         WizardForm.WelcomeLabel2.Caption := 'Ceci est mon message' ;
         WizardForm.WelcomeLabel2.Refresh;
       end;
    end;
    se compile sans erreur mais à l'exécution, le contenu du Label n'est pas modifié.
    Peut être est-ce dû au warning ci-après trouvé sur http://thierryaim.developpez.com/tut...osetup/iscode/
    V-1. Les pages pré formatées de InnoSetup
    InnoSetup permet de générer des pages pré formatées, c'est à dire prévues pour une acquisition d'informations bien précises :

    Liste non exhaustive des type de pages préformatées de InnoSetup :

    * TInputDirWizardPage : Page contenant des textboxs et des boutons "Parcourir" pour sélectionner des répertoires
    * TInputFileWizardPage : Page contenant des textboxs et des boutons "Parcourir" pour sélectionner des fichiers
    * TInputOptionWizardPage : Page contenant des "Checkboxs" ou de "Radio buttons"
    * TInputQueryWizardPage : Page contenant des textboxs pour saisie d'informations textes
    * TWizardPage : Page entièrement personnalisée

    warning Vous ne pouvez pas modifier la forme de ces pages, uniquement ajouter des champs de saisie, correspondant au type d'information attendue sur chaque page.

  6. #6
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 419
    Points
    1 419
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure CurPageChanged(CurPageID: Integer);
    begin
       if CurPageID = wpWelcome then
       begin
         WizardForm.WelcomeLabel2.AutoSize := True;
         WizardForm.WelcomeLabel2.Caption := 'Ceci est mon message' ;
         WizardForm.WelcomeLabel2.Refresh;
       end;
    end;
    utilise les constantes des pages c'est mieux, le code ci-dessus fonctionne chez moi
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  7. #7
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Finalement, j'ai créé un nouveau label sur la page voulue
    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
    procedure CurPageChanged(CurPageID: Integer);
    begin
       if CurPageID = 12 then
       begin
         Page := PageFromId(12);
         MyLabel := TNewStaticText.Create(Page);
         MyLabel.Parent := Page.Surface;
         MyLabel.Caption := 'Ceci est mon message';
         MyLabel.WordWrap := True
         MyLabel.Top := 80;
         MyLabel.Height := 128;
         MyLabel.Width := Page.Surface.Width;
         MyLabel.Font.Color := clRed;
         MyLabel.Font.Style := [fsBold];
         MyLabel.Font.Size := 10;
       end;
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Inno Setup : Changer l'ordre de séquencement
    Par Mimie37 dans le forum Outils
    Réponses: 5
    Dernier message: 26/10/2012, 14h26
  2. [Inno Setup] Changer icône désinstallation
    Par Droïde Système7 dans le forum Outils
    Réponses: 7
    Dernier message: 30/05/2012, 00h31
  3. Réponses: 1
    Dernier message: 14/12/2009, 17h20
  4. [Inno Setup] Ajout d'un label sur une page
    Par defluc dans le forum Outils
    Réponses: 3
    Dernier message: 19/01/2009, 13h58
  5. Bde Inno Setup et Test
    Par Fxg dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2004, 14h35

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