begin process at 2012 02 14 03:30:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > ADDIN HELPER - CRÉEZ VOS PROPRES ADDIN POUR VB6 [MODULES DE CLASSE]

ADDIN HELPER - CRÉEZ VOS PROPRES ADDIN POUR VB6 [MODULES DE CLASSE]


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Classé sous :addin, class, helper, vb6, afck Niveau :Initié Date de création :15/10/2008 Date de mise à jour :16/10/2008 17:00:59 Vu / téléchargé :3 349 / 335

Auteur : PCPT

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
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

  • '
  • '
  • ' *- 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
'
'
'   *- 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

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

15 octobre 2008 14:15:56 :
.
16 octobre 2008 17:01:00 :
- quelques commentaires égarés, + 2 évènements pour le userdocument

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) [VB2008] OBSERVER L'ACTIVITÉ INPUT (CLAVIER SOURIS) DE L'UTI...
Source avec Zip Source avec une capture PUBLIC SHARED SANS MODULE - VARIABLE SINGLETON : IDENTIFICAT...
Source avec Zip Source avec une capture RÉCUPÉRATION DES IMAGES SYSTÈME DEPUIS LEUR EXTENSION OU LEU...
Source avec Zip Source avec une capture FILE FOLDER LOCKER - BLOQUER (ET DÉBLOQUER) L'ACCÈS À CERTAI...
Source avec Zip Source avec une capture FOLDER HELPER - DOSSIERS SPECIAUX, MANIPULATION DE DOSSIERS,...

 Sources de la même categorie

Source avec Zip DLL PERSONNALISÉ AVEC ÉVÈNEMENTS ET PROPRIÉTÉS EN VB6. par Number7
Source avec Zip Source .NET (Dotnet) EXEMPLE DU TUTORAIL "CLASSES MÉTIER" par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES LISTES : RANGEMENT (LIST.SORT) ET FILTRAGE (LIST... par kbalist
Source avec Zip EXEMPLE SUR LES MENUS POUR AIDER LES DÉBUTANTS COMME MOI ;-) par viragoloco
LES OPÉRATIONS DE LA LISTE CHAINÉE par smaili

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CD-VB6-ADDIN par cdbi
Source avec Zip Source avec une capture VB6 ADDIN - FAITES DISPARAITRE LES MSGBOX D'ERREUR IDE par EBArtSoft
Source avec Zip VB6-INNO-WIZARD par cdbi
Source avec Zip Source avec une capture DIR RÉCURSIF MULTI-FILTRES EN UNE SEULE PASSE [MODULE / MODU... par PCPT
Source avec Zip Source avec une capture CONVERTIR DU CODE HTML TEXTE AU FORMAT HTML (EN VB6 ET VBA) ... par PCPT

Commentaires et avis

Commentaire de Willi le 15/10/2008 17:17:17 administrateur CS 10/10

Je n'en attendais pas moins de ta part sur le sujet la ^^
C'est tellement plus clair pour moi maintenant le fonctionnement des addins dans l'ide de vb6 :)

Commentaire de NISANDSYSTEMS le 16/10/2008 16:05:25

Bonjour,
Ouhais, bof, pffff, pas terrible. Que dire???

Je blague, heureusement même.
Sinon, bon travail avec recherche sur ce sujet un peu sensible pour les débutants et mêmes les confirmés.
Très bonne explication, rien à dire.
Si une petite chose! continue comme cela, c'est bien.
A la prochaine lecture.

Philippe.

Commentaire de PCPT le 16/10/2008 17:05:05 administrateur CS

merci pour vos comms (et note)
les addins sont assez "secrets", çà l'était pour moi en tout cas, j'espère que ces classes pourront vous aider à démystifier un peu la chose :p

nb : petite maj de nettoyage et 2 évènements pour le userdoc

je modifierai selon vos demandes
++

Commentaire de candyraton le 22/10/2008 01:36:12 9/10

D'accooooorrd...
Trés instructif;
J'ai parcouru et essayé
C'est une très bonne base de travail.
Je garde ça sous le coude, je suis persuadé que ça me servira (j'aurais sûrement des questions à ce moment là).
Au niveau codage, j'ai rien a redire (évidement) (ça donne envie de trouver (bizarre non?) (la perfection d'autrui taquinerai mon imperfection? je pense pas car pcpt a des grands pieds :))
Il y a même des exemples.
J'ai vu l'image dans l'éditeur de ressource, mais pas le gif, il est ou?
J'ai aussi envi d'apprendre ce que sont les concepteurs et .DsrConnect en lisant ce code.
bref, envi d'en savoir plus.
Pour http://www.codyx.org/snippet_form-chargee-form-visible_210.aspx#689; pour les forms comme pour les fenêtre l'IDEAL serait un "capteur" qui "lit" sur l'écran la réalité finale des choses (visible ou non), car il me semble avoir vu que si la form est rendue invisible par SetLayeredWindowAttributes la propriété .visible change, mais pas avec SetWindowPos whohandle, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE + SWP_NOMOVE + SWP_HIDEWINDOW + SWP_NOACTIVATE + SWP_NOZORDER.
Je me trompe?
(de toute façon, avec ce qu'on a on y arrive.)
J'ai aussi constaté que si je demande à unloadé une form non loadée je n'ai pas d'erreur signalée;
Est-ce mieux de faire le test?

Je découvre For Each objects In Forms
qui me sera bien utile.

bref, c'est bien sympa tout ça.

Commentaire de PCPT le 22/10/2008 14:37:40 administrateur CS

salut,

il ne faut pas confondre la propriété visible et le fait que tu la vois...
si ta form n'est plus dans ton espace de travail, tu peux toujours interagir sur sa visibilité et pourtant... tu ne la vois pas
de même qu'avec un taux de transparence de 255 sous xp, elle est transparente mais pas invisible. la méthode "visible" fournie permet juste de ne pas forcer le chargement en "posant la question" si la form n'est pas chargée

et tu n'as pas d'erreur de déchargement d'une feuille non chargée parce qu'en réalité, sans test, tu charges quand même cette feuille!

test => un projet, 2 forms :

FORM1 :
Private Sub Form_Load()
Unload Form2
End Sub

FORM2 :
Private Sub Form_Initialize()
MsgBox "FORM2 : j'ai bien été chargée"
End Sub


donc en réalité, tu décharges une feuille chargée ;), donc pas d'erreur

++

Commentaire de candyraton le 24/10/2008 01:04:25

ok
le test est important.

J'ai vérifié mes dires, ben c'est exactement le contraire:
avec setwindowpos la propriété .visible change, mais (comme tu dis) pas avec SetLayeredWindowAttributes (preuves à l'appui).
Faut croire que setwindowpos agit directement sur la propriété de la feuille.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ADDIn VB6 cherche testeur [ par aserf ] Bonjours,Je cherche des personne pour tester un petit addin pour vb6, il genere automatiquement des fenetre a partire de table, il genere aussi des fo ComClass [ par vbnino ] Salut! -J'ai crée une classe pour VB6 avec VB.net voila avec VB.net:<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _Pu Créer une class (très important svp) [ par Sinsitrus ] Salut !Je crois que j'ai trouvé la solution d'installer un exe fait en VB6 sans passer par des moyens bizaroides. Seulement, il me reste une option pr Addin VB6 Ajouter une Textbox Ou une Command1 ou une Listbox [ par rocky42 ] Bonjour voila je debute dans le Addin en vb6 Je cherche a recrée une sorte de toolbox pour vb6 en addin Jaimerait savoir si quelque sait comment je Lire une image png dans un picturebox [ par bouchitostati ] Bonjour. J'utilise VB6. J'aimerai insérer une image png dans un picture box. Actuellement je lis des bmp via la fonction loadpicture. J'ai essayé d' base de donnée aaccec avec vb6 [ par ayoubenim ] Pour la base des données j’ai indexé un champ, mais les index n’apparaissent pas dans le fichier acces appel de tableau dans vb6 [ par ayoubenim ] Puis-je faire appel à un tableau appartenant à une autre form (j’ai essayé mais la syntaxe n’a pas été acceptée) ? VB6 : impossible de lire du XML [ par chrismargab ] Bonjour, J'ai le fichier xml suivant : service Gère les services [string] recupèrer une variable VBA dans VB6 [ par the_little_big_man ] bonjour. est-il possible de recupèrer une varibale crée dans une macdro ( ou en module ) en vba dans une application VB ??? enfait j'aimerais apres


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,042 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales