TypeOf

Z Delphi & Pascal (česká wiki)
Verze z 5. 10. 2012, 18:49, kterou vytvořil Zdeno Sekerák (diskuse | příspěvky) (1 revízia: Unit System)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

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.