Savoir si on execute dans l'ide ou pas [Résolu]

cs_magicgus 207 Messages postés mardi 10 février 2004Date d'inscription 14 septembre 2011 Dernière intervention - 9 sept. 2010 à 22:51 - Dernière réponse : Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention
- 10 sept. 2010 à 09:10
Bonjour,

J'avais déjà fait mais je ne me rappelle plus, je développe un ocx et je ne sait plus comment savoir s'il s'exécute dans l'ide ou dans le programme final...

Merci

Guillaume
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_magicgus 207 Messages postés mardi 10 février 2004Date d'inscription 14 septembre 2011 Dernière intervention - 10 sept. 2010 à 01:56
3
Merci
Enfaite entre temps j'ai retrouver dans ma petite tête ce que j'avais déjà fait qui marche, c'est tout con,

    If Ambient.UserMode = True Then
        'L'application est en mode d'execution
    Else
        'On est dans l'IDE de VB
    End If


@jack : je ne connaissais pas ta methode...

Guillaume

Merci cs_magicgus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_magicgus
Meilleure réponse
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 10 sept. 2010 à 09:10
3
Merci
Non, ton code est correct.

en l'occurrence avoir un comportement spécifique au mode Design de Form et un autre le reste du temps.

Comme par exemple pour n'activer un Timer que si l'on est pas en mode design ^^


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Renfield
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 9 sept. 2010 à 23:59
0
Merci
Salut
Voilà un exemple que je viens de retrouver dans mon foutoire :
Dans un module :
Option Explicit

' -------------------------------------------------------------------
' Cette fonction (ModeDebug) retournera True si on exécute
'   le programme en mode IDE, en mode création.
'   Elle renvoie False en mode compilé.

' Ce test réside sur l'utilisation de la commande Debug.Assert.
'   Cette commande permet de dire au code de s'interrompre si
'   la formule qui est fournie devient fausse, pour piéger des
'   bugs ou pour suivre de plus prêt ce qui se passe lorsqu'un
'   évenement se produit.
' Cette fonction Debug.Assert ne fonctionne plus en mode compilé,
'   d'où l'astuce de cette fonction.

' -------------------------------------------------------------------
' Utilisation :
' - Insérez ce module à votre projet (*)
' - Dans le form_Load de votre feuille principale, ajoutez cette
'   simple ligne : ModeDebugInit
'   Cela va lancer la fonction
' - Ensuite, pour avoir si on est ou pas en mode création, il
'   suffira de tester 'ModeDebug'
' (*) pour avoir ce module toujours sous la main, mettez le fichier
'     de ce module dans votre répertoire "VB6\Template\Modules".
'     Quand vous irez dans le menu "Projet", "Ajouter un module"
'     (ou un click-droit "Ajouter" dans l'explorateur de projet),
'     vous retrouverez ce module dans la liste de l'onglet "Nouveau"
' -------------------------------------------------------------------

' Variable qui renverra l'état
Public ModeDebug As Boolean
'

' Initialise la fonction Debug.Assert
Public Sub ModeDebugInit()
    ' Ceci ne sera exécuté qu'en mode IDE, pas en EXE
    Debug.Assert EnModeDebug
End Sub

' Si on passe ici, c'est que la commande Debug.Assert est exécutée
' donc que l'on est en mode IDE
Private Function EnModeDebug() As Boolean
    ' C'est le seul endroit où ModeDebug est passé à True
    ModeDebug = True
    ' Passe le résultat True pour ne pas que la commande Assert
    ' fasse stopper le code (sa vraie raison d'être)
    EnModeDebug = True
End Function

Pour l'utilisation, dans une forme par exemple :
Private Sub Form_Load()
    ' Initialise la fonction de détection
    ModeDebugInit
End Sub

Private Sub cdeTeste_Click()
    If ModeDebug Then
        MsgBox "On est en mode création (IDE)"
    Else
        MsgBox "Ce code est compilé (EXE)"
    End If
End Sub

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 10 sept. 2010 à 03:23
0
Merci
vous ne parliez pas de la meme chose...

Je pensais comme Jack, j'avais pige la meme chose et aurai file le meme code, moins documente...

ton test:

If Ambient.UserMode Then

ne concerne pas le 'programme final', ni l'IDE

on peut tres bien avoir cette variable a true, meme dans l'IDE.
En effet, on peut tres bien tester un ocx SANS avoir a le compiler...

le test:
If Ambient.UserMode Then

permet uniquement de savoir si l'on est en mode design dans l'IDE ou pas (ide en execution, ou en OCX/exe compile...)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
cs_magicgus 207 Messages postés mardi 10 février 2004Date d'inscription 14 septembre 2011 Dernière intervention - 10 sept. 2010 à 04:42
0
Merci
Ha...

Donc pour que mon code soit plus fonctionnel je devrait plutot utilisé le code de jack ?

Par ce que pour le moment ça fonctionne comme je le souhaite...

Guillaume
Commenter la réponse de cs_magicgus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.