Does GPC support telling whether an object is a member of a particular object class hierarchy?
Mac Pascals have
member( obj, ObjectType )
which returns a boolean, true if obj is an object of type ObjectType.
I've included a sample program below.
If GPC has an alternative way of telling this, that will probably solve my problem, although this may still be an issue for compatibility.
Thanks, Peter.
{$methods-always-virtual} program peterU;
type ObjectBase = object procedure Doit; end; ObjectA = object(ObjectBase) procedure Doit; override; end; ObjectB = object(ObjectBase) procedure Doit; override; end;
procedure ObjectBase.Doit; begin end;
procedure ObjectA.Doit; begin end;
procedure ObjectB.Doit; begin end;
var base: ObjectBase; a: ObjectA; b: ObjectB; begin New(base); New(a); New(b); if member( base, ObjectBase ) and not member( base, ObjectA ) and not member( base, ObjectB ) and member( a, ObjectBase ) and member( a, ObjectA ) and not member( a, ObjectB ) and member( b, ObjectBase ) and not member( b, ObjectA ) and member( b, ObjectB ) then begin WriteLn( 'OK' ); end else begin WriteLn( 'failed' ); end; end.