Entwickler-Ecke

Windows API - mbyes, mbno = Überall in Deutsch statt der Windowssprache?


Biarchiv - Fr 19.03.10 16:41
Titel: mbyes, mbno = Überall in Deutsch statt der Windowssprache?
Hallo,

kann es sein wenn ich ein Delphi (de) hab und ein Programm compiliere. Werden dann auf einem Windows in eng. die Buttons JA/NEIN angezeigt? Wenn ja, wie kann ich das in der Win-Sprache haben?


Delphi-Quelltext
1:
if (messagebox(0, PChar(st2), 'Register', MB_YESNO or MB_ICONINFORMATION) = mrYes) then                    



Delphi-Quelltext
1:
if MessageDlg( 'Do you want to save this project?', mtConfirmation, [mbyes, mbno], 0) = mrYes then                    


platzwart - Fr 19.03.10 16:43

mbYes bzq. mmNo sind nur Konstanten. Eigentlich sollte ein deutsches Windows dann Ja und Nein anzeigen.


Biarchiv - Fr 19.03.10 16:52

user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:
mbYes bzq. mmNo sind nur Konstanten. Eigentlich sollte ein deutsches Windows dann Ja und Nein anzeigen.


Zeigt ein englisches Windows auch Ja und Nein an? 2 User haben da was gemailt.


Martok - Fr 19.03.10 17:11

MessageDlg verwendet NICHT den Windows-Standard, sondern ein Delphi-eigenes Fenster. Und das hat dann die Sprache die das compilierende Delphi hatte.

Windows.MessageBox tut das IIRC nicht.


Delete - Fr 19.03.10 19:53

Kurz und knackig:
MessageBox: Windows Sprache
MessageDlg: Delphi Sprache


theo - Fr 19.03.10 21:37

Viele der von Delphi verwendeten String-Konstanten sind in "Consts.pas" definiert. Eine Version von einem englischen bzw. deutschen Delphi in das Verzeichnis der Projekt-Quellen kopieren und schon sind alle entsprechenden Meldungen englisch bzw. deutsch.
Im Inet findet man verschiedene Versionen der Unit. Das Prinzip funktioniert mit allen Sprachen, die nur ANSI-Zeichen benötigen.
Bei anderen Sprachen (z.Bsp. russisch) muss mann das Programm auch in einer russischen Sprachumgebung (Windows-Systemeinstellungen) erzeugen.