Jump to content

ListViewItem not selected


Go to solution Solved by Melba23,

Recommended Posts

I have 2 listviews and two buttons to move the items from one list to the other (One ">>" button and one "<<"). Now, when I select an item and press the >> button (The left listview1 is full while the right listview2 is empty) it puts this item into the other list. Now it seems like no item on the left list is selected, but when I press the >> button again, it copys the item that was below the item I moved over to the other list. (Now this item is on both lists) I can repeat that, so the item is on hte right list multiple times. Why? And how can I stop that?

Here's the code I am using:

$selectedwah = _GUICtrlListView_GetItemTextString($List1wah, _GUICtrlListView_GetSelectionMark($List1wah))
If $selectedwah = "|" OR $selectedwah = "||" Then
Else
    MsgBox(0,"",$selectedwah)
    GUICtrlCreateListViewItem($selectedwah, $List2wah)
    _GUICtrlListView_DeleteItemsSelected($List1wah)
    $aSorting = False
    _GUICtrlListView_SimpleSort($List2wah, $aSorting, 0)
    $selMessd = _GUICtrlListView_GetItemCount($List2wah)
    GUICtrlSetData($Label3wah, $selMessd & " Messdiener")
EndIf
Link to post
Share on other sites

Please post a working example of the problem, it's hard to figure out what is happening with such a small snippet of the script. By working example I mean one that can be run as is that demonstrates the issue you're having.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to post
Share on other sites

Please post a working example of the problem, it's hard to figure out what is happening with such a small snippet of the script. By working example I mean one that can be run as is that demonstrates the issue you're having.

 

Sure thing, here you go:

#include <ListViewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>
    $Form5wah = GUICreate("Test", 674, 469, -1, -1)
    $List1wah = GUICtrlCreateListView("Name|Surename|", 8, 32, 353, 383, -1, BitOR($WS_EX_ACCEPTFILES,$LVS_EX_FULLROWSELECT))
    $List2wah = GUICtrlCreateListView("Name|Surename", 448, 32, 217, 357, -1, $WS_EX_ACCEPTFILES + $LVS_EX_FULLROWSELECT)
    $Button3wah = GUICtrlCreateButton(">>", 368, 184, 75, 25)
    $Button4wah = GUICtrlCreateButton("<<", 368, 232, 75, 25)
    GUISetState(@SW_SHOW)
    GUICtrlCreateListViewItem("Peter|Parker", $List1wah)
    GUICtrlCreateListViewItem("Louis|Smith", $List1wah)
    GUICtrlCreateListViewItem("Christian|Grey", $List1wah)
    GUICtrlCreateListViewItem("John|Williams", $List1wah)
    While 1
        $msg = GUIGetMsg()
        Switch $msg
            Case $GUI_EVENT_CLOSE
                GUIDelete($Form5wah)
                ExitLoop
            Case $Button3wah
                $selMessd2 = _GUICtrlListView_GetItemCount($List1wah)
                If $selMessd2 = 0 Then
                    MsgBox(0, "Error", "Nothing here")
                Else
                    $selectedwah = _GUICtrlListView_GetItemTextString($List1wah, _GUICtrlListView_GetSelectionMark($List1wah))
                    If $selectedwah = "|" OR $selectedwah = "||" Then
                    Else
                        GUICtrlCreateListViewItem($selectedwah, $List2wah)
                        _GUICtrlListView_DeleteItemsSelected($List1wah)
                        $aSorting = False
                        _GUICtrlListView_SimpleSort($List2wah, $aSorting, 0)
                    EndIf
                EndIf
            Case $Button4wah
                $selMessd2 = _GUICtrlListView_GetItemCount($List2wah)
                If $selMessd2 = 0 Then
                    MsgBox(0, "Error", "Nothing here")
                Else
                    $selMessd = _GUICtrlListView_GetItemCount($List2wah)
                    $selectedwah = _GUICtrlListView_GetItemTextString($List2wah, _GUICtrlListView_GetSelectionMark($List2wah))
                    If $selectedwah = "|" OR $selectedwah = "||" Then
                    Else
                        GUICtrlCreateListViewItem($selectedwah, $List1wah)
                        _GUICtrlListView_DeleteItemsSelected($List2wah)
                        $aSorting = False
                        _GUICtrlListView_SimpleSort($List1wah, $aSorting, 0)
                        _GUICtrlListView_SimpleSort($List2wah, $aSorting, 0)
                    EndIf
                EndIf
            EndSwitch
    WEnd
Link to post
Share on other sites
  • Moderators
  • Solution

Reinhardt1julian ,

Just check to see if there is anything selected before doing anything at all:

Case $Button3wah
    If _GUICtrlListView_GetSelectedIndices($List1wah) Then ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        $selMessd2 = _GUICtrlListView_GetItemCount($List1wah)
        If $selMessd2 = 0 Then
            MsgBox(0, "Error", "Nothing here")
        Else
            $selectedwah = _GUICtrlListView_GetItemTextString($List1wah, _GUICtrlListView_GetSelectionMark($List1wah))
            If $selectedwah = "|" Or $selectedwah = "||" Then
            Else
                GUICtrlCreateListViewItem($selectedwah, $List2wah)
                _GUICtrlListView_DeleteItemsSelected($List1wah)
                $aSorting = False
                _GUICtrlListView_SimpleSort($List2wah, $aSorting, 0)
            EndIf
        EndIf
    EndIf
That works for me. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By RAMzor
      Hello, 
      I'm trying to implement Virtual ListView in my project. I have been based on example from @LarsJ.
      The script loads data from csv file instead of array as in original example and perform some parsing.
      Sometimes, when running a script, it adds garbage to the end of the correct data.
      The data is loaded correctly into the global array (double-clicking on a row with garbage displays it correct in the console), but is not displayed correctly.
      What am I missing or doing wrong?
      #include <GUIConstants.au3> #include <WindowsConstants.au3> #include <GuiImageList.au3> #include <GuiListView.au3> #include <GuiStatusBar.au3> #include <FileConstants.au3> #include <GuiListBox.au3> #include <SendMessage.au3> #include <EditConstants.au3> Opt("MustDeclareVars", 1) Global $hWnd, $idLV, $hLV, $aItems[1][1] Global $gWinXMin = 1130, $gWinYMin = 615 Global Const $TopMost = 262144 ; Set MsgBox top-most attribute Example() Func Example() Local $Ver = "Virtual LV" ; Create GUI $hWnd = GUICreate("iTS - Test Sequencer [Ver " & $Ver & "]", $gWinXMin, $gWinYMin, -1, -1, BitOR($WS_SIZEBOX, $WS_SYSMENU, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX)) ; Create ListView Reduces flicker Checkboxes Tooltip Icons Local $iLvStyle = BitOR($WS_EX_CLIENTEDGE, $LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER, $LVS_EX_CHECKBOXES, $LVS_EX_INFOTIP);, $LVS_EX_SUBITEMIMAGES) $idLV = GUICtrlCreateListView("", 8, 50, 915, 477, $LVS_OWNERDATA, $iLvStyle) $hLV = GUICtrlGetHandle($idLV) ; Virtual listview ; --- ListView Add columns --- _GUICtrlListView_AddColumn($hLV, "# ID", 45) ; 0 _GUICtrlListView_AddColumn($hLV, "Group", 120) ; 1 _GUICtrlListView_AddColumn($hLV, "Name", 335) ; 2 _GUICtrlListView_AddColumn($hLV, "Min", 50) ; 3 _GUICtrlListView_AddColumn($hLV, "Max", 50) ; 4 _GUICtrlListView_AddColumn($hLV, "Result", 50) ; 5 _GUICtrlListView_AddColumn($hLV, "Status", 50) ; 6 _GUICtrlListView_AddColumn($hLV, "Description", 179) ; 7 ; Checkboxes _GUICtrlListView_SetCallBackMask($hLV, 32) ; 32 - The application stores the image list index of the current state image ; Load icon images ;~ Local $hImage = _GUIImageList_Create() ;~ _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hLV, 0xFF0000, 16, 16)) ; Index = 0 ;~ _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hLV, 0x00FF00, 16, 16)) ; Index = 1 ;~ _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hLV, 0x0000FF, 16, 16)) ; Index = 2 ;~ _GUICtrlListView_SetImageList($hLV, $hImage, 1) ; --- StatusBar --- Local $aStatusBarParts[5] = [220, 160, 160, 140, -1] Global $StatusBar = _GUICtrlStatusBar_Create($hWnd, $aStatusBarParts) ; $SBARS_SIZEGRIP ; --- DEBUG --- Local $Debug_1 = GUICtrlCreateButton("Check Random", 928, 383, 91, 25) ; 152 Local $Debug_2 = GUICtrlCreateButton("Load From Array", 1024, 383, 91, 25) ; 152 Local $Debug_3 = GUICtrlCreateButton("Load 15 Rows", 928, 412, 91, 25) Local $Debug_4 = GUICtrlCreateButton("Load 500 Rows", 1024, 412, 91, 25) Local $DebugLabel_1 = GUICtrlCreateLabel("DEBAG", 928, 444, 36, 17) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") GUIRegisterMsg($WM_SIZE, "WM_SIZE") GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO") ; Restrict minimaze window below specified size [$gWinXMin, $gWinYMin] GUISetState(@SW_SHOW) ; ============================================================================================= ; --- Load Test --- Local $sTestCsvFile = @ScriptDir & "\Test CSV 15.csv" _ListView_Load($sTestCsvFile, $aItems, True) ; Load Autosized ; ============================================================================================= ; Message loop While 1 Switch GUIGetMsg() Case $Debug_1 ConsoleWrite(UBound($aItems, 1) & @CRLF) ConsoleWrite(UBound($aItems, 2) & @CRLF) For $i = 0 To UBound($aItems, 1) - 1 $aItems[$i][10] = 8192 ; Checked Next ConsoleWrite("- $i " & $i & @CRLF) GUICtrlSendMsg( $idLV, $LVM_SETITEMCOUNT, $i, 0 ) ;~ $aItems[$i][10] = 4096 ; Unchecked ;~ $aItems[$k+$j][10] = 8192 ; Checked Case $Debug_2 Local $iRows = 250 Dim $aItems[$iRows+1][12] For $iRow = 0 To $iRows - 1 $aItems[$iRow][0] = $iRow + 1 $aItems[$iRow][1] = "AAA-" & Random(1000000, 9999999, 1) $aItems[$iRow][2] = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" $aItems[$iRow][3] = "CCC-" & Random(1000000, 9999999, 1) $aItems[$iRow][4] = "DDD-" & Random(1000000, 9999999, 1) $aItems[$iRow][10] = 4096 ; Unchecked Next GUICtrlSendMsg( $idLV, $LVM_SETITEMCOUNT, $iRow, 0 ) _GUICtrlStatusBar_SetText($StatusBar, $iRow & " Rows Loaded", 1) Case $Debug_3 GUICtrlSetData($Debug_3, "Load 15") $sTestCsvFile = @ScriptDir & "\Test CSV 15.csv" _ListView_Load($sTestCsvFile, $aItems, True) ; Load Autosized Case $Debug_4 GUICtrlSetData($Debug_4, "Load 500") $sTestCsvFile = @ScriptDir & "\Test CSV 500.csv" _ListView_Load($sTestCsvFile, $aItems, True) ; Load Autosized Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd GUIDelete() EndFunc ;==>Example ; ; ; Return Test Count Func _ListView_Load($sTestCsvFile, ByRef $aItems, $AutoSize = True) Local $iRow = 0, $iNumLen, $aData, $aName, $GroupName, $TestName, $TestIdx, $MinVal, $MaxVal, $iStatus;, $aName Local $sTestIniFile = StringRegExpReplace($sTestCsvFile, '\.[^.]*$', '.tcf') ; INI File ;~ _SendMessage($hLV, $LVM_DELETEALLITEMS) ; Delete All Local $aCsv = FileReadToArray($sTestCsvFile) ; 9.289ms If @error Then Return MsgBox($TopMost+16, "_ListView_Load()", "! CSV File Reading ERROR") Local $LinesCount = @extended Dim $aItems[$LinesCount][12] $iNumLen = StringLen($LinesCount) For $i = 1 To $LinesCount-1 ; If StringLeft($aCsv[$i], 5) = "TEST_" Then $aData = StringSplit($aCsv[$i], ",") If $aData[0] >= 5 Then $iRow += 1 $aData[1] = StringReplace($aData[1], "TEST_", "", 1) $aData[1] = StringReplace(StringReplace($aData[1], "__", "|", 1), "_", " ", 1) $aName = StringSplit($aData[1], "|", 3) If @error Then $GroupName = "" $TestName = $aName[0] Else $GroupName = $aName[0] $TestName = StringReplace($aName[1], "_", " ") ; (all '_' replaced with ' ') EndIf $TestIdx = StringStripWS($aData[2], 7) $MinVal = StringStripWS($aData[3], 7) $MaxVal = StringStripWS( $aData[4], 7) $aItems[$iRow - 1][0] = StringFormat("%0" & $iNumLen & "i ", $iRow) $aItems[$iRow - 1][1] = $GroupName $aItems[$iRow - 1][2] = $TestName $aItems[$iRow - 1][3] = $MinVal $aItems[$iRow - 1][4] = $MaxVal $aItems[$iRow - 1][10] = 4096 ; 4096-Unchecked, 8192-Checked EndIf Else ContinueLoop EndIf Next _GUICtrlListView_BeginUpdate($hLV) GUICtrlSendMsg($idLV, $LVM_SETITEMCOUNT, $iRow, 0) ; Update data [$aItems] to ListView _GUICtrlListView_SetColumnWidth($hLV, 0, -1) If $AutoSize Then For $i = 1 To 2 _GUICtrlListView_SetColumnWidth($hLV, $i, $LVSCW_AUTOSIZE) Next EndIf _GUICtrlListView_EndUpdate($hLV) _GUICtrlStatusBar_SetText($StatusBar, $iRow & " Rows Loaded", 1) Return $iRow EndFunc ;==>_ListView_Load Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) Local Static $tText = DllStructCreate("wchar[50]") Local Static $pText = DllStructGetPtr($tText) Local $tNMHDR, $hWndFrom, $iCode $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hLV Switch $iCode Case $LVN_GETDISPINFOW Local $tNMLVDISPINFO = DllStructCreate($tagNMLVDISPINFO, $lParam) Local $iItem = DllStructGetData($tNMLVDISPINFO, "Item") Local $iSubItem = DllStructGetData($tNMLVDISPINFO, "SubItem") Local $iMask = DllStructGetData($tNMLVDISPINFO, "Mask") ; Text If BitAND($iMask, $LVIF_TEXT) Then Local $sText = $aItems[$iItem][$iSubItem] DllStructSetData($tText, 1, $sText) DllStructSetData($tNMLVDISPINFO, "Text", $pText) DllStructSetData($tNMLVDISPINFO, "TextMax", StringLen($sText)) EndIf ; Checkbox in first column If BitAND($iMask, $LVIF_STATE) And $iSubItem = 0 Then DllStructSetData($tNMLVDISPINFO, "State", $aItems[$iItem][10]) EndIf ; Icon in first column ; Use proper $iSubItem value for other columns If BitAND($iMask, $LVIF_IMAGE) And $iSubItem = 6 Then ; Status Column Icon DllStructSetData($tNMLVDISPINFO, "Image", $aItems[$iItem][11]) EndIf Case $NM_CUSTOMDRAW Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam) Local $dwDrawStage = DllStructGetData($tNMLVCUSTOMDRAW, "dwDrawStage") Local $dwItemSpec = DllStructGetData($tNMLVCUSTOMDRAW, "dwItemSpec") Switch $dwDrawStage ; Holds a value that specifies the drawing stage Case $CDDS_PREPAINT ; Before the paint cycle begins Return $CDRF_NOTIFYITEMDRAW ; Notify the parent window of any item-related drawing operations Case $CDDS_ITEMPREPAINT ; Before painting an item If Mod($dwItemSpec, 2) = 1 Then DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", 0xFFFFFF) Else DllStructSetData($tNMLVCUSTOMDRAW, "ClrTextBk", 0xEBF7FF) ; BGR EndIf Return $CDRF_NEWFONT ; $CDRF_NEWFONT must be returned after changing font or colors EndSwitch Case $NM_CLICK Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam) Local $iItem = DllStructGetData($tInfo, "Index") Local $iSubItem = DllStructGetData($tInfo, "SubItem") If $iSubItem = 0 Then If $aItems[$iItem][10] = 4096 Then $aItems[$iItem][10] = 8192 ; Checked Else $aItems[$iItem][10] = 4096 ; Unchecked EndIf _GUICtrlListView_RedrawItems($hLV, $iItem, $iItem) EndIf Case $NM_DBLCLK ; User double-clicks an item with the left mouse button (No return value) Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam) Local $iItem = DllStructGetData($tInfo, "Index") Local $iSubItem = DllStructGetData($tInfo, "SubItem") ConsoleWrite("--> DBLCLK Row : " & $iItem + 1 & @CRLF) ConsoleWrite("--> Name : " & $aItems[$iItem][$iSubItem] & @CRLF) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY ; Resize the status bar when GUI size changes Func WM_SIZE($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam, $lParam ;~ ConsoleWrite("ListView Width " & ControlGetPos($hWnd, "", $idLV)[2] & @CRLF) _GUICtrlStatusBar_Resize($StatusBar) Return $GUI_RUNDEFMSG EndFunc ;==>WM_SIZE Func MY_WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lParam) Local $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int",$lParam) DllStructSetData($minmaxinfo, 7, $gWinXMin); min X (+15) DllStructSetData($minmaxinfo, 8, $gWinYMin); min Y (+15) Return 0 EndFunc
      Test CSV 15.csv Test CSV 500.csv Virt_LV_Garbage.au3
    • By RAMzor
      Hello all,
      I have an ListView with checkboxes and about 300 - 400 items. Entire list is loaded (from ini) every time and I need to store and load "checked scenario" by name. 
      Store list of checked indexless is a bad idea because in the case of sorting the list - scenario will no longer be correct.
      What is the best way to store list of various scenarios of checked items?
      Base code and database ini are attached 
      Example_LV_Store_Scenario.au3 Example.ini
    • By ahha
      Under program control is there an easy way to move a slider (thumb) to the top or bottom?
      I am aware of Melba23's GUIScrollbars_Ex UDF (https://www.autoitscript.com/forum/topic/113723-scrollbars-made-easy-bugfix-version-2-may-21/) but I believe it's overkill for my simple needs.
      In a listview with a vertical scrollbar when the window is active one can hit Ctrl+Home to move the scrollbar slider (thumb) to the top and Ctrl+End to the bottom.
      One can also right click the slider and choose Scroll Here, Top, Bottom, Page UP, Page Down, Scroll Up, and Scroll Down.
      I must be doing something basically wrong but am stuck.  Move the thumb to the middle before clicking the Top button to test the code below (Bottom is not coded).  I've commented out other trys.  try #3 is a strange fail.
      Any comments on what I'm missing greatly appreciated as I'm stuck
      #AutoIt3Wrapper_run_debug_mode=Y #include <Debug.au3> #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <GuiScrollBars.au3> AutoItSetOption("MustDeclareVars", 1) ;v1b - cut out extraneous code Example() Exit Func Example() Local $i, $j, $x, $hGUI, $idListView, $bTop, $bBottom $hGUI = GUICreate("Scrollbar Question", 300, 400) ;get handle in case we need it later $idListView = GUICtrlCreateListView("Col 0", 10, 10, 280, 300) $bTop = GUICtrlCreateButton("Top", 10, 350, 60, 25) $bBottom = GUICtrlCreateButton("Bottom", 120, 350, 60, 25) ;Pause("$hGUI = '" & $hGUI &"'"& @CRLF & "$idListView = '" & $idListView &"'") For $i = 1 to 100 _GUICtrlListView_AddItem($idListView, $i) Next GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $bTop ;drag thumb to middle of scrollbar before clicking Top button ;try #1 - FAILS Opt("WinTitleMatchMode", 2) ;2 = Match any substring in the title $x = WinActivate("Scrollbar Question") ;not $idListview but main GUI $hGUI - neither working If $x <> $hGUI Then Pause("WinActivate FAILED") Send("^{HOME}") ;Ctrl+home ;try#2 - FAILS ;~ $x = WinActivate($hGUI) ;try Main GUI ;~ If $x <> $hGUI Then Pause("WinActivate FAILED") ;~ Send("^{HOME}") ;Ctrl+home ;try#3 - strange FAILS ;~ $x = WinActivate($idListview) ;try $idListview ;~ If $x <> $idListview Then Pause("WinActivate FAILED") ;strange it works BUT if I comment out this line it fails ;~ ;Sleep(1000) ;it's not a time delay issue ;~ Send("^{HOME}") ;Ctrl+home ;try#4 - same strange fail as #3 ;~ $x = WinActivate($idListview) ;try $idListview ;~ If $x <> $idListview Then Pause("WinActivate FAILED") ;~ Send("{UP 100}") ;try#5 - what the heck is going on? same strange fail as #3 ;$x = WinActivate($idListview) ;try $idListview ;~ $x = WinActivate($hGUI) ;try Main GUI ;~ If $x <> $idListview Then Pause("WinActivate FAILED") ;~ MouseWheel($MOUSE_WHEEL_UP, 100) ;_GUIScrollBars_ScrollWindow($hGUI, 0, 100) ;NO - moves the ListView window in the $hGUI ;_GUIScrollBars_ScrollWindow($idListview, 0, 100) ;does not seem to work ;_GUIScrollBars_SetScrollInfoPos($hGUI, $SB_VERT, 30) ;does not work ;_GUIScrollBars_SetScrollInfoPos($idListview, $SB_VERT, 30) ;does not work ;I'm doing something very basic wrong. I need help. Pause("Scrollbar thumb should be at Top") Case $bBottom Pause("In: Case $bBottom") Pause("Scroll bar should be at BOttom") EndSwitch WEnd GUIDelete($idListView) EndFunc ;Func Example() Func Pause($text="") MsgBox(262144, "DEBUG", "Paused: " & $text) EndFunc  
    • By ahha
      Newbie to _GUICtrlListView_RegisterSortCallBack and can't get it to sort properly on date in format MM/DD/YYYY.
      Example code below.  Q - How do I get the date to sort properly?
      ;#AutoIt3Wrapper_run_debug_mode=Y #include <GUIConstantsEx.au3> #include <GuiListView.au3> Global $g_id_ListView Example() Exit Func Example() Local $idRow1, $idRow2, $idRow3 GUICreate("ListView Sort Question", 300, 200) $g_id_ListView = GUICtrlCreateListView("Row#|Name|Date", 10, 10, 280, 180) $id_Row1 = GUICtrlCreateListViewItem("#1|Alice|01/15/2022", $g_id_ListView) $id_Row2 = GUICtrlCreateListViewItem("#2|Bob|02/22/2021", $g_id_ListView) $id_Row3 = GUICtrlCreateListViewItem("#3|Carol|03/13/2021", $g_id_ListView) $id_Row10 = GUICtrlCreateListViewItem("#10|Dave|10/09/2021", $g_id_ListView) $id_Row11 = GUICtrlCreateListViewItem("#11|Eve|11/21/2021", $g_id_ListView) GUISetState(@SW_SHOW) ;$vCompareType = 0 ;not ok as Row# sort #1, #10, and want #1, #2, ;$vCompareType = 1 ;not ok as Row# sort #1, #10, and want #1, #2, $vCompareType = 2 ;Row# okay but Date messed up _GUICtrlListView_RegisterSortCallBack($g_id_ListView, $vCompareType) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $g_id_ListView ;MsgBox(0,"","col="&GUICtrlGetState($g_id_ListView)) _GUICtrlListView_SortItems($g_id_ListView, GUICtrlGetState($g_id_ListView)) EndSwitch WEnd _GUICtrlListView_UnRegisterSortCallBack($g_id_ListView) GUIDelete($g_id_ListView) EndFunc ;Func Example()  
    • By mLipok
      Usually when I collect data from DataBase I need to give EndUser a possibility to select rows which should be taken in the processing loop.
      I was searching on the forum and I'm not able to find any UDF or even example of how to select data from array.
      I have my own solutions but I think they are not worth posting on the forum as it is very old code and I am looking for a better solution.

      Could anybody point me to some examples/solutions ?

      Thank you in advance.
      @mLipok
×
×
  • Create New...