Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi treeview klicks zuweisen.... (https://www.delphipraxis.net/12125-treeview-klicks-zuweisen.html)

Muetzi 21. Nov 2003 01:05


treeview klicks zuweisen....
 
hi,

ich habe eine treeview mit folgenden einträgen:

Code:
Hauptthema
           Punkt1
           Punkt2
Hauptthema1
           Punkt3
           Punkt4
Und zwar brauche ich es so, dass wenn man auf hauptthema klickt nur die einträge aufklappen, und wenn man auf einen punkt klickt halt jeder punkt einen integer wert bekommen muss
punk1 muss 1 sein
punkt2 = 2
punkt3 = 3
punkt4 = 4

u.s.w.

Wie geht das? Die Punkte sind alle in Verschiedenen Hauptthemen.

Gruß

Muetzi

Hab absolut keinen Ansatz!

Touchdown 21. Nov 2003 08:05

Re: treeview klicks zuweisen....
 
Du hängst an die SubItems ein Objekt, beim Treeviewklick brauchst du nur noch prüfen, ob an dem gewählten TreeviewItem ein Objekt hängt. Wenn ja, dann diesen einen hochzählen.

Es umzusetzen ist nicht ganz so einfach aber im Grunde ist es nicht mehr als oben beschrieben.

Du kannst dir eine eigene Klasse machen, die nur einen Integerwert hat. Besser wäre aber einen Integer direkt dranhängen. Den zweiten Weg würde ich nur verfolgen, wenn der erste Weg funktioniert hat.

Muetzi 21. Nov 2003 11:27

Re: treeview klicks zuweisen....
 
könnte mir da jemand ein beispiel geben?

oki 21. Nov 2003 12:23

Re: treeview klicks zuweisen....
 
Hi,

die Einträge in einem TreeView sind TTreeNode's. Dort findest Du die Eigenschaft Data vom Typ Pointer.
Dieser ist, wenn nicht durch Dich zugewiesen nil. Dort kannst du dir nun Zeiger auf Records oder Objecte merken. Hast du das selectierte TreeNode, so brauchst du nur in dem mitgelieferten Record(Zeiger-Dereferenzierung) auf den betreffenden Eintrag zugreifen(oder eben über das gehaltene Object).

Aus dem Kopf mal ein kleines Bsp.:

Delphi-Quellcode:
// bei Aufbau des Tree
var FPCounter : PDWord;
....
  New(FPCounter);
   FPCounter^ := Count; // Dein Durchlaufzähler o.ä.
   TreeNode.Data := FPCounter;
....
var FIndex : DWord;
....
// beim lesen; hier ist jetzt TreeNode der selectierte knoten
  MeinIndex := DWord(TreeNode.Data^);
....
ja, das wars schon.

Gruß oki

{Edit: habe die Zuweisung auf FPCounter korrigiert}


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 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