Page 1 sur 1

[..] Afficher données dans GUI

Posté : mar. 04 nov. 2014 20:36
par jcaspar
B :D njour à tous !

Je souhaite lister les fichiers lnk présent dans un dossier et les afficher dans une fenêtre
avec la possibilité de sélectionner le ou liens voulus pour qu'ils s'ouvrent automatiquement

Je bloque sur le fait d'afficher toutes les données et non pas uniquement
la première ligne et je ne parviens pas à activer la checkbox

Pouvez vous svp m'indiquer comment procéder pour résoudre ces deux blocages.

Merci pour vos conseils


Jean-Marc



► Afficher le texte

Re: [..]Afficher données dans GUI

Posté : mar. 04 nov. 2014 20:37
par jguinch
Tu utilises GUICtrlCreateCheckbox au lieu de GUICtrlCreateListViewItem
De plus, il te faut une boucle pour créer tous les items :

Code : Tout sélectionner

For $i = 1 To $a[0]
    GUICtrlCreateListViewItem($a[$i],$listview)
Next
 

Re: [..] Afficher données dans GUI

Posté : mer. 05 nov. 2014 11:02
par jcaspar
M :D erci beaucoup pour cette explication .. mais je vais encore avoir besoin de votre aide ...

dans mon mon code .... comme les checkbox sont crées dynamiquement
par une boucle ... comment puis je définir l'action à effectuer pour toutes
les checkbox si elles sont cochées ou décochées... puisqu'il n'est pas possible de les nommer une par une ? :roll:
dans le case le nommage doit être inapproprié ... peut être faudrait il également utiliser une boucle ?

En vous remerciant pour vos conseils



Jean-Marc


Code : Tout sélectionner

[spoiler=]
;inclusions
#include <Array.au3>
#include <File.au3>
#include <IE.au3>
#include <GUIConstantsEx.au3>
#include <GuiListview.au3>

; Liste dans un tableau  les fichiers lnk du dossier temp 
$a = _FileListToArray('c:\temp', '*.lnk', $FLTA_FILES)

; création fenêtre
Local $hGUI = GUICreate("Lister les raccourcis")
GUISetBkColor(0x0FEFFFFF)
GUISetState(@SW_SHOW, $hGUI)
$listview = GUICtrlCreateListView("Liste des fichiers raccourcis", 0, 10, 300, 200, 2, $LVS_EX_CHECKBOXES)

$i = 0
$j = 20

; Liste les raccourcis
For $i = 1 To $a[0]
    local $raccourcis = GUICtrlCreateListViewItem($a[$i], $listview)
Next

; fonction vérifiant si une case est cochée
Func _IsChecked($idControlID)
    Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   

; fonction vérifiatn si une case est décochées
Func _IsUnChecked($control)
    Return BitAnd(GUICtrlRead($control), $GUI_UNCHECKED) = $GUI_UNCHECKED
EndFunc   

; actions sur la fenêtre et les éléments de celle ci
While 1
    Switch GUIGetMsg()
       
; Action en cas de fermeture
 Case $GUI_EVENT_CLOSE, $idOK
            ExitLoop
; Actions sur une case à cocher
        case $raccourcis
; Si case cochée
            If _IsUnChecked([b]$raccourcis[/b]) then
                Guictrlsetstate([b]$raccourcis[/b], $GUI_UNCHECKED)
              EndIf
; Si case déochée
            If _IsChecked($raccourcis) then
                Guictrlsetstate($raccourcis, $GUI_CHECKED)
                msgbox(64, "test", "test")
;~              _IECreate($aDetails[0])
                Guictrlsetstate($raccourcis, $GUI_CHECKED)
            EndIf

    EndSwitch
WEnd
; Effacer fenêtre
GUIDelete($hGUI)
[/spoiler]
 

Re: [..] Afficher données dans GUI

Posté : mer. 05 nov. 2014 13:55
par jguinch
jcaspar : la balise Code doit être à l'intérieur de la balise Spoiler.

Pour ton problème, il faut que utilises un tableau :
► Afficher le texte
Et une boucle pour lire l'état check/uinchecked

Re: [..] Afficher données dans GUI

Posté : jeu. 06 nov. 2014 10:19
par jcaspar
M :D erci pour ces explications

Question comment comprendre cette ligne ?

local $aRaccourcis[ $a[0] ]

il s'agit d'une variable locale nommée aRaccourcis de type tableau
de données remplis par un tableau de données a débutant à la valeur 0 ?

petite précision la boucle permettant de vérifier l'état checked ou uncked à quel endroit dans le code
doit elle être placé dans la boucle While ?


En vous remerciant pour ces précisions


Jean- Marc

Re: [..] Afficher données dans GUI

Posté : jeu. 06 nov. 2014 11:43
par Hugues
Bonjour,

$a[0] correspond aux nombres de valeurs trouvées dans la requête

Code : Tout sélectionner

$a = _FileListToArray('c:\temp', '*.lnk', $FLTA_FILES)
 
Donc en faisant $aRaccourcis[$a[0]], tu definis la taille de ton tableau $aRaccourcis selon la valeur retournée par ta requête precedente...

Si par exemple ta requête trouve 26 raccourcis, ton tableau $aRaccourcis aura une taille de 26...

Et pour vérifier si CheckBox cochée(s), adapté vite fait à ton code:
► Afficher le texte