Hallo Frank,
hier ist ein anderer Ansatz ("Vertauschen, bis nichts mehr vertauscht werden kann"):
Delphi-Quellcode:
procedure OrderToolButtons (aToolBar: TToolBar);
var
Index : Integer;
btn1, btn2 : TToolButton;
swapped : Boolean;
begin
repeat
swapped := False;
for Index := 0 to aToolBar.ButtonCount - 2 do
begin
btn1 := aToolBar.Buttons[Index];
btn2 := aToolBar.Buttons[Index + 1];
if (btn2.Tag < 0) then
Continue
else
if ((btn1.Tag < 0) or (btn1.Tag > btn2.Tag)) then
begin
btn2.Left := btn1.Left;
swapped := True;
end;
end;
until (not swapped);
end;
Buttons mit einem negativen Tag-Wert werden in der ursprünglichen Reihenfolge ans Ende der Toolbar gesetzt, alle anderen Buttons werden über ihren Tag-Wert aufsteigend angeordnet.
Gruß Hawkeye