Dana Posted February 28, 2011 Share Posted February 28, 2011 I'm not sure if this is a Win7 thing or a graphics driver thing or an Autoit thing, but...Got a listview. Two columns, nothing unusual:expandcollapse popup<lots of stuff removed so this standalone snippet won't run> $gui2 = GUICreate("Files to be deleted", 780, 600, -1, -1, $WS_OVERLAPPEDWINDOW) $listid = GUICtrlCreateListView("Size|File Name", 20, 20, 740, 500, BitOR($LVS_SINGLESEL, $LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER), BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT)) _GUICtrlListView_SetColumnWidth($listid, 0, 100) _GUICtrlListView_SetColumnWidth($listid, 1, 2000) For $l = 1 To $matches GUICtrlCreateListViewItem(FileGetSize($dellist[$l]) & "|" & $dellist[$l], $listid) Next $okbutton = GUICtrlCreateButton("OK", 30, 550, 60) $cancelbutton = GUICtrlCreateButton("Cancel", 690, 550, 60) $helpbutton = GUICtrlCreateButton("Help", 470, 550, 60) $rembutton = GUICtrlCreateButton("Remove", 250, 550, 60) $removed = 0 GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") GUISetState(@SW_SHOW) While 1 $guimsg = GUIGetMsg() Switch $guimsg Case 0 ; handled by WM_NOTIFY, GUIGetMsg() = 0 If $doubleclick = 1 Then $doubleclick = 0 ContinueCase EndIf Case $rembutton $editline = _GUICtrlListView_GetSelectionMark($listid) ; zero based so one less than the data line number If $editline = -1 Then MsgBox(4096, "Error", "No item selected") EndIf _GUICtrlListView_SetItemText($listid, $editline, "|<removed from list>", -1) $dellist[$editline + 1] = "" $removed = $removed + 1 Case $okbutton $delyn = MsgBox(1 + 48 + 256 + 0 + 262144, "Delete Files", $matches - $removed & " files will be deleted!" & @CRLF & @CRLF & "Are you sure?") If $delyn = 1 Then ; delete files here _ArrayDisplay($dellist) ; for debug exit Else EndIf Case $cancelbutton Exit Case $GUI_EVENT_CLOSE Exit Case $helpbutton MsgBox(0, "Help", "no help yet") Case Else ;Sleep(100) EndSwitch WEnd Exit Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) ; subroutine to detect doubleclicks Local $hWndListView = GUICtrlGetHandle($listid) Local $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) Local $iCode = DllStructGetData($tNMHDR, "Code") If (($hWndFrom == $hWndListView) And ($iCode == $NM_DBLCLK)) Then $doubleclick = 1 EndIf EndFunc ;==>WM_NOTIFYThe problem is that at times, the entire listview control simply disappears. I think it only happens when I first select a listview item and then move the mouse out of the gui, but it's very random. Once the listview disappears, if I click on it, the line I click on reappears... or I can move the scroll bar to scroll it out of view and back, and everything reappears. Regardless, the program itself works.This is a new computer. I haven't seen this issue on my other (also Win7) computer. It's a new autoit script, largely copied (this morning) from another old program. I never saw the problem with the old program, but I tried the old program today on the new computer and it does it, too.This happens if I run the script from SciTE or if it's compiled. Link to comment Share on other sites More sharing options...
Dana Posted February 28, 2011 Author Share Posted February 28, 2011 I can sorta bandaid it by putting GUICtrlSetState($listid, $GUI_SHOW) in the Case Else section, but then it flickers constantly... sometimes disappears, then is readrawn. Link to comment Share on other sites More sharing options...
PsaltyDS Posted March 1, 2011 Share Posted March 1, 2011 Post a short demo script that reproduces your symptoms. Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Zedna Posted March 1, 2011 Share Posted March 1, 2011 Try to elaborate with styles ex styles in GUICtrlCreateListView Maybe this bug will not appear with some styles combinations. Resources UDF Â ResourcesEx UDF Â AutoIt Forum Search Link to comment Share on other sites More sharing options...
Dana Posted March 3, 2011 Author Share Posted March 3, 2011 The _ArrayDisplay UDF included with AutoIt does the same thing. Link to comment Share on other sites More sharing options...
PsaltyDS Posted March 4, 2011 Share Posted March 4, 2011 No, it doesn't. There is something buggy about your environment, and I doubt it has anything to do with AutoIt. Try this, since you couldn't come up with a running demo to talk about: #include <Array.au3> Global $aTest[16][8] For $r = 0 To UBound($aTest) - 1 For $c = 0 To UBound($aTest, 2) - 1 $aTest[$r][$c] = $r & "-" & $c Next Next _ArrayDisplay($aTest, "$aTest") Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Dana Posted March 4, 2011 Author Share Posted March 4, 2011 Psalty, sorry, that's what I meant. Because _ArrayDisplay (including your example using it) does it too, on my machine, it's not something in my code. I've also confirmed now that it doesn't do it on my laptop, so it's definitely something peculiar to this specific computer or graphics driver (Win7 64 bit, NVIDIA Quadro 200 graphics).But I haven't seen it in any other (non AutoIT) programs. Link to comment Share on other sites More sharing options...
Dana Posted March 23, 2011 Author Share Posted March 23, 2011 Nor is it just the listview; I'm seeing the same behavior with input boxes as well... not surprising as it's the same graphics style. Link to comment Share on other sites More sharing options...
Marshin Posted June 14, 2012 Share Posted June 14, 2012 @Dana, did you ever figure out the reason behind this problem? I am having the same annoyance with my system. At last, after two thousand years of research, the illudium Q-36 explosive space modulator.Well, back to the old drawing board. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now