Delphi-PRAXiS

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/)
-   -   ToolButtons einer ToolBar "verschieben" (https://www.delphipraxis.net/213304-toolbuttons-einer-toolbar-verschieben.html)

tomkupitz 5. Jul 2023 20:49

ToolButtons einer ToolBar "verschieben"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

im angehängten Projekt "verschiebe" ich einige ToolButtons einer TB2 in eine TB1. Dabei wird aber die Reihenfolge vertauscht. Warum? Oder ist das ein Denkfehler.

Danke und beste Grüße

Uwe Raabe 5. Jul 2023 21:18

AW: ToolButtons einer ToolBar "verschieben"
 
Was genau willst du denn mit dem Code erreichen?

tomkupitz 5. Jul 2023 22:03

AW: ToolButtons einer ToolBar "verschieben"
 
Es geht um die Anzeige einer themengebunden ToolBar mit entsprechenden ToolButtons. Z.B. immer: Neu, Öffnen, Speichern, dann aber Auswertung1 (mit mit eigenen ToolButtons) oder Auswertung2 (mit eigenen ToolButtons).

Das Bsp. ist nat. ein Trivial-Bsp. welches das Verhalten der ToolBar testet.

Idee ist aus einer ToolBar mit allen ToolButtons jeweils eine zweite ToolBar themenbezogen zu "bestücken".

Uwe Raabe 5. Jul 2023 22:37

AW: ToolButtons einer ToolBar "verschieben"
 
Die Reihenfolge der Buttons ergibt sich aus deren Position. Mit folgendem Code kannst du alle Buttons einer Toolbar unter Beibehaltung der Reihenfolge an eine andere Toolbar anhängen.
Delphi-Quellcode:
var
  i: Integer;
  L: Integer;
  tb: TToolButton;
begin
  while ToolBar2.ButtonCount > 0 do begin
    tb := ToolBar2.Buttons[0]; // immer den ersten Button
    if ToolBar1.ButtonCount = 0 then begin
      L := 0;
    end
    else begin
      L := ToolBar1.Buttons[ToolBar1.ButtonCount - 1].BoundsRect.Right + 1; // rechts vom letzten Button
    end;
    tb.Parent := nil; // damit das nachfolgende Setzen von Left auch klappt
    tb.Left := L;
    tb.Parent := ToolBar1;
  end;
end;
Du kannst natürlich auch nur einzelne Buttons übertragen, musst aber berücksichtigen, dass sich der Index aller nachfolgenden Buttons beim Herauslösen eines Buttons aus der Quell-Toolbar ändern.

tomkupitz 6. Jul 2023 08:22

AW: ToolButtons einer ToolBar "verschieben"
 
Danke dir, das funktioniert gut.


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