Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Deutsche Dialoge in anderssprachigen Windows. Umgehbar? (https://www.delphipraxis.net/69009-deutsche-dialoge-anderssprachigen-windows-umgehbar.html)

Amnon82 9. Mai 2006 06:48


Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
 
http://img205.imageshack.us/img205/2615/1115cz.png

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 ...

Robert Marquardt 9. Mai 2006 07:02

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.

sgmeiner 9. Mai 2006 07:08

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?

himitsu 9. Mai 2006 13:21

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)

Mystic 9. Mai 2006 13:44

Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
 
Die meiner Meinung nach beste Möglichkeit wäre von Delphi-Referenz durchsuchenMessageDlg auf Delphi-Referenz durchsuchenApplication.MessageBox umzusteigen.

Bernhard Geyer 9. Mai 2006 19:48

Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
 
Mit GNU Gettext sollten viele Delphi-Text-Konstanten als übersetzung vorliegen und mit der Message-Dialog-Klasse des ElPacks ist es sehr einfach jede x-Beliebige Sprache auf jedem y-Beliebigen BS-System zu verwenden.

jbg 9. Mai 2006 20:11

Re: Deutsche Dialoge in anderssprachigen Windows. Umgehbar?
 
Zitat:

Zitat von Mystic
Die meiner Meinung nach beste Möglichkeit wäre von Delphi-Referenz durchsuchenMessageDlg auf Delphi-Referenz durchsuchenApplication.MessageBox umzusteigen.

Am einfachsten geht es, wenn man gegen die Runtime Packages RTL und VCL Linkt. Beim Außliefern einfach die .DE Dateien weg lassen und schon ist alles Englisch.

Amnon82 9. Mai 2006 23:27

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: http://www.delphipraxis.net/internal...ct.php?t=82736


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz