cs_mb95
Messages postés40Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 septembre 2012
-
6 sept. 2004 à 21:41
cs_mb95
Messages postés40Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 septembre 2012
-
9 sept. 2004 à 23:01
bonsoir !
J'ai un probleme avec un passage d'arguments. Le programme
contient 3 collections de shape
shape1(index de 0 a 6).
shape2 (index de 0 a 6).
shape3 (index de 0 a 6).
une sous routine
private sub affichage(shp as collection, mastring as string)
et j'essaye (peniblement) dans le prog d'appeler
call affichage(shape1, "0101011")
ça marche pas, j'ai essayé aussi shp as shape mais
je suis obligé de donner la collection et un index
je pourrai faire differemment mais c'est pas la premiere fois
que je me heurte au pb.
cs_mb95
Messages postés40Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 septembre 2012 7 sept. 2004 à 21:18
bonsoir!
merci de ton aide, je suis tellement dans pb que j'ai ete chiche sur les renseignements et comme je manque de carrure j'ai
peut etre rate un renseignement utile.
je suis sous vb6 et le code s'articule comme ça
Public Sub AfficheDes(Shp() As Shape, StrAffiche As String)
Dim BytPoint As Byte
For BytPoint = 1 To 7
If (Mid(StrAffiche, BytPoint, 1) = "1") Then
Shp(BytPoint - 1).Visible = True
Else
ShpPoint1(BytPoint - 1).Visible = False
End If
Next
DoEvents
End Sub
If LblTirage(1).Caption = "1" Then
Call AfficheDes(ShpPoint1(), "0001000")
ElseIf LblTirage(1).Caption = "2" Then
Call AfficheDes(ShpPoint1(), "1000001")
ElseIf LblTirage(1).Caption = "3" Then
Call AfficheDes(ShpPoint1(), "1001001")
ElseIf LblTirage(1).Caption = "4" Then
Call AfficheDes(ShpPoint1(), "1010101")
ElseIf LblTirage(1).Caption = "5" Then
Call AfficheDes(ShpPoint1(), "1011101")
ElseIf LblTirage(1).Caption = "6" Then
Call AfficheDes(ShpPoint1(), "1110111")
End If
End Sub
AffiheDes gere les points d'affichage d'une face de dé et
commande1_click gere le dé .
dans le cas du code au dessus vb bloque sur ShpPoint1()
avec le message
Incompatibilite de type, tableau ou type defini par l'utilisateur
attendu.
cs_mb95
Messages postés40Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 septembre 2012 7 sept. 2004 à 21:28
Bonsoir jrivet !
merci pour ta proposition de solution!
j'ai essayé de la mettre en place dans la reponse que jai fait
à EBArtsoft et ça ne marche pas.
Peut etre l'ai je mal codé. Si ce bout de code te permet de voir
une solution
merci de ton aide
a++++
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 8 sept. 2004 à 09:32
Salut et desole pour le retard ;)
y a deux truc que je comrend pas dans ce bout la :
Dim BytPoint As Byte
For BytPoint = 1 To 7
If (Mid(StrAffiche, BytPoint, 1) = "1") Then
Shp(BytPoint - 1).Visible = True
Else
ShpPoint1(BytPoint - 1).Visible = False
End If
Next
DoEvents
End Sub
'Pourquoi utilises tu un tipe Byte et non pas integer
car dans la ligne: Shp(BytPoint - 1).Visible = True
j suis pas sur que ca marche
encuite si dans une ligne tu as
Shp(BytPoint - 1).Visible = True
dans la suivante ou tu met .visible = false
tu devrais avoir le meme nom de shape a savoir Shp et ShpPoint1
Voila,
ces deux trucs la me tracasse, essaie de les change, et sinon renvoie un message ;)
@+
Julien
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------
cs_mb95
Messages postés40Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 septembre 2012 8 sept. 2004 à 23:12
bonsoir !
Pour les deux points bizarres
Jai utilisé byte (alors que l'example que j'ai lu donnait integer)
car candidement n'utilisant que 0 à 7 byte me semblait suffisant
j'essaye toujours de coder le moins lourd possible et c'est la valeur qui stocke sur le moins d'octets. J' ai retesté ça marche correctement (jusqu'a maintenant).Je pensais pas faire une erreur( tant qu'il n y a pas de depacement de variable )
en quoi integer est il preferable ?
Pour Shp(BytPoint - 1).Visible = True et
ShpPoint1(BytPoint - 1).Visible = False
Tu as entierement raison c'etait un copier /coller raté
c'est Shp(BytPoint - 1). que je voulais mettre.
cependant le prog plante dès
Call AfficheDes(ShpPoint1(), "0001000") en surlignant
(ShpPoint1() avec" incompatibilité de type"
j'ai contourné le probleme de façon satisfaisante donc je ne suis pas coincé, c'est plus le manque de comprehension de vb6 qui
m'irrite (mais je progresse alors je m'accroche, c'est si bon quand ça marche)
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 9 sept. 2004 à 10:07
A y est j ai trouve...
En fait il faut que tu te construise ta propre matrice de shape en y mettant chaque shape du form (c est de la merde de faire ca je te l accorde mais ca marche).
J ai essaye en changeant le type Shp() as shape en Shp() as Object mais ca plante pareil si on lui passe direectement en parametre la matrice creee par VB.
En fait il faut faire comme suis:
Private Sub Command1_Click()
Dim i As Byte '
Dim index As Integer
Dim shapeAux(0 To 6) As Shape
For index = 0 To 6
Set shapeAux(index) = ShpPoint1(index)
Next
'Me.ShpPoint1
'Randomized
Lbltirage.Caption = CByte((Rnd * 5) + 1)
If Lbltirage.Caption = "1" Then
Call AfficheDes(shapeAux, "0001000")
ElseIf Lbltirage.Caption = "2" Then
Call AfficheDes(shapeAux, "1000001")
ElseIf Lbltirage.Caption = "3" Then
Call AfficheDes(shapeAux, "1001001")
ElseIf Lbltirage.Caption = "4" Then
Call AfficheDes(shapeAux, "1010101")
ElseIf Lbltirage.Caption = "5" Then
Call AfficheDes(shapeAux, "1011101")
ElseIf Lbltirage.Caption = "6" Then
Call AfficheDes(shapeAux, "1110111")
End If
End Sub
Voila,
j espere que ca a pu t aider
@+
Julien
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 9 sept. 2004 à 10:08
Re.. j allais oublie..
Le Randomized il sert a coi?
Moi il me fait planter le prog alors je l ai commenter
-------------------------------------------------
Essai ca sinon on trouvera autre chose
-------------------------------------------------
cs_mb95
Messages postés40Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention30 septembre 2012 9 sept. 2004 à 23:01
Bonsoir !
Alors la........... nickel !
c'est la premiere fois que je code ma propre matrice shape
dans un prog ,mais ça decoiffe !
c'est exactement ce qu'il me fallait.
merci pour tout
Desolé pour la faute de frappe c'est randomize et non
randomized!!!!!