Sign in to follow this  
Followers 0
fspafford

GUICtrlCreateList and GUICtrlSetData

7 posts in this topic

I can't seem to add the same text more than once to a list control. For example, if I use:

GUICtrlSetData($mylist, "test")

GUICtrlSetData($mylist, "test")

then "test" appears once in the list.

Can this behavior be changed?

I am using a list control to log some information, and I want to allow "duplicates".

Thanks,

Frank


Frank

Share this post


Link to post
Share on other sites

#2 ·  Posted (edited)

#include <GUIConstants.au3>

GUICreate("My GUICtrlRead",250,120)

$n1  = GUICtrlCreateList("", 10, 10, -1, 100)
GUICtrlSetData(-1, "item1|item1|item1")

GUISetState ()

Do
    $msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE

Edited by star2

[quote]Baby you're all that I want, When you're lyin' here in my armsI'm findin' it hard to believe, We're in heavenAnd love is all that I need , And I found it there in your heartIt isn't too hard to see, We're in heaven .Bryan Adams[/quote].............................................................................[u]AUTOIT[/u]

Share this post


Link to post
Share on other sites

That example does work, but I want to use multiple calls to GUICtrlSetData so that the list is updated while the script is running. Can this be done?


Frank

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

I can't seem to add the same text more than once to a list control. For example, if I use:

GUICtrlSetData($mylist, "test")

GUICtrlSetData($mylist, "test")

then "test" appears once in the list.

Can this behavior be changed?

I am using a list control to log some information, and I want to allow "duplicates".

Thanks,

Frank

Your example should work but there appears to a minor bug or undocumented behaviour

#include <GUIConstants.au3>

GUICreate("My GUI")  ; will create a dialog box that when displayed is centered

$mylist1 = GUICtrlCreatelist ("", 10,10)
GUICtrlSetData($mylist1, "test")
GUICtrlSetData($mylist1, "test")
; only one entry appears in list

$mylist2 = GUICtrlCreatelist ("", 10,200)
GUICtrlSetData($mylist2, "test")
GUICtrlSetData($mylist2, "test|")
; two entries appear in list

GUISetState ()       ; will display an empty dialog box with a list control with focus on

; Run the GUI until the dialog is closed
While 1
    $msg = GUIGetMsg()
    
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend

Edit: A bug report has been submitted

Edited by Bowmore

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning."- Rick Cook

Share this post


Link to post
Share on other sites

I can use the workaround. Thanks!


Frank

Share this post


Link to post
Share on other sites

That example does work, but I want to use multiple calls to GUICtrlSetData so that the list is updated while the script is running. Can this be done?

#include <GUIConstants.au3>

GUICreate("My GUI",400,200)

$in1 = GUICtrlCreateInput ("put data here",220,10,150)
$in2 = GUICtrlCreateInput ("put data here",220,40,150)
$in3 = GUICtrlCreateInput ("put data here",220,70,150)
$mylist = GUICtrlCreatelist ("",10,10,200,200)
$go = GUICtrlCreateButton ("Set Data in List control", 220,110,150)

GUISetState ()

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    $one = GUICtrlRead ($in1)
    $two = GUICtrlRead ($in2)
    $three = GUICtrlRead ($in3)
    If $msg = $go Then
        GUICtrlSetData ($mylist , "")
        GUICtrlSetData ($mylist ,$three &"|"& $two &"|"& $one,$one)
    EndIf
Wend

[quote]Baby you're all that I want, When you're lyin' here in my armsI'm findin' it hard to believe, We're in heavenAnd love is all that I need , And I found it there in your heartIt isn't too hard to see, We're in heaven .Bryan Adams[/quote].............................................................................[u]AUTOIT[/u]

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Use _GUICtrlListBox_AddString() instead of GUICtrlSetData.

Edited by Siao

"be smart, drink your wine"

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
Sign in to follow this  
Followers 0