Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi MsgDlg Knöpfe auch übersetzen (https://www.delphipraxis.net/23206-msgdlg-knoepfe-auch-uebersetzen.html)

Nicodius 30. Mai 2004 20:43


MsgDlg Knöpfe auch übersetzen
 
in einem meienr Programme sind drei Sprache nverfügbar

Deustch, Englisch und Französisch allerdings werden die Knöpfe in den MsgDLGs nicht übersetzt weil ich nicht weiß wie das geht

könnt ihr mir helfen

danke :D

Pseudemys Nelsoni 30. Mai 2004 20:46

Re: MsgDlg Knöpfe auch übersetzen
 
mit MessageBox oder MessageDlg ging das bin ich mir sicher. Eins von beiden

Nicodius 30. Mai 2004 20:47

Re: MsgDlg Knöpfe auch übersetzen
 
:D ich frage wie ;)

Pseudemys Nelsoni 30. Mai 2004 20:52

Re: MsgDlg Knöpfe auch übersetzen
 
ne hab mich wohl vertan *g*. Musst du dir wohl eine eigene machen.

Nicodius 30. Mai 2004 20:56

Re: MsgDlg Knöpfe auch übersetzen
 
sche...

meia bei ca 100 dialogen ^^ :D



gehts nicht iirrgendwie


stanlay hat mal gesagt mit delphi geht doch fast alles .. das zählt dann ja noch zu den leichteren dingen oder :D

Pseudemys Nelsoni 30. Mai 2004 20:58

Re: MsgDlg Knöpfe auch übersetzen
 
gehen tut auch alles - indem du es programmierst - oder in dem fall erstellst :mrgreen:

wieso bei 100 dialogen? du brauchst es ja nur 1mal erstellen und rufst es immer wieder auf oder?

Nicodius 30. Mai 2004 21:02

Re: MsgDlg Knöpfe auch übersetzen
 
ja aber alles umbennenen oder ich "loads over" :D

... naja und dann des ganze mal drei auch noch ;)

Pseudemys Nelsoni 30. Mai 2004 21:03

Re: MsgDlg Knöpfe auch übersetzen
 
verstehe gerade das problem nicht :mrgreen:

Nicodius 30. Mai 2004 21:12

Re: MsgDlg Knöpfe auch übersetzen
 
jaja ;)


ok dann muss ich wohl oder übels eine prozedur dafür schreiben .....

MathiasSimmack 30. Mai 2004 21:36

Re: MsgDlg Knöpfe auch übersetzen
 
the preacher's coming ... ;)

Zitat:

Zitat von Nicodius
Deustch, Englisch und Französisch allerdings werden die Knöpfe in den MsgDLGs nicht übersetzt weil ich nicht weiß wie das geht

Darum bevorzuge ich Sprachressourcen, die nach der im System eingestellten Sprache benutzt werden. Sprich: Das Grundprogramm ist bspw. Englisch, aber auf einem deutschen System wird die "*.de"-Ressource geladen. Mal ehrlich: Klar ist eine Sprachauswahl irgendwie witzig und amüsant, aber letzten Endes werde ich mich dann doch für die Sprache entscheiden, die mir liegt. Und das ist (wenn das Programm es unterstützt) dann eben Deutsch.

Nicodius 30. Mai 2004 22:23

Re: MsgDlg Knöpfe auch übersetzen
 
ja aber es soll ja international sein :mrgreen:

Luckie 30. Mai 2004 23:07

Re: MsgDlg Knöpfe auch übersetzen
 
Nimm eine Mesaagebox, diese hat immer die Sprache des installierten Systems.

Nicodius 30. Mai 2004 23:07

Re: MsgDlg Knöpfe auch übersetzen
 
aj das versteh ich ;) allerdings will ich ja das der benutzer PROGRAMMINTERN die sprache wählen kann :)

alcaeus 31. Mai 2004 03:24

Re: MsgDlg Knöpfe auch übersetzen
 
Na dann definiere dir deine eigene Funktion MessageDlg, die einfach die entsprechenden Sprachstrings ladet, das Symbol auswählt, die Buttonliste durchparst und danach die fertige Box mit dem bereits erwähnten Befehl "MessageBox" anzeigt. Das sollte doch nicht das Problem sein, oder?Wenn du in deinem Programm eine Funktion definierst, die bereits definiert ist, so wird die alte Funktion überschrieben, das gilt eben auch für MessageDlg.

Robert Marquardt 31. Mai 2004 05:15

Re: MsgDlg Knöpfe auch übersetzen
 
Das einfachste ist es die Windows-Dialoge zu verwenden. Siehe MessageBox etc.
Diese Dialoge sind zur installierten Windows-Version lokalisiert.
Die Delphi-Dialoge sind nicht sonderlcih gut ausgedacht.

alcaeus 31. Mai 2004 05:20

Re: MsgDlg Knöpfe auch übersetzen
 
Zitat:

Zitat von Nicodius
allerdings will ich ja das der benutzer PROGRAMMINTERN die sprache wählen kann

Ich glaube er will die Sprache unabhängig vom Betriebssystem festlegen. Deshalb ist das Überladen oder Überschreiben von Funktionen die beste Lösung. Beim Überschreiben hast du den Vorteil, dass du die bisherigen MessageDlg-Aufrufe nicht ändern musst. Es steckt aber viel Aufwand dahinter.

Greetz
alcaeus

Nicodius 31. Mai 2004 06:09

Re: MsgDlg Knöpfe auch übersetzen
 
haha das mit dem überladen hb ich eh schon gepostet das ichs jetzt mach ;)

Bernhard Geyer 31. Mai 2004 12:00

Re: MsgDlg Knöpfe auch übersetzen
 
Falls Du ein paar € ausgeben kannst, so schau mal das ElPack an.

Dort gibt es eine ElPrompt-Dialog-Klasse, in der die Button-Text übersetzbar sind.

Dafür könntest Du ein MessageDlg-Funktion schreiben, welche die Button-Caption vor dem Aufruf des Dialogs übersetzt.
Für die Einbau hast Du 2 Möglichkeiten:

1, Du ersetzt überall im Programm die ShowMeessage/MesssageDlg-Aufruf auf diene MyShowMessage-Funktion

2, Du verwendest die TNT-Realisierung, um Delphi-RTL-Funktionen zu hooken (Wie es die InstallTntSystemUpdates-Funktion ein paar Buggy-Delphi-Funktionen realsiiert), um statt der Orginal-Funktion deine erstellt mehrsprachige Version aufzurufen.

FriFra 31. Mai 2004 12:28

Re: MsgDlg Knöpfe auch übersetzen
 
Wie wär's denn damit ;)
http://www.swissdelphicenter.ch/de/showcode.php?id=946

P.S.: Ich versteh erhrlich gesagt nicht ganz, warum bei so vielen "Anworten" noch keiner gemerkt hat worum es eigentlich geht...

Bernhard Geyer 31. Mai 2004 12:39

Re: MsgDlg Knöpfe auch übersetzen
 
Zitat:

Zitat von FriFra
Wie wär's denn damit ;)
http://www.swissdelphicenter.ch/de/showcode.php?id=946

P.S.: Ich versteh erhrlich gesagt nicht ganz, warum bei so vielen "Anworten" noch keiner gemerkt hat worum es eigentlich geht...

Auch 'ne Möglichkeit. Kannt ich noch nicht. Aber meine Lösung (mit ElPack) kann auch Unicode 8) (auch wenn's für DE/EN/FR nicht benötigt wird)

Nicodius 31. Mai 2004 12:44

Re: MsgDlg Knöpfe auch übersetzen
 
hmm danke!

geht das auch mit "normalen" messageDlgs?

Bernhard Geyer 31. Mai 2004 12:49

Re: MsgDlg Knöpfe auch übersetzen
 
Wenn Du mit "normalen MsgDlgs" die MessageDlg-Funktion in Delphi meinst - Ja, gerade ausprobiert. Diese Funktion verwendet auch die gehookten Konstanten.

FriFra 31. Mai 2004 12:51

Re: MsgDlg Knöpfe auch übersetzen
 
Zitat:

Zitat von Nicodius
hmm danke!

geht das auch mit "normalen" messageDlgs?

Ja. Diese Werte werden in jedes Delphi.Programm fest "eincompiliert"...

In der consts sind etliche diese S... (wie. z.B. SMsgDlgOK) Konstanten, welche Du damit alle überschreiben kannst.
Du kannst den Hook jederzeit an belibiger Stelle in Deinem code durchführen. und die im Beispiel verwendeten Konstanten sind so auch nicht nötig, es reichen auch global deklarierte Variablen vom Typ array[0..MAX_PATH] of Char

Nicodius 31. Mai 2004 13:28

Re: MsgDlg Knöpfe auch übersetzen
 
vielen dank ich probiers!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:25 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