環境:WindowsXP、DelphiXe2Enterprise
問題:MessageDlg関数が英語表記になってしまいました。
MessageDlg('テキスト',mtConfirmation, [mbYes, mbNo], 0)
上記の使い方の場合は以前までは、メッセージダイアログが、
---------------
確認
---------------
テキスト
はい いいえ
---------------
と表示されていたのですが、気づいたら
---------------
confirm
---------------
テキスト
Yes No
---------------
になってしまいました。
心当たりとしましては、VS2010をインストールし、
その際に.NETFramework4.0も同時にインストールしました。
しかしvclと.NETFrameworkは関係ないよなぁと悩んでるところです。
どなたか当現象を知ってる方おられますでしょうか。
MessageDlgはWindowsの機能を呼び出しているので
.NETFramework4.0が影響していることは考えられます。
.NETFramework4.0のインストールで
「.NETFramework4.0 Language Pack 日本語」
が入っていないとかかな?
take様
ありがとうございます。
調べてみましたが、Language Pack 日本語はインストールされていました。
MessageDlg関数の根っこを調査してみたところ、
[Vcl.Consts]の[SMsgDlgConfirm = 'Confirm']
を参照していて、ここを"確認"と変更したら
メッセージダイアログのタイトルも"確認"に変更されました。
しかし、当現象が発生している端末では[Vcl.Consts]は、
C:\Program Files\Embarcadero\RAD Studio\9.0\source\vcl
に格納されているものを参照しているのですが、
別端末で開発環境を作成しテストしたところ、
C:\Program Files\Embarcadero\RAD Studio\9.0\source\vcl\ja
の[Vcl.Consts]を参照していて[SMsgDlgConfirm = '確認']となっていました。
なんらかの拍子で参照が[vcl\ja]→[vcl]へ変わってしまったのでしょうか。。。
不本意ですが、
C:\Program Files\Embarcadero\RAD Studio\9.0\source\vcl
を日本語化する事で対応しました。よって締めます。
ご回答して頂いた方ありがとうございました。