16:50
Gérer graphiquement les actions
Monter et
Descendre a été plus difficile que prévu.
Après quelques heures à tenter du couper/coller puis du refresh global avec perte de la sélection, c'est finalement la méthode
MoveTo des
TreeNodes qui a été utilisée, et ce grâce au paramètre
naInsert qui permet de déplacer un Node à l'intérieur du même parent. Paramètre très discret dans la doc !
Le résultat est un double
GetNextSibling qui semble étrange mais qui est nécessaire quand on y réfléchit.
Code : Tout sélectionner
// Monter
if Sender = Contacts_Up_Action
then begin
// Gestion des données
...
// Gestion graphique
if New_Index = Max_Index
then Selected_Node.MoveTo(Selected_Node.Parent, naAddchild)
else Selected_Node.MoveTo(Selected_Node.GetPrevSibling, naInsert);
end;
// Descendre
if Sender = Contacts_Down_Action
then begin
// Gestion des données
...
// Gestion graphique
if New_Index = Max_Index
then Selected_Node.MoveTo(Selected_Node.Parent, naAddchild)
else if New_Index = 0
then Selected_Node.MoveTo(Selected_Node.Parent, naAddchildFirst)
else Selected_Node.MoveTo(Selected_Node.GetNextSibling.GetNextSibling, naInsert)
end;
Et sinon la gestion du bouton
Dossiers est terminée, c'est un vrai plaisir de jouer avec ça selon les différentes options.
ShowFolders.png
Reste à faire pour le premier prototype :
- Gérer les données dans le panneau de droite. Le ListView sera peut être remplacé par un autre TreeView.
- Brancher la lecture/écriture des données et des options (les services XML écrits cet été).
- Peut-être débugger un peu la Barre qui crashe assez facilement.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.