Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Ist im Prozedurzeiger eine Klasse drin?

  Alt 4. Feb 2011, 13:48
Bei einer Methode ist in Data ein Zeiger auf die Objektinstanz drin (TObject),
wärend bei der Klassen-Methode ein Zeiger auf die Klasse drin steht.

In diesem .Code steht das drin, welches an den versteckten "Self" Parameter übergeben wird.
Methode: Self = Instanz
Klassen-Methode: Self = Klasse, über welche auf die Methode zugegriffen wurde.
(bei der Objektinstanz wird der Zeiger auf die interne Klasse ja in der Instanz gespeichert)

Delphi-Quellcode:
type
  TTest = class
    class procedure Proc;
  end;
  TTest2 = class(TTest)
  end;

class procedure TTest.Proc;
begin
  ShowMessage({Self.}ClassName);
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  TTest.Proc;
  TTest2.Proc;
end;
$2B or not $2B
  Mit Zitat antworten Zitat