Jump to content

Recommended Posts

Posted

Hi Guys

I got a problem, hope someone can help me, many thanks.

I'm trying to read items from a listbox1($ListChoCom) to an array, and load this array to another listbox2($ListSuitCmd) which is on the different  tab. But, now, I cannot select items on the listbox2. I only can select from listbox1. Here is the code and the screenshots.

Func btnNext2()

    Dim $SelCmdArray[10]
    For $i = 0 To _GUICtrlListBox_GetCount($ListChoCom) - 1
        $SelCmdArray[$i] =  _GUICtrlListBox_GetText($ListChoCom, $i)
        ReDim $SelCmdArray[UBound($SelCmdArray) + 1]
        GUICtrlSetData($ListSuitCmd, $SelCmdArray[$i])
    Next

    _GUICtrlTab_ClickTab($Tab1, 2)

EndFunc

Screenshot 1: I can select item from this listbox1.

1.png

screenshot2: I cannot select item from listbox2, The item that been highlight is what I select from listbox1.

2.png

Thank you very much indeed.

Posted

Maybe the problem is caused by the part of the script whre you create the GUI?

BTW: I would avoid ReDIm to enhance performance of your script:

Func btnNext2()
    Local $iCount = _GUICtrlListBox_GetCount($ListChoCom)
    Local $SelCmdArray[$iCount]
    For $i = 0 To $iCount - 1
        $SelCmdArray[$i] =  _GUICtrlListBox_GetText($ListChoCom, $i)
        GUICtrlSetData($ListSuitCmd, $SelCmdArray[$i])
    Next
    _GUICtrlTab_ClickTab($Tab1, 2)
EndFunc

 

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Posted
2 minutes ago, water said:

Maybe the problem is caused by the part of the script whre you create the GUI?

BTW: I would avoid ReDIm to enhance performance of your script:

Func btnNext2()
    Local $iCount = _GUICtrlListBox_GetCount($ListChoCom)
    Local $SelCmdArray[$iCount]
    For $i = 0 To $iCount - 1
        $SelCmdArray[$i] =  _GUICtrlListBox_GetText($ListChoCom, $i)
        GUICtrlSetData($ListSuitCmd, $SelCmdArray[$i])
    Next
    _GUICtrlTab_ClickTab($Tab1, 2)
EndFunc

 

 

Hi water, Thanks for helping me.

Good to know it will enhance performance without ReDim.

Here is my GUI code. 

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>
#include <GuiButton.au3>
#include <GuiTab.au3>
#include <File.au3>

Opt("GUIOnEventMode", 1)
Opt("WinTitleMatchMode", 2)                                                 
;Option that lets AUTOIT recognize a Window even when a substring of its title is used

;Main TestMaker directory
Const $tmPath               = 'C:\Users\tshi\Desktop\Automation\'           
;This is where TestMaker is located on your machine (the '\' at the end is important!)

;==================
;Subdirectories inside the main TestMaker directory
;Const $configFile          = 'Config\Commands.ini'                         
;Configuration file aka 'command definitions'
Const $envFolder            = 'Config\'                                     
;Files containing Path Variables (and their values) for various Test Environments are located in this *directory*
Const $testsPath            = 'Tests\'                                      
;This is where the actual Test Scripts are stored

;==================
;Subdirectories inside 'Tests' folder
Const $sikuliSeleniumFolder = 'Sikuli\Selenium'                             
;Sikuli 'script-runner' for Selenium IDE is located in this *directory*
Const $sikuliSeleniumScript = 'selenium.sikuli'                             
;Sikuli (Selenium) folder containing: Main Progam (.py) + Images
Const $sikuliSeleniumMain   = 'selenium.py'                                 
;Sikuli (Selenium) Main Program

Const $sikuliUnixFolder = 'Sikuli\Unix'                                     
;Sikuli 'script-runner' for Unix scripts is located in this *directory*
Const $sikuliUnixScript = 'unix.sikuli'                                     
;Sikuli (Unix) folder containing: Main Progam (.py) + Images
Const $sikuliUnixMain   = 'unix.py'                                         
;Sikuli (Unix) Main Program

;Const $sikuliFINsimFolder = 'Sikuli\FINsim'                                 
;Sikuli 'script-runner' for FINsim scripts is loacted in this *directory*
;Const $sikuliFINsimScript = 'finsim.sikuli'                                 
;Sikuli (FINsim) folder containing: Main Progam (.py) + Images
;Const $sikuliFINsimMain = 'finsim.py'                                       
;Sikuli (FINsim) Main Program

;Const $sikuliSoapUIFolder = 'Sikuli\SoapUI'                                 
;Sikuli 'script-runner' for SoapUI scripts is loacted in this *directory*
;Const $sikuliSoapUIScript = 'saopui.sikuli'                                 
;Sikuli (SoapUI) folder containing: Main Progam (.py) + Images
;Const $sikuliSoapUIMain = 'soapui.py'                                       
;Sikuli (SoapUI) Main Program

Const $envfile   = 'env.txt'                                                
;Contains Path Variables (and their values), for the particular Test Environment used

Const $dataFolder   = 'Data'                                                
;This is where Incoming Test (Data) File is stored

;==================
;Common to 'TestMaker' & 'Tests' folders
Const $shellScriptFolder    = 'ShellScript'                                 
;Unix Shell Script(s) location
Const $shellScript          = 'process_incoming.sh'                         
;Name of Unix Shell Script
Const $sqlScriptFolder      = 'SQL'                                         
;SQL Script(s) location
Const $sqlScript            = 'remove_bctl.sql'                             
;Name of SQL Script

;==================
Const $PUTTY = "C:\Program Files (x86)\PuTTY"
;Const $FINsim = "\\gfg-group.com\DFS\Software U\Simulate\Build2709\ATClient.exe"
;Const $SoapUI = "C:\Program Files (x86)\eviware\soapUI-2.5.1\bin"

;==================
;Global variables
Global $SelCmdArray[1]
Global $ListSuitCmd
Global $InputTestSuitName
Global $InputTSName
Global $Tab1
Global $SelCmd
Global $ListChoCom
Global $ListAvaiCom
Global $iSel
Global $btnAdd
Global $btnRemove
Global $btnClear
Global $BtnGenerate
Global $BtnRun
Global $BtnBrowse
Global $BtnCancel
Global $BtnNext1
Global $BtnNext2
Global $BtnNext3
Global $generate                                                            
;Control ID of GENERATE button
Global $run                                                                 
;Control ID of RUN button
Global $command[10], $parameter[10], $repeat[10]                            
;Control IDs of 'Command', 'Parameters' and 'Repeat' inputs
Global $tenv                                                                
;Control ID of TEST ENVIRONMENT input
Global $sampleInputBox                                                      
;Control ID of SAMPLE input box
Global $vaultInd                                                            
;To store a string whose value is either "Vault" or "noVault" (read from $envfile, aka env.txt)
Global $ENVCONNECT, $ENVPASSWD, $FTPIN, $VAULT, $BASEDIR, $DBCONNECT        
;Holds values of Path Variables, pertaining to a Test Environment
Global $DBATOOLS, $IPMconversion                                            
;Holds values of (more!) Path Variables + Site Settings, pertaining to a Test Environment
Global $MCICA, $RECONCURR, $BILLCURR, $BILLCURREXP                          
;Holds values of further more Site Settings, pertaining to a Test Environment
Global $INTLCURR, $INTLCURREXP                                              
;Holds values of (further more!) Site Settings, pertaining to a Test Environment
Global $custrNbrLength                                                      
;Length of Customer Nbr (entered via APNEW screen, when ordering a new card)
Global $prefixArray[100]                                                    
;Holds prefixes of various Commands, i.e. *Name* of a Command
Global $parameterArray[100]                                                 
;Holds suffixes of Commands, i.e. *Parameters* reqd for a Command
Global $sampleArray[100]                                                    
;Holds sample values of *Parameters* reqd for a Command

;==================
CreateGUI()
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlSetOnEvent($BtnGenerate, "btnGenerate")
GUICtrlSetOnEvent($BtnRun, "btnRunIt")
GUICtrlSetOnEvent($BtnBrowse, "btnBrowse")
GUICtrlSetOnEvent($BtnCancel, "btnCancel")
GUICtrlSetOnEvent($BtnNext1,  "btnNext1")
GUICtrlSetOnEvent($BtnNext2,  "btnNext2")
GUICtrlSetOnEvent($BtnNext3,  "btnNext3")
GUICtrlSetOnEvent($btnAdd, "btnAdd")
GUICtrlSetOnEvent($btnRemove, "btnRemove")
GUICtrlSetOnEvent($btnClear, "btnClear")

While 1
Sleep(500)
WEnd

;==================
Func CreateGUI()
    ;Declare variables
    Local $mainwindow, $rowNbr, $i, $fH, $fH2, $commandList, $envList
    Local $matchArray
    Local $oneLine, $oneLine2
    Local $i

    ;Create GUI container
    $mainwindow = GUICreate("TestMaker", 732, 531, 188, 114)

    ;Create GUI Tabs
    $Tab1 = GUICtrlCreateTab(8, 8, 717, 517)
    GUICtrlCreateTabItem("")



    ;Create TabSheetGeneral
    $TabSheetGeneral = GUICtrlCreateTabItem("General")
    ;$TabSheetGeneral = _GUICtrlTab_InsertItem($Tab1, 0, "General")
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sabs Serif")

    $LabTestSuit = GUICtrlCreateLabel("Test Suit", 32, 68, 67, 24)                              
    ;Create Label "Test Suit"
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sabs Serif")                                             
    ;Set Lable's Font
    $InputTestSuitName = GUICtrlCreateInput("Give your test suit a name", 144, 68, 209, 25)     
    ;Create "Test Suit" Input, User should give their Test Suit a name first.
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sabs Serif")                                             
    ;Set Input Font
    ;$inputText = GUICtrlRead($InputTestSuitName)

    $LabSaveTestAs = GUICtrlCreateLabel("Save Test As", 32, 100, 98, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sabs Serif")                                             
    ;Set Lable's Font
    $InputSaveTestAs = GUICtrlCreateInput("Type your test file name", 144, 100, 209, 25)        
    ;Create "Save Test As" Input, User should give their Test Suit file/folder a name.
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sabs Serif")                                             
    ;Set Input Font

    $LabComment = GUICtrlCreateLabel("Comment", 32, 132, 73, 24)                                
    ;Create Label "Comment"
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sabs Serif")                                             
    ;Set Label Font
    $EditComment =  GUICtrlCreateEdit("This is your Comment", 32, 164, 321, 137)                
    ;Creat Comment Edit Area
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sabs Serif")                                             
    ;Set Comment Font

    $LabLoadTest = GUICtrlCreateLabel("Load Test From", 32, 316, 116, 24)                       
    ;Create Label "Load Test From"
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")                                             
    ;Set Label Font
    $inputLoadTest = GUICtrlCreateInput("This is my test directory", 152, 316, 201, 24)         
    ;Greate Directory Input, read directory through Browse button/function
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")                                             
    ;Set display font

    $LabStep1 = GUICtrlCreateLabel("Step 1", 416, 64, 59, 24)                                   
    ;Create Lable "Step 1"
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")                                             
    ;Set Lable Font

    $LabSelEnv = GUICtrlCreateLabel("Select Your Environment", 416, 100, 300, 24)               
    ;Create Lable "Step 1"
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    $ListEnv = GUICtrlCreateList("", 416, 130, 201, 243, BitOR($GUI_SS_DEFAULT_LIST, $WS_HSCROLL), BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))                 ;Create Group for Enviroment Options
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")                                             
    ;Set Group Font

    ;Read file "environment_list.txt" and populate 'Test Environment' in the group
    $rowNbr = 132
    $fH = FileOpen("environment_list.txt")
    ;$envList = ""
    $oneLine  = FileReadToArray($fH)
    ;Check if File is empty
    If @error <> 0 Then
        MsgBox(0, "Environment List", "Fix this first! File environment_list.txt is either not present, or is empty")
    Exit
    EndIf
    ;Proceed happily if File *not* empty, and read environment list - one line at a time
    ;and, append to $envList
    For $i = 0 To UBound($oneLine) - 1
        GUICtrlSetData(-1, $oneLine[$i])
        ;GUICtrlCreateCheckbox($oneLine[$i], 424, $rowNbr, 177, 17)
        ;$rowNbr = $rowNbr + 24
    Next

    FileClose($fH)

    $BtnBrowse = GUICtrlCreateButton("Browse", 280, 348, 75, 25)
    $BtnGenerate = GUICtrlCreateButton("Generate", 88, 388, 75, 25)
    $BtnRun = GUICtrlCreateButton("Run", 184, 388, 75, 25)
    $BtnCancel = GUICtrlCreateButton("Cancel", 280, 388, 75, 25)
    $BtnNext1 = GUICtrlCreateButton("Next", 544, 384, 75, 25)



    ;Create TabSheet Command
    $TabSheetCommand = GUICtrlCreateTabItem("Command")
    ;$TabSheetCommand = _GUICtrlTab_InsertItem($Tab1, 1, "Command")
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sabs Serif")

    $LabStep2 = GUICtrlCreateLabel("Step 2", 32, 40, 55, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    $LabTSName = GUICtrlCreateLabel("Test Suit Name", 32, 68, 113, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    $LabAvaiCom = GUICtrlCreateLabel("Available Commands", 32, 112, 150, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    $InputTSName = GUICtrlCreateInput("Give your test suit a name", 160, 68, 249, 24)
    ;GUICtrlSetData($InputTSName, $inputText)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    $ListAvaiCom = GUICtrlCreateList("", 24, 130, 273, 373, BitOR($GUI_SS_DEFAULT_LIST,$WS_HSCROLL), BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

    ;Read file "command_list.txt" and populate 'Test Commands' in the ListBox
    $rowNbr = 132
    $fH = FileOpen("command_list.txt")
    ;$commandList = ""
    $oneLine  = FileReadToArray($fH)
    $i = 0
    ;Check if File is empty
    If @error <> 0 Then
        MsgBox(0, "Command List", "Fix this first! File command_list.txt is either not present, or is empty")
    Exit
    EndIf
    ;Proceed happily if File *not* empty, and read command list - one line at a time
    ;and, append to $commandList
    For $i = 0 To UBound($oneLine) - 1
        GUICtrlSetData(-1, $oneLine[$i])
        $rowNbr = $rowNbr + 24
    Next

    FileClose($fH)

    $LabChoCom = GUICtrlCreateLabel("Commands This Test suit Include", 420, 112, 250, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    $ListChoCom = GUICtrlCreateList("", 416, 130, 273, 373, BitOR($GUI_SS_DEFAULT_LIST,$WS_HSCROLL), BitOR($WS_EX_CLIENTEDGE,$WS_EX_STATICEDGE))
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

    $btnAdd = GUICtrlCreateButton("Add", 320, 212, 75, 25)

    $btnRemove = GUICtrlCreateButton("Remove", 320, 252, 75, 25)

    $BtnNext2 = GUICtrlCreateButton("Next", 320, 456, 75, 25)

    $btnClear = GUICtrlCreateButton("Clear", 320, 296, 75, 25)


    ;Create TabSheet Parameter
    $TabSheetPara = GUICtrlCreateTabItem("Parameters")
    ;$TabSheetPara = _GUICtrlTab_InsertItem($Tab1, 2, "Parameters")


    $LabelStep3 = GUICtrlCreateLabel("Step 3:", 32, 48, 55, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    $LabelSuitCmd = GUICtrlCreateLabel("Test Suit/Commands", 24, 76, 185, 393)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    $ListSuitCmd = GUICtrlCreateList("", 24, 106, 185, 375, BitOR($GUI_SS_DEFAULT_LIST, $WS_HSCROLL), BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

    $GroupPara = GUICtrlCreateGroup("Parameters", 232, 76, 473, 393)

    $BtnNext3 = GUICtrlCreateButton("Next", 512, 420, 75, 25)

    $BtnClear2 = GUICtrlCreateButton("Clear", 424, 420, 75, 25)

    $BtnCancel2 = GUICtrlCreateButton("Cancel", 600, 420, 75, 25)


    ;Create TabSheet Help
    $TabSheetHelp = GUICtrlCreateTabItem("Help")
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sabs Serif")

    $Label12 = GUICtrlCreateLabel("This is help documnent", 256, 268, 300, 24)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")

    GUISetState(@SW_SHOW)

EndFunc

 

Posted

:) 

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

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
×
×
  • Create New...