Sprecht doch mal in ganzen Sätzen mit dem TE
Klassendefinition:
Delphi-Quellcode:
unit DeviceUnit;
interface
type
TBaseDevice =
class
procedure InitDevice;
virtual;
abstract;
end;
TMainDevice =
class( TBaseDevice )
procedure InitDevice;
override;
end;
TSubDevice =
class( TBaseDevice )
procedure InitDevice;
override;
end;
implementation
procedure TMainDevice.InitDevice;
begin
ShowMessage('
MainDevice initialisiert');
end;
procedure TSubDevice.InitDevice;
begin
ShowMessage('
SubDevice initialisiert');
end;
end.
Benutzung:
Delphi-Quellcode:
uses
DeviceUnit;
procedure DoSomething( aDevice : TBaseDevice );
begin
aDevice.InitDevice;
end;
procedure Test1;
var
MyMainDevice : TMainDevice;
MySubDevice : TSubDevice;
begin
MyMainDevice := TMainDevice.Create;
try
DoSomething( MyMainDevice ); // -> MsgBox mit 'MainDevice initialisiert'
finally
MyMainDevice.Free;
end;
MySubDevice := TSubDevice.Create;
try
DoSomething( MySubDevice ); // -> MsgBox mit 'SubDevice initialisiert'
finally
MySubDevice.Free;
end;
end;
procedure Test2;
var
MyDevice : TBaseDevice;
begin
MyDevice := TMainDevice.Create;
try
DoSomething( MyDevice ); // -> MsgBox mit 'MainDevice initialisiert'
finally
MyDevice.Free;
end;
MyDevice := TSubDevice.Create;
try
DoSomething( MyDevice ); // -> MsgBox mit 'SubDevice initialisiert'
finally
MyDevice.Free;
end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)