comment puis-je sauvgarder un treeview et ses nodes data dans un fichier text , et lorsque j'ouvre l'App le treeview en question va etre auto-rempli , lorsque je clique sur chaque node son data est affiché dans un memo.
comment puis-je sauvgarder un treeview et ses nodes data dans un fichier text , et lorsque j'ouvre l'App le treeview en question va etre auto-rempli , lorsque je clique sur chaque node son data est affiché dans un memo.
Bonjour,
Pesonellment j'implementerais une sauvegarde et une implementaion en XML.
Le XMl est un fichier text sous un format particulier, donc il devrait vous convenir.
Les fichiers XMl sont en passe de devenir un standard de fait.
Delphi contient déja tous les outils pour suvegarder/recharger le fichier.
Par contre, la sauvegarde n'est pas automatique. Vous devez imlementer les procédure .
Autre méthode beaucoup plus simple essayer les méthodes SaveToFile ou load fromFile de TTReeView.
Je n'ai jamais utiliser, mais il n'y a pas de raison que cela ne fonctionne pas.
Extrement simple.
Natif du Treeview , donc pas de bug à prioris et implementation extrement rapide.
Par contre si vous faite une suvegarde général de tout les paramètre de votre application, vous devez réimplementer un code différent de la sauvegarde du treeView simple.
En faite tout dépend ce que vous ferez ensuite avec votre code, mais la seconde solution est vraiement tres simple.
TreeView.SaveToFile
TreeView.LoadFromFile
Pour le reste il suffit d'utiliser l'évenement OnChange ?, recupérer le texte du node et le mettre dans un memo
c'est ça le problem j'ai aucaun problem avec l'evenement on change ou avec le sauvgarde de tout le treeview mais le problem c'est que je veux bien sauvgarder le treeview avec ses data de node pas seulemet le treeview donc je veux :Pour le reste il suffit d'utiliser l'évenement OnChange ?, recupérer le texte du node et le mettre dans un memo
savgarder le treevierw + le text du node dans un ficher text
Dans ce cas il faut implementer la sauvegarde à la main (cas XML).
Il vous faut non seulement la sauvegarde du treeview, mais aussi la sauvegarde de tous les objet suceptible d'ètre dans les data.
si c'est le cas pouvez vous me donner un exmple et comment je peux l'utilser merçi
Lancement de la sauvegarde.
(XmlDoc est un TXmlDocument);
Procedure De sauvegarde (SaveToXmlDoc)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Xmldoc.Active := False; XMLDoc.FileName := ''; XMLDoc.Active := True; XMLDoc.Version := '1.0'; ColorList.SaveToXmlDoc(XmlDoc, Nil); Xmldoc.SaveToFile(SaveDialog.FileName);
Sauvegarde d'un noeud
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 procedure SaveToXmlDoc(Xmldoc: TXmlDocument; Root: IXMLNode); begin if Root = nil then begin FirstNode := XMLDoc.CreateNode(CONST_XML_COLORLIST, ntElement); XMLDoc.DocumentElement := Firstnode; end else begin FirstNode := Root.AddChild(CONST_XML_COLORLIST); end; { Si je commence mas sauvegarde içi (Root = nil) Je cree le 1° noeud du XMLDoc (Document element) Si je continue une sauvegarde (Root <> nil) Mon 1° noeud sera un enfant de root } For AIndex := 0 to TReeView.Items.count - 1 do begin if TReeView.Items[AIndex].Level = 0 then saveNode(TReeView.Items[AIndex], Firstnode); end; end;
NOTA LEs constantes telle que CONST_XML_COLORLIST sont les noms 'étiquettes' identifant les noeud de l'arborescense du XML
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 procedure saveNode(TreeNode:Treenode; ParentXml: IXMlNode); var Newnode, DataNode: IXMLNOde; AIndex: Integer; begin Créer le noeud XML correspondant au noeud du treeview NewNode := PArentXml.AddChild(CONST_XML_COLORLIST_NODE); // Sauvegarder toute les propriété util du noeud Y Compris les informations util sur les objets dans les data // Example limité au texte et a l'image index DataNode := NewNode.Addchild(CONST_XML_COLORLIST_NODE_NAME); DataNode.NodeValue := TReeNode.TExt; NewNode.Addchild(CONST_XML_COLORLIST_NODE_IMAGEINDEX); DataNode.NodeValue := IntToStr(TReeNode.ImageIndex); //Sauvegarder touts les enfant du noeud for AIndex := 0 To TreeNode.Count - 1 do begin saveNode(TReeNode.ITems[AIndex], NewNode); end; end;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager