![]() |
VST alle Hidden Rows wieder einblenden
Moin
Ich habe mit InterateSubtree mehrere Nodes ausgeblendet. Nun möchte ich diese wieder einblenden. Also er soll wieder alle Einträge anzeigen. Ich könnte das ja über ein zweites Callback machen, jedoch scheint mir diese Vorgehensweise sehr aufwendig. Gibt es eventuell eine Procedure oder Function die alle Einträge wieder anzeigt. Vst.showallnodes oder sowas. Ich habe schon versucht die Callback Procedure-Definition zu ändern um Nutzer-Variablen mitgeben zu können, die die Ausblendungskriterien im Callback steuern sollen, bin jedoch gescheitert. Da ich nach einigen Kriterien Nodes ausblenden will, müsste ich ja für jeden Fall ein eigenes Callback samt Umkehrcallback definieren? mfG Richard |
Re: VST alle Hidden Rows wieder einblenden
Zitat:
der Callbackprocedure wird doch ein Pointer übergeben.
Delphi-Quellcode:
Du kannst jetzt ja z.B. ein Integer in den Pointer casten und darüber die Auswertung machen.
procedure HideNodes(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
Delphi-Quellcode:
vst.BeginUpdate;
try vst.IterateSubtree(NIL, HideNodes, Pointer(2), [], True); finally vst.EndUpdate; end;
Delphi-Quellcode:
procedure TFrm_Objektliste.HideNodes(Sender: TBaseVirtualTree; Node: PVirtualNode;
Data: Pointer; var Abort: Boolean); begin if (Integer(Data) = 0) then // Alle Anzeigen begin Sender.IsVisible[node] := True; end; if (Integer(Data) = 2) then begin if (Irgendeinvergleich) then begin Sender.IsVisible[node] := False; end; end; end; |
Re: VST alle Hidden Rows wieder einblenden
Mensch Danke Sharky :)
Manchmal sieht man die einfachsten Lösungen nicht. Funktioniert alles bestens. Eine kleine Fragen sei noch gestattet. Kannst du mir Sagen, welche Bedeutung der Filterparameter im InterateSubtree Funktionsaufruf hat? mfG Richard |
Re: VST alle Hidden Rows wieder einblenden
Zitat:
Delphi-Quellcode:
function TBaseVirtualTree.IterateSubtree(Node: PVirtualNode; Callback: TVTGetNodeProc; Data: Pointer;
Filter: TVirtualNodeStates = []; DoInit: Boolean = False; ChildNodesOnly: Boolean = False): PVirtualNode;
Delphi-Quellcode:
Man kann also angeben auf welche Nodes die Callbackfunktion angewendet wird.
TVirtualNodeState = (
vsInitialized, // Set after the node has been initialized. vsChecking, // Node's check state is changing, avoid propagation. vsCutOrCopy, // Node is selected as cut or copy and paste source. vsDisabled, // Set if node is disabled. vsDeleting, // Set when the node is about to be freed. vsExpanded, // Set if the node is expanded. vsHasChildren, // Indicates the presence of child nodes without actually setting them. vsVisible, // Indicate whether the node is visible or not (independant of the expand states of its parents). vsSelected, // Set if the node is in the current selection. vsInitialUserData, // Set if (via AddChild or InsertNode) initial user data has been set which requires OnFreeNode. vsAllChildrenHidden, // Set if vsHasChildren is set and no child node has the vsVisible flag set. vsClearing, // A node's children are being deleted. Don't register structure change event. vsMultiline, // Node text is wrapped at the cell boundaries instead of being shorted. vsHeightMeasured, // Node height has been determined and does not need a recalculation. vsToggling // Set when a node is expanded/collapsed to prevent recursive calls. ); TVirtualNodeStates = set of TVirtualNodeState; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 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