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 :

Association d'une variable à une propriété d'un composant


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Association d'une variable à une propriété d'un composant
    Hello !

    J'ai créer un composant et j'ai une propriété boolean que j'aimerais modifier automatiquement en fonction d'une variable boolean aussi ! Comment puis-je faire ?


    Nouni

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonjour,

    Peux tu préciser ta question ?
    Est-ce que tu veux dire que dans ton programme, tu utilises un composant avec une propriété boolean ainsi qu'une variable de type boolean, et que tu désires mettre à jour la propriété et la variable (à chaque fois que l'un des deux est modifié) ou juste dans un sens (modification variable -> mise à jour propriété) ?

    Cordialement

    Eric

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Hello !

    Voilà j'ai créer un composant de type TGraphicControl avec une propriété de type boolean nommer "Open", ensuite j'ai créer un programme avec une variable boolean nommer "State", maintenant j'aimerais que lorsque la variable State est modifié à n'importe quel endroit cela modifie aussi la propriété Open de mon composant !

    Merci

    Nouni

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Bonjour,

    pourquoi ne pas passer directement par ta propriété sans introduire cette variable intermédiaire (j'ai l'impression que tu ne fais que dupliquer l'information) ?

    Sinon, si tu ne veux pas accèder directement à cette propriété à chaque fois, tu pourrais par exemple écrire des getter/setter (au niveau de ton programme) GetState et SetState qui iraient interagir avec ton composant pour lire ou écrire la propriété. Dans ce cas, au lieu de modifier une variable, tu appelles SetState, et pour connaître l'état tu appelles GetState.

    En espérant que ma réponse te fasse avancer

    Eric

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse mais cela ne suffit malheureusement pas car en réalité nous sommes 2 a travailler sur ce projet et chacun à son unité.
    Pour communiquer nous passons par des variables globals, déclarée dans une classe mère à nos 2 unités, dont la variable State. Mon collegue ne connait mahleureusement pas mes composants.
    Le problème avec le GetState c'est que je dois sans arrêt aller contrôler l'état de la variable State et c'est justement ce que j'aimerais éviter. Le SetState ne connait pas mon composant car cette procédure est déclarée dans la classe mère et par conséquent elle ne peut pas aller modifier mon composant.
    Il faudrait que mon composant connaisse la variable ainsi je pourrais directement faire le traitement dans mon composant mais dynamiquement car il y aura une variable différente pour chaque nouveau composant !

    J'espère être assez clair car c'est assez difficile d'expliquer mon problème !

    Merci quand même


    Nouni

  6. #6
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    Pourquoi ne pas passer par une classe pour passer vos valeurs, et, dans le Set de cette variable, positionner également les propriétés des classes sur lesquelles vous travaillez chacun dans votre coin ?

    Cordialement,

    Arnaud

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Salut

    Qu'est-ce que tu entends par positionner également les propriétés des classes sur lesquelles on travaille ?

  8. #8
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    Avant d'aller plus loin, j'aimerais comprendre ce que tu entends par classe mère. S'agit-il d'un héritage ? Ou est-ce juste une façon de parler ?

    Cordialement,

    Arnaud

  9. #9
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Il s'agit d'un héritage

  10. #10
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Bonjour,

    Et les variables sont passées à une instance de la classe mère, c'est cela ?

    Dans ce cas, il y a un problème, car tu vas dupliquer l'information entre les propriétés de la classe mère et de la classe fille.... Je pense qu'il y a un problème de conception...

    Sinon je verrais une solution, a priori.

    Ce serait de rajouter une propriété à la classe mère correspondant à une liste de pointeurs. Ensuite une méthode Register par exemple, qui ajouterait un composant à cette liste de pointeurs. Enfin, quand la classe mère verrai sa propriété State modifiée par un SetState, notifier à l'ensemble des instances pointées dans la liste de pointeurs le changement d'état.

    Je n'ai pas testé, mais je pense que ça doit pouvoir marcher. Ceci dit, je pense vraiment qu'il serait plus profitable de se pencher sur la conception, car il me semble qu'il y a un gros problème.

    Cordialement,

    Arnaud

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Hello

    Je crois que je vais revoir la conception avec mon collegue car je pense aussi qu'il y a un problème. On devrait pouvoir trouvé une solution beaucoup plus simple.

    Merci pour ton aide

    A+

    Véronique

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/07/2014, 16h06
  2. [XL-2007] associer une variable à une autre
    Par Traputaca dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/05/2013, 09h33
  3. Utiliser une variable en propriété
    Par dragonfly dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 28/01/2010, 15h56
  4. affecter le résultat d'une requête à une variable
    Par zut94 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/10/2005, 17h21
  5. Affecter résultat SQL d'une requête à une variable
    Par bozolozo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/01/2005, 17h37

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