Interfaces

From Lazarus wiki
Revision as of 16:54, 17 July 2012 by Sekelsenmat (talk | contribs) (Created page with "Interfaces can be utilized as an alternative solution to the need of multiple inheritance, which Object Pascal currently does not support. ==Full example program== <delphi> ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Interfaces can be utilized as an alternative solution to the need of multiple inheritance, which Object Pascal currently does not support.

Full example program

<delphi> 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. </delphi>