TypeOf
Verze z 5. 10. 2012, 17:49, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Unit System)
Vrací ukazatel na tabulku virtuálních metod (VMT) objektového typu.
- Deklarace
procedure TypeOf (Param1: ObjectType) : Pointer
- Režim
- Windows, Reálný, Chráněný
- Poznámky
- Param1 je buď identifikátor objektového typu nebo instance objektového typu.
- TypeOf lze použít pouze na objektové typy, které mají VMT; všechny ostatní typy způsobí chybu.
- Viz také
- SizeOf
Vzorový příklad
{Typeof.PAS} {Vzorový příklad pro funkci TypeOf.} { Pro Windows: } { uses WinCrt; } uses Objects; type PBaseObject = ^TBaseObject; TBaseObject = object(TObject) end; PChildObject = ^TChildObject; TChildObject = object(TBaseObject) end; var P,Q : PObject; { ukazatel na abstraktní objekt } begin P := New(PBaseObject, Init); Q := New(PChildObject, Init); if TypeOf(P^) = TypeOf(TBaseObject) then writeln('P je instance TBaseObject') else writeln('P není instance TBaseObject'); if TypeOf(Q^) = TypeOf(TChildObject) then writeln('Q je instance TChildObject') else writeln('Q není instance TChildObject'); if TypeOf(Q^) <> TypeOf(P^) then writeln('Q není stejný type instance objektu jako P'); Dispose(P, Done); Dispose(Q, Done); end.