On Sat, 10 Oct 2015, Ondrej Pokorny wrote:
When we are already discussing new language features, what about supporting
iterators for array properties:
TTest = class
// ...
property Objects[Index: Integer]: TObject read GetObject *iterator
GetObjectIterator*;
property ObjectCount: Integer read GetObjectCount;
end;
This would allow code like:
for MyObject in Test.Objects do
//...
In the LCL, e.g.:
procedure TForm1.Button1Click(Sender: TObject);
var
Comp: TComponent;
begin
for Comp in Components do
//...
end;
This should actually be pretty OK and should not cause any regressions.
After a
sed s/iterator/enumerator/g
I'm all for it.
I've been looking how to implement names/objects/values enumerators in TStrings.
This would be the almost perfect solution.
But your example is not well-chosen, since the enumerator for TComponent
already exists:
Procedure TForm1.Button1Click(Sender: TObject);
var
Comp: TComponent;
begin
for Comp in Self do
//...
end;
Just as an aside...
Michael.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel