Manchmal ist es nötig, einzelne Items in einer MenuBar rechtsbündig anzuordnen. Zum Beispiel die
MDI-Buttons in der Menüzeile oder (in alter Zeit) den Menüeintrag "Hilfe", welcher sich immer am rechten Fensterrand befand.
Die SpTBXLib bietet in ihrer aktuellen Form keine direkte Möglichkeit, das zu realisieren. Die zugrunde liegende Toolbar 2000 dagegen schon. Leider sind die entsprechenden Schnittstellen protected. Man muss sie eigentlich nur sichtbar machen.
Zuerst erstellen wir uns ein Formular und darauf ein TSpTBXDock mit einer TSpTBXToolbar. Die Eigenschaft "MenuBar" der Toolbar setzen wir auf TRUE. Der Toolbar fügen wir wie gewohnt zwei TSpTBXItems namens "btn1" und "btn2" hinzu. Unser Code sieht damit wie folgt aus:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TB2Item, SpTBXItem, TB2Dock, TB2Toolbar;
type
TForm1 =
class(TForm)
dkTop: TSpTBXDock;
tbMain: TSpTBXToolbar;
btn1: TSpTBXItem;
btn2: TSpTBXItem;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Jetzt fügen wir im implementation-Bereich eine neue Klassendeklaration hinzu, welche die entscheidende Property sichtbar macht:
Delphi-Quellcode:
implementation
{$R *.dfm}
type
TMySpTBXItem = class(TSpTBXItem)
public
property ItemStyle;
end;
end.
Zuletzt erstellen wir einen Handler für das OnCreate-Ereignis des Formulars und weisen dem zweiten TSpTBXItem in der Toolbar das entsprechende Style-Flag zu:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
TMySpTBXItem(btn2).ItemStyle:= TMySpTBXItem(btn2).ItemStyle + [tbisRightAlign];
end;
Voila: Beim nächsten Start der Anwendung klebt der MenuItem an der rechten Seite (siehe Screenshot).