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