Andy2520 Posted December 15, 2013 Share Posted December 15, 2013 Dear Team, Please go throught the below code where it went wrong . I want to use the all input variable function variable through out the script. When i display the msg box with variable getting blank msg box .It should displaly computed function variables and user inputs as well . Please help me . expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Constants.au3> Dim $hMsg Dim $path Dim $test Dim $usrname ; get the user name Dim $mserver ;get server name Dim $lpwd ; Dim $Email Dim $Empid Dim $splitsrname Dim $hButton Dim $hButton2 Dim $intWindow Dim $delwindow Dim $hInput;Email address $hGUI = GUICreate("Lotus Notes Auto Config", 460, 189, -1, -1) $Empid = GUICtrlCreateLabel("Enter TCS Emp ID :", 33, 30, 140, 27) GUICtrlSetFont(-1, 10, 800, 0) $hLabel2 = GUICtrlCreateLabel("Enter Email Address :", 33, 64, 153, 27) GUICtrlSetFont(-1, 10, 800, 0) $hLabel3 = GUICtrlCreateLabel("Enter Server Name :", 33, 102, 153, 27) GUICtrlSetFont(-1, 10, 800, 0) $hInput = GUICtrlCreateInput("", 220, 30, 221, 27) $hInput2 = GUICtrlCreateInput("", 220, 64, 221, 27) $hInput3 = GUICtrlCreateInput("", 220, 102, 221, 27) $hButton = GUICtrlCreateButton("OK", 82, 146, 96, 26) GUICtrlSetFont(-1, 8.5, 800, 0) $hButton2 = GUICtrlCreateButton("Cancle", 228, 146, 98, 26) GUICtrlSetFont(-1, 8.5, 800, 0) $hLabel4 = GUICtrlCreateLabel("(Eg.Inblrm06.tcs.com)", 42, 121, 117, 13) $hLabel5 = GUICtrlCreateLabel("(Eg.first.last name@tcs.com )", 34, 85, 144, 17) GUISetState(@SW_SHOW) $hMsg = 0 While $hMsg <> $GUI_EVENT_CLOSE $hMsg = GUIGetMsg() Switch $hMsg Case $hButton $Empid = GUICtrlRead($hInput) $mserver = GUICtrlRead($hInput3) $Email = GUICtrlRead($hInput2) $splitsrname1 = StringRight($mserver, 8) ;$splitsrname = StringTrimRight($mserver, 8) ;MsgBox(1,"Input details","Emp id ",(GUICtrlRead($hInput))) $result = StringCompare(".tcs.com", $splitsrname1) $splitemname = StringRight($Email, 8) $result1 = StringCompare("@tcs.com", $splitemname) If $result <> 0 or $Empid = "" Or $Email = "" Or $mserver = "" or $result1 <>0 Then MsgBox(0, "Warning", "Please type the all inputs in correct format " & @CRLF & "TRY AGAIN ?") Else GUIDelete($delwindow) Idfile() EndIf Case $hButton2 ExitLoop EndSwitch ;GUIDelete($delwindow) WEnd Func Idfile() $hGUI1 = GUICreate("Lotus Notes Auto Config ", 394, 142, -1, -1) $hLabel1 = GUICtrlCreateLabel("Select Notes ID file ", 98, 16, 142, 27) GUICtrlSetFont(-1, 10, 800, 0) $hButton1 = GUICtrlCreateButton("Browse", 53, 92, 96, 23) GUICtrlSetFont(-1, 10, 800, 0) $hButton21 = GUICtrlCreateButton("Done", 229, 92, 95, 23) GUICtrlSetFont(-1, 8.5, 800, 0) $path = GUICtrlCreateInput("", 19, 43, 349, 27) GUISetState() $hMsg1 = 0 While $hMsg1 <> $GUI_EVENT_CLOSE $hMsg1 = GUIGetMsg() Select Case $hMsg1 = $hButton1 $File2open = FileOpenDialog("Browse", "C:\", "ID file (*.id)") ;returns the file path GUICtrlSetData($path, $File2open) ;set input data $test = GUICtrlSetData($path, $File2open) Case $hMsg1 = $hButton21 $temp= GUICtrlRead($path) if $temp = "" then MsgBox(1,"Error ","ID File Location Cannot be blank") GUIDelete($delwindow) Idfile() Else ;MsgBox(1,"ID File path",($temp)) EndIf Return EndSelect WEnd EndFunc ;==>Idfile MsgBox(1,"Input details","Emp id ",$Empid) MsgBox(1,"Input details","Emp address ",$Email) MsgBox(1,"Input details","server Name",$mserver) MsgBox(1,"Input details","Id file path",$path) Link to comment Share on other sites More sharing options...
Rogue5099 Posted December 15, 2013 Share Posted December 15, 2013 Declare the variables as Global instead of Dim My projects: Inventory / Mp3 Inventory, Computer Stats Link to comment Share on other sites More sharing options...
michaelslamet Posted December 15, 2013 Share Posted December 15, 2013 (edited) Hi, Aniii. Not test, but you should declare your variables as global if you want whole script can have/read their value, so replace "Dim" with "Global" should help. edit: haha, Rogue is faster few secs than me Edited December 15, 2013 by michaelslamet Link to comment Share on other sites More sharing options...
Andy2520 Posted December 15, 2013 Author Share Posted December 15, 2013 Thanks for your reply , Still no luck unable to display the inputs ouside the function .Last msg box should display the all inputs . :( expandcollapse popup#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Constants.au3> Global $hMsg Global $path Global $test Global $mserver ;get server name Global $lpwd ; Global $Email Global $Empid Global $splitsrname Global $hButton Global $hButton2 Global $intWindow Global $delwindow Global $hInput;Email address $hGUI = GUICreate("Lotus Notes Auto Config", 460, 189, -1, -1) $Empid = GUICtrlCreateLabel("Enter TCS Emp ID :", 33, 30, 140, 27) GUICtrlSetFont(-1, 10, 800, 0) $hLabel2 = GUICtrlCreateLabel("Enter Email Address :", 33, 64, 153, 27) GUICtrlSetFont(-1, 10, 800, 0) $hLabel3 = GUICtrlCreateLabel("Enter Server Name :", 33, 102, 153, 27) GUICtrlSetFont(-1, 10, 800, 0) $hInput = GUICtrlCreateInput("", 220, 30, 221, 27) $hInput2 = GUICtrlCreateInput("", 220, 64, 221, 27) $hInput3 = GUICtrlCreateInput("", 220, 102, 221, 27) $hButton = GUICtrlCreateButton("OK", 82, 146, 96, 26) GUICtrlSetFont(-1, 8.5, 800, 0) $hButton2 = GUICtrlCreateButton("Cancle", 228, 146, 98, 26) GUICtrlSetFont(-1, 8.5, 800, 0) $hLabel4 = GUICtrlCreateLabel("(Eg.Inblrm06.tcs.com)", 42, 121, 117, 13) $hLabel5 = GUICtrlCreateLabel("(Eg.first.last name@tcs.com )", 34, 85, 144, 17) GUISetState(@SW_SHOW) $Empid = GUICtrlRead($hInput) $mserver = GUICtrlRead($hInput3) $Email = GUICtrlRead($hInput2) $splitsrname1 = StringRight($mserver, 8) $hMsg = 0 While $hMsg <> $GUI_EVENT_CLOSE $hMsg = GUIGetMsg() Switch $hMsg Case $hButton $Empid = GUICtrlRead($hInput) $mserver = GUICtrlRead($hInput3) $Email = GUICtrlRead($hInput2) $splitsrname1 = StringRight($mserver, 8) ;$splitsrname = StringTrimRight($mserver, 8) ;MsgBox(1,"Input details","Emp id ",(GUICtrlRead($hInput))) $result = StringCompare(".tcs.com", $splitsrname1) $splitemname = StringRight($Email, 8) $result1 = StringCompare("@tcs.com", $splitemname) If $result <> 0 or $Empid = "" Or $Email = "" Or $mserver = "" or $result1 <>0 Then MsgBox(0, "Warning", "Please type the all inputs in correct format " & @CRLF & "TRY AGAIN ?") Else GUIDelete($delwindow) Idfile() EndIf Case $hButton2 ExitLoop EndSwitch ;GUIDelete($delwindow) WEnd Func Idfile() $hGUI1 = GUICreate("Lotus Notes Auto Config ", 394, 142, -1, -1) $hLabel1 = GUICtrlCreateLabel("Select Notes ID file ", 98, 16, 142, 27) GUICtrlSetFont(-1, 10, 800, 0) $hButton1 = GUICtrlCreateButton("Browse", 53, 92, 96, 23) GUICtrlSetFont(-1, 10, 800, 0) $hButton21 = GUICtrlCreateButton("Done", 229, 92, 95, 23) GUICtrlSetFont(-1, 8.5, 800, 0) $path = GUICtrlCreateInput("", 19, 43, 349, 27) GUISetState() $hMsg1 = 0 While $hMsg1 <> $GUI_EVENT_CLOSE $hMsg1 = GUIGetMsg() Select Case $hMsg1 = $hButton1 $File2open = FileOpenDialog("Browse", "C:\", "ID file (*.id)") ;returns the file path GUICtrlSetData($path, $File2open) ;set input data $test = GUICtrlSetData($path, $File2open) Case $hMsg1 = $hButton21 $temp= GUICtrlRead($path) if $temp = "" then MsgBox(1,"Error ","ID File Location Cannot be blank") GUIDelete($delwindow) Idfile() Else ;MsgBox(1,"ID File path",($temp)) EndIf Return EndSelect WEnd EndFunc ;==>Idfile MsgBox(1,"Input details","Emp id ",$Empid) MsgBox(1,"Input details","Emp address ",$Email) MsgBox(1,"Input details","server Name",$mserver) MsgBox(1,"Input details","Id file path",$path) Code is here : Link to comment Share on other sites More sharing options...
Andy2520 Posted December 15, 2013 Author Share Posted December 15, 2013 Declare the variables as Global instead of Dim Thanks for your reply , Still no luck unable to display the inputs ouside the function .Last msg box should display the all inputs Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 15, 2013 Moderators Share Posted December 15, 2013 Aniiii,Try using the correct syntax for the MsgBox calls:MsgBox(1 ,"Input details", "Emp id: " & $Empid)Putting the variable you want to display in the place of the timeout parameter as you are currently doing is not going to give you what you want. M23 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Rogue5099 Posted December 15, 2013 Share Posted December 15, 2013 (edited) After testing found out that your syntax of message box was wrong: MsgBox(1,"Emp id ",$Empid) MsgBox(1,"Emp address ",$Email) MsgBox(1,"server Name",$mserver) MsgBox(1,"Id file path",$path) Should give you the results you're looking for Edit: Oh Melba23 beat me too it......... Edited December 15, 2013 by Rogue5099 My projects: Inventory / Mp3 Inventory, Computer Stats Link to comment Share on other sites More sharing options...
Andy2520 Posted December 15, 2013 Author Share Posted December 15, 2013 Aniiii, Try using the correct syntax for the MsgBox calls: MsgBox(1 ,"Input details", "Emp id: " & $Empid) Putting the variable you want to display in the place of the timeout parameter as you are currently doing is not going to give you what you want. M23 Thanks Melba .. IF you look at fin id file () I have browse button to select the id file and path should display in input box . Path which available i want to display that path outside of function .. expandcollapse popupFunc Idfile() $hGUI1 = GUICreate("Lotus Notes Auto Config ", 394, 142, -1, -1) $hLabel1 = GUICtrlCreateLabel("Select Notes ID file ", 98, 16, 142, 27) GUICtrlSetFont(-1, 10, 800, 0) $hButton1 = GUICtrlCreateButton("Browse", 53, 92, 96, 23) GUICtrlSetFont(-1, 10, 800, 0) $hButton21 = GUICtrlCreateButton("Done", 229, 92, 95, 23) GUICtrlSetFont(-1, 8.5, 800, 0) $path = GUICtrlCreateInput("", 19, 43, 349, 27) GUISetState() $hMsg1 = 0 While $hMsg1 <> $GUI_EVENT_CLOSE $hMsg1 = GUIGetMsg() Select Case $hMsg1 = $hButton1 $File2open = FileOpenDialog("Browse", "C:\", "ID file (*.id)") ;returns the file path GUICtrlSetData($path, $File2open) ;set input data $test = GUICtrlSetData($path, $File2open) Case $hMsg1 = $hButton21 $temp= GUICtrlRead($path) if $temp = "" then MsgBox(1,"Error ","ID File Location Cannot be blank") GUIDelete($delwindow) Idfile() Else ;MsgBox(1,"ID File path",($temp)) EndIf Return EndSelect WEnd EndFunc ;==>Idfile MsgBox(1 ,"Input details", "Emp id: " & $Empid) MsgBox(1,"Input details","Emp address " & $Email) MsgBox(1,"Input details","server Name" & $mserver) MsgBox(1,"Input details","Id file path" & $temp) Link to comment Share on other sites More sharing options...
michaelslamet Posted December 15, 2013 Share Posted December 15, 2013 Then you should put Global $temp at the top of your script Link to comment Share on other sites More sharing options...
martin Posted December 15, 2013 Share Posted December 15, 2013 It would be better to change your function so that it didn't call itself because when that happens all the GUI controls are duplicated. Instead of calling idfile return -1 for example then call the function like this While idfile() <> -1 Wend Then, as you have been told three times already, make the variables global or return an array or pass them as parameters using ByRef. Andy2520 1 Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script. Link to comment Share on other sites More sharing options...
Andy2520 Posted December 15, 2013 Author Share Posted December 15, 2013 It would be better to change your function so that it didn't call itself because when that happens all the GUI controls are duplicated. Instead of calling idfile return -1 for example then call the function like this While idfile() <> -1 Wend Then, as you have been told three times already, make the variables global or return an array or pass them as parameters using ByRef. Thanks Martin its resolved now ... Thank you so much Link to comment Share on other sites More sharing options...
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