mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-06 09:07:59 +02:00
* TPtrWrapper for Delphi compatibility
This commit is contained in:
parent
b48c67f49f
commit
b121045d4a
@ -1238,3 +1238,48 @@
|
||||
{$i except.inc}
|
||||
{$endif}
|
||||
{$endif FPC_HAS_FEATURE_EXCEPTIONS}
|
||||
|
||||
{****************************************************************************
|
||||
Various Delphi constructs
|
||||
****************************************************************************}
|
||||
|
||||
|
||||
function TPtrWrapper.ToPointer: Pointer;
|
||||
begin
|
||||
Result:=Value;
|
||||
end;
|
||||
|
||||
class function TPtrWrapper.GetNilValue: TPtrWrapper; inline; static;
|
||||
|
||||
begin
|
||||
end;
|
||||
|
||||
constructor TPtrWrapper.Create(AValue: PtrInt); overload;
|
||||
|
||||
begin
|
||||
Value:=Pointer(aValue);
|
||||
end;
|
||||
|
||||
constructor TPtrWrapper.Create(AValue: Pointer); overload;
|
||||
|
||||
begin
|
||||
Value:=aValue;
|
||||
end;
|
||||
|
||||
|
||||
function TPtrWrapper.ToInteger: PtrInt;
|
||||
begin
|
||||
Result:=PtrInt(Value);
|
||||
end;
|
||||
|
||||
operator =(Left, Right: TPtrWrapper) c : Boolean;
|
||||
|
||||
begin
|
||||
c:=(Left.Value=Right.Value);
|
||||
end;
|
||||
|
||||
operator <>(Left, Right: TPtrWrapper) c : Boolean;
|
||||
|
||||
begin
|
||||
Result:=(Left.Value<>Right.Value);
|
||||
end;
|
||||
|
@ -581,3 +581,25 @@
|
||||
HashValue : LongWord;
|
||||
end;
|
||||
{$endif FPC_HAS_FEATURE_RESOURCES}
|
||||
|
||||
{*****************************************************************************
|
||||
Various Delphi elements
|
||||
*****************************************************************************}
|
||||
|
||||
Type
|
||||
TPtrWrapper = record
|
||||
private
|
||||
Value: PByte;
|
||||
class function GetNilValue: TPtrWrapper; inline; static;
|
||||
public
|
||||
constructor Create(AValue: PtrInt); overload;
|
||||
constructor Create(AValue: Pointer); overload;
|
||||
function ToPointer: Pointer;
|
||||
function ToInteger: PtrInt;
|
||||
class property NilValue: TPtrWrapper read GetNilValue;
|
||||
// class operator Equal(Left, Right: TPtrWrapper): Boolean;
|
||||
// class operator NotEqual(Left, Right: TPtrWrapper): Boolean;
|
||||
end;
|
||||
|
||||
operator =(Left, Right: TPtrWrapper) c : Boolean;
|
||||
operator <>(Left, Right: TPtrWrapper) c : Boolean;
|
Loading…
Reference in New Issue
Block a user