On Tue, 2007-04-17 at 16:54 -0500, Larry Bates wrote: > Does anyone know if there is a way to make a Python COM object > act like a proper iterator in VB/Delphi?
I don't use COM, VB, or Delphi, but Google turned up these two references: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcn7/html/vaconUsingForEach.asp http://17slon.com/blogs/gabr/2007/03/fun-with-enumerators-part-1.html Judging from those links, an object is iterable in VB and Delphi (or as they call it, it is enumerable) if it exposes a GetEnumerator method that returns an enumerator. The enumerator in turn needs to expose a MoveNext method and a Current property. Assuming that the Enumerable and the Enumerator are allowed to be the same object, you'll probably need code that looks something like this: class foo: _public_methods_=['GetEnumerator','MoveNext'] # You'll need to figure out how to expose "self.Current" def __init__(self): self.numbers=[1,2,3,4,5,6,7,8] self.Current = None def MoveNext(self): try: self.Current = self.numbers.pop(0) return True except IndexError: return False def GetEnumerator(self): return self Good luck, Carsten. -- http://mail.python.org/mailman/listinfo/python-list