View Issue Details

IDProjectCategoryView StatusLast Update
0031346FPCDocumentationpublic2017-03-24 16:11
ReporterSven BarthAssigned ToMichael Van Canneyt 
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Product Version3.0.0Product Build 
Target Version3.2.0Fixed in Version3.1.1 
Summary0031346: "7.4 Interface delegation" not entirely up to date (interface lists and inheritance)
DescriptionSince September 2011 FPC supports the declaration of implements properties that implement multiple interfaces at once using a comma separated list of interfaces ("implements IIntf1, IIntf2, IIntf3").

Since the same time it also supports interface type properties that implement a parent interface (e.g. any descendant of IUnknown might implement IUnknown).

Both features are Delphi compatible.
Additional InformationFor an example see $fpcdir/tests/webtbs/tw19182.pp
TagsNo tags attached.
Fixed in Revision1401
FPCOldBugId0
FPCTarget
Attached Files

Activities

Michael Van Canneyt

2017-02-22 20:41

administrator   ~0098381

Documented, with example.

Sven Barth

2017-03-03 23:00

manager   ~0098614

You forgot the second part I mentioned, namely that an interface delegate might implement a parent interface (see the same test I mentioned, but this time TIntfDelegator). A suitable example would be this:

=== code begin ===

{$interfaces corba}
type
  IMyInterface = interface
    procedure P1;
  end;

  IMyInterface2 = interface(IMyInterface)
    procedure P2;
  end;

  TMyClass = class(TInterfacedObject, IMyInterface)
  private
    FMyInterface: IMyInterface2;
    property MyInterface: IMyInterface2
      read FMyInterface implements IMyInterface;
  end;

=== code end ===

Michael Van Canneyt

2017-03-04 10:41

administrator   ~0098621

Added some text and example about this (rev. 1401)

Sven Barth

2017-03-24 16:11

manager   ~0099197

Thank you. :)

Issue History

Date Modified Username Field Change
2017-02-03 21:30 Sven Barth New Issue
2017-02-03 21:30 Sven Barth Status new => assigned
2017-02-03 21:30 Sven Barth Assigned To => Michael Van Canneyt
2017-02-22 20:41 Michael Van Canneyt Fixed in Revision => 1398
2017-02-22 20:41 Michael Van Canneyt Note Added: 0098381
2017-02-22 20:41 Michael Van Canneyt Status assigned => resolved
2017-02-22 20:41 Michael Van Canneyt Fixed in Version => 3.1.1
2017-02-22 20:41 Michael Van Canneyt Resolution open => fixed
2017-02-22 20:41 Michael Van Canneyt Target Version => 3.2.0
2017-03-03 23:00 Sven Barth Note Added: 0098614
2017-03-03 23:00 Sven Barth Status resolved => feedback
2017-03-03 23:00 Sven Barth Resolution fixed => reopened
2017-03-04 10:41 Michael Van Canneyt Fixed in Revision 1398 => 1401
2017-03-04 10:41 Michael Van Canneyt Note Added: 0098621
2017-03-04 10:41 Michael Van Canneyt Status feedback => resolved
2017-03-04 10:41 Michael Van Canneyt Resolution reopened => fixed
2017-03-24 16:11 Sven Barth Note Added: 0099197
2017-03-24 16:11 Sven Barth Status resolved => closed