Entwickler-Ecke
Windows API - MessageBoxEx
tmtmtm - Di 21.01.03 01:27
Titel: MessageBoxEx
Hallo zusammen!
Ich habe mal 'ne Frage zum Anzeigen einer MessageBoxEx in einem Delphi 2.0-Programm.
Das Parameter-Format ist mir ja bekannt:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| int MessageBoxEx(
HWND hWnd, // handle of owner window LPCTSTR lpText, // address of text in message box LPCTSTR lpCaption, // address of title of message box UINT uType, // style of message box WORD wLanguageId // language identifier ); |
Deshalb habe ich hier schon mal ein paar eingesetzt:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Var S1,S2:String;
...
S1:='blablabla'; S2:=S1; MessageBoxEx(Null,PChar(S1),PChar(S2),MB_Applmodal+MB_OK,Lang_Neutral);
... |
Aber ständig erhalte ich einen häßlichen "EVariant"-Error (Konvertierungsfehler) beim Benutzen der Strings im PChar-Format. Jedoch erst, wenn ich diese PChars ins MessageBoxEx einbringe. Warum?
Ich verzweifle schon langsam daran! Dabei sollte es so simpel sein. (?)
Wo liegt mein Fehler?
Ach ja: die ganzen Unit-bedingten Dialogs wie z.B. ShowMessage oder MessageDlg kann ich hier wirklich nicht gebrauchen, weil ich keine weiteren Units mit ins Programm schleppen will.
Ich hoffe ihr wisst hier besser bescheid als ich.
Danke schon mal!
MfG Thomas
Delete - Di 21.01.03 09:55
Titel: Re: MessageBoxEx
| tmtmtm hat folgendes geschrieben: |
| Aber ständig erhalte ich einen häßlichen "EVariant"-Error (Konvertierungsfehler) beim Benutzen der Strings im PChar-Format. |
Würdest du mir glauben, dass das nichts mit den Strings zu tun hat?
Das Problem liegt nämlich hier:
Quelltext
1: 2:
| MessageBoxEx(NULL { <-- }, ... |
Wenn du hier eine echte Null (als Zahl: 0) einsetzt (für das Desktop-Window), bzw. "Application.Handle" oder "self.Handle" (für das Formular), dann klappt´s auch mit der MessageBoxEx. :)
Delete - Di 21.01.03 13:07
Das war wohl Copy and Paste von einem C/C++ Source-Code. :mrgreen:
Delete - Di 21.01.03 13:14
Nee, nee, das will ich gar nicht mal unterstellen.
Manchmal irritiert es aber schon. In vielen Fällen schreibt Microsoft Sätze wie
Und du musst dann gucken, was für ein Typ ist das. Abhängig davon (und natürlich abhängig von der Deklaration, die Borland benutzt) entscheidet sich dann, ob man tatsächlich eine Null oder doch vielleicht
nil schreiben muss, usw.
tmtmtm - Di 21.01.03 17:25
Titel: THX
Thanks!
Klappt jetzt endlich. :D
CU
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!