On 26.12.2011 12:50, Howard Page-Clark wrote:
On 25/12/11 10:07, Jiří Pavlovský wrote:

What do you mean ?
I mean the code below works ok, so I don't undestand why it doesn't
compile when I use similar construct inside a function.
const ranges: array [1..2] of TMyRec =
      (
          (Start:    0;    Stop:    3),
          (Start:    4;    Stop:    7)
        );

Are you looking for something like this? (BTW your code snippets are too short to really understand what you can't do).


Yes, sorry I should have been more clear. It was late evening and I got frustrated...

I now got what I need working. Still if there is a way to make it more concise, Please let me know.


{$mode objfpc}
uses  fgl;

type
TMyRec = record
    Start, Stop : integer;
    End;

MyIntType = byte;
TArrayType = array of TMyRec;

TSubMyMap = specialize TFPGMap<Char, TArrayType>;
TMyMap = specialize TFPGMap<Char,TSubMyMap>;

var t : TMyMap;
 r : TMyRec;
 myArray : TArrayType;

begin
r.Start := 1; r.Stop := 2;
SetLength(myArray, 1);
myArray[0] := r;

t:= TMyMap.Create;
t['a'] := TSubMyMap.Create;
t['a']['b'] := myArray;

writeln(t['a']['b'][0].Start);

end.



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

Reply via email to