Jump to content

Variable logic


Recommended Posts

I need an help to understand a variable declared outside the func and "recreated" inside the func.

This is an example:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $MYVAR ; I'll declare an empty var

_MyTest()

Func _MyTest()
$Form1 = GUICreate("Form1", 196, 106, 204, 136)
$Input = GUICtrlCreateInput("Input1", 32, 24, 121, 21)
$Button = GUICtrlCreateButton("Button1", 56, 56, 75, 25)
GUISetState(@SW_SHOW)

$MYVAR = GUICtrlRead($Input) ; now $MYVAR read from input 1
; P.S I have 15 of this

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button
            MsgBox(0,"WRONG",$MYVAR) ; --> This return always the first value
            MsgBox(0,"CORRECT", GUICtrlRead($Input)) ; This retur the correct value
    EndSwitch
WEnd
EndFunc

How i can "recreate" the variable inside the $Button without rewrite the same line? I don't want to do this way:

Case $Button1
            $MYVAR1 = GUICtrlRead($Input1)
            $MYVAR2 = GUICtrlRead($Input2)
            ;etc:
            MsgBox(0,"CORRECT",$MYVAR1) 
        Case $Button2
            $MYVAR1 = GUICtrlRead($Input1)
            $MYVAR2 = GUICtrlRead($Input2)
            ;etc:
            MsgBox(0,"CORRECT",$MYVAR1)

But something in one time only like before, or a "correct" method to store this variable, maybe is wrong what i do.

Thanks

Edited by Terenz

Nothing is so strong as gentleness. Nothing is so gentle as real strength

 

Link to comment
Share on other sites

From what I understand from your post it can't be done. GUICtrlRead just reads the value, so if change the value $MYVAR will use the previously read data.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Check the input once per loop

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $MYVAR ; I'll declare an empty var

_MyTest()

Func _MyTest()
    $Form1 = GUICreate("Form1", 196, 106, 204, 136)
    $Input = GUICtrlCreateInput("Input1", 32, 24, 121, 21)
    $Button = GUICtrlCreateButton("Button1", 56, 56, 75, 25)
    GUISetState(@SW_SHOW)

;~  $MYVAR = GUICtrlRead($Input) ; now $MYVAR read from input 1
    ; P.S I have 15 of this

    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case -100 To 0 ; skip unwanted events
                ContinueLoop
        EndSwitch
        $MYVAR = GUICtrlRead($Input) ; read input once per loop
        Switch $nMsg
            Case $Button
                MsgBox(0,"$MYVAR", $MYVAR) ; --> This return always the first value
                MsgBox(0,"GUICtrlRead($Input)", GUICtrlRead($Input)) ; This retur the correct value
;~          Case $Button2
                ;
;~          Case $Button3
                ;
        EndSwitch
    WEnd
EndFunc
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...