[C++ Builder] TreeView/Doppelklick von Untereintrag abfangen



  • Hallo,

    ich habe eine TreeView - Komponente in meiner Form und habe 2 Einträge mit jeweils mehreren Untereinträgen.

    z.B.:

    [+] Eintrag_1
    |__ Untereintrag1
    |__ Untereintrag2

    [+] Eintrag_2
    |__ Untereintrag1
    |__ Untereintrag2

    ...

    Wenn ich jetzt zur Laufzeit des Programms den Baum öffne, bekomm ich ja die Untereinträge geöffnet. Ich kann sie auch anklicken. Und hier kommt nun meine Frage: Wie setze ich das in meinem Code um, dass wenn ich z.B. auf den 2.ten Untereintrag doppelklicke, dass dann etwas geschieht(z.B. soll eine neue Form sichbar werden)??

    Danke 🙂



  • TreeView hat ein Ereignis OnDblClick. Dahinter einfach den Code schreiben, der das zweite Fenster öffnet. Mit TreeView->Selected kannst du rausfinden, welcher deiner Einträge ausgewählt ist.



  • Das ist eigentlich schon recht gut, danke. Aber ich hab da noch ein kleines Problem mit der Umsetzung, dass nur das Form sichtbar wird, wenn man auf ein
    Untereintrag klickt.

    Gibt es da eine Methode, mit der man abfragen kann, ob es ein Untereintrag ist?
    Die Ordnung der Einträge ist nämlich so sortiert:

    Eintrag1(0)->Untereintrag1(0)->Untereintrag1(1)->Untereintrag1(2)

    Problem ist hier, dass der Index "0" 2x vorkommt!



  • skluge schrieb:

    Gibt es da eine Methode, mit der man abfragen kann, ob es ein Untereintrag ist?

    Keine Methode, aber eine Eigenschaft. TTreeNode hat die Eigenschaft Parent, ein Zeiger auf den übergeordneten Knoten d.h. wenn TreeView->Selected->Parent ungleich NULL ist, handelt es sich um einen Untereintrag.



  • Danke!


Anmelden zum Antworten