Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Gleicher Prozedurenname - Anderer Parametertyp

  Alt 30. Jan 2013, 17:48
Der Parameter ist aber auch ein Objekt. Genau genommen kann der Parameter eines von 3 verschiedenen Objekten sein...

Ich möchte also, dass ich die "GetTask()"-Methode mit einem beliebigen dieser 3 Objekte ansprechen kann und dann aufgrund des übergebenen Objekttyps entschieden werden kann, wie damit weiter verfahren werden kann.
Ich hätte auch noch einen ...
Delphi-Quellcode:
interface

Type
  TParentClass = class;

  TParentClass = Class (Tobject)
  public
    Procedure GetTask(AClass : TParentClass); overload;
  End;


  TChildA = Class (TParentClass)
  public
    Procedure GetTask(AClass : TParentClass); OverLoad;
  End;

  TChildB = Class (TParentClass)
  public
    Procedure GetTask(AClass : TParentClass); OverLoad;
  End;

implementation

{ TParentClass }
procedure TParentClass.GetTask(AClass: TParentClass);
begin
  if AClass is TChildA then
    TChildA(AClass).GetTast(AClass)

  else if AClass is TChildB then
    TChildB(AClass).GetTast(AClass)

end;

{ TChildA }
procedure TChildA.GetTask(AClass: TParentClass);
begin
  ShowMessage('Child A');
end;

{ TChildB }
procedure TChildB.GetTask(AClass: TParentClass);
begin
  ShowMessage('Child B');
end;


procedure TForm1.Button3Click(Sender: TObject);
var
  MyClassA : TChildA;
  MyClassB : TChildB;
begin

  MyClassA := TChildA.Create;
  TParentClass(MyClassA).GetTast(MyClassA);

  MyClassB := TChildB.Create;
  TParentClass(MyClassB).GetTast(MyClassB);


end;
  Mit Zitat antworten Zitat