Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wert hinter Pointer erhalten

  Alt 7. Dez 2006, 18:10


Du fügst einen Pointer auf einen Integer ein? Dann pass mal auf, dass dir der nicht wild wird...

ich würds so machen:

Delphi-Quellcode:
procedure PushInt(Val: Integer);
begin
  Stack.Push(Pointer(Val));
end;

function PopInt: Integer;
begin
  Result := Integer(Stack.Pop);
end;
(nur in Funktionen gekapselt, damit mans besser sieht)

Damit sagst du Delphi, es soll den Integer behandeln, als wärs ein Pointer. Du speicherst dann den Integer selber in die Liste und nicht nur die Adresse darauf.

EDIT: Vorausgesetzt, du alloziierst den Integer zuvor explizit, damit er beim Prozedurende nicht ungültig wird, kannst du ihn so dereferenzieren:

SomeInt := Integer(IntPtr^); Wobei IntPtr (für "Pointer auf Integer") äquivalent zu Stack.Pop ist.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat