Self braucht man nur, um Namenskonflikte zu lösen oder wenn man eine Referenz auf Self übergeben will.
Beispiel für ersteres:
(Die Methode
Wuppdi soll das Feld "Value" auf den übergebenen Wert setzen)
Delphi-Quellcode:
procedure TMyClass.Wuppdi(Value: Integer);
begin
Self.Value:=Value;
end;
Ohne das Self.Value würde die Anweisung den Parameter auf sich selbst zuweisen.
Beispiel für letzteres:
Hier soll die Methode CreateChild eine neue Instanz von TMyClass erstellen, deren "Vater" auf sich selbst setzen und die neue Instanz dann zurückgeben.
Delphi-Quellcode:
function TMyClass.CreateChild: TMyClass;
begin
Result:=TMyClass.Create;
Result.SetParent(Self);
end;