Bonjour,
Dans un TTreeview, je laisse le soin à l'utilisateur de modifier le texte des noeuds.
Lorsque l'utilisateur à modifier un noeud, j'utilise l'évènement "OnEdited" du TTreeView, pour récuperer la nouvelle valeur du noeud.
Je lui propose alors, à l'aide d'un message (Application->MessageBox) si il souhaite valider sa modification.
Si il valide, tout marche correctement.
Si il annule, il y a un problème à l'AFFICHAGE. Lorsque je modifie la propriété Text du noeud sélectionné, pour lui remettre l'ancienne valeur, il me conserve quand même la nouvelle valeur.
Savez-vous comment affecter la valeur du noeud, de manière à ce que ce soit visible ?
Merci de vos réponse.

Ci dessous le code de la fonction "OnEdited" du TTreeView

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
19
20
21
22
23
24
25
26
27
28
29
30
31
// Type énuméré pour conserver les valeurs du noeuds
typedef struct MyRec{<div style="margin-left:40px">AnsiString asTitre;</div><div style="margin-left:40px">AnsiString asNomChamps;</div><div style="margin-left:40px">int iCucle;</div>} TMyRec;
typedef TMyRec* PMyRec;
 
//fonction OnEdited
void __fastcall TFrch::TVAntePatEdited(TObject *Sender, TTreeNode *Node, AnsiString &S)
{
  int iOkCancel = 6;
  AnsiString asTemp = "";
  AnsiString asQuery = "";
  switch(Node->ImageIndex){
    // Noeuds libellés des dossiers spécialité
    case 0 : {
      AnsiString asDOTITRE = PMyRec(TVAntePat->Selected->Data)->asTitre;
      asDOTITRE = asDOTITRE.Trim();
      asTemp = "Vous êtes sur le point de modifier le libellé de ce dossier, \n\nAncien libellé : " + asDOTITRE + "\nNouveau libellé : " + S + "\n\nConfirmez-vous ?";
      iOkCancel = Application->MessageBox(asTemp.c_str(),"TEST",MB_OKCANCEL);
      if(iOkCancel == IDOK){
        // On fait quelquechose...
      }
      else {
        // Sinon le noeud reprend son ancienne valeur, c'est là que cela ne marche pas !!
        TVAntePat->Selected->Text = asDOTITRE;
      }
      break;
    }
    case 6 : {
      break;
    }
  }
}