Recuperer certain node d'un TTreeView

Messages postés
79
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
18 juin 2007
-
Messages postés
308
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
26 septembre 2008
-
Alors voila je voudrais sauvegarder dans un fichier texte le texte des nodes auquels sont affectés une certaine image
Le problème c'est pour entrer dans les sous-nodes et en ressortir, enfin de tester TOUS les nodes quoi :)

Alors si quelqu'un pouvait m'aider, le numero de l'image que doit porter le node est le 2.
Au final j'aimerai que le fichier texte contienne tous les node qui ont l'image 2.

Merci d'avance à celui qui se cassera la tête pour moi :) parce que moi là je rend les armes :S

6 réponses

Messages postés
58
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
1 octobre 2004

Au niveau de ta TListView tu as une propiete qui est AbsoluteIndex, donc tu peux faire une boucle qui parcourent ta ListView avec ton AbsoluteIndex et verifier si ton image est à 2 et si c'est le cas tu sauve dans ton fichier...

A+
Sablor
Messages postés
79
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
18 juin 2007

d'accord pour le absoluteindex mais le prob c'est pour ouvrir un node si il possede des fils et arrivé au dernier fils remonter dans le node parent et passer au fils suivant et ainsi de suite
Messages postés
58
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
1 octobre 2004

Voici un exemple :

For i:=0 to TView.Items.Count-1 do begin
Mynode := TView.Items[i];
if MyNode.ImageIndex = 2 then ...
// Mets ta sauvegarde ici
end;

A+
J'espere avoir ete clair ;)

Sablor
Messages postés
79
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
18 juin 2007

voici mon code :

procedure TForm1.SpeedButton3Click(Sender: TObject);
var
  i, num : integer;
  node : TTreeNode;
  fichier : textfile;
begin
  num := 0;
  AssignFile(fichier, 'Favoris.txt');
  Rewrite(fichier);
  Write(fichier, 'My FavoriTes Url''S');
  CloseFile(fichier);
  For i := 0 to TreeView1.Items.Count-1 do
  begin
    Node := TreeView1.Items.Item[i];
    If Node.ImageIndex = 2 then
    begin
      num := num+1;
      AssignFile(fichier, 'Favoris.txt');
      Reset(fichier);
      WriteLn(fichier, '#'+IntToStr(num)+' '+Node.Text);
      Closefile(fichier);
    end;
  end;
end;


le pb se produit sur cette ligne :

WriteLn(fichier, '#'+IntToStr(num)+' '+Node.Text);


Quand il y a plus d'un fichier avec l'image 2
Help me :(

Pardonnez moi d'avance si j'ai du mal :P
Messages postés
79
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
18 juin 2007

Si qulequ'un connai le réponse qu'il me le dise svp, paske la ........
Enfin bon même si vous connaissez pas ou que vous avez des idées pour me débloquer dites tjs je suis preneur :D
Messages postés
308
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
26 septembre 2008

num := 0;
AssignFile(fichier, 'Favoris.txt');
{$I-}
Rewrite(fichier);
{$I+}
if(IOResult=0)then
begin
Write(fichier, 'My FavoriTes Url''S');
CloseFile(fichier);
end else ;// au cas où il ne trouve pas
// if not FileExists(' ')then...

For i := 0 to TreeView1.Items.Count-1 do
begin
Node := TreeView1.Items.Item[i];
If Node.ImageIndex = 2 then
begin
inc(num);
AssignFile(fichier, 'Favoris.txt');
{$I-}
Rewrite(fichier);
{$I+}
if(IOResult=0)then
begin
WriteLn(fichier, '#'+IntToStr(num)+' '+Node.Text);
Closefile(fichier);
end;
end;

tu fais un reset et tu tentes d'écrire ?

reset pour lire
rewrite pour effacer tout et écrire
append pour ajouter a la fin
yve