Je vous propose 5 classes qui vont vous aider pour créer vos propres Addin.
======= 4 classes autonomes
AfCls_ButtonHelper => crée un item dans le menu des composants et renvoie l'évènement click
AfCls_MenuHelper => crée un bouton avec image et tooltip dans la toolbar et renvoie l'évènement click
AfCls_FormHelper => vous y attachez votre formulaire et savez à tout moment son état de chargement et pouvez facilement agir en conséquence
AfCls_UserDocHelper => crée une instance de votre userdocument, vous pouvez alors aussi facilement interagir (tant en MDI qu'en SDI)
======= 1 classe wrapper
AfCls_CoreHelper => regroupe une instance de chaque, chaque objet étant optionnel
vi vous avez besoin de 3 boutons et 2 userdocuments par exemple, pour garder ce côté pratique d'une seule instanciation faite plutôt une classe héritant de AfCls_CoreHelper (sans transmettre les "enfants" au 'Connect') et déclarez-y 2 'AfCls_ButtonHelper' et 1 'AfCls_UserDocHelper' supplémentaires
ou modifiez juste 'AfCls_UserDocHelper', question de goût.... ^^
pas forcément évident de comprendre le fonctionnement, j'ai épuré au possible en m'appuyant sur des sources existantes et sur la documentation MSDN, j'essayerai de répondre à mieux à vos questions
comme d'hab j'attends vos retours :p
ci-dessous le "code utile" final, ce qui simplifie grandement la tâche
Source / Exemple :
'
'
' *- CONNECT : INITIALIZE -*
Private Sub AddinInstance_Initialize()
' init classe d'aide
Set AfAddIn = New AfCls_CoreHelper
' menu
AfAddIn.Menu.Caption = "Titre de votre menu"
' bouton
With AfAddIn.Button
.ToolTipText = "Afficher / masquer l'horloge"
.RessourceID = 101
End With
' Concepteur
Set AfAddIn.DsrConnect = Me
' userdoc
With AfAddIn.UserDocument
.Name = "UDoc_AddIn"
.Caption = "Exemple : horloge bidon"
End With
End Sub
'
'
' *- CONNECT : CONNEXION -*
Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
' instance VB
Set AfAddIn.VBInstance = Application
' initialisation finale
AfAddIn.Connection AddInInst, False, True
End Sub
'
'
' *- CONNECT : DéCONNEXION -*
Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
' Supprime le bouton, menu, et les forms
AfAddIn.Disconnection
End Sub
Conclusion :
les classes sont fournies avec un "projet bidon", une simple horloge qui vient se placer dans l'IDE....
projet uniquement pour que vous puissiez tester de suite, la source ne porte que sur les 5 classes
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.