Codartizan Posted June 27, 2016 Posted June 27, 2016 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. screenshot2: I cannot select item from listbox2, The item that been highlight is what I select from listbox1. Thank you very much indeed.
water Posted June 27, 2016 Posted June 27, 2016 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
Codartizan Posted June 27, 2016 Author Posted June 27, 2016 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. expandcollapse popup#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
Codartizan Posted June 27, 2016 Author Posted June 27, 2016 Ok, Finally. I know what happened. It is a stupid mistake, I set a too big Lable which blocked Listbox. Thanks Water. Cheers bro.
water Posted June 27, 2016 Posted June 27, 2016 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now