johnnous
Messages postés100Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention24 mai 2013
-
5 mars 2008 à 12:02
johnnous
Messages postés100Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention24 mai 2013
-
5 mars 2008 à 17:32
Bonjour
j'ai une application utilisant des modules fichiers.bas dans un projet ocx
je veux lorsque j'ai une erreur dans mon .bas appeller une routine de mon ocx afin de faire un raise event
voici mes sources
dans l'ocx:
Public Sub ErrMod(MsgErr As String)
MsgBox MsgErr
End Sub
Private Sub Command1_Click()
testMod (4)
End Sub
dans le module.bas
Public Sub testMod(i As Integer)
On Error GoTo ErrHandler '***** Management error **********
Dim str As String
i = i + 1
i = str
Exit Sub
ErrHandler:
'Logging
UserControl1.ErrMod (" No: " + CStr(Err.Number) + " " + Err.Description + "[EffacerSection(" + Section + "," + Nomfic + ")]")
If Not UnloadOnError Then
Resume Next
End If
End Sub
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 5 mars 2008 à 14:59
Bonjour
A ce moment là, il faut que tu prévopi que lors de la création de ton Usercontrol (par l'app utilisatrice) de l'inscrire dans ton module (par une variable Public par exemple).
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Vous n’avez pas trouvé la réponse que vous recherchez ?
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 5 mars 2008 à 16:06
Bonjour
Je préferais éviter pour l'instant, car j'ai juste quelques autres question avant :
- est-ce pour décharger le code du UserCotrol que tu as fait ce module ?
- Y-a-t-il posssibilité de multiplicité des instances du control ? (plusieur controles du type UserControl1 en même temps)
- A quoi te sert ton contolre ?
- A faire un Log ?
- A être utilisateur du module ?
Sinon concernant le code copié :
Public Sub testMod(i As Integer)
Dim str As String
i = i + 1
i = str
Integer=String ????
Utilises Cint ou Val pour convertir les chaines en entier.
Préfère l'utilisation de Long au lieu de Integer (léger gain de rapidité).
Tu n'initialises pas Str, donc i=0 tt le tmp.
J'attends ta réponse pour voir les solutions possibles.
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
johnnous
Messages postés100Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention24 mai 2013 5 mars 2008 à 16:29
Ca fait 3 fois que je reponds et qu'il m'efface tout
donc je disais
je veux creer une erreur dans mon ocx d'ou la routine
et recuper l'evenement dans mon ecran utilisant l'ocx
dans mon .bas
Public Sub testMod(i As Integer)
On Error GoTo ErrHandler '***** Management error **********
Dim str As String
i = i + 1
i = str
Exit Sub
ErrHandler:
'Logging
UserControl1.ErrMod (" No: " + CStr(Err.Number) + " " + Err.Description + "[EffacerSection(" + Section + "," + Nomfic + ")]")
If Not UnloadOnError Then
Resume Next
End If
End Sub
dans .ctl
Public Sub ErrMod(MsgErr As String)
RaiseEvent ErrorEvt MsgErr
End Sub
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 5 mars 2008 à 16:37
Bonjour
Soit tu ajoutes un paramètre contenant le UserControl, afin que ta Sub utilises ce control.
Soit il faut que tu mémorise (dans le module) une référence vers ce UserControl, il n'y a pas d'autres solutions (à moins de voir comment faire avec des Shared, mais ça ne solutionneras pas ton pb je penses).
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site