Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi messageboxex & mehrsprachiger dialog (https://www.delphipraxis.net/71088-messageboxex-mehrsprachiger-dialog.html)

_frank_ 8. Jun 2006 17:28


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:
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;
Gruß Frank

hille 8. Jun 2006 17:37

Re: messageboxex & mehrsprachiger dialog
 
Hi,
was meinst du mit dialog?

Hille

_frank_ 8. Jun 2006 18:01

Re: messageboxex & mehrsprachiger dialog
 
eine messagebox halt ;)
mir gehts da um die button-beschriftungen, die bei MessageBox* durch windows gesetzt werden.

himitsu 8. Jun 2006 18:01

Re: messageboxex & mehrsprachiger dialog
 
Zitat:

Zitat von hille
was meinst du mit dialog?

MessageBoxEx erstellt eine MessageBox, oder auch Dialog genannt :zwinker:


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 ._.

hille 8. Jun 2006 18:13

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

himitsu 8. Jun 2006 18:30

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:
SendMessage(GetDlgItem(hWnd, 1), WM_SETTEXT, 0, Integer(PChar('abc123')));
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:
http://www.delphipraxis.net/internal...=536694#536694

hille 8. Jun 2006 18:35

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

_frank_ 8. Jun 2006 18:58

Re: messageboxex & mehrsprachiger dialog
 
Zitat:

Zitat von himitsu
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***).

da geb ich dir Recht, wie machst du es denn mit den Message-boxen?
Gettext, eigene Forms oder etwas komplett anderes?

himitsu 8. Jun 2006 19:19

Re: messageboxex & mehrsprachiger dialog
 
Zitat:

Zitat von _frank_
da geb ich dir Recht, wie machst du es denn mit den Message-boxen?
Gettext, eigene Forms oder etwas komplett anderes?

Du kannst ja statt der MessageBox eine DialogBox verwenden, sollte Optisch auf's selbe rauskommen, nur daß man dort eine DialogProzedur einbinden kann, wo man dann z.B. bei WM_INITDIALOG ein bissl mit SendMessage und Co. an den Controls rumspielen kann.

MSDN-Library durchsuchenCreateDialogIndirectParam, MSDN-Library durchsuchenCreateDialogParam, MSDN-Library durchsuchenDialogBoxIndirectParam, oder MSDN-Library durchsuchenDialogBoxParam

Bernhard Geyer 8. Jun 2006 19:50

Re: messageboxex & mehrsprachiger dialog
 
Oder wie wärs mit dem TElPromptDialog vom ElPack?
Damit kann man sehr einfach die Captions der "Standarddialogbox" ersetzen. Und es geht auch mit Unicode auch unter Win9x/ME.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 Uhr.
Seite 1 von 2  1 2      

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