Thanks Tres. The 1's are explained for sure but I can't see a always doing the job for this. What I need is an object that keeps track of the last number given to it so it will supply the next based on its state. For use in a flat form with say a dozen fields you are not repeating over each field but still you need an incrementing tabindex value. In this case no repeat is necessary but each call to tabindex still requires next value and you can't do this if there if state is not available. I thought I could use the built-in iterator in this way but 1 or 0 for next will not return what I need from the instance. Could a method be added to existing Iterator class to provide the current or next value of Iterator instance for this purpose as opposed to true and false. Maybe called them currval and nextval or similar. I hoping not to have to create a product just to do this.

Regards
David


On Wednesday, July 20, 2005, at 10:24 AM, Tres Seaver wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

David Pratt wrote:
Hi Chris. Thanks for your reply.

My understanding (which may be flawed) is that ZTUtils iterator provides
values of a sequence as you iterate over them with a repeat statement.
I believe what I am trying to do is sensible. I have looked at the api
and can't seem to get the right magic using the methods  provided.
Tabindex for forms keeps track of tab position so when you use tab key
it moves the cursor to next field tabindex in form .  So if I have 5
input fields from top to bottom, I want to define an iterator object,
and obtain the next number in the iterator when zpt does its thing to
create the form so that I would have a tabindex starting at 1 and next
field value would be 2, then 3 etc.

A range by itself doesn't do the trick since it provides all values to
the variable where I am looking only for a single number incremented to
the next value.

- From $ZOPE/lib/python/ZTUtils/Iterator:

 __doc__='''Iterator class

 Unlike the builtin iterators of Python 2.2+, these classes are
 designed to maintain information about the state of an iteration.
 The Iterator() function accepts either a sequence or a Python
 iterator.  The next() method fetches the next item, and returns
 true if it succeeds.

 $Id: Iterator.py,v 1.9.42.2 2003/11/04 19:27:43 evan Exp $'''


Note that last sentence, which explains why you are seeing the '1' value
everywere.  'tal:repeat' over a range should get you what you want;  I
don't think you *need* an iterator for your use case.


Tres.
- --
===================================================================
Tres Seaver          +1 202-558-7113          [EMAIL PROTECTED]
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFC3lB++gerLs4ltQ4RAuvSAJwPRCNefT9753fli0xOL7EEnRRHgwCggT/C
M3ysckA7tZJZkZ0I10xgkLI=
=jzat
-----END PGP SIGNATURE-----

_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to