David が言及しているように、問題は文字列グリッドで使用されるフォントです。ただし、Delphi のデフォルト フォントがMS Sans Serifであると言うのは厳密には正確ではありません。以前はMS Sans Serifでしたが、(Delphi 2006 で) Tahomaに変更されました。
Delphi の特定のバージョンの RTL ソース内のグラフィックスユニットのソースを調べることで、特定のバージョンの Delphi がどのようにデフォルト フォントを選択するかを確認できます(IDE はそのコードを使用して構築されているため)。具体的には、InitDefFontDataプロシージャ(および、Delphi の古いバージョンではDefFontDataレコード)です。
(少なくとも)Delphi XE4の時点で、デフォルトのTahomaフォントは、レジストリに設定されているように、MS Shell Dlg 2として識別される値のフォント置換の設定によって置き換えられます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes\
注意 - XE4 のコードを調べると、このキーが存在しないかアクセスできない場合、またはMS Shell Dlg 2フォントの代替エントリがない場合でも、 MS Sans Serifが引き続き使用される可能性があります。これは「CLR」が定義されているときの動作であるため、わかりにくいですが、Delphi は .NET をサポートしなくなり、IDE はおそらく CLR が定義された状態でコンパイルされていないため、これはもはや当てはまりませんが、そうする方法はありません。 IDE のコンパイル時にどの条件定義が適用されるかは、コードを調べるだけでわかります。
ただし、IDE がどのフォントを使用していても、そのフォントを選択していても、これは IDE で作成された新しいフォームにのみ影響します。
この場合のように、既存のフォームの場合、問題はTStringGrid 自体にあるのではなく、Unicode をサポートする/サポートしないデフォルト フォントを適用したバージョンの Delphi でプロジェクトを作成したという事実にあります。
プロジェクトを新しいバージョンの Delphi で開いても、フォームで使用されているフォントは変更されませんでした。そのため、Delphi 7でMS Sans Serifフォントを使用して保存されたフォームは、 Delphi XE5で開いたときにそのフォントを引き続き使用しています。
次に、TStringGridコントロールはMS Sans Serifフォントを使用します。これは、フォームに設定されたフォントであり、フォーム上のコントロールのデフォルトでは親コントロールのフォントを使用するためです。
つまり、このTStringGridの特定のインスタンスは、 MS Sans Serifを使用しています。これは、それが配置されているフォームが(まだ) MS Sans Serifを使用しているためです。
このような場合、フォーム フォントをTahomaまたはその他の適切な Unicode 対応フォントに変更する必要があります。
親コントロールのフォントを使用するように設定されているフォーム上のすべてのコントロールは、このフォントも採用します。実際のアプリケーションでこれを実行すると、ParentFont が FALSE に設定されたいくつかのコントロールが見つかる場合があります。これは個別に対処する必要があり、フォント設定が「継承」されている場合でも、外観の変更により、フォームのデザインを整理するためにさらに作業が必要になる場合があります。フォント変更の影響です。
このTahomaへの変更でさえ、Windows 自体の変更に取って代わられていることに注意してください。他のデフォルト フォントを (新しいフォーム/プロジェクトで) 適用したい場合は、ここで役立つ情報を見つけることができます。