Autor |
Beitrag |
TheNameless
Hält's aus hier
Beiträge: 10
|
Verfasst: So 04.02.07 16:20
Hab ein Problem, habe Delphi das natürlich auf Deutsch, nun will ich aber englische Programme programmieren, aber Dialoge wie MessageDlg, InputQuery kann ich nicht anpassen. Leider geht Delphi dabei das auch nicht nach der Sprache des Betriebsystems.
Habs bis jetzt dadurch gelöst indem ich nach dem Compilieren, den Part mit einem Resource Editor nachbearbeitet habe, das ist aber ziehmlich nervig, gibts da auch eine andere Lösung?
Suchen half leider nichts :/
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: So 04.02.07 16:27
Weiß nicht, ob dir das weiterhilft, aber ich bin der Meinung, mal gehört zu haben, dass die Buttons des MessageDialogs in der Sprache von Windows angezeigt werden. So findet man z.B. in englischsprachigen Installationen Dialoge mit englischem Text und deutschen Buttons. 
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
TheNameless 
Hält's aus hier
Beiträge: 10
|
Verfasst: So 04.02.07 16:29
Ja, dachte ich auch, aber es ist leider nicht so
Edit: Es steht immer das drin, was in der Resource steht, also man kann mit nem Ressourcen Editor das Ja in ein Jopp ändern...oder so... (Also ist keine typische Delphi Ressource)
|
|
HelgeLange
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Mo 05.02.07 16:37
Das Problem bei dir ist, dass Du zwar Dein Windows solange auf andere Ländereinstellungen setzen, wie du lustig bist, das ändert aber nichts an den files in Deiner Windows-installation. All Deine Menüeinträge von Windows etc bleiben trotzdem in deutsch...
Ich lebe in Venezuela, habe einen Computer mit englischem Windows, einen mit spanischem und einen mit Finnisch-Englischem Windows (frag lieber ned, hehe)... Meine von Delphi angezeigten Standard-Windows-Messageboxen haben dann ein "yes no cancel", "sí, no, Cancelar" bzw. "kyllä ei .."
Also mach Dir keine Sorgen um Dein späteres Program, diese Sachen werden in der jeweiligen Sprache der Windows-installation angezeigt (nicht der country settings!)
Hoffe, geholfen zu haben
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
|
|
Marco D.
      
Beiträge: 2750
Windows Vista
Delphi 7, Delphi 2005 PE, PHP 4 + 5 (Notepad++), Java (Eclipse), XML, XML Schema, ABAP, ABAP OO
|
Verfasst: Mo 05.02.07 16:43
Hatte ich doch Recht. 
_________________ Pascal keeps your hand tied. C gives you enough rope to hang yourself. C++ gives you enough rope to shoot yourself in the foot
|
|
crowley
      
Beiträge: 406
Win XP, Win Vista, Mandriva, Ubuntu
Delphi 4-8, Delphi 2006, Delphi 2007
|
Verfasst: Di 06.02.07 16:43
Hallöli
falls es aber möglich sein soll, auch auf einem englischen windows, niederländische button beschriftungen im MessageDlg zu verwenden, kannst du folgende Funktion verwenden:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| function MessageDlgEx(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; Captions: array of string; HelpCtx: Longint) : integer; var aMsgDlg : TForm; i : integer; dlgButton : TButton; CaptionIndex : integer; begin aMsgDlg := CreateMessageDialog(Msg, DlgType, Buttons);
try CaptionIndex := 0; for i := 0 to aMsgDlg.ComponentCount - 1 do begin if (aMsgDlg.Components[i] is TButton) then begin dlgButton := TButton(aMsgDlg.Components[i]); if CaptionIndex > High(Captions) then break; dlgButton.Caption := Captions[CaptionIndex]; inc(CaptionIndex); end; end;
aMsgDlg.HelpContext := HelpCtx; result := aMsgDlg.ShowModal; finally aMsgDlg.Free; end; end; |
Gruss,
Crowley
|
|
TheNameless 
Hält's aus hier
Beiträge: 10
|
Verfasst: Fr 01.06.07 20:18
@crowley
Danke, könnte ne möglichkeit sein.
Nene, ich hab ja nicht die Ländereinstellungen geändert sondern diesen Fehler hat mir ein User meines Programms gemeldet. Und ich kann es bestätigen, wenn ich im Ressourceneditor (z.B. exescope, ResHack) bei den Strings das Ja in ein blub umänder, steht in der Dialogbox anstatt Ja blub.
|
|
|