Vérifier si une boîte de dialogue est ouverte

Il est utile de savoir si une boîte de dialogue est ouverte avant d’effectuer certaines actions. Par exemple :

  • Les boîtes de dialogue n’ont pas besoin d’être rafraîchies, mais les grilles d’affichage, oui.

  • Certains événements du flux de travail ne sont pas autorisés lorsqu’une boîte de dialogue est ouverte.

L’événement DialogBox peut être utilisé pour suivre la visibilité des boîtes de dialogue.

Recommandations

Pour éviter des résultats imprévisibles, déterminez si une boîte de dialogue est ouverte avant que des événements ne se produisent.

L’exemple suivant vérifie si la boîte de dialogue de création d’un nouveau défaut est ouverte. Ceci est pertinent car le champ BG_USER_01 ne peut être modifié que pour un nouveau défaut. Si une autre boîte de dialogue est ouverte, par exemple la boîte de dialogue permettant de modifier un défaut, le champ BG_USER_01 ne peut pas être modifié.

Exemple :  

' Declare a global variable for each dialog box of interest
Dim NewDefectDialogIsOpen
' Initialize the global variable
NewDefectDialogIsOpen = False
Sub DialogBox(DialogBoxName, IsOpen)
    If DialogBoxName="New Bug" Then
        NewDefectDialogIsOpen = True
    Else
        NewDefectDialogIsOpen = False
    End If
End Sub
Function Bug_FieldCanChange(FieldName, NewValue)
' Initialize the function's return value to avoid
' unpredictable behavior.
Bug_FieldCanChange = True
' The BG_USER_01 field can only be modified for a new defect.
If FieldName="BG_USER_01" Then
    If NewDefectDialogIsOpen Then
        Bug_FieldCanChange = True
    Else
        Bug_FieldCanChange = False
    End If
End If
End Function

Retour en haut