9.1. Sample Script for a Dynamic Dialog Box
The following script illustrates the most important concepts you'll need to understand in order to create a dynamic dialog box in your script:
'Dim "Fruits" and "Vegetables" arrays here to make them accessible to
'all procedures.
Dim Fruits(2) As String
Dim Vegetables(2) As String
'Dialog procedure--must precede the procedure that defines the custom
'dialog box.
Function DialogControl(ctrl$, action%, suppvalue%) As Integer
Select Case action%
Case 1
DlgListBoxArray "ListBox1", fruits 'Fill list box with
'items before dialog
'box is visible.
DlgValue "ListBox1", 0 'Set default value to
'first item in list box.
Case 2
'Fill the list box with names of fruits or vegetables
'when the user selects an option button.
If ctrl$ = "OptionButton1" Then
DlgListBoxArray "ListBox1", fruits
DlgValue "ListBox1", 0
ElseIf ctrl$ = "OptionButton2" Then
DlgListBoxArray "ListBox1", vegetables
DlgValue "ListBox1", 0
End If
nd Select
End Function
Sub Main()
Dim ListBox1$() 'Initialize array for use by ListBox
'statement in template.
Dim Produce$
'Assign values to elements in the "Fruits" and "Vegetables"
'arrays.
Fruits(0) = "Apples"
Fruits(1) = "Oranges"
Fruits(2) = "Pears"
Vegetables(0) = "Carrots"
Vegetables(1) = "Peas"
Vegetables(2) = "Lettuce"
'Define the dialog box template.
Begin Dialog UserDialog ,,163,94,"Grocery Order",.DialogControl
Text 13,6,32,8,"&Quantity:",.Text1 'First control in
'template gets the focus.
TextBox 48,4,28,12,.TextBox1
ListBox 12,28,68,32,ListBox1$,.ListBox1
OptionGroup .OptionGroup1
OptionButton 12,68,48,8,"&Fruit",.OptionButton1
OptionButton 12,80,48,8,"&Vegetables",.OptionButton2
OKButton 112,8,40,14
CancelButton 112,28,40,14
End Dialog
im b As UserDialog 'Create the dialog record.
b.TextBox1 = "12" 'Set the default value of the text
'box to 1 dozen.
response% = Dialog(b) 'Display the dialog box.
Select Case response%
Case -1
If b.OptionGroup1 = 0 Then
produce$ = fruits(b.ListBox1)
Else
produce$ = vegetables(b.ListBox1)
End If
MsgBox "Thank you for ordering " & b.TextBox1 & " " & produce$ & "."
ase 0
MsgBox "Your order has been canceled."
End Select
End Sub