On Tue, 23 Feb 2016, Serguei TARASSOV wrote:

Hello,

Sorry, my previous example was not complete.
Here is a problem detected when compiling UniDAC 6.2.8.
Taken from real code in VirtualTable.pas

program Project1;

{$MODE DELPHI}

uses
 SysUtils, Classes, DB;

procedure InternalCreateFieldDefs(Fields: TFields; FieldDefs: TFieldDefs);
var
 F: TField;
 FieldDef: TFieldDef;
begin
 begin
   with F do
   begin
     FieldDef := FieldDefs.AddFieldDef;
     // in FPC 3.0.0 Error: No member is provided to access property
     // in FPC 2.6.4 compiles OK

The problem is in your code and the use of WITH, as I surmised in my
previous mail.

In 2.6.4, FieldDef is resolved to the LOCAL VARIABLE FieldDef.
The code compiles ok.

In 3.0.0, FieldDef is a NEW READ-ONLY property in TField.
Because of the WITH, the compiler resolves FieldDef to this property, but it
is read-only, an so it gives an error.

Change your code to

Var
   AFieldDef: TFieldDef;

and

     AFieldDef := FieldDefs.AddFieldDef;

and all will be well.

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to