FreeFry Posted March 14, 2006 Posted March 14, 2006 Hi all. I have a problem relating to AutoIt's limit of how many controls you can have in one gui. I've made this gui from which you can load Items from a file of your choice, which contains list of items(items get loaded into the gui and gets a control id), and if one file holds over 8000 items, the load exceeds the autoit limit, and then you cant see the rest of the items. I wonder if anyone have a good idea of how to solve this, because i want it to look clean, but does it really require me to create a new gui window?
Valuater Posted March 14, 2006 Posted March 14, 2006 because they are added to the GUI... they should not need a control idit would be much better to use a variable name with or without an arrayAutoit limits Arrays: A maximum of 64 dimensions and/or a total of 16 million elementsMaximum number of variables in use at one time: No limitMaximum number of user defined functions: No limit8)
FreeFry Posted March 15, 2006 Author Posted March 15, 2006 (edited) Hi, well i think i need to have a controlID, because i use GuiCtrlCreateTreeView, then i add all items to that list with GUICtrlCreateTreeViewItem, and they all have a checkbox so that you can click in the items that you want, then press a button to get the item data that is read from the file, and use that data in a game.. so i need to have a tree view i think =/ this is my code: expandcollapse popup#include <GuiConstants.au3> Opt("WinTitleMatchMode", 4) Opt("SendKeyDelay", 35) Opt("SendAttachMode", 1) Global $data, $ItemCount = 0, $ItemArray[1][4] Func _loadItems() $file = FileOpenDialog("Select the item file to open", "", "Item Files (*.scp)", 1) $FileHandle = FileOpen($File, 0) While 1 $line = FileReadLine($FileHandle) If @error = -1 Or @error Then ExitLoop ElseIf StringLeft($line, 1) = "[" Then $ItemCount += 1 ReDim $ItemArray[$ItemCount][4] $ItemArray[$ItemCount-1][0] = StringTrimRight(StringTrimLeft($line, 6), 1) ;ID of the item $line = FileReadLine($FileHandle) $ItemArray[$ItemCount-1][1] = "#" & $ItemCount-1 & " " & StringTrimLeft($line, StringInStr($line, "="));Name of the item $ItemArray[$ItemCount-1][2] = GUICtrlCreateTreeViewItem($ItemArray[$ItemCount-1][1], $Treeview_2);Ctrl ID of the item (gui related) GUICtrlSetData($Label_1, "Item Count: " & $ItemCount) EndIf WEnd FileClose($FileHandle) EndFunc Func _additem() Local $oldClip = ClipGet() WinActivate("classname=GxWindowClassD3d") WinWaitActive("classname=GxWindowClassD3d") For $i = 0 To $ItemCount-1 If $ItemArray[$i][3] = 1 Then $ItemArray[$i][3] = 0 GUICtrlSetState($i+7, $GUI_UNCHECKED) GUICtrlSetData($i+7, $ItemArray[$i][1] & " -Added-") ClipPut(".add " & $ItemArray[$i][0]) Send("{enter}^v{enter}") EndIf Next ClipPut($oldClip) EndFunc ;~ Func _removeitem() ;~ Local $oldClip = ClipGet() ;~ WinActivate("classname=") ;~ WinWaitActive("classname=") ;~ For $i = 0 To $ItemCount-1 ;~ If $ItemArray[$i][3] = "" Then ;~ ClipPut(".add " & $ItemArray[$i][0]) ;~ Send("{enter}^v{enter}") ;~ EndIf ;~ Next ;~ ClipPut($oldClip) ;~ EndFunc GuiCreate("Item Manager", 386, 609,(@DesktopWidth-386)/2, (@DesktopHeight-709)/2 , $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS) $Group_1 = GuiCtrlCreateGroup("Items", 20, 10, 350, 530) $Treeview_2 = GuiCtrlCreateTreeview(30, 30, 330, 500, $TVS_CHECKBOXES + $TVS_SHOWSELALWAYS + $TVS_DISABLEDRAGDROP) $Button_4 = GuiCtrlCreateButton("Load Item List", 10, 560, 80, 20) $Button_5 = GuiCtrlCreateButton("Add Item(s)", 100, 560, 60, 20) $Label_1 = GUICtrlCreateLabel("Item Count: " & $ItemCount, 170, 560, 100) ;$Button_6 = GuiCtrlCreateButton("Remove Item(s)", 170, 560, 80, 20) GuiSetState() While 1 $msg = GuiGetMsg() $selected = GUICtrlRead($Treeview_2) If GUICtrlRead($selected) = 257 Then $ItemArray[$selected-7][3] = 1 ;$ItemArray[$][3] = Checkbox Status EndIf Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $Button_4 _loadItems() MsgBox(0, "Done!", "Loading of items is done!") Case $msg = $Button_5 _additem() EndSelect WEnd Edited March 15, 2006 by FreeFry
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