PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Delphi]Pointer zu Integer konvertieren (Umkehrung von Ptr())?


Gast
2006-07-21, 21:12:46
Hi Leute,

Ich möchte unter Delphi die Funktion SendMessage benutzen, um das Programmfenster zu veranlassen, einen Wert auszugeben, der dazu als wParam oder lParam gesendet wird. Wäre der Wert vom Typ Integer, wäre das ganz einfach:

SendMessage(Form1.Handle, WM_USER_DISPLAY_VALUE, Value, 0);

Er ist jedoch vom Typ double, kann also nicht ohne Informationsverlust nach Integer konvertiert werden. Daher war meine Idee, statt dem Wert seine Adresse zu übergeben:

SendMessage(Form1.Handle, WM_USER_DISPLAY_VALUE, @Value, 0);

das aber akzeptiert Delphi nicht, da Pointer und Integer inkompatibel sind. Da würde ich gerne wissen, ob es da vielleicht eine Funktion zum Konvertieren gibt?

Das umgekehrte geht ja: die Funktion Ptr() wandelt eine in Integer-Form angegebene Adresse in einen Pointer um.

Dirk_
2006-07-21, 23:31:59
Moin,

einfach casten:
SendMessage(Form1.Handle, WM_USER_DISPLAY_VALUE, INTEGER(@Value), 0);

Gast
2006-07-22, 04:35:59
hey, das funktioniert ja! Dachte das ginge nur in C-verwandten Sprachen...