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

Composants VCL Delphi Discussion :

Afficher un bouton appartenant à une classe sur une form


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 15
    Points : 16
    Points
    16
    Par défaut Afficher un bouton appartenant à une classe sur une form
    Bonjour,

    Je voudrais programmer objet avec Delphi mais j'ai déjà un petit problème.
    J'ai créé une classe qui comprend entre autres des TButton.
    Je voudrais afficher ces TButton sur une form.
    Comment faire car mon code ne marche pas... je ne vois pas l'erreur :

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type  
     
     TInflas = class                       
        tab_boutons: array[1..10] of TButton;
        tab_etats: array[1..10] of String; 
        constructor Creation(endroit: TForm);
      end;
     
     
     TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
     
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
     
    var
      Form1: TForm1;
      Inflas: TInflas;
     
    implementation
     
    {$R *.dfm}
     
     
    constructor Tinflas.Creation(endroit: TForm);
    begin
    self.tab_boutons[1]:=TButton.Create(endroit);
    self.tab_boutons[1].Visible:=true;
    self.tab_boutons[1].Height:=120;
    self.tab_boutons[1].Width:=200;
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Inflas:=TInflas.Creation(form1);
     
    end;
     
    end.

    Je suppose que c'est un problème bateau donc je m'excuse par avance de vous avoir fait perdre un peu de votre temps.
    En tous cas, merci.
    Cordialement.

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Effectivement c'est bateau :
    Il faut que tu ajoutes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    self.tab_boutons[1].Parent:=endroit;
    ...
    Note: le self n'est pas nécessaire... En revanche, lors de la création de TInflas, tu peux mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Inflas:=TInflas.Creation(self);
    Bon dev'

  3. #3
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Par principe, on précise la visibilité des attributs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     TInflas = class                       
      public  // <-- ICI
        tab_boutons: array[1..10] of TButton;
        tab_etats: array[1..10] of String;
        constructor Creation(endroit: TForm);
      end;
    Ensuite, il ne faut pas oublier de préciser le Parent des tes boutons, donc dans le create :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    constructor Tinflas.Creation(endroit: TForm);
    begin
      tab_boutons[1] :=TButton.Create(endroit);
      with tab_boutons[1] do
        begin
          Height:=120;
          Width:=200;
          Parent := endroit; // <-- ICI
          Visible:=true;
        end;
    end;

Discussions similaires

  1. Remplacer une requête sur une class par une valeur constante ?
    Par Lillie CHARLOTTE dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2015, 09h59
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Réponses: 5
    Dernier message: 15/09/2011, 22h53
  4. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 09h43
  5. Pointeur sur une methode d'une classe
    Par Pe04 dans le forum C++
    Réponses: 2
    Dernier message: 02/03/2006, 13h29

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