Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
30. Dez 2014
Ich habe das Beispiel mal erweitert, damit man die ganzen Spielarten sieht
program dp_183307;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
30. Dez 2014
Die Dokumentation ist da auch eindeutig
http://docwiki.embarcadero.com/RADStudio/XE7/de/Methoden#Methodenbindung
Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
30. Dez 2014
Du kannst quasi jede Methode (private sind schwierig bis gar nicht zu erreichen) in einer Ableitung überschreiben, aber wenn die Methode nicht als virtual deklariert ist, dann bekommst du genau das Verhalten wie du es hier siehst/zeigst, ansonsten ist es so wie erwartet.
Ist eine Methode virtual, dann kann man sich mit TVirtualMethodInterceptor in die Methodenaufrufe einklinken, bei allen...
Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
30. Dez 2014
Na dann versuch doch mal das hier:
var
LBase : TMyBase;
LChild : TMyChild;
begin
LBase := nil;
LChild := nil;
LBase.interfaceProc;
Forum: Object-Pascal / Delphi-Language
Delphi
by Sir Rufo,
30. Dez 2014
Das sollte schon bekannt sein, dass bei
var
LInstance : TMyBase;
begin
LInstance := TMyChild.Create;
LInstance.interfaceProc; // ruft TMyBase.interfaceProc auf!!!
end;
eben die Methode TMyBase.interfaceProc aufgerufen wird, aufgrund der Deklaration von LInstance : TMyBase.