Typ obiektowy


Alternatywnie do typu klasowego, można zadeklarować typ obiektowy wg składni:

type objectTypeName = object (ancestorObjectType)
  memberList
end;

gdzie objectTypeName jest formalnym identyfikatorem, (ancestorObjectType) jest opcjonalne, a memberList deklaruje pola, metody, i właściwości. Jeśli (ancestorObjectType) pominięto, nowy typ nie ma przodka. Typy obiektowe nie mogą mieć składników w sekcji published.

Ponieważ typy obiektowe nie pochodzą od TObject, nie udostępniają wbudowanych konstruktorów, destruktorów i innych metod. Dynamiczną zmienną typu obiektowego można wykreować używając procedury New i zniszczyć ją procedurą Dispose. Statyczne zmienne obiektowe można zadeklarować zwyczajnie - tak jak zwykłe zmienne rekordowe.

Typy obiektowe są utrzymywane dla wstecznej kompatybilności z poprzednimi wersjami Delphi. Używanie ich nie jest rekomendowane.