Syntax 

Function dialogfunc(DlgItem$, Action%, SuppValue?) _

     As Boolean

    Select Case Action%

    Case 1 ' Dialog box initialization

        ...

    Case 2 ' Value changing or button pressed

        ...

    Case 3 ' TextBox or ComboBox text changed

        ...

    Case 4 ' Focus changed

        ...

    Case 5 ' Idle

        ...

    Case 6 ' Function key

        ...

    End Select

End Function


Group 

Dialog Function 


Description 

A dialogfunc implements the dynamic dialog capabilities.


Parameters

Description

DlgItem 

This string value is the name of the user dialog item's field.

Action 

This numeric value indicates what action the dialog function is being asked to do.

SuppValue 

This numeric value provides additional information for some actions.


Action

Description

1

Dialog box initialization. DlgItem is a null string. SuppValue is the dialog's window handle. Set dialogfunc = True to terminate the dialog.

2

CheckBox, DropListBox, ListBox, MultiListBox or OptionGroup: DlgItem's value has changed. SuppValue is the new value.
CancelButton, OKButton or PushButton: DlgItem's button was pushed. SuppValue is meaningless. Set dialogfunc = True to prevent the dialog from closing.

3

ComboBox or TextBox: DlgItem's text changed and losing focus. SuppValue is the number of characters.

4

Item DlgItem is gaining focus. SuppValue is the item that is losing focus. (The first item is 0, second is 1, etc.)

5

Idle processing. DlgItem is a null string. SuppValue is zero. Set dialogfunc = True to continue receiving idle actions. The idle action is called as often as possible. Use Wait .1 to reduce the number of idle calls to 10 per second.

6

Function key (F1-F24) was pressed. DlgItem has the focus. SuppValue is the function key number and the shift/control/alt key state.
Regular function keys range from 1 to 24.
Shift function keys have &H100 added.
Control function keys have &H200 added.
Alt function keys have &H400 added.
(Alt-F4 closes the dialog and is never passed to the Dialog Function.)


See Also 

Begin Dialog


Example

Sub Main

    Begin Dialog UserDialog 200,120,.DialogFunc

        Text 10,10,180,15,"Please push the OK button"

        TextBox 10,40,180,15,.Text

        OKButton 30,90,60,20

        PushButton 110,90,60,20,"&Hello"

    End Dialog

    Dim dlg As UserDialog

    Debug.Print Dialog(dlg)

End Sub

 

Function DialogFunc(DlgItem$, Action%, SuppValue?) As Boolean

    Debug.Print "Action="; Action%

    If Action% <> 1 And Action% <> 5 Then

        Debug.Print DlgItem$'; "="""; DlgText(DlgItem$); """"

    End If

    Debug.Print "SuppValue="; SuppValue?

    Select Case Action%

    Case 1 ' Dialog box initialization

        Beep

    Case 2 ' Value changing or button pressed

        If DlgItem$ = "Hello" Then

            MsgBox "Hello"

            DialogFunc = True 'do not exit the dialog

        End If

    Case 4 ' Focus changed

        Debug.Print "DlgFocus="""; DlgFocus(); """"

    Case 6 ' Function key

        If SuppValue? And &H100 Then Debug.Print "Shift-";

        If SuppValue? And &H200 Then Debug.Print "Ctrl-";

        If SuppValue? And &H400 Then Debug.Print "Alt-";

        Debug.Print "F" & (SuppValue And &HFF)

    End Select

End Function