2

Delphi 2010では、TMenuOptionや他のタイプのVCLコントロールにギリシャ語のシンボル(アルファ、ベータなど)を表示したいと考えています。TMenuOptionにギリシャのシンボルを表示する方法

TEdit.Text or TMenuItem.Caption := 'Hydrogen ' + chr(945) + ' More Text' 

を割り当て

が正常に動作するようです。

これはすべてのマシンで動作しない可能性があると心配です。 TEditはフォントプロパティを持っていますが、TMenuItemはそうではありませんので、デフォルトのシステムフォントを使用していると思います。

フォントに関係なく、chr(945)は常にギリシャ文字として表示する必要がありますか?もしそうでなければ、chr(945)が常にフォントにハードワイヤリング以外のアルファ文字として画面に表示されるようにする方法があるでしょうか(システムフォントでは難しいでしょう...)

TIA

答えて

1

Delphi 2010はユニコードなので、chr(945)は常に同じ文字(この場合はギリシャ語のアルファ)を​​指します。この文字は、メニュー項目を描画するために使用されるフォントにその文字が含まれている場合、正しく表示されます。なぜなら、フォントに特定の文字が含まれていない場合、Windowsで通常使用される疑問符を除いて、別の文字が描画される危険はありません。

ほとんどのWindowsフォントには、一般的なユニコード文字(ギリシャ語を含む)が含まれています。しかし、ユーザは、そうでない別のフォントを選択することができるかもしれない。システムにインストールされている別のフォントを使用して、自分でメニューを描くことができますが、これは通常、そのままの状態で動作するものにとっては非常に多くの作業になります。

3

また、定数を使用することもできます。ソースファイルもunicodeなので、任意の種類の定数を追加できます。ソースをユニコードとして保存することを忘れないでください。

const 
    alpha = 'α'; 
    beta = 'β'; 
    gamma = 'γ'; 
+0

そうですが、それは問題ではありません。 chr(945)と 'α'の両方が同じ文字を返します。どちらもメニューキャプションで使用すると問題が発生する可能性があります。 – GolezTrol

+0

ありがとう、Gamecat、騒ぎのため。 GolezTrolが指摘したように、それはまさに私の質問ではありませんでした。私が選んだ古いユーティリティの中には、それらをうまく扱えないものがあるため、私の好みは自分のユニットに国際文字を埋め込まないことです。 – RobertFrank

関連する問題