0

Delphi 5 Professional German で構築された古い Delphi 5 プログラムを保守しています。

問題は、作成された実行可能ファイルのすべてのダイアログとエラー メッセージがドイツ語で表示されることです。場所が米国や英国などに設定されている英語版の Windows でも同様です。

英語版の Delphi 5 Pro が必要ですか、それとも設定オプション / コンパイラ スイッチ / 「出力言語」を変更するオプションはありますか?

IDE 言語について話しているのではありません。Delphi インストール ディレクトリにあるすべての *.DE ファイルを削除することで、英語に戻すことができることを既に学びました。

例:

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

更新: コメントに基づいて、ソース ディレクトリでドイツ語のメッセージを探しました。すぐにいくつかのファイルが見つかりました。

Source/Rtl/Sys/comconst.pas
Source/Rtl/Sys/sysconst.pas
Source/Rtl/Sys/comconst.pas
Source/Vcl/bdeconst.pas
Source/Vcl/comstrs.pas
Source/Vcl/consts.pas
Source/Vcl/dbconsts.pas
Source/Vcl/ib.pas
Source/Vcl/oleconst.pas

もっと簡単な方法があればいいのに。私がこの道を下っているとは思わないでください...

4

2 に答える 2

1

ツール「BDSSetLang.exe」のbinディレクトリにあります。インストール時にドイツ語と英語を指定した場合、そこでIDE言語、ライブラリなどの言語を変更できます。

したがって、問題を解決できるはずです。

また

これを試して。

//...bei einem Message Dialog die Beschriftungen der Buttons ändern
function xMessageDlg(const Msg: string; DlgType : TMsgDlgType;
                     Buttons : TMsgDlgButtons; Captions: array of string) : Integer;
var
  aMsgDlg : TForm;
  CaptionIndex,
  i : integer;
  dlgButton : TButton; // uses stdctrls
begin
  // Dlg erzeugen
  aMsgDlg := CreateMessageDialog(Msg, DlgType, buttons);
  CaptionIndex := 0;
  // alle Objekte des Dialoges testen
  for i := 0 to aMsgDlg.ComponentCount - 1 do begin
    // wenn es ein Button ist, dann...
    if (aMsgDlg.Components[i] is TButton) then begin
      dlgButton := TButton(aMsgDlg.Components[i]);
      if CaptionIndex > High(Captions) then Break;
      // Beschriftung entsprechend Captions-array ändern
      dlgButton.Caption := Captions[CaptionIndex];
      Inc(CaptionIndex);
    end;
  end;
  Result := aMsgDlg.ShowModal;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
var
  erg : integer;
begin
  erg := xMessageDlg('Hier steht der gewünschte Text,' + chr($0D) + 'die Buttons sind geändert',
                      mtConfirmation,
                      [mbYes, mbNo, mbCancel], // benutzte Schaltflächen
                      ['Alles', 'Teil','Abbrechen']); // zugehörige Texte
  case erg of // zugehörige Antworten
    mrYes : ShowMessage('"1" clicked');
    mrNo : ShowMessage('"2" clicked');
    mrCancel: ShowMessage('"3" clicked');
  end; // of case
end;

ソース: http://www.delphipraxis.net/3307-caption-der-buttons-yes-no-im-dialog-messagedlg-aendern.html

于 2013-05-29T09:30:10.237 に答える