Checkbox

Résolu
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007
-
Messages postés
229
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
20 juin 2007
-
Bonjour.

Je voudrais vous demander comment on fait pour que quand une presonne clique sur checkbox et que sa l'enregistre dans un fichier .ini (comme quoi c'est checker. et a chaque ouverture c'est checked aussi) Et que quand la personne clique une 2eme fois sa sera unchecked et sa la sauvegarde a chaque changement. Merci

11 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,


Je n'avais jamais utilser SaveSetting ni GetSetting (j espere que tu parlais de cela 13557 DARKSIDIOUS )
Et c'est peu etre encore plus simple qu avec les API

Ce qui donnerait




Private Sub Form_Load() 
Dim Tmp As String 
Tmp  = GetSetting(App.EXEName, "DEF", "Choix", "?") 
If Tmp <> "?" Then Check1.Value = CInt(Tmp) 
End Sub 

Private Sub Check1_Click() 
Call SaveSetting(App.EXEName, "DEF", "Choix", Check1.Value) 
End Sub 

 







<small> Coloration syntaxique automatique [AFCK]</small>

       







 






@+, Julien
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,


Est ce que tu sais déja faire l'enregistrement au Format INI?


Si NON regarde du cote des API suivantes







1- Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long 
2 -Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long 

Pour sauvegarder tu fais la chose suivante. 

Private Sub Check1_Click() 
Call WritePrivateProfileString("DEF", "Choix", CStr(Check1.Value), "C:\Test.ini") 
End Sub 

Pour recuperer la valeur sauvegarder. 

Private Sub Form_Load() 
Dim Ret As Long 
Dim Tmp As String 
Tmp = Space$(10) 
Ret = GetPrivateProfileString("DEF", "Choix", "?", Tmp, 10, "C:\test.ini") 
If Tmp <> "?" Then Check1.Value = CInt(Tmp) 
End Sub 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       









Il y a surement plus "beau" mais le fonctionnel est la... a toi de l'ameliorer selon tes besoin






@+, Julien
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

Quand je met les deux premiers lignes il met dit error
Error de compilation. Attendu: fin d'instruction.
et sa me souligne ByVal
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,


Mon copier coller a foirer.
Met une parenthese ( avant le premier ByVal






@+, Julien
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

Maintenant c'est
Error de compilation:
Des constantes, chaines de longueur fixe, tableux .......... Declare  ne sont pas autorises  comme membres ...
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Au lieu d'utiliser un fichier ini, utilise le registre de windows : bien plus simple à utiliser, bien plus performant, et surtout, recommandé par Microsoft depuis belle lurette !

En plus, tu as des fonctions directement intégrée à VB pour stocker dans le registre !
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

Sa doit etre tres dure a faire surtout comme se sais rien faire.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re
DARKSIDIOUS a raison.

Pour continuer dans le sens du INI (ou pour terminer) Pei etre devrait tu lire les messages de VB et essayer de les interpreter.

Tu as du mettre le code dans un Form et dans ce cas il ne faut pas mettre Public Declare.... Mais Private Declare...

@+, Julien
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

Sa veut pas ce lancer. Il me dit Debogage et quand je clique sa me souligne sa Check1.Value = CInt(Tmp)

Et une question tout ces codes vous les apprenes ou quand on sais coder sa vien tout seul?
Messages postés
89
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
25 février 2007

C'est bon ce code est plus simple et il marche. Merci
Messages postés
229
Date d'inscription
mardi 3 juin 2003
Statut
Membre
Dernière intervention
20 juin 2007

Bonjour,

Ta checkbox est t'elle bien nommé Check1 ?

"Et une question tout ces codes vous les apprenes ou quand on sais coder sa vien tout seul?"

C'est une question de logique, Si tu est débutant il va te falloir apprendre a apprendre.
Je m'explique, 90% des gens qui maitrise le codage et que tu as rencontré sur ce site on commencer par le bidouiilage.
A savoir : il ont trouver des solutions à leur problème, ils ont progresser et ne se rendent meme pas compte du niveau atteint : ils sont humbles.

Trouver des solutions n'est pas forcément trouver la solution au problème posé , mais c'est parfait modifié les variables du problème...
C'est comme en anglais lorsque que l'on te dit de ne pas chercher a traduire mot pour mot ce que tu pense si tu bloque mais on te conseille
d'exprimer ta phrase avec les mots que tu connais. Pareille.

Bon week-end !

KC62

On a pas toutes les solutions de tous les probleme mais chaque probleme à ses solutions ...