![]() |
Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
![]() So sieht ein Dialog auf einem anderssprachigen Windows aus. Ich programmier zur Zeit mit Delphi 2005 Personal deutsch. Kann ich die Messageboxen/Messagedialoge irgendwie in english hinbekommen? Bzw. die Buttons und Überschriften oder muss ich die Dialoge selber coden ... |
Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
Das kommt von ShowMessage und anderen Delphi-Dialogen. Diese sind zur installierten Delphi-Version lokalisiert.
Man sollte die Windows-Dialoge wie MessageBox verwenden. Diese sind zur Windows-Version lokalisiert. Bei komplizierteren Forms bzw. Dialogen muss man dann den Weg der Lokalisierung des ganzen Delphi-Programmes gehen. |
Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
So weit ich weiß, funktioniert das Ersetzen der deutschen SysConst.pas (im Verzeichnis <BDS>\<Version>\Source\Win32\rtl\sys) mit einer anderssprachigen, z.B. englischen.
Hatte bei mir damals mit BDS 2006 geklappt. Leider hab ich die Unit nicht mehr da. Vielleicht einfach mal danach googeln? |
Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
Leider ist das nur etwas Illegal, denn man würde ja dann die Sourcen einer anderen Delphiversion verwenden, welche man nicht gekauft hat (eventuell sollte das möglich sein, wenn einem wirklich beide Versionen gehören)
|
Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
Die meiner Meinung nach beste Möglichkeit wäre von
![]() ![]() |
Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
Mit
![]() ![]() |
Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
Zitat:
|
Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
Liste der Anhänge anzeigen (Anzahl: 1)
OK. MessageBox nimmt die Windowssprache für die Buttons her. Wenn mein Programm english ist, dann sind die Buttons Yes, No einfach Ja und Nein.
Delphi-Quellcode:
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; Kann man XMessageDLG nicht mit Messagebox kombinieren, sodass man auch die Beschriftung der Knöpfe definieren kann? Oder halt zu XMessageDLG den Titel des XMessageDLG ändern. Ich hab mal im Internet danach gesucht und XMessagebox gefunden. Leider nur in C++. Vielleicht kanns ja einer ins Delphi übersetzen. Hier die Lösung: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz