Interfaces
From Lazarus wiki
Revision as of 20:00, 1 January 2013 by Dirk Fellenberg (talk | contribs) (wiki syntax straightened)
Interfaces can be utilized as an alternative solution to the need of multiple inheritance, which Object Pascal currently does not support.
Full example program
program project1;
{$mode delphi}
{$interfaces corba}
type
IMyDelegate = interface
procedure DoThis (value: integer);
end;
TMyClass = class (TInterfacedObject, IMyDelegate)
procedure DoThis (value: integer);
end;
procedure TestDelegate;
var
delegate: TMyClass;
intfdelegate: IMyDelegate;
begin
delegate := TMyClass.Create;
intfdelegate := IMyDelegate(delegate);
intfdelegate.DoThis(1);
end;
{ TMyClass }
procedure TMyClass.DoThis(value: integer);
var
Str: string;
begin
WriteLn('Success!!! Type <enter> to continue');
ReadLn(Str);
end;
begin
TestDelegate;
end.