Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#13

AW: Gleicher Prozedurenname - Anderer Parametertyp

  Alt 30. Jan 2013, 18:13
Ich hab auch noch einen:
Delphi-Quellcode:
type
  TVater = class
  public
    procedure SayHello; virtual;
  end;

  TSohn = class(TVater)
  public
    procedure SayHello; override;
  end;

  TTochter = class(TVater)
  public
    procedure SayHello; override;
  end;

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure GetTask(Klasse: TVater);
  public
    { Public-Deklarationen }
  end;

...

procedure TVater.SayHello;
begin
  ShowMessage('Hallo von der Vaterklasse');
end;

procedure TSohn.SayHello;
begin
  ShowMessage('Hallo von der Sohnklasse');
end;

procedure TTochter.SayHello;
begin
  ShowMessage('Hallo von der Tochterklasse');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Vater: TVater;
  Sohn: TSohn;
  Tochter: TTochter;
begin
  Vater := TVater.Create;
  try
    GetTask(Vater);
  finally
    Vater.Free;
  end;
  Sohn := TSohn.Create;
  try
    GetTask(Sohn);
  finally
    Sohn.Free;
  end;
  Tochter := TTochter.Create;
  try
    GetTask(Tochter);
  finally
    Tochter.Free;
  end;
end;

procedure TForm1.GetTask(Klasse: TVater);
begin
  Klasse.SayHello;
end;
Das wird mir jetzt aber zu OO-orthodox.
Uli Gerhardt
  Mit Zitat antworten Zitat