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 :

Utiliser FindNextControl avec un DBCtrlGrid


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut Utiliser FindNextControl avec un DBCtrlGrid
    Bonjour,

    J'essai toujours de faire fonctionner mon DBCtrlGrid comme je veux. J'ai donc revu tout le fonctionnement concernant ce composant dans mon application.

    J'ai donc centralisé tous les évènements de mise à jour dans une seule et même fonction. Seulement, je dois pour voir récupérer un accès à chaque composant de la ligne modifiée. J'ai un pointeur sur un des objets.

    Je pensais donc parcourir les composants pour les retrouver via FindNextControl. Mais, celui de la fiche ne s'arrête pas sur les controls de ce composant et il trouve les autres composants. Je ne peux pas retrouver le composant par son nom puisqu'il y a un composant portant le même nom pour chaque ligne du DBCtrlGrid.

    De plus, je dois d'abord parcourir les composants en arrière pour trouver le 1er et ensuite parcourir tous les autres.
    Voici un extrait de code :
    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
       TWinControl *x; // positionnement sur le dbcombobox de la ligne en cours de traitement
       if (((TWinControl *)Sender)->Name == "DBComboBox1")
          {
          x = (TWinControl *)Sender;
          }
       else {
            if (((TWinControl *)Sender)->Name == "JvDBCalcEdit1")
               {
               x = FindNextControl((TWinControl *)Sender, false, false, false);
               }
            else {
                 if (((TWinControl *)Sender)->Name == "JvDBCalcEdit2")
                    {
                    x = FindNextControl((TWinControl *)Sender, false, false, false);
                    x = FindNextControl(x, false, false, false);
                    }
                else {
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       //On récupère un accès à tous les composants de la ligne en cours d'édition
       TDBComboBox *tempProduit = (TDBComboBox *)x;
       x = FindNextControl(x, true, false, false);
       TJvDBCalcEdit *tempPU = (TJvDBCalcEdit *)x;
       x = FindNextControl(x, true, false, false);
       TJvDBCalcEdit *tempQuantite = (TJvDBCalcEdit *)x;
       x = FindNextControl(x, true, false, false);
    ...
    Et le FindNextControl du DBCtrlGrid n'est pas accessible, je ne peux pas directement l'utiliser.

    Vous avez une idée pour parcourir les composants d'une ligne d'un DBCtrlGrid ?

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par défaut
    J'ai trouvé la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TDBCtrlPanel *temppanel = (TDBCtrlPanel *)DBCtrlGrid1->Controls[0];
    DBCtrlGrid1->ControlCount est toujours égal à 1 chez moi même quand il y a plusieurs lignes. Je ne sais pas pourquoi.

    Et pour parcourir les composants de la ligne, j'ai utilisé temppanel->ControlCount et temppanel->Controls[i].

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

Discussions similaires

  1. [Kylix 3] Je n'arrive pas à utiliser MySQL
    Par usebob dans le forum EDI
    Réponses: 4
    Dernier message: 15/04/2005, 10h18
  2. Utilisation iterator avec une classe perso
    Par SteelBox dans le forum C++
    Réponses: 19
    Dernier message: 07/03/2005, 11h30
  3. Réponses: 6
    Dernier message: 24/02/2005, 09h44
  4. PB de vue utilisant UNION avec ENTERPRISE MANAGER
    Par punglas dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/12/2004, 15h18
  5. Réponses: 12
    Dernier message: 02/02/2004, 13h41

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