[fpc-pascal] using Interfaces in descendant classes 2.6.4 vs 3.x

Graeme Geldenhuys mailinglists at geldenhuys.co.uk
Sat Nov 4 01:18:08 CET 2017

On 2017-11-03 23:52, Graeme Geldenhuys wrote:
> Attached is a sample application reproducing the problem. Compile the
> program with FPC 2.6.4 and everything works. Compile it with FPC 3.x and
> no interface reference is ever returned.

Yet more testing..... Now I've managed to get it to work in all FPC 
versions. Yeah!!!

If I change my class that does interface delegation to the following syntax:

    TClassA = class(TObject, ICmdLine)
     FCmdLineParams: TCmdLineImpl;
     function GetCmdLineParamsInterface: TCmdLineImpl;
     property ChildDelegate: TCmdLineImpl read GetCmdLineParamsInterface 
implements ICmdLine;
      destructor Destroy; override;

Then it works. Note I changed the function and property definitions.

Still strange that FPC 2.6.4 worked in my prior example and FPC 3.x not. 
I also didn't see any "User Changes" on the wiki about this changed 
behaviour of Interface Delegation.


fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal

My public PGP key:  http://tinyurl.com/graeme-pgp

More information about the fpc-pascal mailing list