kobeymane
Messages postés58Date d'inscriptiondimanche 29 janvier 2012StatutMembreDernière intervention29 avril 2012
-
4 mars 2012 à 16:05
kobeymane
Messages postés58Date d'inscriptiondimanche 29 janvier 2012StatutMembreDernière intervention29 avril 2012
-
6 mars 2012 à 00:09
bonjour,
Je voudrais savoir comment faire une saisie dynamique des quelques valeur dans des tableaux après avoir saisies sur des textbox et pouvoir les utiliser dans le cas lié au problème suivant:
Dans mon programme j'ai créer des textbox selon le besoin de l'utilisateur (suivant le paramètre ordre). une colonne pour les 'an' l'autre pour 'bn' et la dernière pour 'phin'. afin de saisir ces donnéés, j'ai créer un nouveau boutton 'Constitution'. J'y ai associé comme code une declaration de 3 tableaux ann(), bnn() et phinn() de 21 cases chacun. Maintenant je vise à affecter chaque valeur saisie dans les textbox à chaque case des 3 tableaux.Voici le programme:
Public Sub commencer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles commencer.Click
ordre = CType(ordree.Text, Single)
If ordree.Text = "" Or Not (IsNumeric(ordree.Text)) Then
MsgBox("Saisir Un Ordre Valide")
Exit Sub
End If
Dim NumeroTextBox As Integer
Dim an, bn, phasen As TextBox
Do
an = New TextBox
an.Name = "a" & NumeroTextBox
Me.Controls.Add(an)
an.Text = ""
an.Size = New Size(60, 25)
an.Location = New Point(150, 30 * i)
an.Visible = True
bn = New TextBox
bn.Name = "b" & NumeroTextBox
Me.Controls.Add(bn)
bn.Text = ""
bn.Size = New Size(60, 25)
bn.Location = New Point(250, 30 * i)
bn.Visible = True
phasen = New TextBox
phasen.Name = "b" & NumeroTextBox
Me.Controls.Add(phasen)
phasen.Text = ""
phasen.Size = New Size(60, 25)
phasen.Location = New Point(350, 30 * i)
phasen.Visible = True
NumeroTextBox = NumeroTextBox + 1
Loop Until Me.i < ordre
MsgBox("Avant de Clicker sur 'Constituer Le Signal', assurez vous que vous avez rempli tous les champs. Sinon la synthèse sera erronée")
ordree.Enabled = False
Public Sub constitution_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles constitution.Click
Dim ann(21), bnn(21), cnn(21), phinn(21) As Single
Dim f As Byte
Dim NumeroTextBox As Integer
Dim an, bn, phasen As TextBox
For f = 1 To 20
ann(f) = 0
bnn(f) = 0
cnn(f) = 0
phinn(f) = 0
Next f
For Me.i = 0 To 19
ann(i) = 'QUE DOIS JE METTRE COMME CODE
bnn(i) cnn(i) 'racine carré (ann(i)²+bnn(i)²)
phin(i)= 'atan(bnn(i)/ann(i)
Next i
C'est la première fois que je me trouve face à cette situation. Merci de me donner un Coup de main ^^
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 5 mars 2012 à 21:07
comme tes textboxes sont crées dynamiquement
il te faut le addhandler pour gérer les évenements
à toi de savoir quel évenement à utiliser pour
tes texboxes
cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 4 mars 2012 à 19:07
Salut
1 Apprend à mettre de l'ordre dans ton projet
si tu dois te relire dans un mois tu vas te dire mais qu'est ce que j'ai écrit
2 tu devrais mettre tes boutons crées dynamiquement dans un panel
an.Location = New Point(150, 30 * i)
pourquoi 30 * i
si tu veux que tout les an soient l'un en dessous de l'autre
déclare une variable
dim anpositiony as integer
anpositiony = la position y du premier an
dans ta loop do
an = New TextBox
an.Name = "a" & NumeroTextBox
Me.Controls.Add(an)
an.Text = ""
an.Size = New Size(60, 25)
an.Location = New Point(150, anpositiony)
anpositiony = an.bottom + 4
an.Visible = True
la meme chose pour tes autres textboxes
à quoi sert
3 tableaux ann(), bnn() et phinn() de 21 cases chacun
ce ne sont pas des cases
et attention un array de taille 21
ann(20) et non ann(21) l'index va de 0 à 20
kobeymane
Messages postés58Date d'inscriptiondimanche 29 janvier 2012StatutMembreDernière intervention29 avril 2012 5 mars 2012 à 13:40
bonjour
pour ta question pourquoi je met
an.Location = New Point(150, 30 * i)
car je tape au clavier dans le textbox de la variable ordre 20 et il y a affichage de 20 textboxs pour les an et 20 pour les bn (amplitudes). Après que j'ai corrigé le programme avec le code que tu m'as donné, l'orsque je tape ordre=20 il y a 1 SEUL textbox pour an et un pour bn.
donc l'expression précédente est résponsable de la création dynamique des textboxs selon la valeur de 'ordre'.
pour ta 2ème question: "à quoi sert
3 tableaux ann(), bnn() et phinn() de 21 cases chacun ?"
Je t'explique d'abord l'alogorithme:
** Le but de form2 est de faire une synthèse libre d'un signal saisi par l'utilisateur suivant son choix:
Il choisit les valeurs de an bn (amplitudes) et phin(phases) avec n variant de 1 à ordre.
Je calcul les Cn=racine carré de (an²+bn²)
et phin=arctan(bn/an).
Il me donne la moyenne: moy et la période T0 pour faire omega=2*pi/T0.
après je constitu son signal voulu en utilisant l'expression:
s(t)= moy + sigma de n=1 à ordre de(Cn*Cos(Omega*n*t+phin) avec t: variable de temps.
Pour appliquer ça sur vb j'ai eu l'idée, puisqu'il s'agit de plusieurs données saisie et pour que je puisse ensuite TRACER ce signal temporel et encore plusieurs taches...., de stocker ces valeurs dans des tableaux ann() bnn() Cnn() phinn() AFIN de TRACER le signal décrit. et si vous avez une idée plus simple n'hésitez pas à me la signaler ^^.
Puisqu'on peut pas dépasser 20 pour la variable ordre, et puisque je veux commencer par l'indice 1 car mon sigma débute de 1 pour ne pas me tromper dans la suite (TRACAGE) j'ai initialisé les tableaux avec 21 cases.
et finalement pour le constitution_click:
après avoir saisi tous les paramètres an bn et calculé cn et phin je dois consitituer le signal suivant l'expression décrite. Pour retourner ce signal au form1 pour le graphe temporel, réponses aux filtres, spectre fréquentiel.....
Donc le but de cet form2 'synthèse libre' est de saisir un signal personnalisé par l'utilisateur et retourner ses valeurs.
Maintenant que vous savez tout et j'éspere que vous avez tout compris, mon soucis est de saisir les valeurs des amplitudes dans les tableaux ann et bnn ensuite le calcul des cnn et phinn me semble facile et après, comment faire pour retourner ces valeurs au Form1 pour en faire les autres taches.
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
kobeymane
Messages postés58Date d'inscriptiondimanche 29 janvier 2012StatutMembreDernière intervention29 avril 2012 6 mars 2012 à 00:09
j'ai pas bien compris sur msdn mais j'ai trouvé un lien plus didactique qui parles des collections. enfin je vais pouvoir faire la saisie dynamique. merci pour l'indication ^^