Menüeintrag rechts im Formular ausrichten |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Mit dieser Funktion kannst du Menüeinträge am rechten statt am linken Rand des Formulars anzeigen lassen. Es werden dabei alle Menüs ab dem angegebenen nach rechts verschoben. Hast du z.B. die Menüeinträge [Datei] [Bearbeiten] [Hilfe] [?], dann rufst du die Funktion im OnCreate-Ereignis des Formulars mit MenuItemRightJustify(Hilfe1); auf. Die Menüpunkte [Datei] und [Bearbeiten] bleiben links, [Hilfe] und [?] werden nach rechts verschoben.
function MenuItemRightJustify(MenuItem: TMenuItem): Boolean;
var
Info: TMenuItemInfo;
MenuHandle: THandle;
MenuIndex: Integer;
Caption: String;
begin
MenuHandle := MenuItem.Parent.Handle;
MenuIndex := MenuItem.MenuIndex;
FillChar(Info, SizeOf(Info), 0);
Info.cbSize := SizeOf(Info);
Info.fMask := MIIM_TYPE;
Result := GetMenuItemInfo(MenuHandle, MenuIndex, True, Info);
if not Result then Exit;
SetLength(Caption, Info.cch);
Info.dwTypeData := Pointer(Caption);
Info.cch := Info.cch + 1;
Result := GetMenuItemInfo(MenuHandle, MenuIndex, True, Info);
if not Result then Exit;
Info.fType := Info.fType or MFT_RIGHTJUSTIFY;
Result := SetMenuItemInfo(MenuHandle, MenuIndex, True, Info);
end;