ich nutze ein Tree Gadget, welches recht viele Items enthält ( ~ 50.000).Ich möchte dem User die Möglichkeit geben, alle Items / Subitems auf einmal
zu expanden bzw. zu collapsen.
Für das Expand habe ich schon eine Lösung gefunden:
Code: Alles auswählen
Define hwndTV.l, hRoot.l, hItem.l
hwndTV.l = GadgetID(gadget)
hRoot.l = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_ROOT, 0)
hItem.l = hRoot
Repeat
SendMessage_(hwndTV, #TVM_EXPAND, #TVE_EXPAND, hItem)
hItem = SendMessage_(hwndTV, #TVM_GETNEXTITEM, #TVGN_NEXTVISIBLE , hItem)
Until hItem = #Null
SendMessage_(hwndTV, #TVM_ENSUREVISIBLE, 0, hRoot) Für das Collapse habe ich noch keine Lösung gefunden - bzw. nur eine, die jedes Item in einer Schleife durchgeht und den Collapse
herkömmlich über #PB_Tree_Collapsed macht, was aber in der Summe viel zu lange dauert.
Der obige Weg über SendMessage_ ist gemessen an der Zahl der Nodes sehr akzeptabel.Daher hätte ich gern den gleichen Weg
für den Collapse, weiß nur nicht wie.
Habe das hier probiert:
Code: Alles auswählen
SendMessage_(hwndTV, #TVM_EXPAND, #TVE_COLLAPSE, hItem) Ich finde es eh schade, dass man für relativ simple Sachen auf WinAPI Funktionen zurückgreifen muß, damit
kann man eine Portablität vergessen, aber gut, anderes Thema
Hat jemand eine Lösung für mich ? Optional wäre ich noch an einer Lösung interessiert, wie man Expand / Collapse
für alle Elemente unterhalb einer bestimmten Ebene machen kann.Kenne mich nicht mit WinAPI aus, daher sind
solche Codeschnipsel immer reines Copy / Paste für mich, leider...
Ich bedanke mich im voraus...
Viele Grüße,
TWELVE


