Valnurat Posted May 17, 2016 Posted May 17, 2016 I'm trying to learn about GUI. I created a TAB control, but I can't understand the difference between this: #Region TAB $sLVI = "||" Local $idTab = GUICtrlCreateTab(110, 20, 132, 475, $TCS_BOTTOM) ; Add tabs _GUICtrlTab_SetMinTabWidth($idTab, 25) GUICtrlCreateTabItem("1") GUICtrlCreateTabItem("2") GUICtrlCreateTabItem("3") GUICtrlCreateTabItem("") ; end tabitem definition #EndRegion TAB and this: #Region TAB $sLVI = "||" Local $idTab = GUICtrlCreateTab(110, 20, 132, 475, $TCS_BOTTOM) ; Add tabs _GUICtrlTab_SetMinTabWidth($idTab, 25) _GUICtrlTab_InsertItem($idTab, 0, "1") _GUICtrlTab_InsertItem($idTab, 2, "3") #EndRegion TAB Then I'm trying to put this: Global $hLV = GUICtrlCreateListView($sLVI, 110, 20, 100, 448, $LVS_NOCOLUMNHEADER) _GUICtrlListView_SetExtendedListViewStyle($hLV, $LVS_EX_GRIDLINES) #Region TAB $sLVI = "||" Local $idTab = GUICtrlCreateTab(110, 20, 132, 475, $TCS_BOTTOM) ; Add tabs _GUICtrlTab_SetMinTabWidth($idTab, 25) _GUICtrlTab_InsertItem($idTab, 0, "1") Global $hLV = GUICtrlCreateListView($sLVI, 110, 20, 100, 448, $LVS_NOCOLUMNHEADER) _GUICtrlListView_SetExtendedListViewStyle($hLV, $LVS_EX_GRIDLINES) _GUICtrlTab_InsertItem($idTab, 1, "2") _GUICtrlTab_InsertItem($idTab, 2, "3") #EndRegion TAB But no matter what TAB I press, the TAB change, but the listview follows. But if I do this: #Region TAB $sLVI = "||" Local $idTab = GUICtrlCreateTab(110, 20, 132, 475, $TCS_BOTTOM) ; Add tabs _GUICtrlTab_SetMinTabWidth($idTab, 25) _GUICtrlTab_InsertItem($idTab, 0, "1") Global $hLV = GUICtrlCreateListView($sLVI, 110, 20, 100, 448, $LVS_NOCOLUMNHEADER) _GUICtrlListView_SetExtendedListViewStyle($hLV, $LVS_EX_GRIDLINES) _GUICtrlTab_InsertItem($idTab, 1, "2") _GUICtrlTab_InsertItem($idTab, 2, "3") #EndRegion TAB The TAB change and I get a "fresh" TAB. Another question is. I have a listview with 3 column. How do I add numbers in the start and then move other content 1 down? Do $idMsg = GUIGetMsg() Switch $idMsg Case $idTest0 _GUICtrlListView_AddSubItem($hLV, 0, $sNumber, 1) Case $idTest1 _GUICtrlListView_AddItem($hlv,$sNumber,0) EndSwitch Until $idMsg = $GUI_EVENT_CLOSE Yours sincerely Kenneth.
Moderators Melba23 Posted May 17, 2016 Moderators Posted May 17, 2016 Valnurat, It is best to stick with either the native or the UDF functions - trying to mix them as in those snippets usually ends in tears, as you have discovered. Might I suggest reading the Tabs tutorial in the Wiki as that will explain why the ListView always appears. And if you want to add ListView items at a specific row, you need _GUICtrlListView_InsertItem, not _AddItem. The Help file is your friend here - look through the ListView UDF commands. 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
Valnurat Posted May 18, 2016 Author Posted May 18, 2016 Thank you for pointing me to the TAB link. It was useful. How ever, you tell me to use _GUICtrlListView_InsertItem, not _AddItem. How can I add text to the 2nd and 3rd column with _GUICtrlListView_InsertItem? In the help for _GUICtrlListView_InsertItem it is suggested that I should use _GUICtrlListView_SetItemText, but I can't see how. Sorry. Yours sincerely Kenneth.
AutoBert Posted May 18, 2016 Posted May 18, 2016 _GUICtrlListView_InsertItem returns the index of the new inserted item. This index has to be used when updating the text for a subitem: #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <MsgBoxConstants.au3> Example() Func Example() Local $idListview GUICreate("ListView Set Item Text", 400, 300) $idListview = GUICtrlCreateListView("", 2, 2, 394, 268) GUISetState(@SW_SHOW) ; Add columns _GUICtrlListView_AddColumn($idListview, "Items", 100) _GUICtrlListView_AddColumn($idListview, "SubItems", 100) ; Add items _GUICtrlListView_AddItem($idListview, "Item 1") _GUICtrlListView_AddItem($idListview, "Item 2") _GUICtrlListView_AddItem($idListview, "Item 3") ;Insert item Local $iIndex= _GUICtrlListView_InsertItem($idListview,'New Item with Index 1',1) _GUICtrlListView_SetItemText($idListview,$iIndex,'SubItem 1',1) MsgBox($MB_SYSTEMMODAL, "Information", "Item 2 Text: " & _GUICtrlListView_GetItemText($idListview, 1)) ; Loop until the user exits. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>Example
Valnurat Posted May 18, 2016 Author Posted May 18, 2016 Ok. I see. But in this case I'm not interested in adding text in C1 and C2, only in C2. So it could be done like this: ;Insert item Local $iIndex= _GUICtrlListView_InsertItem($idListview,'',1) _GUICtrlListView_SetItemText($idListview,$iIndex,'SubItem 1',1) and this: ;Insert item _GUICtrlListView_InsertItem($idListview,'',1) _GUICtrlListView_AddSubItem($idListview, 0, 'Test', 1) As I always want the text be added to first row. Or I'm i wrong? Both exampels works, but is it the correct way to do it? Yours sincerely Kenneth.
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