Hi, I've never really used the for..in in real code, because I think the iterator is very limited. I've implemented much more flexible iterators for most container types.
Here is another stumbling block of for.in usage. The statement itself doesn't give you any hint as to what the return type is. What is the correct way of finding the return type of a for..in statement? I need to define a variable of some or other type. The container's Iterate() method doesn't give any hints. Neither does the container's GetEnumerator() method. I then had to dig into the source code of the return type of GetEnumerator() to finally find the Current property and it's return type. And before you say it, the for..in return type is not always very obvious. eg: if you use for..in over a TJSONObject the return type is not TJSONData, but rather TJSONEnum. And as that name [badly] suggests, it isn't actually an enum (as per the Object Pascal language definition). It is in fact a Record structure. Regards, Graeme _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal