cs_darkbol
Messages postés61Date d'inscriptionlundi 7 juin 2004StatutMembreDernière intervention 6 décembre 2004
-
16 juin 2004 à 10:04
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutModérateurDernière intervention23 décembre 2008
-
16 juin 2004 à 11:30
Bonjour,
Je veux simplement retourner la valeur de ma textbox et je comprends pas pq ca plante...
Voila le pb : j'ai créé une frame ou j'ai mis 4 textbox pour 4 valeurs de Xmin, Xmax, Ymax et Ymin.
Et je veux simplement récupérer les valeurs interieures avec mon petit val(XminVal.text). Je sais ke c bete et simple mais je comprends vraiment pas, mes declarations ont lair bonnes et j'ai réussi les tuto de vb (calto..)
voici mon code :
Option Explicit
Public Xmin As Double
Public Ymin As Double
Public Xmax As Double
Public Ymax As Double
Public MapFrame As Object
Private Sub btnCancel_Click(index As Integer)
Masterchoice.Hide
Accueil.Show
End Sub
Private Sub btnReset_Click()
XminVal.Text = ""
YminVal.Text = ""
XmaxVal.Text = ""
YmaxVal.Text = ""
End Sub
Public Sub Form_Load()
Static XminVal, YminVal, XmaxVal, YmaxVal As Object
cs_PhilippeE
Messages postés437Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention10 août 20102 16 juin 2004 à 10:21
La syntaxe standard de l'évènement change est
Private Sub XminVal_Change()
Donc la présence de l'argument index as Integer signifie que tu as crées (volontairement ou non) un groupe de contrôle.
Donc ton instruction devrait être
Xmin = Val(XminVal(index).Text)
Ou alors tu supprimes le groupe de contrôle.
NB : je suppose que tu as pu créer tes contrôles par copier/coller puis après tu les as renommé ... et à la qestion sur le premier coller tu as répondu oui.
capoueidiablo
Messages postés316Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention 1 février 20101 16 juin 2004 à 10:27
Essaille avec ca :
Private Sub XminVal_Change(index As Integer)
Xmin = CDbl(XminVal.Text)
End Sub
Lors de ta déclaration des variables XminVal, YminVal, XmaxVal, YmaxVal seul YmaxVal est défini comme Objets les autres sont des variants pour bien faire il faut mettre :
Dim XminVal As Object, YminVal As Object, XmaxVal As Object, YmaxVal As Object
Mini-Optimisation
Il paraitrais que VbNullString soit beaucoup plus rapide que "" lors d'un test ou d'une affectation :)
cs_darkbol
Messages postés61Date d'inscriptionlundi 7 juin 2004StatutMembreDernière intervention 6 décembre 2004 16 juin 2004 à 10:55
merci pour ta réponse
Sinon, non je n'ai pas copié collé de syntaxes de contrôles.
C'est juste que étant newbie, j'ai un peu trifouillé partout et résultat, j'ai un code un peu décousu (public / private) -au passage je n'ai pas compris ta toute dernière phrase-
Concernant le index as integer, il a été défini par défaut et d'après ce que j'ai compris d'un groupe de contrôles (newbie newbie), c parce que les textbox se situent dans une frame.
C pourtant des opérations simples, au debuggage
XminVal = nothing
Avec Xmin = Val(XminVal(index).Text) ; Xmin doit être dZclaré en tant qu'objet mais ca colle pas alors avec la fonction val?
Enfin, je voudrais juste stocker les valeurs numeriques entrées dans le textbox et vu que ca ne stocke rien mon controle reset n'a aucun effet non plus...