Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schriftart bei TMainMenu änderbar? (https://www.delphipraxis.net/109162-schriftart-bei-tmainmenu-aenderbar.html)

ptown67 25. Feb 2008 14:04


Schriftart bei TMainMenu änderbar?
 
Servus Delphi-Freaks!

Ich arbeite zur Zeit an einem Browser. Klappt alles bestens. Bin schon fast fertig damit. Für die letzten Feinheiten, könnt ich jedoch noch folgende Info gebrauchen:

Ich habe dem gesamten Projekt die Schriftart 'Verdana' zugewiesen. Jedoch ist die Schriftart im MainMenü immer noch unverändert. Auch im Objektinspektor lässt sich das nicht festlegen. :(

Kann mir jemand einen Tipp geben, wie ich im MainMenü die Schriftart Verdana verwenden kann?

Danke für Eure Antworten...

Gruß ;)

Union 25. Feb 2008 14:32

Re: Schriftart bei TMainMenu änderbar?
 
Dazu musst Du OwnerDraw des Hauptmenüs auf True setzen und dann jedes Menüelement neu dimensionieren und zeichnen (TMenuItem.OnDrawItem, OnMeasureItem):

Delphi-Quellcode:
procedure TForm1.MenuDrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; Selected: Boolean);
begin
   ACanvas.Font.Name := 'Verdana';
   ACanvas.Font.Size := 15;
   ARect.Left := 4;
   DrawText(ACanvas.Handle, PChar(TMenuItem(Sender).Caption), -1, ARect, DT_LEFT or DT_VCENTER or DT_SINGLELINE or DT_NOCLIP);
end;

procedure TForm1.MenuMeasureItem(Sender: TObject;
  ACanvas: TCanvas; var Width, Height: Integer);
var
   Size : TSize;
begin
   ACanvas.Font.Name := 'Verdana';
   ACanvas.Font.Size := 15;
   Size := ACanvas.TextExtent(StripHotkey(TMenuItem(Sender).Caption));
   Width := Size.cx;
   Height := Size.cy;
end;

SirThornberry 25. Feb 2008 14:37

Re: Schriftart bei TMainMenu änderbar?
 
Ich würde dir empfehlen generell auf Verdana zu verzichten und die Einstellungen des Users zu respektieren. Einige Nutzer wählen ihre Schriftart danach aus das sie auf dem Monitor gut lesbar ist bzw. überhaupt lesbar für den Nutzer. Wenn ein Nutzer eine andere Schriftart wünsch kann er das in seinem Windows umstellen.

ptown67 25. Feb 2008 14:50

Re: Schriftart bei TMainMenu änderbar?
 
Danke für die Antworten! ;)

@ Union:

Hat funktioniert :thumb:

Gruß ;)

J Kadison 1. Jun 2009 20:10

Re: Schriftart bei TMainMenu änderbar?
 
Hey Ich würde gerne das Thema noch einmal aufgreifen. Bis dahin funktioniert das Alles auch super bei mir.

Mein Problem allerdings ist, ich möchte jetzt vor den Text noch ein Bitmap legen, das ich vorher meinem TMenuItem zugewiesen habe. wie kann ich das denn noch per Canvas da rein malen? Ich blicke den QT im moment garnicht . . . wo ich da noch was rein schmieren könnte

Achjaaa, und warum ist jetzt immer der erste Buchstabe unterstrichen? wie bekomm ich das denn wieder normal?

Sorry wenn die fragen jetzt en bisschen trivial sind, aber ich steh voll aufm schlauch

[edit] meine Rechtschreibung is so ne sache [/edit]

Gribbelfix 1. Jun 2009 21:01

Re: Schriftart bei TMainMenu änderbar?
 
Zumindest hierzu ganz schnell eine Kurzantwort:
Zitat:

Achjaaa, und warum ist jetzt immer der erste Buchstabe unterstrichen? wie bekomm ich das denn wieder normal?
Das sind die sogenannten Acclerator-Keys (Schnellzugriffstasten), d.h. mit Alt + UnterstrichenerBuchstabe kann dieser Menüpunkt dann aufgerufen werden.
Probier mal die Eigenschaft AutoHotkeys auf maManual zu stellen, dann werden hier keine automatischen Menüzuordnungen mit den Acclerator-Keys erstellt. An sich ist es aber eher eine praktische Sache...

Andreas

J Kadison 2. Jun 2009 19:37

Re: Schriftart bei TMainMenu änderbar?
 
Soo das Problem mit den "Acclerator-Keys" ist gelöst :thumb: wie sieht es denn jetzt noch mit den bildern aus? Hat dafür noch jemand ne lösung?

Luckie 2. Jun 2009 20:20

Re: Schriftart bei TMainMenu änderbar?
 
Da wo du den Text für den Menüeintrag ausgibst, zeichnest du eben noch das Icon oder Bitmap davor.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz