Die Toolbar-Buttons erzeugen


Für unsere Buttons ist ein TBBUTTON-Record erforderlich. Es enthält verschiedene Eigenschaften, und Ihre Aufgabe besteht eigentlich nur darin, die Anzahl der Buttons festzulegen, deren Eigenschaften Sie dann im Vorfeld natürlich auch schon füllen könnten. In unserem Beispiel sind vier Buttons deklariert worden:

var
  tbButtons: Array[0..3] of TTBButton;


Ein typischer Toolbar-Button wird dann so erzeugt:

with tbButtons[0] do
begin
  iBitmap := 0;                        // Bitmap-Index (Null-basierend)
  idCommand := IDC_BUTTON1;            // Button-ID
  fsState := TBSTATE_ENABLED;          // Button-Status
  fsStyle := BTNS_BUTTON;              // Button-Typ
  dwData := 0;
  iString := 0;
end;


Für einen Separator nutzen Sie ein anderes Stilattribut, während Sie den Großteil der anderen Parameter auf Null setzen können (weil diese bei einem Separator ja nicht benötigt werden):

with tbButtons[1] do
begin
  iBitmap := 0;
  idCommand := 0;
  fsState := TBSTATE_ENABLED;
  fsStyle := BTNS_SEP;                  // Separator-Stilattribut
  dwData := 0;
  iString := -1;
end;


Ein drittes Stilattribut finden Sie im dritten Button (eigentlich ist es der vierte, weil man den Separator mitrechnen muss), der später ein Dropdown-Menü anzeigen soll:

with tbButtons[3] do
begin
  ...
  fsStyle := BTNS_DROPDOWN;             // Dropdown-Stil
  ...
end;

Hinweis

Das Beispielprogramm benutzt eine spezielle Unit, "CommCtrl_Fragment.pas". Diese Unit enthält die neuen Button-Stile der Version 5.80, die von Microsoft als neuer Standard empfohlen werden. Diese Stilattribute beginnen mit dem Präfix "BTNS_", entsprechen aber ansonsten den bisher gewohnten Attributen. Hintergedanke ist, Verwechslungen mit den Fensterattributen der Toolbar zu vermeiden, die mit dem Präfix "TBSTYLE_" beginnen. Das Beispielprogramm demonstriert Ihnen die Anwendung der neuen Stile.
Die Unit wird allerdings nur benutzt, wenn Sie das Beispielprogramm mit Delphi 5 kompilieren. Sie sollten vorher prüfen, ob Ihre Delphi-Version diese Änderungen überhaupt noch benötigt. Probieren Sie dann ggf. aus, ob Sie das Programm mit der genannten Version kompilieren können.