Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TButton in VirtualTreeView einfügen (https://www.delphipraxis.net/52950-tbutton-virtualtreeview-einfuegen.html)

Natia 19. Mai 2017 09:37

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.

Aviator 19. Mai 2017 09:58

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.

Natia 19. Mai 2017 12:01

AW: TButton in VirtualTreeView einfügen
 
Danke für die Hilfe, es hat mir sehr geholfen :thumb: :)

Natia 22. Mai 2017 14:21

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:
 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;
OnCollapsing event:
Code:
  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;
OnExpanded event:
Code:
  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;
gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.
Seite 2 von 2     12   

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