// Die Buttons einer Toolbar werden verschoben, bzw. miteinander vertauscht:


// Getestet mit D4 unter XP

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;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke