Hi folks,
My GUI has a listbox containing filepaths. and a button that does what is equivalent to a DELETE ALL function (which will delete the files and remove the items in the listbox as they are deleted). It's wierd but my FOR...NEXT loop would not delete everything. I found that at some point, $LB_GETTEXT will return some garbage in the text. Would really appreciate it if someone could take a look. THanks in advance...
Here's my code...
#include <GuiConstants.au3>
$LBS_MULTISELECT = 80000
$LB_DELETESTRING = 0x182
$LB_GETCOUNT = 0x18B
$LB_GETTEXT = 0x0189
$FileList = "c:\file01.txt|c:\file02.txt|c:\file03.txt|c:\file04.txt|c:\file05.txt|c:\file06.txt|c:\file07.txt|c:\file08.txt|c:\file09.txt"
GuiCreate("LB Test", 299, 291,-1, -1)
$List_1 = GuiCtrlCreateList("", 10, 10, 280, 227);,$LBS_MULTISELECT)
GuiCtrlSetData(-1,$FileList)
$Button_2 = GuiCtrlCreateButton("Delete ALL", 10, 250, 80, 30)
GuiSetState()
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Button_2
$items_count = _GUICtrlListCount($List_1); count the number of items in listbox
For $i = 0 to $items_count - 1
$FileToDelete = _GUICtrlListGetText($List_1, $i)
MsgBox(262144,'Debug line ~31','Selection:' & @lf & '$FileToDelete ' & @lf & @lf & 'Return:' & @lf & $FileToDelete & @lf & @lf & '@Error:' & @lf & @Error & @lf & @lf & '@Extended:' & @lf & @Extended);### Debug MSGBOX
; FileDelete($FileToDelete)
_GUICtrlListDeleteItem($List_1, $i)
Next
EndSelect
WEnd
Func _GUICtrlListCount($h_listbox)
Return GUICtrlSendMsg($h_listbox, $LB_GETCOUNT, 0, 0)
EndFunc ;==>_GUICtrlListCount
Func _GUICtrlListDeleteItem($h_listbox, $i_index)
Return GUICtrlSendMsg($h_listbox, $LB_DELETESTRING, $i_index, 0)
EndFunc ;==>_GUICtrlListDeleteItem
Func _GUICtrlListGetText($h_listbox, $i_index)
Return GUICtrlRecvMsg($h_listbox, $LB_GETTEXT, $i_index, 1)
EndFunc ;==>_GUICtrlListGetText