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ébutant] factorisation de code (pour plusieurs composants) [FAQ]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 16
    Points : 13
    Points
    13
    Par défaut [débutant] factorisation de code (pour plusieurs composants)
    Bonjour,

    je cherche à éviter de faire des nombreux copiers-collers dans le code. Mon problème est le suivant :
    dans une fiche, j'ai 25 TEdit et 25 boutons correspondants.
    Quand je clique sur le bouton, je voudrais vider le TEdit associé. Bien sûr, je ne veux pas écrire 25 fonctions onclick identique !

    Voila
    A+

  2. #2
    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,

    Je pense que la manière la plus élégante de faire ceci serat de créer un composant composé d'un TEdit et d'un TButton, et de coder le OnClick du TButton poru qu'il efface le TEdit du composant.
    Ensuite, tu n'as plus qu'à placer 25 de ces composants sur ta fiche.

    Cordialement,

    Arnaud

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Salut,

    en fait ça reportera le problème un peu plus loin : j'aurai besoin d'accéder à l'un de ces 25 composants, pour remplir les TEdit à partir d'une liste de chaine d'une requête, etc.
    Ce que je pense faire, mais ça ne me semble pas très propre, c'est un tableau de pointeurs sur mes composants. Comme ça, je pourrai accéder facilement aux composants de même index: dans le constructeur de ma form je remplis TObject* monTableau = {Edit1, Edit2, Edit3, Edit4, etc.} et quand je clique sur mon 4ème bouton (je sais que c'est le 4ème grace à sa valeur Tag par exemple), je vide le 4ème objet de mon tableau....
    mouais, je pense que ça marche, mais je suis convaincu qu'on peut faire beaucoup mieux...


    A+
    PS: est-ce que j'arrive à être clair en cette fin de journée ??

  4. #4
    Membre habitué
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    pour cela, on peut utiliser la méthode FindComponent :

    Supposons qu'on ait 5 TEdit : Edit0,Edit1...Edit4

    Pour accéder au ième :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TEdit*  pEdit  =dynamic_cast <TEdit*>  (FindComponent("Edit"  +AnsiString(i)));
    Et on utilise le Tag pour faire la correspondance inverse (Composant -> indice)

    Nicolas

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    VOILA !!

    C'est exactement ce qu'il me fallait !!
    Merci!!

    A+

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

Discussions similaires

  1. [XL-2003] Avoir le même code pour plusieurs feuilles
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/01/2010, 13h29
  2. Réponses: 1
    Dernier message: 21/12/2009, 18h03
  3. généralisation d'un code pour plusieurs lignes XL
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/07/2007, 17h58
  4. Même code pour plusieurs shapes
    Par El-Diablo- dans le forum C++Builder
    Réponses: 10
    Dernier message: 24/05/2007, 19h40
  5. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 14h41

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