mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 08:59:26 +02:00
+ procedure IsStoredProc added
This commit is contained in:
parent
2c4a8c9bd3
commit
7a173df255
@ -39,6 +39,11 @@ unit typinfo;
|
||||
ftFixed16,ftFixed32);
|
||||
{$MINENUMSIZE DEFAULT}
|
||||
|
||||
const
|
||||
ptField = 0;
|
||||
ptStatic = 1;
|
||||
ptVirtual = 2;
|
||||
|
||||
const
|
||||
tkString = tkSString;
|
||||
|
||||
@ -82,6 +87,13 @@ unit typinfo;
|
||||
Index : Integer;
|
||||
Default : Longint;
|
||||
NameIndex : SmallInt;
|
||||
|
||||
// contains the type of the Get/Set/Storedproc, see also ptxxx
|
||||
// bit 0..1 GetProc
|
||||
// 2..3 SetProc
|
||||
// 4..5 StoredProc
|
||||
ProcProcs : Byte;
|
||||
|
||||
Name : ShortString;
|
||||
end;
|
||||
|
||||
@ -101,10 +113,13 @@ unit typinfo;
|
||||
// searches in the property PropName
|
||||
function GetPropInfo(TypeInfo : PTypeInfo;const PropName : string) : PPropInfo;
|
||||
|
||||
// returns true, if PropInfo is a stored property
|
||||
function IsStoredProp(Instance: TObject; PropInfo: PPropInfo): Boolean;
|
||||
{
|
||||
procedure GetPropInfos(TypeInfo : PTypeInfo;PropList : PPropList);
|
||||
function GetPropList(TypeInfo : PTypeInfo;TypeKinds : TTypeKinds;
|
||||
PropList : PPropList) : Integer;
|
||||
|
||||
}
|
||||
implementation
|
||||
|
||||
function GetTypeData(TypeInfo : PTypeInfo) : PTypeData;
|
||||
@ -141,11 +156,45 @@ unit typinfo;
|
||||
hp:=hp^.ParentInfo;
|
||||
end;
|
||||
end;
|
||||
|
||||
function IsStoredProp(Instance: TObject; PropInfo: PPropInfo): Boolean;
|
||||
|
||||
type
|
||||
tbfunction = function : boolean of object;
|
||||
|
||||
var
|
||||
caller : packed record
|
||||
Instance : Pointer;
|
||||
Address : Pointer;
|
||||
end;
|
||||
|
||||
begin
|
||||
caller.Instance:=Instance;
|
||||
case (PropInfo^.PropProcs shr 4) and 3 of
|
||||
0:
|
||||
IsStoredProp:=
|
||||
PBoolean(Pointer(Instance)+Longint(PropInfo^.StoredProc))^;
|
||||
1:
|
||||
begin
|
||||
caller.Address:=PropInfo^.StoredProc;
|
||||
IsStoredProc:=tbfunction(caller);
|
||||
end;
|
||||
2:
|
||||
begin
|
||||
caller.Address:=PPointer(PPointer(Instance.ClassType)+Longint(PropInfo^.StoredProc))^;
|
||||
IsStoredProc:=tbfunction(caller);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 1998-09-06 21:27:05 florian
|
||||
Revision 1.3 1998-09-07 08:32:59 florian
|
||||
+ procedure IsStoredProc added
|
||||
|
||||
Revision 1.2 1998/09/06 21:27:05 florian
|
||||
+ some methods and declarations added
|
||||
|
||||
Revision 1.1 1998/08/25 22:30:00 florian
|
||||
|
Loading…
Reference in New Issue
Block a user