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 :

Ajouter une propriété à un composant


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Points : 157
    Points
    157
    Par défaut Ajouter une propriété à un composant


    Est ce que je peut ajouter une propriete comme la propriete Tag dans un composant ?

    par example je veux ajouter une propriete sag :integer avec le composant TLabel....


    est ce que c'est possible ?

    d'avance

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 663
    Points
    5 663
    Par défaut
    Gio,

    Il faut faire une classe dérivée.

  3. #3
    Membre régulier Avatar de user 56gt8
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 92
    Points
    92
    Par défaut
    Tu peux aussi faire un 'array du type voulu' créée en parallèle du composant, lequel serait repérable via le tag du composant:avec le nombre de composants tu fait un setlenth sur l' 'array du type voulu' et quand tu crée un composant tu fait une incrémentation d'un integer, assigné au tag, question de pouvoir s'y retrouver dans l'histoire.
    Bon c'est pas très pro mais ca marcherait.

  4. #4
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    par exemple:
    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
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,stdctrls;
    type
    TSaglabel=class(Tlabel)
    private s:integer;
    public
    property sag:integer read s write s;
    constructor create(owner:Tcomponent);override;
    end;
     
    type
      TForm1 = class(TForm)
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
        monlabel:Tsaglabel;
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    constructor TSaglabel.create(owner:Tcomponent);
    begin
    inherited;
    parent:=form1;
    // faire quelque chose avec s....
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    monlabel:=Tsaglabel.create(form1);
    monlabel.sag:=4;  // tu affectes 4 à sag par exemple
    monlabel.Caption:='monlabel';
    end;
     
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    monlabel.Free;
    end;
     
    end.
    rq:au lieu de mettre parent:=form1 dans le constructeur, tu le mets dans le formcreate...
    monlabel.parent:=form1;
    comme ça, avec tu peux utiliser ton nouvel objet plus librement.

  5. #5
    Membre habitué Avatar de aliwassem
    Inscrit en
    Janvier 2004
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 293
    Points : 157
    Points
    157
    Par défaut
    Citation Envoyé par Archimède Voir le message
    par exemple:
    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
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,stdctrls;
    type
    TSaglabel=class(Tlabel)
    private s:integer;
    public
    property sag:integer read s write s;
    constructor create(owner:Tcomponent);override;
    end;
     
    type
      TForm1 = class(TForm)
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
        monlabel:Tsaglabel;
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    constructor TSaglabel.create(owner:Tcomponent);
    begin
    inherited;
    parent:=form1;
    // faire quelque chose avec s....
    end;
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    monlabel:=Tsaglabel.create(form1);
    monlabel.sag:=4;  // tu affectes 4 à sag par exemple
    monlabel.Caption:='monlabel';
    end;
     
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    monlabel.Free;
    end;
     
    end.
    rq:au lieu de mettre parent:=form1 dans le constructeur, tu le mets dans le formcreate...
    monlabel.parent:=form1;
    comme ça, avec tu peux utiliser ton nouvel objet plus librement.



    ca marche mais est ce que je peut fair ca dans l'unite pour tout les composants..?

    encore

  6. #6
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Je ne vois pas pourquoi tu ne pourrais pas...
    un chien peut devenir un chat en delphi ( c'est un monde où tout est possible ou presque )
    Pour une paintbox ou un panel par exemple, tu dois mettre extctrls dans uses.

    voilà

Discussions similaires

  1. Ajouter une propriete au composant
    Par cortex59 dans le forum Visio
    Réponses: 3
    Dernier message: 27/08/2008, 11h36
  2. Ajouter une colonne au composant treeview ?
    Par le_chomeur dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/07/2008, 15h22
  3. ajouter une propriété name
    Par butch dans le forum Delphi
    Réponses: 6
    Dernier message: 16/05/2006, 17h18
  4. [active X] ajouter une propriété
    Par Blo0d4x3 dans le forum MFC
    Réponses: 4
    Dernier message: 22/09/2004, 09h47

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