I have 3 monitors, one HD, one UHD and one 3840x2400 with 250% scaling. My program uses multiple forms which are intended to be used on multiple monitors. If my program resides on the 3840 monitor, the TAdvOfficeHint.font.size that displays on other monitors is huge. I haven't found a way to specify a TAdvOfficeHint for each form and set its font.size and width appropriate for the monitor.

Is there any way to have separate TAdvOfficeHint for each form?

At this moment, TAdvOfficeHint sets the hint application wide.
Maybe implement an event handler for AdvOfficeHint.OnBeforeShowHint and set the font as desired from there?

Thank you for the prompt reply. After a few false starts, I found your suggestion worked very well. Here is the code that did the job:

procedure TForm1.AdvOfficeHint1BeforeShowHint(Sender: TObject;
AControl: TControl; AHintInfo: TAdvHintInfo; var UseOfficeHint: Boolean);
//iHintFontSize is global set by Ctrl+Plus/Minus
//iMaxMenuHintWidth is global set from Config menu
iCallingPPI : integer;
iCallingPPI := Acontrol.CurrentPPI;

AdvOfficeHint1.Font.Size := MulDiv(iHintFontSize,iCallingPPI, self.GetCurrentPPI);
AdvOfficeHint1.HintWidth := MulDiv(iMaxMenuHintWidth,iCallingPPI, self.GetCurrentPPI);