Autor Beitrag
nimra
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 28.03.03 15:45 
Hallo zusammen,

hat irgendjemand ein Vorstellung, wie man die im MessageDlg verwendete Sprache zur Laufzeit verändern kann?

Armin

Moderiert von user profile iconTino: Absätze entfernt.
Tomac
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

Win XP
D6 Ent
BeitragVerfasst: 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:
ausblenden 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);  //Auf Deutsch
messagedlg(s2,mtinformation,[mbok],0);  //Auf Englisch
nimra Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 28.03.03 15:57 
Ich meine nicht den Text, sondern die Caption und die Buttons (zB: Ja/Nein - Yes/No)
Tomac
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

Win XP
D6 Ent
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Fr 28.03.03 18:21 
wenn du die Buttons auf deutsch haben willst, dann kannst du es mit
ausblenden 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.

_________________
We are, we were and will not be.
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: 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!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 358

Win XP Pro, Win 7 Beta
BDS 2006
BeitragVerfasst: 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

_________________
Sokrates (468 v.Chr. - 399 v.Chr.)
"Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen."
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ausblenden Delphi-Quelltext
1:
Application.Messagebox(Terxt, Caption, Flags);					

schreibe oder
ausblenden 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?