Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi In TreeView eintragen (https://www.delphipraxis.net/14291-treeview-eintragen.html)

devnull 6. Jan 2004 12:58


In TreeView eintragen
 
Hi, kann mir einer sagen, was ich hier gfalsch mache ?

Delphi-Quellcode:
repeat
  readln (t, gruppe);
  readln (t, thema);

  if gruppe = 'Multimedia' then selec := 0;
  if gruppe = 'Windows API' then selec := 1;
  if gruppe = 'Delphi' then selec := 2;

  Form1.TreeView.Items.AddChild(Form1.TreeView.Items[selec], thema);
until EOF (t);
gruppe und thema sind strings.


In der treeview existieren die hauptknoten [Multimedia,Windows API,Delphi].
Das Thema soll immer der jeweiligen Gruppe (Hauptknoten) untergeordnet werden ...

Nach den ersten zwei Eintragungen (die sind richtig) trägt das prog immer alles unter Windows API !!!?

Hoffe ihr könnt mir helfen
devnull

devnull 6. Jan 2004 13:05

Re: In TreeView eintragen
 
Ich hab den Verdacht, dass ich nach einer Eintragung irgendwie wieder aus dem Hauptknoten raus muss, und irgendwie in das erste "level" gelangen !

hoffe, dass ich mich jetzt nicht selber ********* hab ...

Tpercon 6. Jan 2004 14:01

Re: In TreeView eintragen
 
Die Items von TreeView.Items[] werden durchgängig durchgezählt. Somit kann das Item Delphi den Index 3, 5, 27, 3568, .. haben. Daher fragst du entweder mittels Schleife ab, welchen Index der Eintrag hat oder du merkst dir die TTreeNodes z.B. wie folgt (ungetestet!):
Delphi-Quellcode:
var
  atNodeDel,
  atNodeWin,
  atNodeMul,
  atNode : TTreeNode;
begin

  atNodeDel := Form1.TreeView.Items.AddChild(nil, 'Delphi');
  atNodeWin := Form1.TreeView.Items.AddChild(nil, 'Windows');
  atNodeMul := Form1.TreeView.Items.AddChild(nil, 'Multimedia');

while not EoF(t) do begin
  readln (t, gruppe);
  readln (t, thema);

  atNode := nil;
  if gruppe = 'Windows API' then atNode:= atNodeWin;
  if gruppe = 'Delphi' then atNode := atNodeDel;
  if gruppe = 'Multimedia' then atNode := atNodeMul;

  Form1.TreeView.Items.AddChild(atNode, thema);
end;
Den Kram mit den TreeNodes kann man natürlich auch schön dynamisch erzeugt machen. Ist jetzt nur anschaungshalber so geschrieben.

PS: @ devnull: Man kann seinen Beitrag auch editieren. :wink:

devnull 7. Jan 2004 12:28

Re: In TreeView eintragen
 
Danke das klappt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz