DlgListBoxArray Instruction/Function

Syntax:

DlgListBoxArray DlgItem|$, StrArray$( )

-or-

DlgListBoxArray(DlgItem|$[, StrArray$( )])

Group: Dialog Function

Description:
Instruction: Set the list entries for DlgItem|$.

Function: Return the number entries in DlgItem|$'s list.

This instruction/function must be called directly or indirectly from a dialogfunc. The DlgItem|$ should refer to a ComboBox, DropListBox or ListBox.

Parameter Description

DlgItem|$ If this is a numeric value then it is the dialog item number. The first item is 0, second is 1, etc. If this is a string value then it is the dialog item's field name.

StrArray$( ) Set the list entries of DlgItem|$. This one-dimensional array of strings establishes the list of choices. All the non-null elements of the array are used.

Example:

Dim lists$()

Sub
Main
  ReDim lists$(0)
  lists$(0) = "List 0"
  Begin Dialog UserDialog 200,119,.DialogFunc
  Text 10,7,180,14,"Please push the OK button"
  ListBox 10,21,180,63,lists(),.list
  OKButton 30,91,40,21
  PushButton 110,91,60,21,"&Change"
  End Dialog
 
  Dim dlg As UserDialog
  dlg.list = 2
  Dialog dlg ' show dialog (wait for ok)
  Debug.Print dlg.list
End
Sub

Function DialogFunc%(DlgItem$, Action%, SuppValue%)
  Select Case Action%
  Case 2 ' Value changing or button pressed
  If DlgItem$ = "Change" Then
  Dim N As Integer
  N = UBound(lists$)+1
  ReDim Preserve lists$(N)
  lists$(N) = "List " & N
  DlgListBoxArray "list",lists$()
  DialogFunc% = True 'do not exit the dialog
  End If
  End Select
End
Function