![]() |
messageboxex & mehrsprachiger dialog
hi,
ich versuche per messageboxEx einen mehrsprachigen dialog zu machen. Ich vermute, ich muss die entsprechenden Sprachdefinitionen (LANG_*, SUBLANG_*) im System definiert haben (wo mach ich das?), weil die Schaltflächen sind immer in deutsch... mal ein bisschen Quelltext:
Delphi-Quellcode:
Gruß Frank
function makelangid(p,s:word):word;
begin result:=p or (s shl 10); end; procedure TForm1.Button1Click(Sender: TObject); begin messageBoxEx( self.handle, PCHAR('text'), PCHAR('caption'), MB_YESNOCANCEL, makelangid(LANG_ENGLISH,SUBLANG_NEUTRAL) ); end; |
Re: messageboxex & mehrsprachiger dialog
Hi,
was meinst du mit dialog? Hille |
Re: messageboxex & mehrsprachiger dialog
eine messagebox halt ;)
mir gehts da um die button-beschriftungen, die bei MessageBox* durch windows gesetzt werden. |
Re: messageboxex & mehrsprachiger dialog
Zitat:
Aber er hat Recht ... ich hätte och gedacht, daß dann die Button in Englisch sein müßten, aber vermutlich muß auch noch das nötige Sprachprofil (die ganzen ResourceStrings und Co.) im Windows installiert sein. Hier ist jedenfalls nur Deutsch drauf und ich vermute mal, daß daher keine andere Sprache möglich ist auch mit makelangid(LANG_ENGLISH,SUBLANG_ENGLISH_US) nicht. Na ja, ich lad' im Moment eh meine eigenen Sprachen ... behandle das ganze also selber, weil ich die Button natürlich in der selben Sprache wie im Rest des Programms haben will (dieser Mischmasch is sch***). [edit]ich wünschte mir 'ne RedBox ._. |
Re: messageboxex & mehrsprachiger dialog
Oh, naja, Und was passiert da genau?
Ich kann mir das gerade nicht vorstellen, weil ich keine Ahnung habe was diese Box macht!! PS: Ich habe nähmlich so ein Problem mit Dialogen aber ich glaube das ist was anderes! Hille |
Re: messageboxex & mehrsprachiger dialog
MessageBoxEx ist was von der WinAPI ... man ruft sozusagen nur eine Prozedur von Windows auf, worin dann der gewünschte Dialog erstellt wird.
Und natürlich werden die Resourcen für den Dialog (wie z.B. die ButtonBezeichnungen) aus WindowsDLLs geladen. Der DateiÖffnenDialog ist ja auch aus der WinAPI, aber da hab ich über eine netten Hook die Möglichkeit den Text der enthaltenen Objekte zu ändern.
Delphi-Quellcode:
Das DialogItem 1 ist da z.B. der OK-Button ... einfach mal auf "OpenDialog" klicken und dort Rechts, der obere Button, da steht nicht OK drin :mrgreen:
SendMessage(GetDlgItem(hWnd, 1), WM_SETTEXT, 0, Integer(PChar('abc123')));
![]() |
Re: messageboxex & mehrsprachiger dialog
Ah. Nagut. Damit beschäftige ich mich einanderes mal. Vielen Dank für die Erklärung, werde es mir merken.
Hille |
Re: messageboxex & mehrsprachiger dialog
Zitat:
Gettext, eigene Forms oder etwas komplett anderes? |
Re: messageboxex & mehrsprachiger dialog
Zitat:
![]() ![]() ![]() ![]() |
Re: messageboxex & mehrsprachiger dialog
Oder wie wärs mit dem TElPromptDialog vom
![]() Damit kann man sehr einfach die Captions der "Standarddialogbox" ersetzen. Und es geht auch mit Unicode auch unter Win9x/ME. |
Re: messageboxex & mehrsprachiger dialog
möchte möglichst auf externe VCL verzichten...
(mir geht das auf den Senkel, dass ich massig Componenten installieren muss, bevor ich ein Projekt kompilieren kann. mal von der auf/abwärts-Kompatibilität abgesehen) @himitsu wenn ich das richtig sehe, brauchst du da separate Template-Resourcen (Wie erstellt man die?) und musst die Größe der dialogbox dynamisch anpassen (textabhängig). gibts da keine einfachere möglichkeit (ist ja letztendlich der gleiche Aufwand wie ein dynamisches form, wie es auch von showmessage verwendet wird)? Gruß Frank |
Re: messageboxex & mehrsprachiger dialog
Zitat:
Und Auf/Abwärtskompatiblität ist auch kein Problem. Ich verwende nur Komponenten wo ich auch die Sourcen bekomme. Damit bin ich auch vor Hersteller-Pleiten einige Zeit sicher und kann die Komponenten auch an neue IDE-Versionen anpassen. |
Re: messageboxex & mehrsprachiger dialog
Zitat:
Gruß Frank |
Re: messageboxex & mehrsprachiger dialog
Zitat:
Aber z.B. für TrayIcon brauchst Du auch keine Komponente - oder das ElPack :-) Und das ElPack setze ich auch nur damit ein damit alle Komponenten gutes XP-Theming in meiner Anwendung haben und nicht um alles anders zu Designen als Windows es vorgibt. Und der ElPack-Dialog schaut aus wie der normale Windows-Dialog, jedoch mit mehr möglichen Features. |
Re: messageboxex & mehrsprachiger dialog
Wenn Du die Sourcen hast, kannst Du die Schaltflächen auch hardcodiert übersetzen, bzw. Übersetzungsfunktionalität einbauen.
[added] Bei Win32-Api-Funktionen, wird das zugegebener Maßen etwas schwierig sein oder Überredungskunst kosten um die Sourcen zu bekommen. Ich habe zwar das ...Ex gelesen, aber beim Schreiben des Beitrages, trotzdem an die Message... Dings gedacht, welche in der Controls.pas erstellt wird. (Da ist es schon leichter an die Sourcen zu kommen, wenn man nicht gerade eine Personal Version von Delphi besitzt.) [/added] |
Re: messageboxex & mehrsprachiger dialog
das wird bei der WinAPI wohl etwas schwer ... M$ ruckt ja seine ourcen nicht raus -.-''
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz