Self


Wewnątrz implementacji metody, identyfikator Self jest odwołaniem do obiektu, w którym dana metoda jest wywoływana. Przykład: oto implementacja metody Add klasy TCollection w module Classes biblioteki VCL.

function TCollection.Add: TCollectionItem;
begin
  Result := FItemClass.Create(Self);
end;

...

var MyCollection: TCollection;
...
MyCollection.Add  // obiekt MyCollection jest przekazywany do 
                  // metody TCollectionItem.Create jako Self

Metoda Add wywołuje metodę Create w klasie wskazywanej przez pole FItemClass, która jest zawsze potomkiem TCollectionItem. TCollectionItem.Create wymaga jednego parametru typu TCollection, a więc Add przekazuje go w postaci obiektu klasy TCollection, z którego Add jest wywoływane.

Identyfikator Self może być użyteczny w różnych przypadkach. Przykładowo: identyfikator składnika deklarowany w klasie może być redeklarowany w bloku jednej z metod klas. W takim przypadku, można uzyskać dostęp do oryginalnego identyfikatora w postaci kwalifikacji: Self.Identyfikator.