As David mentions, the problem is that the font is used in your row grid. However, it is not entirely accurate to say that the default font in Delphi is MS Sans Serif . It used to be MS Sans Serif , but was changed (in Delphi 2006) to Tahoma .
You can see how a certain version of Delphi chooses the default font by checking the source of the Graphics block in the RTL source of this particular version of Delphi (since the IDE is built using this code), in particular, the InitDefFontData strong> procedure (and in older versions Delphi - record DefFontData strong>).
As of (at least) Delphi XE4 , the default Tahoma font will be replaced with any parameter to replace the font for the value specified as MS Shell Dlg 2 , as indicated in the registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes\
NB - from code verification in XE4 it is possible that if this key does not exist or is not available, or if there is no substitution entry for the MS Shell Dlg 2 font, then MS Sans Serif will still be used. It’s hard to say, since this behavior, when the “CLR” is defined, that should no longer be, since Delphi no longer supports .NET, and the IDE does not seem to be compiled with the CLR, but there is no way to be some just checking the code. what conditional definitions can be used when compiling the IDE.
However, whatever font is used by the IDE, and nevertheless, it selects this font, this only affects the new forms created in the IDE.
For existing forms, as in this case, the problem is not with TStringGrid as such, but rather that you created a project in the Delphi version that used the default font, which executed / did not support Unicode.
The act of opening a project in a new version of Delphi did not change the font used in your form, therefore the form saved in Delphi 7 using MS Sans Serif still uses this font when opening it in Delphi XE5 .
Then the TStringGrid element uses the MS Sans Serif font because it is the font set on the form, and the default value for the controls on the form is to use their parent control font.
i.e. This particular instance of TStringGrid uses MS Sans Serif because the form on which it is placed (still) uses MS Sans Serif .. p>
In such cases, you should change the font of the form to Tahoma or a. n. another suitable font with Unicode support.
All form controls still configured to use their parent font will then use that font. When doing this in a real application, you can find some controls with ParentFont installed by FALSE that will need to be solved individually, and even if the font settings are “inherited”, your form projects may need further work to improve the situation due to changes appearance as a result of changing the font.
Please note that even this Tahoma change was overtaken by changes in Windows itself, and if you want to use a different default font (in new forms / projects), you can find useful information here .