cs_VTO
Messages postés7Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention29 août 2008
-
29 août 2008 à 08:42
cs_VTO
Messages postés7Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention29 août 2008
-
29 août 2008 à 11:35
Bonjour,
J'essaye de créer un évènement dans une form et le gérer dans un module de classe.
J'ai créer une form ("Form1") avec un bouton ("Command1").
Option Explicit
Public Event Click()
Private Sub Command1_Click()
RaiseEvent Click
End Sub
Private Sub Form_Load()
Command1.Caption = "test"
End Sub
un module de classe "Classe"
Option Explicit
Private WithEvents Feuil As Form1
Private Sub Class_Initialize()
Set Feuil = New Form1
Feuil.Show
End Sub
Private Sub Feuil_Click()
Feuil.Label1.Caption = "évènement"
End Sub
et un module démarrant mon application par "sub main"
Public Sub Main()
Set CClasse = New Classe
'gesterreur:
End Sub
Cependant quand je clique sur mon bouton, je passe bien sur le "raisevent Click" mais je ne passe pas par ma fonction "Private Sub Feuil_Click()" du module de classe.
Je voudrais juste savoir pourquoi ? et comment faire pour que je passe dans mon module de classe.
si vous vous posez la question pourquoi je veux faire comme ça, c'est que je gère une base de donnée dans mon module de classe et je voudrais sur le clik d'un bouton ouvrir ou modifier ma base de donnée.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 29 août 2008 à 09:13
Salut,
Je n'ai absolument aucun problème avec ton code chez moi.
en revanche la SEULE CHOSE que j'ai due faire pour que cela fonctionne c'est de préciser à VB6 que le démarrage du projet se faisait par un SUB MAIN. mais je suppose que tu l'as fait aussi non?
si ce n'est pas le cas fait le cela devrait corriger ton problème.
cs_VTO
Messages postés7Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention29 août 2008 29 août 2008 à 10:40
C'était ça.
Mais en fait, mon projet original est un EXE ActiveX donc je lance pas ma classe par un module mais par un EXE standard. Donc est-ce que tu aurais une idée pour remplacer le "dim cclasse as classe" ou autre chose pour que ça fonctionne?
cs_VTO
Messages postés7Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention29 août 2008 29 août 2008 à 11:35
C'est bon.
J'avais déjà déclarer ma classe comme il fallait, mais pour tester mon EXE ActiveX, je le lançais en run (Ctrl+F5) puis je lançais le fichier .exe de mon EXE standard. Mais mon EXE standard plantait après l'ouverture de l'activeX. Par conséquent les évenements ne fonctionnaient pas.
pour tester un activeX il faut le lancer en run PUIS OUVRIR l'EXE standard, puis lancer le standard en run (Ctrl+F5).