Comment savoir si on exécute le programme dans l'IDE ou en dehors (exécutable) ?
Il peut être utile de savoir si on exécute le programme depuis l'IDE ou non. Pour se faire, on peut utiliser plusieurs méthodes :
- Utilisation de Assert
- Utilisation des directives de compilation conditionnelle
Utilisation de Assert
Cette méthode utilise le fait que la méthode Assert de l'objet Debug n'est exécutée que depuis l'IDE.
Placer le code suivant dans un module (.bas) :
Option Explicit
Private p_bRunIde As Boolean
Public Function IsRunningIde() As Boolean
Debug.Assert pSetvarIDEToTrue
IsRunningIde = p_bRunIde
End Function
Private Function pSetvarIDEToTrue() As Boolean
p_bRunIde = True
pSetvarIDEToTrue = True
End Function
Pour l'utilisation, il suffit alors de faire :
Private Sub Form_Load()
Dim bIsRunningIde As Boolean
bIsRunningIde = IsRunningIde()
If bIsRunningIde Then
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
Else
MsgBox "Le programme n'a pas été lancé depuis l'IDE.", vbInformation
End If
End Sub
Directives de compilation conditionnelle
Pour ceux qui ne souhaitent pas le tester par le code, il est possible d'utiliser les directives de compilation conditionnelles.
On utilise pour cela des constructions utilisant #if ... Then ... #else ... #endif.
Les détails concernant la compilation conditionnelle sont disponible depuis un lien dans la section En Savoir plus.
Pour l'utilisation, il suffit de définir une constante, soit dans le code, et on déclarera alors une constante publique, soit via une constante de compilation (depuis l'IDE, Menu Projet->Propriétés, 2ème onglet 'Make'). On teste alors simplement :
Const Mode_Debug As Boolean = True
Private Sub Form_Load()
#If Mode_Debug Then
MsgBox "debug"
#Else
MsgBox "pas debug"
#End If
End Sub
Pour ne pas inclure le code de débuggage, il suffit de changer la valeur de la variable Mode_Debug à False, ou encore de commenter la déclaration.
L'intérêt par rapport à un classique If ... Then ... Else ... Endif est que les conditions sont évaluées lors de la compilation. L'exécutable généré ne contiendra que les instructions nécessaires.
En savoir plus
|