begin process at 2008 07 06 02:45:46
1 205 441 membres
21 nouveaux aujourd'hui
14 119 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ADDIN VB6 - INDENTEUR DE CODE SIMPLE À LANCER PAR RACCOURCIS CLAVIER


Information sur la source

Catégorie :Optimisation du code Classé sous : addin, indentation, code, raccourcis, subclassing Niveau : Initié Date de création : 03/08/2007 Date de mise à jour : 06/08/2007 15:39:11 Vu / téléchargé: 4 014 / 251

Note :
Aucune note

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


Description

Bonjour,

Voilà bien longtemps que je cherchais à lancer un add-in depuis l'IDE à l'aide d'un raccourcis clavier.

Certains ont peut-être déjà essayer (pire, déjà réussi!) mais il n'est pas possible simplement d'associer un raccourcis à un menu créé pour le lancement d'une fonction d'un Add-In.

En fait, la solution est la même que celle utilisée pour rajouter la molette de la souris dans l'IDE. Il faut sous classer l'IDE de VB6, plus précisément, il faut sous classer la fenêtre de code de l'IDE. Mini drame : l'IDE ne nous fournit pas le Handle de l'objet "window" de la fenêtre de code. Heureusement, on a accès au handle de la fenêtre principale, le code pane étant une fenêtre fille de la fenêtre MDI, on peut alors récupérer son Handle (de la fenêtre fille, ça suit ?). Ah oui, mais ça c'est en MDI. Pour le mode SDI cher à Clementio, c'est plus simple. Juste un "FindWindow" est nécessaire pour récupérer le hWnd.

Le seul problème, c'était moi :o). Incapable de garder mon self-control quand on me parlait de subclassing, j'ai du m'y mettre. Finallement, pour ce que j'avais à faire ici, c'était pas trop compliqué.

Comme exemple d'utilisation, je vous propose un indenteur de code, très simple, pas configurable pour le moment, il sera mis à jour au fur et à mesure.

Conclusion

Une fois le complément chargé, Ctrl+F11 indente le module courant, Ctrl+Maj+F11 indente le projet.

Spéciale dédicace, comme on dit à :
EBartsoft (origine du code pour utiliser la roulette dans l'IDE)
Philippe734 (pour sa source custom tools)
Clementio (le mode SDI est fait pour toi !)
Renfield, pour m'avoir tant énervé avec son subclassing !!!


N'hésitez pas à laisser vos commentaires, remarques, évolutions.

++
Moustachu
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

05 août 2007 10:32:16 :
Retrait whell.tlb
06 août 2007 15:30:14 :
Paramétrage de l'indentation (click droit dans un volet de code, menu Indente moi ça !) Ajout d'un visuel d'avancement.
06 août 2007 15:30:52 :
Paramétrage de l'indentation (click droit dans un volet de code, menu Indente moi ça !) Ajout d'un visuel d'avancement.
06 août 2007 15:39:11 :
Pb de ZIP
  • signaler à un administrateur
    Commentaire de MadM@tt le 03/08/2007 19:58:54

    ça a l'air super interessant ça !
    J'ai bien aimé la présentation mélodramatique, j'ai failli y verser une larme... que de rebondissements héhéhé ^^

    Je testerai ça bientot en tout cas, bravo pour le boulot !

    (et dans la meme lignée - addin VB - y'a de quoi faire c'est cool d'apporter des petits outils comme ça)

  • signaler à un administrateur
    Commentaire de Renfield le 04/08/2007 07:31:27 administrateur CS

    manque le wheel.tlb


    dans connect.dsr : CommandBars.Item(11)
    ne reference pas le menu par son index, utilises son ID (on peut avoir des menus en plus...)

    Tout le monde n'indente pas de la même facon, faudrait pouvoir parametrer la chose

    Enfin, imagine un gros projet tout crade. Tu te vois ouvrir chaque module pour l'indenter ?
    "Indenter le projet" DOIT donc faire son apparition...

    pas mal codé sinon

  • signaler à un administrateur
    Commentaire de moustachu le 04/08/2007 10:27:19

    Merci de vos messages.

    Oui, oui, tout le monde n'indente pas de la même manière. Le paramétrage va suivre. le wheel.tlb ne doit pas servir, il faut que je le retire.

    J'imagine bien un projet tout crade, même un groupe de projets ^^ ! Je metterai indenter le projet.

    Maintenant, c'était surtout pour illustrer le lancement d'une fonction par raccourcis clavier.

    Pour le menu, j'ai fait ça un peu vite, je vais voir aussi.

    Dis-donc Renfield, tu te mets persque à écrire comme Brunews. Attention, c'est copyright ;o)

    ++

    Moustachu

  • signaler à un administrateur
    Commentaire de asimengo le 04/08/2007 14:35:31

    Download et dans les archives.

    Pfffffffffffffffffff encore ce fameux subclassing, fo peut-etre essayer de savoir ce que c'est. Au fait Moustachu pour aller plus vite file moi un lien que je mettrai aussi aux archives pour pouvoir aller y jeter un coup d'oeil si yaura un jour besoin.

    Suis vieux pour retourner à l'école, j'ai une famille à nourir moi, vous allez trop loin, lol.

  • signaler à un administrateur
    Commentaire de Renfield le 05/08/2007 09:46:24 administrateur CS

    J'ecris, j'ecris pas mal sur VbFrance, je fais direct et concis...
    BruNews a du faire le même constat y'a un bout de temps ^^

  • signaler à un administrateur
    Commentaire de moustachu le 05/08/2007 10:22:07

    Renfield>Aucun soucis, tu l'avais compris. Précis et concis, on a toutes les infos nécessaire ;o)
    Asimengo>J'ai pas bien compris ton message
    MadM@tt>Un mélo, peut être, et je t'ai épargné l'épisode du RegisterHotKey...

  • signaler à un administrateur
    Commentaire de moustachu le 06/08/2007 15:35:01

    Source mise à jour. Le paramétrage de l'indentation est dispo (enfin... presque...)
    En revanche, j'ai un petit problème dans la procédure WindowProc (module modMain) :
    Select Case uMsg
        Case WM_KILLFOCUS
            UnhookWindow
            HookWindow

    J'ai bien le UnHook mais il semble que le code pane ne soit pas actif au moment du HookWindow, le raccourcis clavier ne fonctionne donc pas si on réduit une fenêtre et qu'une autre, en dessous, devient active.

    Quelqu'un a une idée ?

    ++
    Moustachu

Ajouter un commentaire

Pub



Appels d'offres

Plugin Dialer outlook
Budget : 2 000€
Travail graphique- ill...
Budget : 1 000€
creation de marque et ...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS