Jump to content
rm4453

Can't Get += to work properly...

Recommended Posts

rm4453

I keep getting error : Statement cannot be just an expression.

Here are the 3 error variations it gives:

Global $ImageCount += 1

~~~~~~~~~~~~~~~~~~~~~^

Global $ImageCount += 1

~~~~~~~~~~~~~~~~~~~~^

Global $ImageCount +=

~~~~~~~~~~~~~~~~~~~^

Here is the code:

Case $Image1
            ;GUICtrlSetState($Image1, 4+128)
            GUICtrlSetState($Image2, 64)
            $Image1_done = 1
            OpenImages()
            Global $Image1_added = $imagePath
            ;MsgBox("Info", "Image 1 Path", $Image1_added)
            OpenEditBox()
            Global $Image1_Description = $editBox_save
            If $im1 = 0 Then
                Global $ImageCount += 1
                $im1 = 1
            EndIf
        Case $Image2
            If $Image1_done = 1 Then
                ;GUICtrlSetState($Image2, 4+128)
                GUICtrlSetState($Image3, 64)
                OpenImages()
                Global $Image2_added = $imagePath
                ;MsgBox("Info", "Image 2 Path", $Image2_added)
                OpenEditBox()
                Global $Image2_Description = $editBox_save
                $Image2_done = 1
                If $im2 = 0 Then
                    Global $ImageCount += 1
                    $im2 = 1
                EndIf
            Else
            EndIf
        Case $Image3
            If $Image2_done = 1 Then
                ;GUICtrlSetState($Image3, 4+128)
                GUICtrlSetState($Image4, 64)
                OpenImages()
                Global $Image3_added = $imagePath
                ;MsgBox("Info", "Image 3 Path", $Image3_added)
                OpenEditBox()
                Global $Image3_Description = $editBox_save
                $Image3_done = 1
                If $im3 = 0 Then
                    Global $ImageCount += 1
                    $im3 = 1
                EndIf
            Else
            EndIf
        Case $Image4
            If $Image3_done = 1 Then
                ;GUICtrlSetState($Image4, 4+128)
                GUICtrlSetState($Image5, 64)
                OpenImages()
                Global $Image4_added = $imagePath
                ;MsgBox("Info", "Image 4 Path", $Image4_added)
                OpenEditBox()
                Global $Image4_Description = $editBox_save
                $Image4_done = 1
                If $im4 = 0 Then
                    Global $ImageCount += 1
                    $im4 = 1
                EndIf
            Else
            EndIf
        Case $Image5
            If $Image4_done = 1 Then
                ;GUICtrlSetState($Image5, 4+128)
                GUICtrlSetState($Image6, 64)
                OpenImages()
                Global $Image5_added = $imagePath
                ;MsgBox("Info", "Image 5 Path", $Image5_added)
                OpenEditBox()
                Global $Image5_Description = $editBox_save
                $Image5_done = 1
                If $im5 = 0 Then
                    Global $ImageCount += 1
                    $im5 = 1
                EndIf
            Else
            EndIf
        Case $Image6
            If $Image1_done = 1 Then
                ;GUICtrlSetState($Image6, 4+128)
                OpenImages()
                Global $Image6_added = $imagePath
                ;MsgBox("Info", "Image 6 Path", $Image6_added)
                OpenEditBox()
                Global $Image6_Description = $editBox_save
                If $im6 = 0 Then
                    Global $ImageCount += 1
                    $im6 = 1
                EndIf
            Else
            EndIf

 

Share this post


Link to post
Share on other sites
alien4u

You can't increment a value on a variable that not exists yet.

$ImagenCount +=1 Mean that you are adding 1 to the previous value of $ImageCount, where is the previous value if you don't declare the variable before that operation?

You can initiate a variable like this:
$ImageCount = "" ; Initiate the variable with null value(empty).

Happy Coding...

Kind Regards
Alien.

 

 

Share this post


Link to post
Share on other sites
rm4453
2 minutes ago, alien4u said:

You can't increment a value on a variable that not exists yet.

$ImagenCount +=1 Mean that you are adding 1 to the previous value of $ImageCount, where is the previous value if you don't declare the variable before that operation?

You can initiate a variable like this:
$ImageCount = "" ; Initiate the variable with null value(empty).

Happy Coding...

Kind Regards
Alien.

 

 

It is already declared sorry forgot to mention that...

It is declared as 0 at script startup Then is set to a value based off of ini it will never be bigger than 6 so I don't see how this is a problem...

Share this post


Link to post
Share on other sites
water

What do you expect $ImageCount to be after the statement? 1? Then use:

Global $ImageCount = 1

 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2018-01-27 - Version 1.3.3.1) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites
BrewManNH

You're redeclaring it with the Global statement, so the above answer still stands.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
water

Then simply remove "Global" to increment the variable:

$ImageCount += 1

 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2018-01-27 - Version 1.3.3.1) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites
rm4453
Just now, water said:

What do you expect $ImageCount to be after the statement? 1? Then use:

Global $ImageCount = 1

 

I expect $ImageCount to be anywhere in this range 1-6 "the script sets it to 6 if it is 6 or greater before it starts the Image upload that way it will loop no more than 6 times.... because the user is only able to select 6 images to upload"

Share this post


Link to post
Share on other sites
rm4453

I don't fully understand what += 1 does i'm wanting it to increment the variable by 1 i don't care if it goes above 6 because the upload function sets it to 6 if it is 6 or greater that way it only loops 6 times...

 

This page specifies that this should work just fine....

https://www.autoitscript.com/autoit3/docs/intro/lang_operators.htm

Edited by rm4453
added link to extra info

Share this post


Link to post
Share on other sites
water

+=1 does exactly what you want: "i'm wanting it to increment the variable by 1"


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2018-06-01 - Version 1.4.9.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2018-01-27 - Version 1.3.3.1) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites
rm4453
Just now, water said:

+=1 does exactly what you want: "i'm wanting it to increment the variable by 1"

Then why does it keep throwing the error? is it just a bug or something?

Share this post


Link to post
Share on other sites
alien4u

As I already said: +=1 mean you will add 1 to the previous value of the variable.

If you have Global $ImageCount = "" (declaration of your variable) early in your code, then like BrewManNH said, you can't use Global $ImageCount +=1 again because with the Global statement your redeclaring your variable again but you can't do that using += because that is not the way you declare a variable, does not make any sense.

In the other hand I think the best way to do this is creating a function and send values to that function, so you can use an While loop when you finish your cases that will be better to count and no depend on Global variables.

Kind Regards
Alien.

Share this post


Link to post
Share on other sites
rm4453
2 minutes ago, alien4u said:

As I already said: +=1 mean you will add 1 to the previous value of the variable.

If you have Global $ImageCount = "" (declaration of your variable) early in your code, then like BrewManNH said, you can't use Global $ImageCount +=1 again because with the Global statement your redeclaring your variable again but you can't do that using += because that is not the way you declare a variable, does not make any sense.

In the other hand I think the best way to do this is creating a function and send values to that function, so you can use an While loop when you finish your cases that will be better to count and no depend on Global variables.

Kind Regards
Alien.

So If I take Global off it should be fine?

Using the later of the two? ex:

Global $ImageCount += 1

$ImageCount +=1

Share this post


Link to post
Share on other sites
alien4u
1 hour ago, rm4453 said:

I expect $ImageCount to be anywhere in this range 1-6 "the script sets it to 6 if it is 6 or greater before it starts the Image upload that way it will loop no more than 6 times.... because the user is only able to select 6 images to upload"

If you set the value of $ImageCount to 6 when you first declare it and you increment that by 1 how to do expect to the script will work if your final condition or your loop stop at 6?
Or Im missing something here?

Kind Regards
Alien.

Share this post


Link to post
Share on other sites
rm4453
Just now, alien4u said:

If you set the value of $ImageCount to 6 when you first declare it and you increment that by 1 how to do expect to the script will work if your final condition or your loop stop at 6?
Or Im missing something here?

Kind Regards
Alien.

 

I saw that error and modified the Do loop to include an extra if statement here it is:

 

If $ImageCount >= 6 Then
    $ImageCount = 6
EndIf

 

Share this post


Link to post
Share on other sites
alien4u

Yes it should.

Outside your case or loop or anything that is repetitive you declare your Global var:
Global $ImageCount = ""

And inside the Case, or Loop or repetitive task you increment your var:
$ImageCount +=1

Kind Regards
Alien.

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

  • Similar Content

    • SC0U7
      By SC0U7
      Hello i have a text file which contain over 600KB of BASE64 strings like :
      TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...
      Now what i need is divide this long string as autoit variable each max lenght (4000characters per line) example:
      Local $var
      $var &=  TVqQAAMAAAAEAAA..
      $var &=  VbAmejwqqqAACEE..
      and then how to i add encrypt function on every line ? how to i can xor it? example final will be :
      $var &=  XorEnc(TVqQAAMAAAAEAAA..)
      $var &=  XorEncVbAmejwqqqAACEE..)
       
      Thanks for any help and ideas 
    • JuanFelipe
      By JuanFelipe
      Hello friends, I would like to know how to open a GUI from another GUI, I did it the way I leave the attached code, but when closing the second GUI they all close, they could help me to solve this problem without compiling another script. Thank you #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 173, 126, 192, 124) $Button1 = GUICtrlCreateButton("Button1", 16, 24, 75, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 _form2() EndSwitch WEnd ;================================================= GUI 2 Func _form2() $Form1 = GUICreate("Form2", 615, 437, 192, 124) GUISetState(@SW_SHOW) While 2 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd EndFunc  
    • bowker
      By bowker
      Hi! Is there a way for me to set the value for my slider? I am getting the value for my slider with
       
      Local $strText = _UIA_getPropertyValue($oUIElement, $UIA_LegacyIAccessibleValuePropertyId) MsgBox(0,"",$strText)  
    • nacerbaaziz
      By nacerbaaziz
      Hello
      Can we pause and resume the download in the InetGet function?
      If is possible, what is the solution please?
      I used this code To manage the download

      #include <INet.au3> func _downloader($name, $linc, $filepath, $RTLF = false, $link = false) global $downloader = GUICreate("downloader", 400, 200, -1, -1, $WS_CLIPCHILDREn, $RTLF, $link) global $path = $filePath $labelTxt = GUICtrlCreateLabel("downloading " & $name, 50, 10, 200, 20) global $labelTxt0 = GUICtrlCreateLabel("downloaded size 0 MB " & "OF 0 MB", 50, 60, 300, 20) global $Progress = "" global $sText = ""     For $i = 1 To Random(5, 20, 1) ; Return an integer between 5 and 20 to determine the length of the string.         $sText &= Chr(Random(65, 122, 1)) ; Return an integer between 65 and 122 which represent the ASCII characters between a (lower-case) to Z (upper-case). next global $labelTxt2 = GUICtrlCreateInput("0%", 50, 80, 50, 20) _GUICtrlEdit_SetReadOnly(-1, true) GUIStartGroup("") global $beep = GUICtrlCreateCheckBox("use the progress beep notification", 150, 120, 200, 20) GUIStartGroup("") $button = GUICtrlCreateButton("Cancel', 130, 150, 180, 25, 0x01) $iIndex = 0 global $Target global $url GUIStartGroup("") global $Progress = GUICtrlCreateProgress(50, 90, 150, 20) global $Target = $filepath global $url = $linc global $path = $filepath global $hDownloadNo = _RSMWare_GetData($url, $Target) global $status = false AdlibRegister("SetProgress") global $onprogress = false, $curent = false GUISetState(@sw_Show) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $button $asc = MsgBox(4132,"exit download?","if you click yes the downloading will be cancel, do you want to cancel it ?") if $asc = 6 then AdlibUnRegister("SetProgress") GUIDelete() If $hDownloadNo <> 0 Then InetClose($hDownloadNo) exitLoop endIf EndSwitch if $status = -1 then $status = 0 $hDownloadNo = _RSMWare_GetData($url, $Target) $onprogress = false $curent = false elseIf $Status = 1 then $status = $path GUIDelete() AdlibUnRegister("SetProgress") exitLoop endIf WEnd return $status endFunc Func _RSMWare_GetData($url, $Target) Local $hDownload = InetGet($url, $Target, 1, 1) Return $hDownload EndFunc ;==>_RSMWare_GetData Func SetProgress() Local $state If $hDownloadNo <> 0 Then $state = InetGetInfo($hDownloadNo) If @error = 0 Then $infor = "downloaded size " & Round(Execute(InetGetInfo($hDownloadNo, $INET_DOWNLOADREAD) / 1048576), 2) & " MB of " & Round(Execute(InetGetInfo($hDownloadNo, $INET_DOWNLOADSIZE) / 1048576), 2) & " MB " $onprogress = Round(Ceiling(($state[0] / $state[1]) * 100)) if not (InetGetInfo($hDownloadNo, $INET_DOWNLOADSIZE) = 0) then if $onProgress <= 0 then $onProgress = 0 GUICtrlSetData($Progress, $onProgress) GUICtrlSetData($labelTxt0, $infor) GUICtrlSetData($labelTxt2, $onProgress & "%") if _isChecked($beep) then if $onprogress > $curent then beep((100 + $onprogress * 20), 100) $curent = $onprogress endIf endIf endIf If $state[2] Then If $state[3] Then InetClose($hDownloadNo) $status = 1 else InetClose($hDownloadNo) $status = -1 endIf endIf EndIf endIf EndFunc ;==>SetProgress
×