Luigi Posted December 5, 2013 Share Posted December 5, 2013 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 Link to comment Share on other sites More sharing options...
mikell Posted December 5, 2013 Share Posted December 5, 2013 Looks like you need _GUICtrlListView_InsertItem() Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 5, 2013 Moderators Share Posted December 5, 2013 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_CLOSEI 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 Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Luigi Posted December 5, 2013 Author Share Posted December 5, 2013 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 Link to comment Share on other sites More sharing options...
Luigi Posted December 5, 2013 Author Share Posted December 5, 2013 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 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 5, 2013 Moderators Share Posted December 5, 2013 (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? M23Edit: Even better - get the items into an array, sort them and then reload. Edit 2: I see BrewManNH had the same thought. Edited December 5, 2013 by Melba23 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
BrewManNH Posted December 5, 2013 Share Posted December 5, 2013 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 GudeHow 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 comment Share on other sites More sharing options...
Luigi Posted December 5, 2013 Author Share Posted December 5, 2013 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 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 5, 2013 Moderators Share Posted December 5, 2013 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 Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Luigi Posted December 5, 2013 Author Share Posted December 5, 2013 sorry by double reply/post. I have problem with my cell phone and any forum. I can't delete double posts. Visit my repository Link to comment Share on other sites More sharing options...
Luigi Posted December 5, 2013 Author Share Posted December 5, 2013 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 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