Difference between revisions of "Interfaces"

From Free Pascal wiki
Jump to navigationJump to search
(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> ...")
(No difference)

Revision as of 16:54, 17 July 2012

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>