Delphiのfor..in文をサポートするクラスは、GetEnumeratorメソッドで列挙子を取得できます。
たとえば、
TStringsはTStringsEnumeratorのオブジェクト、
TListはTListEnumeratorのオブジェクト、
TCollectionはTCollectionEnumeratorのオブジェクト
を返します。
C++Builderでも列挙子を取得して使用することができます。
列挙子は、GetCurrentメソッドで現在フォーカスが当たっている要素を返します。
MoveNextメソッドでフォーカスを次の要素に移動し、要素があればTrueを返します。
TStringList* sl = new TStringList();
sl->Add("foo");
sl->Add("bar");
sl->Add("baz");
//列挙子を取得
TStringsEnumerator* enumrator = sl->GetEnumerator();
while (enumrator->MoveNext()) { //次の要素に移動
UnicodeString s = enumrator->GetCurrent(); //要素を取得
ShowMessage(s);
}
delete enumrator;
delete sl;