Skip to content

Instantly share code, notes, and snippets.

@johnidm
Last active August 29, 2015 13:56
Show Gist options
  • Save johnidm/9217215 to your computer and use it in GitHub Desktop.
Save johnidm/9217215 to your computer and use it in GitHub Desktop.
Print in display address pointer in Delphi.
procedure TForm2.Button1Click(Sender: TObject);
var
{
Value: Integer;
ptrValue: PInteger;
}
Value: string;
ptrValue: PString;
vet: array[0..2] of Integer;
vet1: array of Integer;
Obj: TObject;
function GetAddressOf( var X ) : String;
begin
Result := IntToHex( Integer( Pointer( @X ) ), 8 );
//Result:=IntToHex(Integer ( X ),4); // ao funciona
end;
begin
ptrValue:= @Value;
Value:= '12';
//ShowMessage( Format( ' %p %p ', [ptrValue, @Value] ) );
//ShowMessage( GetAddressOf(ptrValue) + ' ' + GetAddressOf(Value) );
//ShowMessage( GetAddressOf( vet[1] ) + ' ' + GetAddressOf( vet[2] ) );
SetLength( vet1, 1 );
vet[0]:= 5;
Obj:= TObject.Create();
Obj.Free;
SetLength( vet1, 2 );
vet[1]:= 5;
ShowMessage( GetAddressOf( vet[0] ) + ' ' + GetAddressOf( vet[1] ) );
ShowMessage( IntToStr( StrToInt('$' + GetAddressOf( vet[0] ) ) ) + ' ' + IntToStr( StrToInt('$' + GetAddressOf( vet[1] ) ) ) );
ShowMessage( IntToHex( StrToInt('$' + GetAddressOf( vet[0] ) ) , 4) + ' ' + IntToHex( StrToInt('$' + GetAddressOf( vet[1] ) ), 4 ) );
end;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment