Problème treeview addchild !

Résolu
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007 - 27 sept. 2006 à 17:29
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007 - 28 sept. 2006 à 08:42
Bonjour à tous, je cherche a remplir une treeview à partir des différents champs d'une base de donnée. Voici mon code:
procedure TForm1.Button2Click(Sender: TObject);
var i : integer;
begin
UIBQuery.SQL.Clear;
UIBQuery.SQL.Add('SELECT * FROM BASE;');
UIBQuery.Execute;




for i := 0 to UIBQuery.Fields.FieldCount - 1 do
  begin
  if(not isnumeric(UIBQuery.Fields.SqlName[i])) then
       treefields.Items.add(nil, UIBQuery.Fields.SqlName[i]);
  end;
  UIBQUERY.close();




for i := 0 to treeFields.Items.Count - 1 do
  begin
  //showmessage(inttostr(i) + ' ' + inttostr(treeFields.Items.Count));
  UIBQuery.SQL.Clear;
  UIBQuery.SQL.Text := 'SELECT DISTINCT ' + treeFields.Items[i].Text + ' FROM BASE;';
  UIBQuery.Open;
  UIBQuery.First;
    while not UIBQuery.EOF do
    begin
     treefields.Items.AddChild(treeFields.Items[i],UIBQuery.Fields.AsString[0]);
     UIBQuery.Next;
     end;


   UIBQuery.Close();
  end;
end;



Seulement lorsque j'ajoutes des enfants, ceux ci sont aussi accessibles par treefields.items, et donc tout est ajouter dans le premier élément. Je ne sais pas comment faire, si quelqu'un pouvait m'aider, ça serait vivement apprécié !@wanadoo.fr / _.'__ `. / /¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

5 réponses

retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007
28 sept. 2006 à 08:42
T'a solution m'oblige à sélectionner tous les enregistrement de premier niveau, et donc d'avoir un treeview multiselect. L'idée de base était de parcourir une table, et de recenser toutes les valeurs des différents champs. J'ai donc le noms des champs en niveau 0, et leur ajoute en enfants les différentes valeurs qu'il peuvent prendre ... Enfin je vais rester sur la solution du downto, les indexs sont décalés, mais vu qu'on vas du dernier au premier, cela ne change rien. Merci de m'avoir aidé !
Voici le changement pour ceux que ça intéresse:
for i := 0 to treeFields.Items.Count - 1 do -> for i := treeFields.Items.Count - 1 downto 0 do
3
Utilisateur anonyme
27 sept. 2006 à 18:14
Salut,

Voila une procedure qui te permet de rajouter un CNode enfant quand tu sélectionnes un CNode Parent et de lui attribuer un string;

Procedure AddAChild;
Var
ACNode : TTreeNode;
Begin
ACNode:=treeFields.Selected;
for i := 0 to (ACnode.Count - 1) do
ACNode:= treefields.Items.AddChild(ACNode,'My string');
end;
0
Utilisateur anonyme
27 sept. 2006 à 18:18
Hop pardon, ce code te permet de rajouter l'enfant dans tout les CNode Parents à partir de celui que tu as sélectionné.

Cette procédure te permet d'ajouter un CNode enfant à un parent.

Procedure AddAChild;
Begin
treefields.Items.AddChild(treeFields.ItemSelected,'My string');
end;

Là je ne suis pas sur pour le ItemSelected je n'ai pas Delphi sous les yeux (soit il manque un point soit un "S").

Une astuce qui rend bien des services : l'image associée à un CNode ;).

@+
0
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007
27 sept. 2006 à 19:06
Je ne veux pas ajouter un enfant a l'item sélectionné, mais parcourir le treeview et ajouter des enfants aux items... J'ai résolu mon problème avec un downto, mais ça fiat un peu bricolage, si quelqu'un pouvait éclairer ma lanterne, ça serait cool !

Merci quand même!
0

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

Posez votre question
Utilisateur anonyme
27 sept. 2006 à 22:24
DownTo ne fait pas bricolage lol tout depend comment tu l'utilises

Procedure AddAChild;
Begin
for i := 0 to (TreeView1.Selected.Count - 1) do
treefields.Items.AddChild(ACNode,'My string');
end;

Cette procedure : tu parcrous le treeview et additionne des enfants.

Plutot que de te lancer directement avec un treeview, pk tu n'utilises pas une simple form avec un treeview et un TImageList plutot que de vouloir trouver la solution avec un code deja bien fournit ??
0
Rejoignez-nous