Sign in to follow this  
Followers 0
Luigi

insert item in ListView at specific position...

11 posts in this topic

How insert an item between ids 275 And 300?

For example, I need insert id 280.

280 is more of 275, your position is after 275 (position 1) or

275 is less of 300, your position is before 300 (position 2).

How insert correctly a new ID between a number sequence?

How do get a correct position ti insert a new id?

or the best way is insert a new ID anywhere, and sort the list by ID?

sort a small list is very fast, but my list contains more 8k itens... is very low...

#include <GUIConstantsEx.au3>

#include <GuiListView.au3>

Local $hListView

GUICreate('ListView', 400, 300)

$hListView = GUICtrlCreateListView("", 2, 2, 394, 268)

GUISetState()

_GUICtrlListView_AddColumn($hListView, 'id', 100)

_GUICtrlListView_AddItem($hListView, 200); position 0

_GUICtrlListView_AddItem($hListView, 275); position 1

_GUICtrlListView_AddItem($hListView, 300); position 2

Do

Until GUIGetMsg() = $GUI_EVENT_CLOSE

GUIDelete()


Visit my repository

Share this post


Link to post
Share on other sites



Looks like you need _GUICtrlListView_InsertItem()  :)

Share this post


Link to post
Share on other sites

detefon,

Just sort the ListView after inserting the items: :)

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

Local $hListView, $fSort = False

GUICreate('ListView', 400, 300)
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
GUISetState()

_GUICtrlListView_AddColumn($hListView, 'id', 100)

GUICtrlCreateListViewItem(200, $hListView)
GUICtrlCreateListViewItem(300, $hListView)
GUICtrlCreateListViewItem(275, $hListView)

_GUICtrlListView_SimpleSort ($hListView, $fSort, 0)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
I changed the item insertion code to the native function - it is usually better to keep the ListView creation and item insertion code matched (either both native or both UDF). ;)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

 

Share this post


Link to post
Share on other sites

hi Melba23, thank you for your reply! 8)

I thinking about sort the list view, and work very well with small list, but my list have more 8k lines.

I try use a simple sort before, but something in wrong.

I will try your code... maybe work now.

br


Visit my repository

Share this post


Link to post
Share on other sites

hi Melba23, thank you for your reply! 8)

I thinking about sort the list view, and work very well with small list, but my list have more 8k lines.

I try use a simple sort before, but something is wrong.

I will try your code... maybe work now.

br


Visit my repository

Share this post


Link to post
Share on other sites

#6 ·  Posted (edited)

detefon,

A ListView with more than 8k lines is, to put it mildly, just ridiculous. Do do you really expect people to scroll through that many items? Can you not break it up into smaller chunks and use a 2-step process? :huh:

M23

Edit: Even better - get the items into an array, sort them and then reload. ;)

Edit 2: I see BrewManNH had the same thought. :D

Edited by Melba23

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

 

Share this post


Link to post
Share on other sites

I've had listviews with over 4K items in it, displaying music files in a media player. Sorting a large listview in AutoIt is going to take a long time.

I've learned to use an array of the items and just sort the array and rebuild the LV with the sorted array, orders of magnitude faster that way.

Another way to fast sort a listview is to use SQLite and a temporary memory database to store the data, and an array when you retrieve it.


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

Share this post


Link to post
Share on other sites

hi Melba23, thank you for your reply! 8)

I thinking about sort the list view, and work very well with small list, but my list have more 8k lines.

I try use a simple sort before, but something is wrong.

I will try your code... maybe work now.

br


Visit my repository

Share this post


Link to post
Share on other sites

detefon,

You already said that (but thanks for saying it again). ;)

But what about the "array" sorting method both BrewManNH and I suggested? I think it is a better solution. ;)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______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

 

Share this post


Link to post
Share on other sites

sorry by double reply/post. I have problem with my cell phone and any forum. I can't delete double posts.


Visit my repository

Share this post


Link to post
Share on other sites

Melba, I have some problems with android keyboard and very slow internet conection, sorry by double posts, its my mistake.

BrewManNH, I will folow your advice and Melba too, and split this list view. 8k lines is funny.


Visit my repository

Share this post


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
Sign in to follow this  
Followers 0