Mike,
Yes, the 'initial selection' string is intended to provide a default selection.
Then, I am not sure I understand you exactly. But, let me try to answer anyway and please don't hesitate to ask for more details or to correct my answer.
The default selection is only managed in terms of rendering on the screen. It is up to your source code to store and remember what is the real status of a LISTCHOICE selected item, with the help of the SELECTEDCHOICE function.
The last selection made in a LISTCHOICE is only set for the last LISTCHOICE event (you could have more than one LISTCHOICE in one form) and it has to be captured right away with SELECTEDCHOICE (as explained that quickly in the user manual...).
Here is an example.
Let's assume, we have 2 LISTCHOICEs in a form, #1 and #2.
Then:
REPEAT
E=WAITEVENT
IF E=1 LET A=SELECTEDCHOICE : GOSUB _DoSomethingWithIt
IF E=2 LET B=SELECTEDCHOICE : GOSUB _DoSomethingWithIt
UNTIL E=-1
This is fine, we store in A and B the selected item for each of the 2 LISTCHOICEs.
REPEAT
E=DOEVENTs
IF E=1 GOSUB _DoSomethingWithIt
IF E=2 GOSUB _DoSomethingWithIt
UNTIL E=-1
_DoSomethingWithIt:
A=SELECTEDCHOICE
RETURN
This is not good, A could get the selected item of any the 2 LISTCHOICEs. And we have no way to know which one.
Maybe give a look to the iBAddress sample program shipped with iziBasic. It does handle a LISTCHOICE to sort the different records.
Cheers,
@+
aldweb