On 17.12.2010 23:33, Cox, Stuart TRAN:EX wrote:
Please excuse me if I’ve posted this request to the wrong list. I really
did spend some time in trying to find a FPC list for simple coding
questions. Sorry.


Yes, I'd say you've found the correct list ^^

I have a set of record types defined and want to create an
initializedconstant and anarrayconstant with values. OccasionallyI find
thatI just cannot get the structure of the constantswritten properly and
the compiler whines at me until I throw my hands in the air. I’d really
appreciate it if someone could show me what I’m not able to see for myself.


To sum it up: you have to keep track to where you have to close your parenthesis (see below).

[snip]


{Then the hard part:}

Const

{ one wee little one}

LSegmentNull : TLSegment = (Srecord:(sSegLabID:(sLabel:'';

segmentNo:maxlongint)

);

segment:((x:maxlongint;y:maxlongint),

(x:maxlongint;y:maxlongint)));

trueLP:(x:maxlongint;y:maxlongint));


You end the "Srecord" after the "segmentNo" with the ");", but "segment" is also part of "Srecord". So put the ";" behind the closing parenthesis of "sSegLabID" and remove the ");" before "segment".

It should look like this (formatted a bit differently to highlight the end of a record a bit better):

LSegmentNull: TLSegment = (
  Srecord: (
    sSegLabID: (
      sLabel:'';
      segmentNo:maxlongint
      );
    segment: (
      (x:maxlongint; y:maxlongint),
      (x:maxlongint; y:maxlongint)
      )
  );
  trueLP: (
    x:maxlongint;
    y:maxlongint
  )
);


{ an array of five of the little blighters}

CexistingLines : TexistingLines5= (

(Srecord:(sSegLabID:(sLabel:’0’;segmentNo:0));segment:((x:0.5;y:0.5),(x:3.5;y:1.7));trueLP:(x:0.5;y:0.5)),

(Srecord:(sSegLabID:(sLabel:’1’;segmentNo:1));segment:((x:1.0;y:4.0),(x:5.8;y:2.8));trueLP:(x:1.0;y:4.0)),

(Srecord:(sSegLabID:(sLabel:’2’;segmentNo:2));segment:((x:1.5;y:3.0),(x:6.2;y:2.4));trueLP:(x:1.5;y:3.0)),

(Srecord:(sSegLabID:(sLabel:’3’;segmentNo:3));segment:((x:2.3;y:4.3),(x:6.8;y:4.7));trueLP:(x:2.3;y:4.3)),

(Srecord:(sSegLabID:(sLabel:’4’;segmentNo:4));segment:((x:2.5;y:0.3),(x:6.8;y:4.7));trueLP:(x:2.5;y:0.3))

);


You have a similar problem here:

For one record ({!} marks the corrected points):

Srecord: (sSegLabID: (sLabel: '0';segmentNo:0); {!} segment:((x:0.5;y:0.5),(x:3.5;y:1.7))); {!} trueLP: (x:0.5;y:0.5)

Can anyone save me from my misery?

You should try to develop a formatting for such constant record definitions that allows you to spot parenthesis errors quickly.

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to