Schade, ich war mich sicher das Exit wurde schon im D2006 eingeführt.
"Früher" hat man doch Pointer in Integer gecastet, wenn man diesen als Zahl brauchte.
Integer(P)
Da nun aber der Integer, in Bezug auf 64 Bit, eingefroren wurde, ist das nicht so schön.
NativeInt könnte man jetzt zwar verwenden, aber da wurde eben auch gleich ein passender Typ für diesen Cast erfunden. IntPtr ist praktisch ein ^NativeInt, bzw. UIntPtr ein ^NativeUInt.
NativeInt/NativeUInt sind die neuen Integer/Cardinal. (Integer war in Win16 ja mal 16-bittig)
Delphi-Quellcode:
{$IF not Declared(IntPtr)}
type
IntPtr = {$IF Declared(NativeInt)}NativeInt{$ELSE}Integer{$IFEND}
{$IFEND}
Zitat:
Wie auch immer, dass Ergebnis nach dieser SendMessage-Zeile lautet auch mit deinem Code nach wie vor für das R = -1 und für die Übersetzung des GetLastError-Resultates: "[Error: SendMessage] Der Vorgang wurde erfolgreich beendet".
Jupp, sollte ein
if (R = -1)
bzw.
if (R < 0)
werden. (SendMessage +
TB_GETBUTTONINFO)