Bonjour à tous,
Voilà mon problème :
Dans un programme que je suis entrain de développer, l'utilisateur doit à un moment choisir un fichier puis dans ce fichier sélectionner des lignes. Pour la liste, j'ai utilisé des ListView avec des CheckBox.
Et mon problème et que je n'arrive pas à savoir si une ligne à été cochée
La fonction _GUICtrlListView_GetItemChecked() me retourne toujours "False".
#include <GuiConstantsEx.au3>
#include <File.au3>
#include <GuiListView.au3>
$File = FileOpenDialog("Choisisez un fichier :",@UserProfileDir,"Tous les fichiers (*.*)")
$Gui2 = GUICreate("Lignes",500,500)
$ListView = GUICtrlCreateListView("",0, 0, 500, 400)
_GUICtrlListView_SetExtendedListViewStyle($ListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
_GUICtrlListView_AddColumn($ListView, "Ligne", 500)
$ButtonLunch = GUICtrlCreateButton("Choisir",20,420,460,60)
SplashTextOn("Script","Chargement des lignes..."&@CRLF&"Si votre fichier est long, cette opération peut prendre quelques secondes !",600,70)
For $i = 1 To _FileCountLines($File) Step 1
_GUICtrlListView_AddItem($ListView,FileReadLine($File,$i),0)
Next
SplashOff()
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
$Ok = False
ExitLoop
Case $ButtonLunch
$Ok = True
ExitLoop
EndSwitch
WEnd
GUIDelete($Gui2)
If $Ok = True Then
SplashTextOn("Script","Préparation du fichier..."&@CRLF&"Si votre fichier est long, cette opération peut prendre quelques secondes !",600,70)
$ListViewReturn = ""
For $i = 1 To (_FileCountLines($File)) Step 1
If _GUICtrlListView_GetItemChecked($ListView,$i-1) Then
$ListViewReturn = $ListViewReturn&FileReadLine($File,$i)&@CRLF
EndIf
Next
SplashOff()
MsgBox(64,"Info",$ListViewReturn)
EndIf
Je ne vois pas où est l'erreur et ça fait presque deux heures que je cherche (dans l'aide et sur le forum) et je ne trouve rien
Donc, merci d'avance à ceux qui m’aideront...
Modifié en dernier par TT22 le jeu. 17 nov. 2011 21:20, modifié 1 fois.
Et peut-être aussi changer le GuiDelete de place, parce que si j'étais le _GUICtrlListView_GetItemChecked, je serais bien emm*dé avec une gui supprimée, et dégoûté j'enverrais false
" L'échec est le fondement de la réussite. " (Lao-Tseu ) " Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
#include <GuiConstantsEx.au3>
#include <File.au3>
#include <GuiListView.au3>
$File = FileOpenDialog("Choisisez un fichier :",@UserProfileDir,"Tous les fichiers (*.*)")
$Gui2 = GUICreate("Lignes",500,500)
$ListView = GUICtrlCreateListView("",0, 0, 500, 400)
_GUICtrlListView_SetExtendedListViewStyle($ListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
_GUICtrlListView_AddColumn($ListView, "Ligne", 500)
$ButtonLunch = GUICtrlCreateButton("Choisir",20,420,460,60)
SplashTextOn("Script","Chargement des lignes..."&@CRLF&"Si votre fichier est long, cette opération peut prendre quelques secondes !",600,70)
For $i = 1 To _FileCountLines($File) Step 1
_GUICtrlListView_AddItem($ListView,FileReadLine($File,$i),0)
Next
SplashOff()
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
$Ok = False
ExitLoop
Case $ButtonLunch
$Ok = True
ExitLoop
EndSwitch
WEnd
If $Ok = True Then
SplashTextOn("Script","Préparation du fichier..."&@CRLF&"Si votre fichier est long, cette opération peut prendre quelques secondes !",600,70)
$ListViewReturn = ""
For $i = 1 To (_FileCountLines($File)) Step 1
If _GUICtrlListView_GetItemChecked([color=#FF0000][b]GUICtrlGetHandle([/b][/color]$ListView[color=#FF0000][b])[/b][/color],$i-1) Then
$ListViewReturn = $ListViewReturn&FileReadLine($File,$i)&@CRLF
EndIf
Next
SplashOff()
MsgBox(64,"Info",$ListViewReturn)
[color=#FF0000][b]GUIDelete($Gui2)[/b][/color]
EndIf