MessageDlg関数で英語表記になってしまった。

解決


おぽす  2013-06-25 18:03:24  No: 44739  IP: 192.*.*.*

環境:WindowsXP、DelphiXe2Enterprise
問題:MessageDlg関数が英語表記になってしまいました。

MessageDlg('テキスト',mtConfirmation, [mbYes, mbNo], 0)
上記の使い方の場合は以前までは、メッセージダイアログが、
---------------
確認
---------------
   テキスト
はい    いいえ
---------------

と表示されていたのですが、気づいたら
---------------
confirm
---------------
   テキスト
Yes        No
---------------
になってしまいました。

心当たりとしましては、VS2010をインストールし、
その際に.NETFramework4.0も同時にインストールしました。
しかしvclと.NETFrameworkは関係ないよなぁと悩んでるところです。
どなたか当現象を知ってる方おられますでしょうか。

編集 削除
take  2013-06-26 08:52:37  No: 44740  IP: 192.*.*.*

MessageDlgはWindowsの機能を呼び出しているので
.NETFramework4.0が影響していることは考えられます。

.NETFramework4.0のインストールで
「.NETFramework4.0 Language Pack 日本語」
が入っていないとかかな?

編集 削除
おぽす  2013-06-26 13:31:52  No: 44741  IP: 192.*.*.*

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]へ変わってしまったのでしょうか。。。

編集 削除
おぽす  2013-07-01 19:36:37  No: 44742  IP: 192.*.*.*

不本意ですが、
C:\Program Files\Embarcadero\RAD Studio\9.0\source\vcl
を日本語化する事で対応しました。よって締めます。
ご回答して頂いた方ありがとうございました。

編集 削除