Entwickler-Ecke
Sonstiges (Delphi) - Änderung der Sprache im MessageDlg zur Laufzeit
nimra - Fr 28.03.03 15:45
Titel: Änderung der Sprache im MessageDlg zur Laufzeit
Hallo zusammen,
hat irgendjemand ein Vorstellung, wie man die im MessageDlg verwendete Sprache zur Laufzeit verändern kann?
Armin
Moderiert von
Tino: Absätze entfernt.
Tomac - Fr 28.03.03 15:54
Was genau meinst du mit der Sprache? Wenn du den Text meinst, dann könntest du das ja so machen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var s1,s2:string; begin s1:='Das ist eine Nachricht'; s2:='This is a message';
messagedlg(s1,mtinformation,[mbok],0); messagedlg(s2,mtinformation,[mbok],0); |
nimra - Fr 28.03.03 15:57
Ich meine nicht den Text, sondern die Caption und die Buttons (zB: Ja/Nein - Yes/No)
Tomac - Fr 28.03.03 18:02
Das Problem hatte ich auch schon mal, konnte es aber nicht lösen. Ich glaube es liegt an der Delphi-Version (Sprache).
Gausi - Fr 28.03.03 18:21
wenn du die Buttons auf deutsch haben willst, dann kannst du es mit
Delphi-Quelltext
1:
| with application do Messagebox('Das ist die Nachricht...','...und das die Caption',MB_OK); |
probieren. Geht aber nur mit Windows (glaub ich). Vorrausetzung ist ausserdem, dass die Windows-Version deutsch ist.
Anstelle von MB_OK geht auch MB_YESNO, MB_YESNOCANCEL, MB_OKCANCEL usw.
wulfskin - Fr 28.03.03 19:12
Das übersetzt aber nicht die Sprache der Buttons. Aber ich denke das geht auch nicht, da die Sprache in der Datei consts.pas festgelegt wird und die Namen dann mit hineinkompiliert werden. Einzige Möglichkeit: Eigenen Dialog erstellen!
Gruß wulfskin!
Christian S. - Fr 28.03.03 19:16
Doch, das funktioniert! Ich habe es selbst schon so gemacht. Allerdings direkt mit Application.MessageBox, aber das ist ja nur Geschmackssache.
Delete - Fr 28.03.03 19:20
Die Messagebox von TApplication nimmt seine Caption für die Buttons von Windows und somit die Sprache von Windows. Der MessageDLG ist eine Borland Kreation und nimmt die Captions der Buttons aus der Const.pas und die ist von Delphi abhängig und dessen Sparchversion abhängig.
Renegade - Sa 29.03.03 13:07
Da hat Luckie recht!
Man muß sich also überlegen, was man erreichen will.
Zum einen kann man das Prog zu erstellen, daß es sich an die Vorgaben (in diesem Fall Sprache) von Windows richtet - benutze MessageBox.
Will man aber ein Prog haben, welches die Einstellungen von Win ignoriert muß man entweder den MessageDLG benutzen (Sprache ist von vornherein festgelegt - siehe Delphi-Version) oder aber man muß eigene Dialoge proggen.
Es gibt außerdem noch dir Möglichkeit auf die Windows-Dialoge direkt zuzugreifen - es ist nur nicht zu empfehlen - zu kompliziert und Fehleranfällig.
Gruß Renegade
Delete - Sa 29.03.03 14:46
Renegade hat folgendes geschrieben: |
Es gibt außerdem noch dir Möglichkeit auf die Windows-Dialoge direkt zuzugreifen
|
Ob ich nun
Delphi-Quelltext
1:
| Application.Messagebox(Terxt, Caption, Flags); |
schreibe oder
Delphi-Quelltext
1:
| Messagebox(Handle, Text, Caption, Flags); |
Macht keinen Unterschied. Apllication.Messagebox ist nur die Kapselung, vom Messagebox-Aufruf.
Zitat: |
- es ist nur nicht zu empfehlen - zu kompliziert und Fehleranfällig.
|
Ein kleiner Scherz zum Mittag oder wie?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!