Jump to content

Multiple ListBoxes problems


A20017
 Share

Recommended Posts

Hi

I want to use multiple ListBox in my GUI. So far no problem.

Now I need to delete single ListBox items with DEL key. This would work with one ListBox. I could not figure out how to handle multiple ListBoxes... Whenever I select one item and press DEL key, the selected index is deleted on all ListBoxes.

 

Sample code:

#include <GUIConstantsEx.au3>
#include <GuiConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Date.au3>
#include <Timers.au3>
#include <String.au3>
#include <StringConstants.au3>
#Include <GuiListBox.au3>
#include <Misc.au3>
$dll = DllOpen("user32.dll")


$hGUI = GUICreate("test", 478, 728, (@DesktopWidth - 478) / 2, (@DesktopHeight - 728) / 2, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))

Global $hListBoxGlobal, $hListBoxMain, $hListBoxMini
    GUICtrlCreateGraphic(206,2,2,711,$SS_SUNKEN)
    $hListBoxGlobal = _GUICtrlListBox_Create($hGUI, "", 210, 4, 200, 240, $LBS_EXTENDEDSEL)
    $hListBoxMain = _GUICtrlListBox_Create($hGUI, "", 210, 244, 200, 240, $LBS_EXTENDEDSEL)
    $hListBoxMini = _GUICtrlListBox_Create($hGUI, "", 210, 484, 200, 240, $LBS_EXTENDEDSEL)

GUISetState()


_GUICtrlListBox_AddString ($hListBoxGlobal, "ONE-Global")
_GUICtrlListBox_AddString ($hListBoxGlobal, "TWO-Global")
_GUICtrlListBox_AddString ($hListBoxGlobal, "THREE-Global")

_GUICtrlListBox_AddString ($hListBoxMain, "ONE-Main")
_GUICtrlListBox_AddString ($hListBoxMain, "TWO-Main")

_GUICtrlListBox_AddString ($hListBoxMini, "ONE-Mini")
_GUICtrlListBox_AddString ($hListBoxMini, "TWO-Mini")
_GUICtrlListBox_AddString ($hListBoxMini, "THREE-Mini")
_GUICtrlListBox_AddString ($hListBoxMini, "FOUR-Mini")

While 1
    If _IsPressed("2E", $dll) Then
        ; Wait for key to be released to avoid multiple firing the code below
        While _IsPressed("2E", $dll)
            Sleep(10)
        WEnd
        If _GUICtrlListBox_GetCurSel($hListBoxGlobal) >= 0 Then
            Local $indice = _GUICtrlListBox_GetCurSel($hListBoxGlobal)
            _GUICtrlListBox_DeleteString($hListBoxGlobal, $indice)
        EndIf

        If _GUICtrlListBox_GetCurSel($hListBoxMain) >= 0 Then
            Local $indice = _GUICtrlListBox_GetCurSel($hListBoxMain)
            _GUICtrlListBox_DeleteString($hListBoxMain, $indice)
        EndIf

        If _GUICtrlListBox_GetCurSel($hListBoxMini) >= 0 Then
            Local $indice = _GUICtrlListBox_GetCurSel($hListBoxMini)
            _GUICtrlListBox_DeleteString($hListBoxMini, $indice)
        EndIf
    EndIf
WEnd

 

Can you help me?

Thanks.

Link to comment
Share on other sites

  • Moderators

A20017,

Just check which ListBox has focus:

While 1
    If _IsPressed("2E", $dll) Then
        ; Wait for key to be released to avoid multiple firing the code below
        While _IsPressed("2E", $dll)
            Sleep(10)
        WEnd

        ; Detect focused ListBox
        Switch _WinAPI_GetFocus()
            Case $hListBoxGlobal
                $indice = _GUICtrlListBox_GetCurSel($hListBoxGlobal)
                _GUICtrlListBox_DeleteString($hListBoxGlobal, $indice)
            Case $hListBoxMain
                $indice = _GUICtrlListBox_GetCurSel($hListBoxMain)
                _GUICtrlListBox_DeleteString($hListBoxMain, $indice)
            Case $hListBoxMini
                $indice = _GUICtrlListBox_GetCurSel($hListBoxMini)
                _GUICtrlListBox_DeleteString($hListBoxMini, $indice)
        EndSwitch
    EndIf
WEnd

Good enough?

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

  • Moderators

A20017,#

Glad I could help - and welcome to the AutoIt forums.

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

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