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

C++Builder Discussion :

Définition d'une propriété de type 'TAnchors'


Sujet :

C++Builder

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut Définition d'une propriété de type 'TAnchors'
    Bonjour à tous,

    Mon problème est sans doute simple à résoudre, mais je coince dessus depuis deux heures, sans aucuns résultats.
    Et mes recherches sur le net n'ont pas été fructueuses.

    De la même manière que l'on peut créer des propriétés de type entier (simple exemple), comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private:
      int FTest;
    protected :
      void __fastcall SetTest(int T);
    public :
      __property int Test = {read=FTest,write=SetTest,default=0};
    j'aimerai définir une propriété de type TAnchors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private:
      TAnchors FTestAnc;
    protected :
      void __fastcall SetTestAnc(TAnchors TestAnc);
    public :
      __property TAnchors TestAnc = {read=FTestAnc,write=SetTestAnc,default=3};
    Or en procedant ainsi, lorsque j'affecte une valeure à ma propriété TestAnc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form1->TestAnc << akTop;
    je ne passe pas dans la méthode 'SetTestAnc'.
    Cela m'apparait a priori normal, 'write=SetTestAnc' étant trés probablement associé à l'opérateur '='.

    Mais alors comment faire pour rediriger l'utilisation de l'opérateur '<<' vers 'SetTestAnc'?
    Suis-je condamné à créer une classe, dans la quelle je créerai moi même les opérateurs '<<' et '>>'?

    Merci d'avance pour vos éclaircissements, et bonne soirée

    Benjamin

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut Grosbenji
    Jette un oeil sur ce lien, je pense que cela va t'interesser

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonjour,

    Merci Blondelle pour ton aide.

    Mais, concernant l'utilisation d'une propriété de 'type TAnchor', je n'ai pas de problème.

    C'est sur la définition d'une propriété de ce type que je coince.

    J'ai beau chercher dans la page désignée par ton lien, je n'y ai pas trouvé réponse à mon problème.

    Je vais expliquer le contexte de mon problème:

    J'ai défini des composants constitués de 'plusieurs composants'.
    Par exemple un TLabelEdit constitué par un Edit (le composant hérite de TEdit) et d'un TLabel (celui-ci étant définit comme membre de la classe).

    Grosso-modo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class TLabelEdit : TEdit {
      //..
      private :
        TLabel *lab;
      //..
    };
    J'ai surchargé les propriétés Top, Left, Width et Height du TLabelEdit pour bien positionner le TLabel par rapport au TEdit.

    De même, j'ai surchargé la propriété parent pour que celle-ci s'applique aussi bien sur le edit, que sur le label:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class TLabelEdit : public TEdit{
      //..
      private :
        TLabel *lab;
      protected:
      void setParent(TWinControl *par){
        TEdit::Parent = par;
        lab->Parent = par;
      }
      //..
      public:
        __property Parent = {write=setParent}; 
    };
    Maintenant, j'aimerai faire la même chose avec les propriétés Anchors. Autrement dit, lorsque je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TLabelEdit *LabEd = new TLabelEdit(Form1);
    LabEd->Anchors << akTop << akLeft;
    je souhaiterai faire en sorte que celle-ci s'applique aussi sur mon label, et pas uniquement sur le Edit.

    En espérant avoir été un peu plus clair.

    Merci,

    Cordialement

    Benjamin

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Par défaut
    Bonjour,

    J'ai laissé tomber l'idée d'utiliser les "__property".

    Je passe finalement par une méthode qui applique directement les Anchors sur mes deux composants.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class TLabelEdit : public TEdit{
      //...
      public:
        void SetAnchors(TAnchors Anchors);
      //...
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void LabelEdit::SetAnchors(TAnchors Anchors){
      TSFKEdit::Anchors = Anchors;
      label->Anchors = Anchors;
    }
    Qui s'utilise de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LabEd->SetAnchors(TAnchors()<<akRight<<akBottom);
    Bonne journée

    Cordialement,

    Benjamin

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

Discussions similaires

  1. [XSD] définition d'une propriété abstraite
    Par jyerfr dans le forum Valider
    Réponses: 1
    Dernier message: 22/02/2008, 13h39
  2. [nested] récupérer une propriété de type collection
    Par kokumbo dans le forum Struts 1
    Réponses: 2
    Dernier message: 25/10/2007, 16h16
  3. Réponses: 5
    Dernier message: 26/09/2007, 03h34
  4. Réponses: 1
    Dernier message: 21/12/2005, 19h08
  5. Réponses: 2
    Dernier message: 18/10/2003, 14h42

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