Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
Re: Übergabeparameter in Funktion
19. Jun 2009, 16:26
Dann definier Dir doch eine Basisklasse, die die Methode (abstrakt) deklariert und leite die weiteren davon ab.
Delphi-Quellcode:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyBaseClass = class
protected
function TuWas( const Value: Integer): Integer; virtual; abstract;
end;
TClassA = class(TMyBaseClass)
public
function TuWas( const value: Integer): Integer; override;
end;
TClassB = class(TMyBaseClass)
public
function TuWas( const value: Integer): Integer; override;
end;
TForm6 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private-Deklarationen }
procedure Test( const obj: TMyBaseClass);
public
{ Public-Deklarationen }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
{ TClassB }
function TClassB.TuWas( const value: Integer): Integer;
begin
Result := value * 2;
end;
{ TClassA }
function TClassA.TuWas( const value: Integer): Integer;
begin
Result := value * 3;
end;
{ TForm6 }
procedure TForm6.btn1Click(Sender: TObject);
var c1, c2: TMyBaseClass;
begin
c1 := TClassA.Create;
try
c2 := TClassB.Create;
try
Test(c1);
Test(c2);
finally
c2.Free;
end;
finally
c1.Free;
end;
end;
procedure TForm6.Test( const obj: TMyBaseClass);
begin
if Assigned(obj) then
ShowMessage(IntToStr(obj.TuWas(2)));
end;
end.
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|
|
Zitat
|