Kurzer Nachtrag: ich habe mehrere Unterklassen, die als Parameter für TOberklasse.Test(AObj: TOberklasse) verwendet werden können. Der Übersicht halber habe ich nur eine Unterklasse aufgeführt. Deshalb klappt das mit procedure Test(AObj: TUnterklasse); leider nicht.
Bei mir klappt das ganz wunderbar.
Delphi-Quellcode:
type
TUnterklasse =
class;
// Forward-Deklaration
TOberklasse =
class
public
procedure Test(AObj: TUnterklasse);
//ich habe mehrere Unterklassen!!!
end;
TUnterklasse =
class(TOberklasse)
public
function TestMethode:
String;
end;
{ TOberklasse }
procedure TOberklasse.Test(AObj: TUnterklasse);
begin
if Assigned(AObj)
then
ShowMessage(AObj.TestMethode);
end;
{ TUnterklasse }
function TUnterklasse.TestMethode:
String;
begin
Result := '
Wuppdi';
end;
...
procedure TForm5.Button1Click(Sender: TObject);
var
lOberObj: TOberklasse;
lUnterObj: TUnterklasse;
begin
lUnterObj :=
nil;
lOberObj := TOberklasse.Create;
try
lUnterObj := TUnterklasse.Create;
lOberObj.Test(lUnterObj);
finally
lOberObj.Free;
lUnterObj.Free;
end;
end;