Question : Combobox with an array that gets lengthened

I've got a combobox with the RowSourceType property set to 5, to use an array.

The last row in the array contains an entry "new". Selecting this allows you to add an extra entry into the list.

Except that once I've added the new entry, I lose the "new" entry at the end of the list.

I think that what's happening is that when I first set up the combobox, VFP works out that it has (say) 200 rows. Adding the extra row means that the array now has 201 rows, with "new" in the 201st row. But VFP still thinks that the array has 200 rows.

I've looked through the object's properties using DEBUG, but the only obvious property is .LISTCOUNT, which is read-only.

Is there another property that I should have incremented in some way?

Answer : Combobox with an array that gets lengthened

AddItem does not help here.

If you change the RowSource array dimension you have to call Combo's Requery method to update the number of displayed options.

Following code works in Combo's Valid event (macro substitutions are there just for testing puproses):
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
WITH THIS
  
  IF .Value = '' AND .RowSourceType = 5
    lcSource = .RowSource
    &lcSource[ALEN(&lcSource)] = 'New opt ' + TIME()
    DIMENSION &lcSource[ALEN(&lcSource)+1]
    &lcSource[ALEN(&lcSource)] = ''
    .Requery
  ELSE
    WAIT WINDOW "Combo selection: " + .Value NOWAIT
  ENDIF
  
ENDWITH
Random Solutions  
 
programming4us programming4us