Jump to content

Recommended Posts

Posted (edited)

I have a ListView that is created from a FileRead() using delimiters and then added into the ListView as shown below.

Local $src = InetGet($url, $file, 1)
        $data = FileRead($file)
        $array = StringSplit($data, ";", 1)
        FileDelete($file)
        For $n = 1 To UBound($array) - 1 Step 3
            $iItem = _GUICtrlListView_AddItem($ListView, $array[$n])
            $a = UBound($array) - 1
            If $n + 1 > $a Then
                ExitLoop
            Else
                _GUICtrlListView_AddSubItem($ListView, $iItem, $array[$n + 1], 1)
                _GUICtrlListView_AddSubItem($ListView, $iItem, $array[$n + 2], 2)
            EndIf
        Next
        $PlayerCount = _GUICtrlListView_GetItemCount($ListView)
        _GUICtrlListView_SetColumn($ListView, 0, "Name (Online: " & $Count & ")")

I was using _GUICtrlListView_SortItems to sort them and it appears to work correctly in that it adds the up and down arrow to the column but nothing moves. I tried another one that involved using DLL's but that didn't work either. Am I missing something or what?

Edited by Tomoya
Posted

Can you post the whole code you use including the call to _GUICtrlListView_SortItems plus the callback function?

My UDFs and Tutorials:

  Reveal hidden contents

 

Posted

Try it this way.

Local $src = InetGet($url, $file, 1)
$data = FileRead($file)
$array = StringSplit($data, ";", 1)
FileDelete($file)
For $n = 1 To UBound($array) - 1 Step 3
    $iItem = _GUICtrlListView_AddItem($ListView, $array[$n], -1, $n + 1000) ; using the 4th parameter, add 1000 to the $n variable to get it to sort correctly.
    $a = UBound($array) - 1
    If $n + 1 > $a Then
        ExitLoop
    Else
        _GUICtrlListView_AddSubItem($ListView, $iItem, $array[$n + 1], 1)
        _GUICtrlListView_AddSubItem($ListView, $iItem, $array[$n + 2], 2)
    EndIf
Next
$PlayerCount = _GUICtrlListView_GetItemCount($ListView)
_GUICtrlListView_SetColumn($ListView, 0, "Name (Online: " & $Count & ")")

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!

  Reveal hidden contents

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

Posted (edited)

  On 1/20/2013 at 2:34 PM, 'water said:

Can you post the whole code you use including the call to _GUICtrlListView_SortItems plus the callback function?

I would have posted it all but it is becoming a rather large project and I didn't figure most of it would be relevant. I had a good hunch that the way the items were being added was the problem.

  On 1/20/2013 at 2:38 PM, 'BrewManNH said:

Try it this way.

;Code omitted to save space

This did it! I was reading a post somewhere that said it has problems sorting things from a array. It's funny that the one little addition solves all the problems. Why does adding 1000 to $n seem to fix it? Edited by Tomoya
Posted

The $lParam is for association of the item. Also if the script is big, create a small reproducer, because 9 times out of 10 this can solve the issue.

UDF List:

  Reveal hidden contents

Updated: 22/04/2018

Posted

  Quote

lParam

Type: LPARAM

Value specific to the item. If you use the LVM_SORTITEMS message, the list-view control passes this value to the application-defined comparison function. You can also use the LVM_FINDITEM message to search a list-view control for an item with a specified lParam value.

From this MSDN page.

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!

  Reveal hidden contents

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

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
×
×
  • Create New...