function MoveToolButton(TB: TToolbar; von, nach: Word; tausch: boolean): boolean;
var x: integer;
begin
with TB do begin
if (von < TB.ButtonCount) and (nach < TB.ButtonCount)
then begin
if nach < von then
Buttons[von].left := Buttons[nach].left
else for x := von + 1 to nach do
Buttons[x].left := Buttons[x - 1].left;
if tausch then if nach > von then
Buttons[nach - 1].left := Buttons[von].left
else for x := nach + 2 to von do
Buttons[x].left := Buttons[x - 1].left;
Result := true;
end else Result := false;
end;
end;
// --- Beispielaufrufe---
// (Zählung der Toolbuttons beginnt bei "0" !!)
// Der Button auf der Position 2 wird auf Position 6 gesetzt.
// Die Buttons dazwischen werden nach links verschoben.
procedure TForm1.Button1Click(Sender: TObject);
begin
if not
MoveToolButton(Toolbar1, 1, 5, false)
then showmessage('Fehler');
end;
// Der Button auf der Position 6 wird auf Position 2 gesetzt.
// Die Buttons dazwischen werden nach rechts verschoben.
procedure TForm1.Button2Click(Sender: TObject);
begin
if not
MoveToolButton(Toolbar1, 5, 1, false)
then showmessage('Fehler');
end;
// Der Button auf der Position 6 wird mit der Position 2 getauscht.
procedure TForm1.Button3Click(Sender: TObject);
begin
if not
MoveToolButton(Toolbar1, 5, 1, true)
// oder auch // MoveToolButton(Toolbar1, 1, 5, true)
then showmessage('Fehler');
end;