Forum > Graphics

2023: How to change TMenu or TPopup properties like font size or color?


Awesome Programmer:

I need to change the font size or the font color of a popup menu on my form. I have gone up and down on the Internet and on this forum and I can't seem to find any working solution for my problem... I can't get the Popup Menu font size or its font name changed.

I set the OwnerDraw :=true and then assign handlers as follows.

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---procedure TForm1.PopupMenu1DrawItem(Sender: TObject; ACanvas: TCanvas;  ARect: TRect; AState: TOwnerDrawState);var  s: string;begin  // change font  ACanvas.Font.Name := 'Times';  ACanvas.Font.Size := 20;  ACanvas.Font.Style := [fsBold];  ACanvas.Font.Color := clYellow;  // change background  ACanvas.Brush.Color := clBlack;  ACanvas.Rectangle(ARect);  // write caption/text  s := (Sender as TMenuItem).Caption;  ACanvas.TextOut(ARect.Left + 2, ARect.Top + 2 , s);end;   
And I see NO CHANGES AT ALL. Besides, I noticed that drawitem and measureitem handler is not EXECUTING at all.

Any idea.
fpc 3.2.0
laz 2.0.10

It probably does not work on all widgetsets. It does nothing on Qt4 and GTk2.


[0] Message Index

Go to full version