AW: TButton in VirtualTreeView einfügen
Hallo leute, das Thema ist schon alt aber kein ding :P
@Bacardifeeling wie machst du wenn Node.State = vsExpanded ist? Ich meine, Ich kann Button zum Tree hinfügen, aber es bleibt sichtbar, wenn ich den Parent minimiziere. Hat jemand irgendein Lösung dafür? Danke im Voraus. |
AW: TButton in VirtualTreeView einfügen
Es gibt die Events OnCollapsing und OnCollapsed. Da solltest du ansetzen. Im OnCollapsing könntest du die Buttons entsprechend wieder unsichtbar schalten oder freigeben. Wenn du sie frei gibst, dann musst du sie natürlich im OnExpanding wieder erstellen.
|
AW: TButton in VirtualTreeView einfügen
Danke für die Hilfe, es hat mir sehr geholfen :thumb: :)
|
AW: TButton in VirtualTreeView einfügen
Hallo noch einmal
Am OnCollapsing un am OnExpanded habe ich erfolgreich mein Button gezeigt/versteckt. Das problem ist jetzt aber nur, wenn ich den oberen Node minimisiere, geht der undere nach oben(so sei es)....aber Buttons bleiben darunter:// Mein InitNode(wo ich Buttons erzeuge)
Code:
OnCollapsing event:
Data.RefreshButton := TButton.Create(nil);
Data.RefreshButton.Parent := VST; Data.RefreshButton.Height := VST.DefaultNodeHeight; Data.RefreshButton.Caption := 'Refresh'; R := Sender.GetDisplayRect(Node, 2, False); Data.RefreshButton.BoundsRect := R; Data.RefreshButton.Visible := True; Data.RefreshButton.Enabled := True; Data.RefreshButton.Node := Node; Data.RefreshButton.OnClick := RefreshbtnClick; Sender.SetNodeData<TService>(Node, Service); Node.CheckType := ctNone;
Code:
OnExpanded event:
if Assigned(Node) then
begin Child := Sender.GetFirstChild(Node); while Assigned(Child) do begin Data := Sender.GetNodeData<TService>(Child); Data.RefreshButton.Visible := False; Child := Sender.GetNextSibling(Child); end; end;
Code:
gruss
if Assigned(Node) then
begin Child := Sender.GetFirstChild(Node); while Assigned(Child) do begin Data := Sender.GetNodeData<TService>(Child); R := Sender.GetDisplayRect(Child, 2, False); Data.RefreshButton.BoundsRect := R; Data.RefreshButton.Visible := True; Child := Sender.GetNextSibling(Child); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 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