Valnurat

Small issue with Listview and TAB

5 posts in this topic

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.

Share this post


Link to post
Share on other sites



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._______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

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.

Share this post


Link to post
Share on other sites

_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

 

Share this post


Link to post
Share on other sites

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.

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

  • Similar Content

    • X_xkijux_x
      By X_xkijux_x
      Ok so im using this program. clarify for school. I would like to have a program that takes every word i type in microsoft word and searches on it in claryfi. is this possible. I would like to have the program not stopping me from typing more after that word. Like when i type a word it auto search it on clarify without making me stop typing and if i want to change i can do that and if im fine that word i can just keep typing and it will search after the next word. 
    • Miliardsto
      By Miliardsto
      Is this possible to make program works like in diagram? There is so much encryption methods and UDFs are they give security? If the $Address will be crypted with some encryption algorithm could be possible to get the value of $Address in easy way? Of course We know its easy too look into autoit code and get value of variable and so We dont want to anyone see $Address value - there are functions Could func1.au3, func2.au3.. be for example func1.php or other type of file? As we know .php files are unnable to see. For example func1 would be read by FileRead() and then Execute() Is this generally possible to do?
      Will it give secure?
      What do you think about? Maybe there is something wrong in this concept or missed.

    • JaredStroeb
      By JaredStroeb
      I need to open an application and send it keys in Session 0.  I have exe's working locally, I can see the application open in session 0 through interactive services, but my send commands do not go to the application.  The following article running-autoit-session-0, directs me to use ControlSend() however my application has no controls that can be identified by AutoIt v3 Window Info.  Get All Windows Controls also returned nothing for the application's handle.  
      What are my options?  
      Can this be done with AutoIt?
      Is there a different "relatively simple" library/tool to use? (I am familiar with C# if there is a viable library there )

       
    • nassausky
      By nassausky
      Hey all,
      Has anyone created any queries for youtube? I was thinking it might be something like this but can't quite figure it out:
      $oIE = _IECreateEmbedded() _IENavigate($oIE,"https://www.youtube.com") Local $oForms = _IETagNameGetCollection($oIE, "form") Local $sTxt = "" For $oForm In $oForms If $oForm.id = "masthead-search" Then $oInputs = _IETagNameGetCollection($oIE, "input") For $oInput In $oInputs If $oInput.id = "masthead-search-term" Then _IEFormElementSetValue($oInput, "cards") _IEFormSubmit($oForm) EndIf Next EndIf Next  
    • Skysnake
      By Skysnake
      Scite comes up occasional, almost incidentally, in some support topics.  I have not found a "Scite" topic in the forums, so this is where I will start.  I have recently been using Scite intensively, specifically with a large project and I have certain issues.  I know that Scite is not an AutoIt product, but it is so closely integrated to the core release that it makes sense to raise issues and request support here.  If this is not the right please refer me to the right forum.
      Thx
       
      Skysnake