[fpc-pascal] Publishing indexed property in descendant

Michael Van Canneyt michael at freepascal.org
Thu Dec 28 16:43:35 CET 2017



On Thu, 28 Dec 2017, Vojtěch Čihák wrote:

> Hi,
>  
> is this bug?
>  
>  { TCompStreamPers }
>   TCompStreamPers = class(TCustomControl)
>   private
>     function GetItem(AIndex: Integer): TPersItem;
>     procedure SetItem(AIndex: Integer; AValue: TPersItem);
>   protected
>     FItems: TFPObjectList;
>   public
>     constructor Create(AOwner: TComponent); override;
>     destructor Destroy; override;
>   //published
>     property Item[AIndex: Integer]: TPersItem read GetItem write SetItem;
>   end;
>  
>   TCompStreamPers2 = class(TCompStreamPers)
>   published
>     property Item;
>   end;
>          
> If I try to publish property Item in TCompStreamPers, compiler rejects with "compstreampers.pas(31,19) Error: This kind of property cannot be published".
>  
> But when I do it in descendant class, compiler is silent. Delphi7 does not allow it: "[Error] Unit2.pas(35): Published property 'Item' cannot be of type ARRAY".

It is a bug, please post a bug report.

Michael.


More information about the fpc-pascal mailing list