Recuperer certain node d'un TTreeView

Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007 - 11 sept. 2003 à 19:21
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008 - 15 sept. 2003 à 00:24
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

sablor Messages postés 58 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 1 octobre 2004
12 sept. 2003 à 11:41
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
0
Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007
12 sept. 2003 à 14:24
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
0
sablor Messages postés 58 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 1 octobre 2004
12 sept. 2003 à 16:24
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
0
Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007
12 sept. 2003 à 18:43
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Knolan Messages postés 79 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 18 juin 2007
14 sept. 2003 à 00:42
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
0
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
15 sept. 2003 à 00:24
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
0
Rejoignez-nous