Wenns den unbedingt sein muss ...
Delphi-Quellcode:
type
TOpa = class(TObject)
private
FAlter: Integer;
public
procedure SagWas; virtual;
property Alter: Integer read FAlter write FAlter;
end;
TVater = class(TOpa)
public
procedure SagWas; override;
end;
TKind = class(TVater)
public
procedure SagWas; override;
end;
TSagWasProcedure = procedure (Self: Pointer);
procedure TOpa.SagWas;
begin
showmessage(Format('Opa ist %d Jahre alt.', [Alter]));
end;
procedure TVater.SagWas;
begin
showmessage(Format('Vater ist %d Jahre alt.', [Alter]));
end;
procedure TKind.SagWas;
var
Proc: TSagWasProcedure;
begin
// showmessage(Format('Kind ist %d Jahre alt.', [Alter]));
Proc := @TOpa.SagWas;
Proc(Self);
end;
procedure TFTest.Button6Click(Sender: TObject);
var
K: TKind;
begin
K := TKind.Create;
K.Alter := 10;
K.SagWas;
K.Free;
end;
gehts auch ohne Assembler.