Windows10 + Code Typhon 7.10 (en Lazarus 2.0.6)
Zou graag de items in het menu aanpassen aan een bepaald font.size.
Graag een oplossing aub.
Windows10 + Code Typhon 7.10 (en Lazarus 2.0.6)
Zou graag de items in het menu aanpassen aan een bepaald font.size.
Graag een oplossing aub.
Hopelijk is er toch "iemand" die een eenvoudige oplossing heeft om alle items in het TMenu op Font.Size=16 te zetten.
Ik heb zo het vage vermoeden dat je dat helemaal niet kunt instellen, maar dat Windows (of een andere widgetset) dat voor jou bepaalt.
Je kunt wellicht OwnerDraw of True zetten en dan zelf alle captions tekenen...
Bart
Bedankt Bart,
Als ik OwnerDraw op True zet, waar moet ik dan de parameters zoals font.size en font.name ... enz opstellen.
Moet ik de menu dan (volledig met items) opnieuw definiëren, en hoe ?
Een voorbeeldje zou praktisch zijn.
Leo
Ik heb werkelijk geen idee.
Google op Delphi+TMenu+OwnerDraw?
Bart
Bart,
Google geeft veel uitleg, maar geen duidelijk voorbeeld.
In ieder geval bedankt voor je persoonlijke en enige steun.
Leo
Vraag eens op het Lazarus forum?
Bart
Bedankt Bart, zal ik doen!
Dank aan RVK voor de code.
De oplossing is:
Code:procedure TFMAIN.MenuItemRAPPORTENDrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState); begin // MenuItem1 ACanvas.Font.Name := 'Arialn'; //'Times New Roman'; ACanvas.Font.Size := 15; ACanvas.Font.Color:= clBlack; ACanvas.Brush.Style := bsClear; ACanvas.TextOut(ARect.left, ARect.Top, TMenuItem(Sender).Caption); end; procedure TFMAIN.MenuItemRAPPORTENMeasureItem(Sender: TObject; ACanvas: TCanvas; var AWidth, AHeight: Integer); begin // MenuItem1 ACanvas.Font.Name := 'Arial'; ACanvas.Font.Size := 15; AWidth := ACanvas.TextWidth(TMenuItem(Sender).Caption); AHeight := ACanvas.TextHeight('Tg'); end; procedure TFMAIN.SubMenuItem11DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; AState: TOwnerDrawState); begin // SubMenuItem1 ACanvas.Font.Name := 'Arialn'; //'Times New Roman'; ACanvas.Font.Size := 14; ACanvas.Font.Color:= clBlack; ACanvas.Brush.Style := bsClear; ACanvas.TextOut(ARect.left, ARect.Top, TMenuItem(Sender).Caption); end; procedure TFMAIN.SubMenuItem11MeasureItem(Sender: TObject; ACanvas: TCanvas; var AWidth, AHeight: Integer); begin // SubMenuItem1 ACanvas.Font.Name := 'Arial'; ACanvas.Font.Size := 14; AWidth := ACanvas.TextWidth(TMenuItem(Sender).Caption); AHeight := ACanvas.TextHeight('Tg'); end;
Leuk dat je terug rapporteert!
Bart
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks