igor941
Messages postés25Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention26 mars 2012
-
29 avril 2008 à 15:36
igor941
Messages postés25Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention26 mars 2012
-
30 avril 2008 à 12:11
bonjour,
J'ai créé les classes pour controler les bases de donnés et je voulais donc les tester une par une mais je fais comment pour les tester en faite le programme que je dois ecrire? MERCI
igor941
Messages postés25Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention26 mars 2012 30 avril 2008 à 10:22
a ok je savais pas voila je t'explique bein moi j'avais une base de donné et jai créé les classes et jai créé une classe mere qui s'apelle egix ok et après dans l'interface ou j'ai créé jai mis ce code la :
Private Sub Command1_Click()
Set g_Egix = New CEgix
g_Egix.init
End Sub
Private Sub Command2_Click()
Dim monanim As CAnimation
For Each monanim In g_Egix.Animations
MsgBox monanim.Libelle
Next
End Sub
puis
il me dit quand je le compile il me dit qu'il ne trouve pas LoadAnimations que j'ai mis dans la classe mere et j'ai declaré en plus il me dit introuvable quand je le lance
Vous n’avez pas trouvé la réponse que vous recherchez ?
igor941
Messages postés25Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention26 mars 2012 30 avril 2008 à 10:36
oui on les a declaré en public voia la regarde ou je vois pas ou il est le probleme alors qu'il est defini et lui il trouve pas :
Public Sub loadAnimations(Optional ByVal Loadall As Boolean = False)
Dim dyn As Recordset
Dim strsql As String
Dim AnimationTmp As CAnimation
Set m_col = New Collection
strsql = "Select * From Animations Order by ANI_Libelle"
Set dyn = g_Egix.LocalDB.OpenRecordset(strsql)
While Not dyn.EOF
Set AnimationTmp = LoadAnimation(dyn!ANI_ID_ANI)
If Loadall Then
AnimationTmp.Sequences.LoadSequences
AnimationTmp.Scenes.LoadSecnes
AnimationTmp.Cellules.loadCellules
AnimationTmp.Reglages.loadReglages
End If
dyn.MoveNext
Wend
dyn.Close
igor941
Messages postés25Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention26 mars 2012 30 avril 2008 à 10:43
bein normalement c'est sur loadanimation tu vois regarde dans la classe mere :
'Attention, les Animations doivent être chargés après les données de ref, car des recherches se font dona les collections
'Animations
Set m_ColAnimations = New CAnimations
Set m_ColAnimations.Egix = Me
m_ColAnimations.loadAnimations True
igor941
Messages postés25Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention26 mars 2012 30 avril 2008 à 10:54
bein oui j'ai declarer une pour laodAnimation et lautre Loadanimation(s)
la c ' est LoadAnimation:
Public Function LoadAnimation(ByVal lId As Long) As CAnimation
Dim Animation As CAnimation
Set Animation = New CAnimation
Set Animation.Egix = Me.Egix
Animation.LoadByID (lId)
Add Animation
Set LoadAnimation = Animation
End Function
en tout cas je te remercie de m'aidé c gentil je suis stagiare en visual basic je debute je vien d'aprendre les notion de classes et objet parce j'ai travaillé sous visual basic mais d'une autre façon en supervision reseau voila. Donc comme je suis pas un expert en Visual basic je vois pas l'erreur
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 30 avril 2008 à 11:11
Donc, ta classe contient (après nettoyage) :
Public Function LoadAnimation(ByVal lId As Long) As CAnimation
Set LoadAnimation = New CAnimation
With LoadAnimation
Set .Egix = Me.Egix
.LoadByID (lId)
End With
Add LoadAnimation
End Function
Public Sub loadAnimations(Optional ByVal Loadall As Boolean)
Dim dyn As Recordset
Set m_col = New Collection
Set dyn = g_Egix.LocalDB.OpenRecordset("SELECT `ANI_ID_ANI ` FROM `Animations` ORDER BY `ANI_Libelle` ")
Do Until dyn.EOF
With LoadAnimation(dyn.Fields(0).Value)
If Loadall Then
.Sequences.LoadSequences
.Scenes.LoadSecnes
.Cellules.loadCellules
.Reglages.loadReglages
End If
End With
dyn.MoveNext
Loop
dyn.Close
End Sub
donc:
on évite de ramener plus que nécessaire dans les recordset (SQL à corriger)
on utilise With, pour accelerer la chose... (le traitement, pas le codage)
While...Wend a rempalcer par Do While /Do Until ....
igor941
Messages postés25Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention26 mars 2012 30 avril 2008 à 11:52
j'ai tester mais il me dit ke je lai ouvert deja tro bizare bon apres commen sa automatique je crée box et je l'ai appelé non c Sa? en tout cas c sympas j'esrepere que je te casse pas la tete avec mon probleme
igor941
Messages postés25Date d'inscriptionmardi 29 avril 2008StatutMembreDernière intervention26 mars 2012 30 avril 2008 à 12:02
ok desole bein en tout cas on peu resté en contact parce que je travaille jusqu'a à la fin de mon stage et j'aurais besoin d'aide donc si on peu rester en contact serai bien bon tu sait pourqoui il me dit message erreur projet deja ouvert ou un truc comme sa