IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Empêcher la pose d’un OCX sur un Form.


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut Empêcher la pose d’un OCX sur un Form.
    Bonjour
    Je réalise un OCX qui demande une DLL qui est installée sur tout les OS depuis Windows 98, mais il arrive qu’elle soit mal installée (pour faire simple).
    J’ai le moyen de détecter ce cas, dans la procédure UserControl_InitProperties ==> appel de la sub privée de vérification, lors de la pose de l’ocx sur le Form.
    S’il y a problème, un MsgBox le signale au concepteur-utilisateur.
    Je voudrais, dans le cas de l’absence ou non-conformité, que le chargement de cette ocx prenne fin et bien sûr qu’il n’apparaisse pas sur le Form.
    Pour résumer, comment empêcher que l’ocx ce retrouve sur le Form ?

    Merci
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Le plus simple est de :
    - faire apparaître une msgbox informant le développeur de ce qu'un problème existe et qu'en conséquence vb va être fermé sans sauvegarde.
    - fermer VB

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut ucfoutu
    Non non, je veux que le programmeur qui pose l'OCX sur son Form ne ce retrouve pas avec un OCX qui lui fasse planter son projet.
    Pour le MsgBox il y est déjà durant la pose sur le Form (dans la procédure UserControl_InitProperties ==> appel de la sub privée de vérification), avant même qu'il apparaisse.
    Par contre si il le laisse et qu'il utilise les fonctions de la DLL utilisée, l'OCX ne fonctionne pas, mais je crains une fuite de mémoire et un risque de plantage, je voudrais éliminer cette possibilité.

    Sur ce il se fait tard, je faisai un dernier passage, à bientôt ...... demain ...
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    J'avais bien compris...

    Si tu quittes VB en mode design (lors de la "pose" de ton ocx) sans enregistrer le projet ===>> pas d'ocx dans le projet ...

  5. #5
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonjour,
    Citation Envoyé par ucfoutu Voir le message
    J'avais bien compris...

    Si tu quittes VB en mode design (lors de la "pose" de ton ocx) sans enregistrer le projet ===>> pas d'ocx dans le projet ...
    Tu utilises une masse pour tuer une mouche, non ?

    Voir peut-être du coté d'un addin pour gérer la mise en place
    sinon tu peux tourner autour de ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub UserControl_Initialize()
        If MsgBox("On va quitter ?", vbYesNo) = vbYes Then UserControl_Terminate
    End Sub
     
    Private Sub UserControl_Terminate()
        Unload Me
    End Sub
    L'ennui c'est le message d'erreur qu'il va être difficile de contourner.

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Il y a souvent un moyen détourné de faire les choses.

    L’important étant de ne pas faire planter l’éditeur VB, je me suis attelé a trouver la chronologie exacte des procédures enclenchées au moment de la pose d’un composant sur un Form.

    Maitrisant bien la vérification de la DLL pouvant déclencher le problème, lors de la pose de l’ocx sur le Form, si la DLL qu’il utilise est non valide, je masque toutes ses fonctionnalités par un TextBox (présent de toutes façon) que je reseize au fur et a mesure, avec l’information «*OCX non utilisable, DLL non présente ou mal installé*».
    Il ne reste au programmeur qu’a la supprimer du Form.
    S’il fait un Run, le composant reste dans la même configuration, et si des appels par code sont fait, une variable Booléen à False fait quitter toutes les procédures et fonctions.
    Pas super pro comme solution, mais efficace.
    Merci de vos interventions.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer tous les composants posée sur une forme
    Par toutounesan dans le forum VB.NET
    Réponses: 10
    Dernier message: 20/06/2011, 17h08
  2. Comment spécifier des raccourcis claviers sur une Form ?
    Par Sydaze dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/06/2005, 09h05
  3. [VB.NET] Probleme font d'ecran sur un form ??
    Par fdiedler dans le forum Windows Forms
    Réponses: 6
    Dernier message: 11/03/2005, 10h55
  4. Minimize Maximize perso sur une form autre que Application
    Par sdebrois dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 07/03/2005, 17h59
  5. Réponses: 4
    Dernier message: 24/01/2005, 08h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo