| Autor |
Beitrag |
Krefti
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Di 03.03.09 12:49
Hi zusammen,
ich hab jetzt schon eine ganze weile das Forum durchsucht und nicht das passende gefunden.
Ich möchte in meinem Treeview auf unterster hierarchieebene die anzahl der unterpunkte ermitteln.
Wie mach ich das??
mit Treeview.item.items[].count ??
wenn ja, steht in items[] die hierarchieebene??
Vielen Dank schon mal für eure hilfe!
gruß
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Di 03.03.09 12:57
das müsstest du imho mit rekusion realisieren. Wie genau kann ich dir nicht sagen, hab grad kein delphi da. vl. reicht das ja schon als gedankenanstoss^^
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Krefti 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Di 03.03.09 13:04
danke schon mal für die antwort..
*nachdenk*
ähh..was rekusion bedeutet weiß ich allerdings nicht wirklich..werd mal suchen, aber wenn mir dazu jemand noch helfen könnte wäre wirklich super..
danke!
|
|
Narses
      

Beiträge: 10184
Erhaltene Danke: 1259
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 03.03.09 14:14
Moin!
Krefti hat folgendes geschrieben : | | Ich möchte in meinem Treeview auf unterster hierarchieebene die anzahl der unterpunkte ermitteln. |
Kannst du mal erläutern, was du damit genau meinst? Die Anzahl der Knoten, die keine Kinder haben (=Blätter)?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Krefti 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Di 03.03.09 14:23
also folgendermaßen:
Mein treeview soll insgesamt 6 Ebenen haben. Sichtbar sind beim Aufrufen des Dialogs 5. Der 5. ebene kann man eine unbegrenzte Anzahl an Unterpunkten hinzufügen, die werden dann mit dem gleichen Namen geöffnet, der durchnummeriert ist. Jetzt soll die Möglichkeit bestehen, dass der Nutzer einzelne Datensätze(Unterpunkte) wieder löschen kann. Jetzt möchte ich die durchnummerierte folge, die durch das Löschen entstanden ist, natürlich wieder herstellen.
Dazu dacht ich, ich zähl einfach die noch vorhandenen Unterpunkte und schreib die Nummerierung der Unterpunkte neu.
Wenn das natürlich auf einer einfachere Weise gehen würde, wär ich sehr gern bereit Vorschläge anzuhnehmen  !!
|
|
Narses
      

Beiträge: 10184
Erhaltene Danke: 1259
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 03.03.09 14:29
Moin!
Hm, erschöpfend war die Erklärung jetzt nicht, aber vielleicht hilft dir das hier:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var i,cnt: Integer; begin cnt := 0; for i := 0 to TreeView1.Items.Count-1 do if (NOT TreeView1.Items.Item[i].HasChildren) then Inc(cnt); ShowMessageFmt('%d Blätter gefunden.',[cnt]); | cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Krefti 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Di 03.03.09 14:43
danke für deine mühe, ich schaus mir gleich an..
Inwiefern nicht genügend erklärt??
also ich möchte ja nur diese Punkte zählen, die ich auf der aller untersten Ebene angelegt habe.
Hab jetzt mal einen Screenshot angehängt, vielleicht erklärt das mein Anliegen eher.
Die Punkte unter Streckenbeschreibung und Flugbewegungsangaben habe ich mittels des hinzufügen Buttons erzeugt. Wenn ich jetzt z.b.Streckenbeschreibung selektierte wird der Bearbeiten und Löschen Button aktiv. Wenn ich Streckenbeschreibung0 lösche, möchte ich, dass Streckenbeschreibung1 zu Streckenbeschreibung0 wird.
Ich hab mir gedacht, dass ich die vorhandenen Punkte einfach zählen kann und die dann neu durchnummeriere anhand des Zählergebnisses.
Unter den anderen Punkten Streckenbeschreibung/Flugbewegungsangaben könnten auch x-beliebig viele Einträge angelegt und anschließend wieder gelöscht und editiert werden.
Einloggen, um Attachments anzusehen!
|
|
Narses
      

Beiträge: 10184
Erhaltene Danke: 1259
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 03.03.09 14:59
Moin!
Krefti hat folgendes geschrieben : | also ich möchte ja nur diese Punkte zählen, die ich auf der aller untersten Ebene angelegt habe.
Hab jetzt mal einen Screenshot angehängt, vielleicht erklärt das mein Anliegen eher. |
Jup, das tut es.  Es war noch nicht klar, ob jeder Zweig für sich gerechnet werden soll.
In diesem Fall wäre es allerdings besser, so vorzugehen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.TreeView1DblClick(Sender: TObject); var cnt: Integer; Node: TTreeNode; begin cnt := 0; if Assigned(TreeView1.Selected) and TreeView1.Selected.HasChildren then begin Node := TreeView1.Selected.getFirstChild; repeat Inc(cnt); Node := Node.getNextSibling; until (Node = NIL); end; ShowMessageFmt('Der Knoten hat %d Kinder.',[cnt]); end; | cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Krefti 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Mi 04.03.09 09:30
Vielen dank dir schon mal!! Generell funktioniert das auch. Nur will er mit dem Code die Kinder von dem zu löschenden Knoten zählen, was ja 0 ist. ich möchte ja die Punkte in der ebene zählen, wo ein Punkt gelöscht wird, um ja dann neu durch zu nummerieren.
Sprich ich hab meine Streckenbeschreibung, davon möchte ich die kinder zählen, von denen ich auch eines löschen möchte.
Ich hoffe mein Problem ist jetzt endgültig nach zu vollziehen.
|
|
Narses
      

Beiträge: 10184
Erhaltene Danke: 1259
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 04.03.09 12:28
Moin!
Krefti hat folgendes geschrieben : | Nur will er mit dem Code die Kinder von dem zu löschenden Knoten zählen
[...]
ich möchte ja die Punkte in der ebene zählen, wo ein Punkt gelöscht wird |
Dann solltest du mal über diese Referenz nachdenken:
Delphi-Quelltext 1:
| TreeView1.Selected.Parent | cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Krefti 
      
Beiträge: 164
Win XP/Vista/Win7/ubuntu
Delphi 7/2006/2009 Pro
|
Verfasst: Do 05.03.09 10:10
nochmals vielen dank. habs jetzt mit dem treeview.selected.parent hinbekommen:-)!!!
|
|