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:
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:
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 ?