liste Checkbox

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
leonick12
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mer. 25 sept. 2013 22:09
Localisation : Villefranche de Rouergue (12)
Status : Hors ligne

liste Checkbox

#1

Message par leonick12 » sam. 12 mai 2018 09:26

bonjour, j'ai créer un script qui lit un fichier (listing bancaire en gros) il créer une liste de checkbox pour chaque ligne sans etre obliger de taper plein de fois des lignes de checkbox, tout marche tres bien, mais comment recuperer que les lignes cochées et les ré-enregistrer dans un fichier.

apres j'ai du taper deux fois les lignes qui vont de local "$file" à "next" car quand j'efface le premier il y a une erreur au niveau de la ligne local $file = FileOpen("C:\Users\leonick\Desktop\budget CEMP.txt",0) celle à l'interieur de la fonction
#include <GUIConstantsEx.au3>
#include <File.au3>

local $file = FileOpen("C:\Users\leonick\Desktop\budget CEMP.txt",0)

For $ligne = 3 To 14 Step 1

$texte=FileReadLine($file,$ligne)

if $texte <> "" Then
GUICtrlSetData(-1, "1"&$texte)
Else
        $ligne=14
EndIf

Next

Opt('MustDeclareVars', 1)

Local $hauteur=5

Example()

Func Example()
    Local $MESSAGE = "The following buttons have been clicked"
    Local $add, $clear, $mylist, $close, $msg

    GUICreate("My GUI list") ; will create a dialog box that when displayed is centered

   
local $file = FileOpen("C:\Users\leonick\Desktop\budget CEMP.txt",0)

 dim $checkbox[12]

For $ligne = 3 To 14 Step 1

$texte=FileReadLine($file,$ligne)

if $texte <> "" Then
  GUICtrlCreateCheckbox($texte, 30, $hauteur)
 $hauteur=$hauteur+20
 
Else
        $ligne=14
EndIf

Next

$close = GUICtrlCreateButton("my closing button", 64, 260, 175, 25)

    GUISetState()

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
        $msg = GUIGetMsg()

        Select
         ;   Case $msg = $add
            ;    GUICtrlSetData($mylist, "You clicked button No1|")
         ;   Case $msg = $clear
             ;   GUICtrlSetData($mylist, "")
                 Case $msg = $close
                                         
                Exit
        EndSelect
    WEnd
EndFunc   ;==>Example

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5749
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: liste Checkbox  

#2

Message par mikell » sam. 12 mai 2018 11:10

Ouala Image
Attention il reste à ajouter la gestion d'erreur !

; creation array checkbox
Local $checkbox[12]
For $ligne = 3 To 14 Step 1
    $texte = FileReadLine($file, $ligne)
    if $texte <> "" Then
           $checkbox[$ligne-3] = GUICtrlCreateCheckbox($texte, 30, $hauteur)
           $hauteur=$hauteur+20
    EndIf
Next

....

; inscription dans un fichier du texte des checkbox cochées
Local $resultat = ""
For $i = 0 to UBound($checkbox)-1
    If GUICtrlRead($checkbox[$i]) = $GUI_CHECKED Then $resultat &= GUICtrlRead($checkbox[$i], 1) & @crlf
Next
FileWrite("resultat.txt", $resultat)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

leonick12
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mer. 25 sept. 2013 22:09
Localisation : Villefranche de Rouergue (12)
Status : Hors ligne

Re: liste Checkbox

#3

Message par leonick12 » sam. 12 mai 2018 11:12

un grand merci !!

j'ai compris comment enlever la premiere boucle j'avais pas ajouter toutes les infos
Local $add, $clear, $mylist, $close, $msg, $file, $texte
voila la version avec ton script inclu
#include <GUIConstantsEx.au3>
#include <File.au3>

Opt('MustDeclareVars', 1)

Local $hauteur=5

Example()


Func Example()
 
    Local $add, $clear, $mylist, $close, $msg, $file, $texte

    GUICreate("My GUI list") ; will create a dialog box that when displayed is centered
   
local $file = FileOpen("C:\Users\leonick\Desktop\budget CEMP.txt",0)

 dim $checkbox[12]

For $ligne = 3 To 14 Step 1
    $texte = FileReadLine($file, $ligne)
    if $texte <> "" Then
           $checkbox[$ligne-3] = GUICtrlCreateCheckbox($texte, 30, $hauteur)
                   GUICtrlSetState(-1, $GUI_CHECKED)
           $hauteur=$hauteur+20
    EndIf
Next

$close = GUICtrlCreateButton("VALIDER", 64, 260, 175, 25)

    GUISetState()

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
        $msg = GUIGetMsg()

        Select
       
                 Case $msg = $close
                         Local $resultat = ""
For $i = 0 to UBound($checkbox)-1
    If GUICtrlRead($checkbox[$i]) = $GUI_CHECKED Then $resultat &= GUICtrlRead($checkbox[$i], 1) & @crlf
Next
FileWrite("resultat.txt", $resultat)
                         
                Exit
        EndSelect
    WEnd
EndFunc   ;==>Example

Répondre