Which kind of BalloonHint do you mean? The one which opens with TPopupNotifier or the one which opens from TTrayIcon? Or another one? Please be more specific.
[EDIT]
Studying the code of TTrayIcon I get the impression that it uses a TPopupNotifier to display the BalloonHint. Can you confirm this? I don't have much experience with these components, but it seems to me that TPopupNotifier should have a property to control the fonts of the Text and the Title.
[EDIT-2]
Something else which I don't understand: You write in the first post that you have white text on white background. Why white? According to the sources, the background color of the hint window should be $00DCFFFF which is some pale yellow. Hard-coding this value seems to be a bug in my opinion. I think the correct value should be clInfoBk since the text and title labels of the hint window have the text color clInfoText - these two colors are a matching pair and the widgetset should make sure that there is sufficient contrast always.
[EDIT-3]
I don't want to wait for the answer. Using $DCFFFF as hint windows background color is certainly wrong and shows for me on Linux/gtk2 a similar symptom as reported: In this widgetset clInfoText is a bright text color, and together with the pale yellow background color this results in almost inivisible text. Defaulting Color to clInfoBk, however, results in bright text on dark background. Switching to Linux/qt or Windows I get black text on pale yellow background, because the colors clInfoBk and clInfoText are different now, but it is a legible combination again.
Therefore, I applied this fix to Lazarus trunk. If you do not use trunk you can fix it easily by yourself:
- Open the unit popupnotifier.pas in folder "lcl" of you Lazarus installation
- Near line 245, in TNotifierForm.Create, you'll find the instruction "Color := $DCFFFF". Replace it by "Color := clInfoBk;".
- Recompile the IDE ("Tools" > "Build Lazarus with profile..."
- After a while Lazarus restarts and should have the fix built-in.
Test and report back.