![]() |
TreeView als Navigation
Servus,
ich habe 5 Buttons. Je nach Button werden anderen Werte ins TreeView geschrieben. Angenommen ich habe so ein TreeView
Delphi-Quellcode:
Wenn ich jetzt auf Menü_1 oder Untermenü_1 klicke möchte ich das eine Funktion aufgerufen wird.
[-] Menü_1
.....Untermenü_1 .....Untermenü_2 [+] Menü_2 [-] Menü_3 .....Untermenü_1 Die Funktion braucht aber auch übergabenparameter. Habe mir überlegt es so zumachen
Delphi-Quellcode:
was meint ihr, die idee so gut oder hat jemand ne andere Idee?
TMyProcedure = procedure of Object;
TNaviTree = record proc : TMyProcedure; parameter : pointer; end; //... var navi : TNaviTree; begin //schleife new(navi); navi.proc := blabla; navi.parameter := daten; //im tree einfügen end; Gruß |
Re: TreeView als Navigation
Das kommt darauf an wie der Rest vom Code aussieht. Ich selbst benutze eine TreeView meistens, wenn ich mehrere Seiten auf dem Formular habe. Da nehme ich dann ein PageControl, dann kann ich direkt den absoluten Index des ausgewählten Eintrags als neuen Seitenindex setzen, fertig. Ggf. noch mit Offset, wenn es mehrere Bäume gibt.
Und man kann ja auch einen benutzerdefinierten Integerwert einfach in Data legen. Wenn bei dir da eine Methode aufgerufen werden muss und das nicht ähnlich einfach umsetzbar ist, dann ist das so ein gangbarer Weg. Du musst aber darauf achten, dass der Record überall auch immer korrekt freigegeben wird. Zudem fehlt deinem TMyProcedure noch der Parameter. ;-) |
Re: TreeView als Navigation
Zitat:
Zitat:
|
Re: TreeView als Navigation
Zitat:
Delphi-Quellcode:
Ich meinte das so:
TMyProcedure = procedure of Object;
Delphi-Quellcode:
TMyProcedure = procedure(Param: Pointer) of Object;
|
Re: TreeView als Navigation
Falls es einigermaßen überschaubar ist, würde ich einfach das einfach über eine Case-Anweisung im NodeChanged-Ereignis(?) lösen. Dabei könnte man den ImageIndex verwenden, dann hätten die Knoten auch noch nette Bildchen. Ich halte das für übersichtlicher.
Ach, das hat jaenicke ja fast so schon geschrieben. |
Re: TreeView als Navigation
Zitat:
Da ist ein Record. Im Record haste deine Procedure abgelegt und die Parameter in Pointer. Dann liest man die Procedure aus und ruft diese mit den Daten aus dem Pointer auf fertig. habe es aber jetzt anders gelöst.
Delphi-Quellcode:
pTreeNavigation wird bei Data hinterlegt.
type
TNaviType = (ntMenue1 = 0, ntMenue2); pTreeNavigation = ^rTreeNavigation; rTreeNavigation = record Kategorie : TNaviType; pData1, pData2 : Pointer; sData1, sData2 : string; end; Wenn auf ein Node geklickt wurde wird das record ausgelesen. Je nach ntMenue id wird eine andere Procedure aufgerufen. Die Parameter für die Procedure sind im Pointer. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz