hRb hat folgendes geschrieben : |
1. Wie passt man die Schriftgröße im Mainmenu an? (es gibt keinen Font.Size-Parameter) |
Das hier in die OnShowForm:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| var dummy_x:Integer;
begin for dummy_x := 0 to Application.MainForm.ComponentCount - 1 do begin if Application.MainForm.Components[dummy_x] is TMenuItem then begin if (Application.MainForm.Components[dummy_x] as TMenuItem).GetParentMenu is TMainMenu then begin (((Application.MainForm.Components[dummy_x] as TMenuItem).GetParentMenu) as TMainMenu).AutoHotkeys := maManual; ((Application.MainForm.Components[dummy_x] as TMenuItem).GetParentMenu as TMainMenu).AutoLineReduction := maManual; ((Application.MainForm.Components[dummy_x] as TMenuItem).GetParentMenu as TMainMenu).OwnerDraw := True; (Application.MainForm.Components[dummy_x] as TMenuItem).OnDrawItem := MenuItem_MainMenu_DrawItem; (Application.MainForm.Components[dummy_x] as TMenuItem).OnMeasureItem := MenuItem_MainMenu_MeasureItem; end; end; end;
end; |
OnDrawItem ist zuständig für das Zeichnen eines Menüeintrages.
OnMeasureItem wird vor dem Zeichnen aufgerufen, hier kann z.B. die Höhe des Eintrages festgelegt werden.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TForm1.MenuItem_MainMenu_DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean); var X, Y: Integer; dummy_string: string; begin
dummy_string := TMenuItem(Sender).Caption; ACanvas.Font.Size := 28; X := ARect.Right div 2 - ACanvas.TextWidth(dummy_string) div 2; Y := ((ARect.Bottom - ARect.Top) div 2) - (ACanvas.TextHeight(dummy_string) div 2) + ARect.Top; ACanvas.TextOut(X, Y, dummy_string);
end;
procedure TForm1.MenuItem_MainMenu_MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width, Height: Integer); begin
ACanvas.Font.Size := 28; Width := ACanvas.TextWidth(TMenuItem(Sender).Caption); Height := ACanvas.TextHeight(TMenuItem(Sender).Caption);
end; |
Was ist noch zu tun?
Den Kopf vom Mainmenü auch anpassen, also das, was auf der Form direkt sichtbar ist
Viel Erfolg und frohe Weihnachten.