kobeymane
Messages postés58Date d'inscriptiondimanche 29 janvier 2012StatutMembreDernière intervention29 avril 2012
-
20 mars 2012 à 14:04
ehjoe
Messages postés728Date d'inscriptionsamedi 4 avril 2009StatutMembreDernière intervention30 mars 2014
-
20 mars 2012 à 22:00
bonjour,
dans mon programme j'ai créé différents radiobuttons. l'état de ces radiobuttons je l'ai caractérisé par une variable booléene (1 s'il est coché et 0 sinon). j'ai utilisé cette variable dans un nouveau form '3'. en effet il s'agit de tracer un graphe séléctionné par l'utilisateur. donc il choisit parmi les différents choix un 'x' donc la variable booléene associée à 'x' se met à 1 et les autres variables se mettents à 0. je met dans la form3 des tests sur ces variables pour enfin choisir un seul signal (choix) qui va étre tracé. ces variables je les ai déclaré dans un module. je commence le débogage et ça marche pas. je me sert de l'execution ligne par ligne et je remarque que la variable booléene reçoit 1 dans le form1 mais dans le test au form3 le compilateur la saute et n'execute pas le programme associé qui est la traçage ???. donc au form1 'x=1' et dans form3 'x devient nulle' et je ne sais pas pourquoi ???. voici le programme pour mieux comprendre:
Public Sub carre_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles carre.CheckedChanged
Dim t, k, n As Integer
'rapport.Visible = True
'Label6.Visible = True
'Label12.Visible = True
carrevrai = 1 'la variable booléene
trivrai = 0
scievrai = 0
monovrai = 0
bivrai = 0
If impaire.Checked = True Then
For t = 0 To 5
temps(t) = t
For k = 1 To ord
n = 2 * k - 1
sc(t) += moy + (4 * amp / (n * DegreeToRad(Math.PI))) * Math.Cos((n * 2 * DegreeToRad(Math.PI) / T0) * temps(t) - (DegreeToRad(Math.PI / 2)))
Next k
Next t
End If
If paire.Checked = True Then
For t = 0 To 1200
temps(t) = t
For k = 1 To ord
n = 2 * k - 1
sc(t) += moy + (4 * amp / (n * DegreeToRad(Math.PI))) * Math.Cos((n * 2 * DegreeToRad(Math.PI) / T0) * temps(t) + 0)
Next k
Next t
End If
End Sub
'ça concerne le form1
' maintenant au form3:
Private Sub DrawCurves(ByVal gr As System.Drawing.Graphics, ByVal mypanel As Panel)
Dim mypen As New Pen(Color.DarkBlue, 1)
If carrevrai = 1 Then
For iter = 0 To 1200
ReDim Preserve vertext(iter)
vertext(iter).X = temps(iter)
Try
vertext(iter).Y = Convert.ToSingle(sc(iter)) * 50 + mypanel.Height \ 2
If iter > 0 Then
gr.DrawLine(mypen, vertext(iter - 1).X, vertext(iter - 1).Y, vertext(iter).X, vertext(iter).Y)
End If
Catch ex As Exception
End Try
Next
End If
'le module
Public carre As RadioButton
Public triangulaire As RadioButton
Public dentsdescie As RadioButton
Public monoalternance As RadioButton
Public bialternance As RadioButton
Public carrevrai As Boolean = 0
Public trivrai As Boolean = 0
Public scievrai As Boolean = 0
Public monovrai As Boolean = 0
Public bivrai As Boolean = 0
Public Function DegreeToRad(ByVal deg As Integer) As Double
Return deg * Math.PI / 180
End Function
Public pii As Single = Math.PI
End Module
juste pour rappeller:
x=1 (dans le code x: variable booléene) au form1 mais au form3 le compilateur saute la partie du test