jpmaton
Messages postés67Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention26 septembre 2023
-
15 août 2008 à 12:23
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
16 août 2008 à 13:05
Bonjours,
Via la Collection CONTROLS, j'ai accès au nom des contrôles mais si ceux-ci son en "groupes", comment avoir aconnaissance des indices.
ex : groupe valeur(1), valeur(2), valeur(3) ... : ctlc(i).Name donnera "valeur" à chacun mais pas l'indice
Merci de l'aide et ... bon WE à tous.
Jean-paul
' ---------------------------
sub nom_controles()
dim ctlc(), nbControles as integer
nbControles = Me.Controls.Count - 1
ReDim ctlc(nbControles)
For i = 1 To nbControles
Set ctlc(i) = Me.Controls(i)
Debug.Print ctlc(i).Name
Next i
end sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 15 août 2008 à 14:45
salut,
une manière parmis d'autres, mais je n'en connais pas de plus propre pour la gestion d'index (c'est à dire sans gestion d'erreur)
à noter qu'ici on ne stoque que le nom, pas l'objet
Option Explicit
Dim oCtrls As New Collection
Sub ListControls()
Dim oCtrl As Object, iIndex As Integer
On Error Resume Next
For Each oCtrl In Me.Controls
' collection?
iIndex = oCtrl.Index
If Err.Number = 343 Then
' contrôle simple
oCtrls.Add oCtrl.Name
Err.Clear
Else
' dans un
groupe
oCtrls.Add oCtrl.Name & "(" & CStr(iIndex) & ")"
End If
Debug.Print oCtrls.Item(oCtrls.Count)
Next oCtrl
Debug.Print "-------------"
Debug.Print CStr(oCtrls.Count) & "
contrôle(s)"
End Sub
Private Sub Command1_Click()
Call ListControls
End Sub
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 16 août 2008 à 10:24
Salut,
Ouch, il serait bien plus simple d'utiliser un fichier ini, un fichier xml, ou une base de données pour enregistrer les paramètres de ton programme plutôt que de tout faire à la main !
______________________________________
DarK Sidious
Vous n’avez pas trouvé la réponse que vous recherchez ?
jpmaton
Messages postés67Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention26 septembre 20233 16 août 2008 à 11:02
Re bonjour,
J'envoie ci-après tout mon code
Sur la form il y a :
- 2 cmd : sauver et charger
- un groupe de 2 boutons option
- un textbox
Merci pour l'aide
---------------------------------------------------
Dim oCtrls As New Collection
Private Sub charger_Click()
Open App.Path + "/parametres.txt" For Input As #1
For I = 1 To Me.Controls.Count
Input #1, a, b, c
If b = "T" Then
Me.Controls(a).Text = c
Else
Me.Controls(a).Text = c
End If
Next I
Close #1
End Sub
Sub sauver_click()
Dim oCtrl As Object, iIndex As Integer
Open App.Path + "/parametres.txt" For Output As #1
On Error Resume Next
For Each oCtrl In Me.Controls
' collection?
iIndex = oCtrl.Index
If Err.Number = 343 Then
' contrôle simple
oCtrls.Add oCtrl.Name
Err.Clear
Else
' dans un groupe
oCtrls.Add oCtrl.Name & "(" & CStr(iIndex) & ")"
End If
Debug.Print oCtrls.Item(oCtrls.Count)
If TypeOf oCtrl Is TextBox Or TypeOf oCtrl Is ComboBox Then
Write #1, oCtrls.Item(oCtrls.Count), "T", oCtrl.Text
ElseIf TypeOf oCtrl Is CheckBox Or TypeOf oCtrl Is OptionButton Then
Write #1, oCtrls.Item(oCtrls.Count), "V", oCtrl.Value
End If