Jump to content

_GUICtrlListView_ & inputbox problem


misterDee
 Share

Recommended Posts

  • Moderators

misterDee,

Welcome to the AutoIt forums. :)

Would this be close to what you are looking for? Without more details it is hard to tell.

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

Opt('MustDeclareVars', 1)

Global $fClick = False, $hLV_Handle

GUIRegisterMsg($WM_NOTIFY, "MY_WM_NOTIFY")

Example()

Func Example()
    Local $listview, $msg, $aitem[3], $iIndex, $sNew_Data

    GUICreate("listview items", 220, 250, 100, 200)

    $listview = GUICtrlCreateListView("col1  |col2|col3  ", 10, 10, 200, 150)
    $hLV_Handle = GUICtrlGetHandle($listview)
    $aitem[0] = GUICtrlCreateListViewItem("item1|col12|col13", $listview)
    $aitem[1] = GUICtrlCreateListViewItem("item2|col22|col23", $listview)
    $aitem[2] = GUICtrlCreateListViewItem("item3|col32|col33", $listview)

    GUISetState()

    Do
        If $fClick = True Then
            $fClick = False
            $iIndex = _GUICtrlListView_GetSelectedIndices($hLV_Handle)
            $sNew_Data = InputBox("New Data", "Please input new data")
            GUICtrlSetData($aitem[$iIndex], $sNew_Data)
        EndIf
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

EndFunc   ;==>Example

Func MY_WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)

    #forceref $hWnd, $iMsg, $wParam
    Local $tNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return
    If DllStructGetData($tNMHDR, 1) = $hLV_Handle Then
        If DllStructGetData($tNMHDR, 3) = $NM_CLICK Then $fClick = True
    EndIf
    $tNMHDR = 0
    Return $GUI_RUNDEFMSG

EndFunc   ;==>MY_WM_NOTIFY

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

Hi there,

I have a problem mayb you can help me..

In my GUI i have a _GUICtrlListView_ with groups and items.. is it possible when i clicked on a item in a group that will result in a inputbox (GUICtrlCreateInput)?

thanks!!

Hi Melba,

Thanks for replay and posting a script.. its not exactly what i mean.. sorry for the less information i will drop my script so u can see it by your self..

#include <GUIConstants.au3>

#include <Date.au3>

#include <String.au3>

#include <GuiListView.au3>

#include <GuiImageList.au3>

#include <EditConstants.au3>

#include <GUIConstantsEx.au3>

#Include <WindowsConstants.au3>

#include <TreeViewConstants.au3>

#include <StaticConstants.au3>

#include <GuiTreeView.au3>

$gui=GUICreate("TEST TEST TEST ", 790, 700, 134, 81, -1, BitOR($WS_EX_ACCEPTFILES,$WS_EX_APPWINDOW,$WS_MINIMIZEBOX,$WS_EX_RIGHT,$WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))

GUISetBkColor(0xFFFFFF)

GUICtrlCreatePic(@ScriptDir&"\img\main_bg_top.jpg", 0, 0, 790, 78)

;GUICtrlCreatePic(@ScriptDir&"\img\main_bg_left.jpg", 0, 78, 245, 443)

GUICtrlCreatePic(@ScriptDir&"\img\main_bg_bottom.jpg", 0, 666, 790, 35)

$iniread=IniRead(@scriptdir&"\config.ini", "General", "Schoolnaam", "Niet gedefineerd")

GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

GUICtrlCreateLabel($iniread, 440, 27, 500, 500)

GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

GUICtrlSetFont(-1, 13, "", 2)

GUICtrlCreateInput("", 180, 103, 120, 20)

GUICtrlCreateInput("", 180, 133, 120, 20, 0x0020)

GUICtrlCreateButton("Inloggen!", 230, 163, 69, 21)

Local $GUI, $hImage, $hListView, $aImage

Local $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER)

;=========================================================================================================

$hListView = _GUICtrlListView_Create($GUI, "", 0, 79, 170, 580, -1, -1, True)

;=========================================================================================================

_GUICtrlListView_SetExtendedListViewStyle($hListView, $exStyles)

_GUICtrlListView_SetImageList($hListView, $hImage, 1)

_GUICtrlListView_EnableGroupView($hListView)

_GUICtrlListView_InsertGroup($hListView, -1, 1, "Groep 1")

_GUICtrlListView_InsertGroup($hListView, -1, 2, "Groep 2")

_GUICtrlListView_InsertGroup($hListView, -1, 3, "Groep 3")

_GUICtrlListView_InsertGroup($hListView, -1, 4, "Groep 4")

_GUICtrlListView_InsertGroup($hListView, -1, 5, "Groep 5")

_GUICtrlListView_InsertGroup($hListView, -1, 6, "Groep 6")

_GUICtrlListView_InsertGroup($hListView, -1, 7, "Groep 7")

_GUICtrlListView_InsertGroup($hListView, -1, 8, "Groep 8")

_GUICtrlListView_InsertGroup($hListView, -1, 10, "ICT Coordinator")

_GUICtrlListView_InsertColumn($hListView, 0, "Hoofdmenu", 170)

$user1=iniread(@scriptdir&"\users\users.ini", "users", 1, "")

$user2=iniread(@scriptdir&"\users\users.ini", "users", 2, "")

$user3=iniread(@scriptdir&"\users\users.ini", "users", 3, "")

$user4=iniread(@scriptdir&"\users\users.ini", "users", 4, "")

$user5=iniread(@scriptdir&"\users\users.ini", "users", 5, "")

$user6=iniread(@scriptdir&"\users\users.ini", "users", 6, "")

$user7=iniread(@scriptdir&"\users\users.ini", "users", 7, "")

$user8=iniread(@scriptdir&"\users\users.ini", "users", 8, "")

$user9=iniread(@scriptdir&"\users\users.ini", "users", 9, "")

_GUICtrlListView_AddItem($hListView, "", 0)

_GUICtrlListView_AddItem($hListView, $user1, 1)

_GUICtrlListView_AddItem($hListView, $user2, 2)

_GUICtrlListView_AddItem($hListView, $user3, 3)

_GUICtrlListView_AddItem($hListView, $user4, 4)

_GUICtrlListView_AddItem($hListView, $user5, 5)

_GUICtrlListView_AddItem($hListView, $user6, 6)

_GUICtrlListView_AddItem($hListView, $user7, 7)

_GUICtrlListView_AddItem($hListView, $user8, 8)

_GUICtrlListView_AddItem($hListView, $user9, 10)

_GUICtrlListView_SetItemGroupID($hListView, 1, 1)

_GUICtrlListView_SetItemGroupID($hListView, 2, 2)

_GUICtrlListView_SetItemGroupID($hListView, 3, 3)

_GUICtrlListView_SetItemGroupID($hListView, 4, 4)

_GUICtrlListView_SetItemGroupID($hListView, 5, 5)

_GUICtrlListView_SetItemGroupID($hListView, 6, 6)

_GUICtrlListView_SetItemGroupID($hListView, 7, 7)

_GUICtrlListView_SetItemGroupID($hListView, 8, 8)

_GUICtrlListView_SetItemGroupID($hListView, 9, 10)

GUISetState()

While 1

$nMsg=GUIGetMsg()

Switch $nMsg

Case $GUI_EVENT_CLOSE

Exit

EndSwitch

WEnd

i want, if i click on a item in a group that the item will show in the first inputbox on the right.. if its possible it must be disable.. so no edit only read.. everytime you click on a item the name must change in the first inputbox.

info inifile:

[users]

1=Leraar Groep 1

2=Leraar Groep 2

3=Leraar Groep 3

4=Leraar Groep 4

5=Leraar Groep 5

6=Leraar Groep 6

7=Leraar Groep 7

8=Leraar Groep 8

9=ICT Coordinator

Thanks again for replay, sorry for my bad english and the messy script

MisterDee

Edited by misterDee
Link to comment
Share on other sites

  • Moderators

misterDee,

That is a bit clearer. :)

If you want a read-only control, I suggest an Edit with the $ES_READONLY style. Then you need a slightly modified function to be registered for a single click on the ListView. And you get this:

#include <GUIConstants.au3>
#include <Date.au3>
#include <String.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <TreeViewConstants.au3>
#include <StaticConstants.au3>
#include <GuiTreeView.au3>

Global $fClick = False

$GUI = GUICreate("TEST TEST TEST ", 790, 700, 134, 81, -1, BitOR($WS_EX_ACCEPTFILES, $WS_EX_APPWINDOW, $WS_MINIMIZEBOX, $WS_EX_RIGHT, $WS_EX_TOOLWINDOW, $WS_EX_WINDOWEDGE))
GUISetBkColor(0xFFFFFF)

GUICtrlCreatePic(@ScriptDir & "\img\main_bg_top.jpg", 0, 0, 790, 78)
;GUICtrlCreatePic(@ScriptDir&"\img\main_bg_left.jpg", 0, 78, 245, 443)
GUICtrlCreatePic(@ScriptDir & "\img\main_bg_bottom.jpg", 0, 666, 790, 35)

$iniread = IniRead(@ScriptDir & "\config.ini", "General", "Schoolnaam", "Niet gedefineerd")
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlCreateLabel($iniread, 440, 27, 500, 500)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 13, "", 2)
$hEdit = GUICtrlCreateEdit("", 180, 103, 120, 20, $ES_READONLY) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
GUICtrlCreateInput("", 180, 133, 120, 20, 0x0020)
GUICtrlCreateButton("Inloggen!", 230, 163, 69, 21)

Local $GUI, $hImage, $hListView, $aImage
Local $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER)

;=========================================================================================================
$hListView = _GUICtrlListView_Create($GUI, "", 0, 79, 170, 580, -1, -1 , True)
;=========================================================================================================
_GUICtrlListView_SetExtendedListViewStyle($hListView, $exStyles)
_GUICtrlListView_SetImageList($hListView, $hImage, 1)

_GUICtrlListView_EnableGroupView($hListView)
_GUICtrlListView_InsertGroup($hListView, -1, 1, "Groep 1")
_GUICtrlListView_InsertGroup($hListView, -1, 2, "Groep 2")
_GUICtrlListView_InsertGroup($hListView, -1, 3, "Groep 3")
_GUICtrlListView_InsertGroup($hListView, -1, 4, "Groep 4")
_GUICtrlListView_InsertGroup($hListView, -1, 5, "Groep 5")
_GUICtrlListView_InsertGroup($hListView, -1, 6, "Groep 6")
_GUICtrlListView_InsertGroup($hListView, -1, 7, "Groep 7")
_GUICtrlListView_InsertGroup($hListView, -1, 8, "Groep 8")
_GUICtrlListView_InsertGroup($hListView, -1, 10, "ICT Coordinator")

_GUICtrlListView_InsertColumn($hListView, 0, "Hoofdmenu", 170)

$user1 = IniRead(@ScriptDir & "\users\users.ini", "users", 1, "user1")
$user2 = IniRead(@ScriptDir & "\users\users.ini", "users", 2, "user2")
$user3 = IniRead(@ScriptDir & "\users\users.ini", "users", 3, "user3")
$user4 = IniRead(@ScriptDir & "\users\users.ini", "users", 4, "user4")
$user5 = IniRead(@ScriptDir & "\users\users.ini", "users", 5, "user5")
$user6 = IniRead(@ScriptDir & "\users\users.ini", "users", 6, "user6")
$user7 = IniRead(@ScriptDir & "\users\users.ini", "users", 7, "user7")
$user8 = IniRead(@ScriptDir & "\users\users.ini", "users", 8, "user8")
$user9 = IniRead(@ScriptDir & "\users\users.ini", "users", 9, "user9")

_GUICtrlListView_AddItem($hListView, "", 0)
_GUICtrlListView_AddItem($hListView, $user1, 1)
_GUICtrlListView_AddItem($hListView, $user2, 2)
_GUICtrlListView_AddItem($hListView, $user3, 3)
_GUICtrlListView_AddItem($hListView, $user4, 4)
_GUICtrlListView_AddItem($hListView, $user5, 5)
_GUICtrlListView_AddItem($hListView, $user6, 6)
_GUICtrlListView_AddItem($hListView, $user7, 7)
_GUICtrlListView_AddItem($hListView, $user8, 8)
_GUICtrlListView_AddItem($hListView, $user9, 10)

_GUICtrlListView_SetItemGroupID($hListView, 1, 1)
_GUICtrlListView_SetItemGroupID($hListView, 2, 2)
_GUICtrlListView_SetItemGroupID($hListView, 3, 3)
_GUICtrlListView_SetItemGroupID($hListView, 4, 4)
_GUICtrlListView_SetItemGroupID($hListView, 5, 5)
_GUICtrlListView_SetItemGroupID($hListView, 6, 6)
_GUICtrlListView_SetItemGroupID($hListView, 7, 7)
_GUICtrlListView_SetItemGroupID($hListView, 8, 8)
_GUICtrlListView_SetItemGroupID($hListView, 9, 10)

GUIRegisterMsg($WM_NOTIFY, "MY_WM_NOTIFY") ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch

    If $fClick = True Then ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< All this section
        ConsoleWrite("Here" & @CRLF)
        $fClick = False
        $iIndex = _GUICtrlListView_GetSelectedIndices($hListView)
        ConsoleWrite($iIndex & @CRLF)
        $sText = _GUICtrlListView_GetItemText($hListView, $iIndex)
        GUICtrlSetData($hEdit, $sText)
    EndIf
WEnd

Func MY_WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) ; <<<<<<<<<<<<<<<< All this function
    #forceref $hWnd, $iMsg, $iwParam
    Local $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    If HWnd(DllStructGetData($tNMHDR, "hWndFrom")) = $hListView Then
        If  DllStructGetData($tNMHDR, "Code") = $NM_CLICK Then $fClick = True
    EndIf
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Look for the <<<<<<<<<<<<<<<<<< lines. Are we getting close now?

M23

P.S. When you post code, it helps if you use Code tags. Put [autoit ] before and [/autoit ] after your posted code (but omit the trailing space - it is only there so the tags display here). ;)

Edit: Minor code change - removing debug lines

Edited by Melba23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 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

 

Link to comment
Share on other sites

Hi Melba,

Thanks for replay and posting a script.. its not exactly what i mean.. sorry for the less information i will drop my script so u can see it by your self..

i want, if i click on a item in a group that the item will show in the first inputbox on the right.. if its possible it must be disable.. so no edit only read.. everytime you click on a item the name must change in the first inputbox.

info inifile:

[users]

1=Leraar Groep 1

2=Leraar Groep 2

3=Leraar Groep 3

4=Leraar Groep 4

5=Leraar Groep 5

6=Leraar Groep 6

7=Leraar Groep 7

8=Leraar Groep 8

9=ICT Coordinator

Thanks again for replay, sorry for my bad english and the messy script

MisterDee

Melba,

Wauw.. thats exactly what im lookin' for, thanks a lot!!!!

thanks for the tips, your the best! :)

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...