Jump to content
JDSCaram

Variáveis

Recommended Posts

Olá pessoal, hoje vou falar um pouquinho em um tutorial basico a respeito de "Variaveis" que é uma das coisas mais basica na programção, a necessidade de armazenamento de dados.


Introdução:

Resumidamente : Oque são "Variáveis", são espaços na memória ram do computador para armazenar informações que serão utilizadas depois.

Toda variavel deve ser identificada com um nome que de preferencia siga o contexto do seu script, porem diferentimente de outras linguagem de alto nivel no autoit devemos colocar o prefixo "$" antes do nome dado a variavel, ficando mais assim:

$isso_e_variavel

Lembrando que o nome de uma variavel nao deve conter "Espaços,virgulas,traços,pontos e etc" entre outros caracteres especiais

Adicionando informação a uma variavel:

Para que uma variavel tenha finalidade devemos atribuir a ela algum tipo de informação para que possa ser guardado e usado depois, segue exemplo abaixo:

$isso_e_variavel_A = 10
$isso_e_variavel_B = "Hello World"
$isso_e_variavel_C = "Autoitv3"
$isso_e_variavel_D = $isso_e_variavel_A



Breve Explicação:
Na variavel "$isso_e_variavel_A" recebeu o numero "10" como informação sendo assim ela ira retornar "10", Já na variavel $isso_e_variavel_B recebeu o texto "Hello World" todo texto inserido deve estar contido dentro de "" (aspas), segue a mesma regra para a $isso_e_variavel_C que no caso recebeu tanto numericos quando caracteres do tipo letra, sendo que mesmo contendo um numero atribuido a essa variavel deve usar aspas pois alem de letras contem numeros, Já na ultima variavel atribuimos ela com outra variavel, no caso NÃO se usa aspas para atribuir uma variavel a outra, pois senao ela iria virar um texto, Sendo assim a variavel $isso_e_variavel_D passou a receber o conteudo armazenado na variavel "$isso_e_variavel_A" que é 10

Regras de uso:

  • Tem ser declarada e conter geralmente alguma informação.
  • Nome da variavel só pode conter apenas: Números (0-9), Letras minúsculas ou maiúsculas e sem acentos (a-z, A-Z) e Carácter “_” (underscore)

Declaração de Variaveis:


Visto que em muitas outras linguagens a declaração de uma variavel é obrigatorio contendo seu tipo (Real,char,int e etc) no AutoIT isso se torna opcional, porem quando a necessidade de colocar a variavel em uso em apenas um parte do script segue abaixo:

Local $variavel = 1
Global $variavel = 10



Breve Explicação:
No primeiro exemplo a variavel fica armazenada somente naquele momento da funcao usada, por isso ela é declarada com LOCAL, Ja no outro exemplo a variavel pode ter acesso de todo o codigo escrito pois foi declarada como do tipo GLOBAL


Variáveis constantes

Uma variável, como o nome diz: “que pode variar”. As variáveis constantes, também são como o nome diz “constantes, não mudam”. Ou seja se declararmos uma variável constante com um valor, esse valor nunca mais se irá alterar. Isto pode ser útil para quando queremos de propósito que uma variável nunca altere o valor, e que para o caso de fizermos algum erro na escrita do programa, essa mesma variável não altere o seu valor por acidente. (partes do texto retirado do antigo autoittutoriais, segue os creditos a eles)
Segue abaixo:

Const $ano = 2009
Const Local $const_local = "Portugues"
Const Global $const_global = "Terra"



Breve Explicação:
Como no caso das variáveis normais, também podemos declarar variáveis locais e globais. Mas existem algumas diferenças nas variáveis constantes:
Têm de ser declaradas
Tem de atribuir o conteúdo na declaração



Exemplo do Uso:

Global $Text = 'www.forum.autoitbrasil.com o maior acervo de AU3 do Brasil'
MsgBox(0,"Tutorial",$Text)


A variavel $Text esta armazenando a mensagem (que ira ser mostrado no Msgbox) e foi declarada como do tipo global sendo assim ela pode ser usada em qualquer parte do codigo, ja o Msgbox ao invez de receber todo o texto , apenas recebeu a variavel cuja esta memorizada o texto.

Edited by Luigi
Inclusão do forum. na url
  • Like 5

Share this post


Link to post
Share on other sites

Boa !!

 

Fico feliz quando vejo um tutorial no fórum, ajuda os iniciantes, já comecei a produzir os meus, jaja tão ai ! :D

Share this post


Link to post
Share on other sites

Parabéns jonatas, explicação simples e de fácil entendimento que com certeza ajudará muitos aos iniciantes em autoit.

Share this post


Link to post
Share on other sites

 

 


eu n intendi muito bem pois sou iniciante
como que eu fasso para salvar uma Variavel é igual UDF ?



@pickinou UDF - é funcao definida pelo usuario, é um arquivo externo do seu script .au3 que é usada para nao pesar seu codigo inteiro, entao voce separa sua funcao em um outro arquivo .au3 e chama-o no seu codigo oficial, isso geralmente é usada diminuir, nao poluir visualmente seu codigo quando a funcao usada é muito grande

Ja a Variavel nao tem nada a haver com UDF, em outras linguagens o uso de variavel é obrigatorio, caso for escrever um text voce deve declarar a variavel como de tipo texto (char), ou for usar numero ai voce vai depender se for usar numero inteiro ou real, porem no autoit nao tem obrigatoriedade de declarar o tipo de dados armazenado na variavel,
para intender melhor como funciona vou dar um exemplo:
Voce vai imprimir na tela uma mensagem
MsgBox(0,"Tutorial","www.forum.autoitbrasil.com o maior acervo de AU3 do Brasil")


voce imprimiu a seguinte mensagem "www.forum.autoitbrasil.com o maior acervo de AU3 do Brasil", esta é uma mensagem pequena até para um simples Msgbox, porem imagine se for ter varias mensagens, e nao quer poluir visualmente seu codigo, pra nao ficar bagunçado, voce usa uma variavel para armazenar esse texto e coloca ela em parte do codigo declarada , segue exemplo:

Global $Text = 'www.forum.autoitbrasil.com o maior acervo de AU3 do Brasil'
MsgBox(0,"Tutorial",$Text)



A variavel $Text esta armazenando a mensagem, e foi declarada como do tipo global sendo assim ela pode ser usada em qualquer parte do codigo, ja o Msgbox ao invez de receber todo o texto , apenas recebeu a variavel cuja esta memorizada o texto.


Espero que tenha intendido agora, caso nao poste ai sua duvida.

Edited by Luigi
Inclusão do forum. na url

Share this post


Link to post
Share on other sites

muito obrigado agora eu intendi Grato

Edited by Belini
A citação só é necessária em caso de conferência ou verificação de veracidade, para uma simples resposta não deve ser usada.

Share this post


Link to post
Share on other sites

Parabéns Jonatas!

 

E não se esqueçam de usar os botões "Obrigado" e os pontos de reputação!

 

 

Isso mesmo, bem lembrado hehee, nao custa nada agradecer néh :)

Share this post


Link to post
Share on other sites

Muito bom trabalho Jonatas!

 

Reforçando o tópico, devemos tornar "costume" a declaração de variáveis, pois a não declaração pode futuramente vir a ser um grande problema em nossos scripts, vou dar um exemplo:

 

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

Example()

; example
Func Example()
   $GUI_SHOW = 1

   GUICreate("My GUI") ; will create a dialog box that when displayed is centered

If $GUI_SHOW Then GUISetState(@SW_SHOW) ; will display an empty dialog box

   ; Run the GUI until the dialog is closed
   While 1
       $iMsg = GUIGetMsg()

       If $iMsg = $GUI_EVENT_CLOSE Then ExitLoop
   WEnd
   GUIDelete()
EndFunc   ;==>Example

O código acima dará este erro:

"D:\Example.au3"(8,18) : ERROR: $GUI_SHOW previously declared as a 'Const'.
   $GUI_SHOW = 1
~~~~~~~~~~~~~~~~~^
D:\Example.au3 - 1 error(s), 0 warning(s)

Pois ela está declarada em GUIConstantsEx.au3 como

Global Const $GUI_SHOW = 16

O mesmo código com a variável $GUI_SHOW = 1 declarada como Local

Local $GUI_SHOW = 1

Não irá apresentar nunhuma mensagem de erro, e a variável $GUI_SHOW dentro da UDF irá prevalecer!

 

Abraços,

 

João Carlos.

  • Like 2

Share this post


Link to post
Share on other sites

Ótima dica jscript, vou comentar o que eu entendi do exemplo que você postou, antes eu não me preocupava em declarar variáveis locais pois eu pensava que como estavam dentro da função se eu não declarasse automaticamente seriam variáveis locais mais depois desta explicação eu ví que estava errado pois não declarando como local se tiver outra variável com o mesmo nome declarada como global em uma UDF adicionada ao script por #include o que esiver declarado na UDF irá prevalecer pois não declarei a minha dentro da função como local mais se eu declarar como local mesmo que a variável esteja declarada como global na UDF irá prevalecer a que eu declarei como local apenas dentro daquela função sem gerar conflito com o resto do script onde a variável declarada na UDF esta sendo vista como global ou seja se na UDF a variável corresponde ao valor "1" e na função que declarei como local corresponde ao valor "0" então dentro daquela função ela é vista como "0" e no resto do script onde não foi declarada corresponderá ao valor "1" que é o valor da variável declarada como global na UDF, resumindo todas as variáveis que usarmos nas funções devem ser declaradas pois não sabemos o nome de todas que foram usadas nas UDF's incluidas.

  • Like 1

Share this post


Link to post
Share on other sites

Com certeza @Belini, essa é a idéia!

 

Obs.: Não podemos esquecer das variáveis estáticas: Static, pois elas permanecem mesmo que a função seja terminada, isso é extremamente útil!!!

 

Abraços,

 

João Carlos.

  • Like 1

Share this post


Link to post
Share on other sites

Dicas sobre variáveis Array

 

 

 

#include<array.au3>

Dim $aletra[5]; array de dimensão única
$aletra[0] = "a"
$aletra[1] = "b"
$aletra[2] = "c"
$aletra[3] = "d"
$aletra[4] = "e"


_ArrayDisplay($aletra);para debugar a array

For $b = 0 to UBound($aletra) -1
MsgBox(0,"",$aletra[$b])
Next


Dim $avArray[5][2];array de duas dimensões

;primeira coluna

$avArray[0][0] = "gato"
$avArray[1][0] = "cachorro"
$avArray[2][0] = "pato"
$avArray[3][0] = "elefante"
$avArray[4][0] = "sapo"

;segunda coluna

$avArray[0][1] = "formiga"
$avArray[1][1] = "girafa"
$avArray[2][1] = "macaco"
$avArray[3][1] = "cobra"
$avArray[4][1] = "rato"


_ArrayDisplay($avArray);para debugar a array, é bem interessante usar isso. depois que tiver tudo certo você remove


;UBound($avArray) ---------- vai retornar tamanho da array que no caso é 5

;então para o $i que começa em zero e termina em (UBound($avArray) -1) que é 4 então mostra a mensagem;
For $i = 0 to UBound($avArray) -1
MsgBox(0,"1 array 2d","primeira coluna da array = "&$avArray[$i][0])
Next

; o UBound($avArray) -1 é para que o >>FOR<<  não exceder a dimensão da array



For $i = 0 to UBound($avArray) -1
MsgBox(16,"2 array 2d","segunda coluna da array = "&$avArray[$i][1])
Next



ReDim $avArray[5][3] ; redimensionando array para 3 colunas, para depois adicinar novos valores
For $i = 0 to UBound($avArray) -1
$avArray[$i][2] = "belini"
Next

_ArrayDisplay($avArray)

 

Edited by JScript
Post movido para o tópico Variáveis!
  • Like 1

Share this post


Link to post
Share on other sites

Ôpa tudo relativo a Array me interessa pois ainda tenho muito o que aprender deste assunto, valeu @joelson007

Share this post


Link to post
Share on other sites

Bom tutorial '-' um pouco perdido em array mas com o tempo o cerebro pega no tranco........ kkkkkkk preciso ler mais o help '-'

não entendi mto bem o script do JScript mas a explicaçao do belini veio a calhar entender basicamente o que acontece se....

^^

Share this post


Link to post
Share on other sites

Aqui coloquei alguns exemplos de:

Variaveis

Arrays

Array de Array que é retornado pela StringRegExp($text,$pattern,4) com o Flag 4

 

 

Umas das coisas bem legais do AutoIt é q para vc copiar um Arrary não precisa fazer um loop, basta vc fazer $a2 = $a1 onde $a1 é um Array

 

Também criei uma Func __Dbg quem pode fazer display na console de variaveis, Arrays e Array de Array e sem destruir a informação de @Error e @Extended

ela tb mostra o @Error e @Extended se forem <> 0

 

Veja o Spoiler para detalhes.

 

 

 

Ex: da Saida da __Dbg($var,"var") do exemplo rodado

 

@@ Debug(3) : $text Type: String = [testes]
@@ Debug(6) : $x Type: Int32 = [12345]
@@ Debug(9) : $r Type: Double = [123.768]
@@ Debug(12) : $a Type: Array[4]

-[0] [1234abc]
-[1] [5786]
-[2] [xxxxx]
-[3] [543.986]

 

@@ Debug(19) : $a2 Type: Array[2][2]
-[0] [teste 0][teste 1]
-[1] [teste 2][teste 3]

 

@@ Debug(22) : $b2 Type: Array[2][2]
-[0] [teste 0][teste 1]
-[1] [teste 2][teste 3]

 

@@ Debug(29) : $aa Rows=2 Type: Array of Arrays
+ $aa (0) Rows=7
-[0] [Teste_03F1958D Rvua NRC Od.jpg]
-[1] [Teste_03F1958D]
-[2] [Rvua]
-[3] [ ]
-[4] [NRC]
-[5] [Od]
-[6] [.jpg]

 

+ $aa (1) Rows=7
-[0] [Teste_03F1778D KXNE OK Od.jpg]
-[1] [Teste_03F1778D]
-[2] [KXNE]
-[3] [ ]
-[4] [OK ]
-[5] [Od]
-[6] [.jpg]

 

+ $aa[0]=
> $a[0]=Teste_03F1958D Rvua NRC Od.jpg
> $a[1]=Teste_03F1958D
> $a[2]=Rvua
> $a[3]=
> $a[4]=NRC
> $a[5]=Od
> $a[6]=.jpg

 

+ $aa[1]=
> $a[0]=Teste_03F1778D KXNE OK Od.jpg
> $a[1]=Teste_03F1778D
> $a[2]=KXNE
> $a[3]=
> $a[4]=OK
> $a[5]=Od
> $a[6]=.jpg

 

+ veja aqui os @error=1 e @extended=2 não são destruidos pela __Dbg mas são destruidos pela ConsoleWrite
@@ Debug(46) : Error code: 1 Extended code: 2 $text Type: String = [Teste]
@@ Debug(47) : Error code: 1 Extended code: 2 $text Type: String = [Teste]
@@ Debug(48) : $text = Teste

>Error code: 1
@@ Debug(49) : $text = Teste
>Error code: 0

 

 

Essa Func criei quando comecei a trabalhar com StringRegExp achei bem mais pratico do q outros recursos do AutoIt

 

Só rodar o Script Abaixo para ver os exemplos.

 

 

 

Exemplo tb pode ser baixado._sVar.au3

$text = "testes"
__Dbg($text,"$text") ;### Debug Console

$x = 12345
__Dbg($x,"$x") ;### Debug Console

$r = 123.768
__Dbg($r,"$r") ;### Debug Console

Local $a[4] = ["1234abc",5786,"xxxxx",543.986]  ; Array Misto
__Dbg($a,"$a") ;### Debug Console

Local $a2[2][2]
$a2[0][0] = "teste 0"
$a2[0][1] = "teste 1"
$a2[1][0] = "teste 2"
$a2[1][1] = "teste 3"
__Dbg($a2,"$a2") ;### Debug Console

$b2 = $a2 ; Vc pode copiar array como copia variaveis
__Dbg($b2,"$b2") ;### Debug Console


; Aqui um caso especial de Array de Array que é retornado pela StringRegExp com Flag=4
$text = "Teste_03F1958D Rvua      NRC Od.jpg" & @LF & _
		"Teste_03F1778D KXNE      OK  Od.jpg"
$aa = StringRegExp($text,"(Teste_\w{8}) (.{4}) (.{4}) (.{3}) (..)(\.jpg)",4)
__Dbg($aa,"$aa") ;### Debug Console

; nesse caso para vc acessar cada Array vc precisa fazer o seguinte
For $i=0 To UBound($aa) -1
	$a = $aa[$i] ; Aqui pegamos o Array q esta dentro do Array de Array
	ConsoleWrite(StringFormat("+ $aa[%d]=\n",$i))
	For $j=0 To UBound($a) -1 ; Aqui podemos acessar os dados
		ConsoleWrite(StringFormat("> $a[%d]=%s\n",$j,$a[$j]))
	Next
	ConsoleWrite(@LF)
Next

; Um exemplo de retorno de erro

$text = "Teste"
ConsoleWrite("+ veja aqui os @error=1 e @extended=2 não são destruidos pela __Dbg mas são destruidos pela ConsoleWrite" & @LF)
SetError(1,2)
__Dbg($text,"$text")
__Dbg($text,"$text")
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $text = ' & $text & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $text = ' & $text & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console


;#FUNCTION ===============================================================================
;
; Program Name:		__Dbg
; Description:		Semelhante ao debug console
;					Funciona com Array e Array de Array e não destroi a informação de erros
;					forneçe Mais informaçães como tipo da varaives, linhas e colunas do array

; Parameter(s):		__Dbg($a, $title="", $opt = "", $Begin = 0, $End = -1, $ScriptLineNumber = @ScriptLineNumber, $error = @error, $extended = @extended)
; Requirement(s);
; Return Value(s):	String e restaura o @error e @extended
; Author(s):		Elias Assad Neto
;
;========================================================================================


; Funções de Debug ======================================================================
; Semelhante ao debug console
Func __Dbg($a, $title="", $Begin = 0, $End = -1, $ScriptLineNumber = @ScriptLineNumber, $error = @error, $extended = @extended)
	If @Compiled Then Return
	ConsoleWrite(__sDbg($a, $title, $Begin, $End, $ScriptLineNumber, $error, $extended))
	SetError($error, $extended)
EndFunc

; Monta tudo e retorna String
Func __sDbg($a, $title="", $Begin = 0, $End = -1, $ScriptLineNumber = @ScriptLineNumber, $error = @error, $extended = @extended) ; Display Variabel
		Local $err = "", $txt, $rc, $Result = ""
		If $error <> 0 Then $err = ' Error code: ' & $error ; Mostra @Error se <> 0
		If $extended <> 0 Then $err &= ' Extended code: ' & $extended ; Mostra @Extended se <> 0
		If Not IsArray($a) Then ;  Não é Array Display simpeles da variavel
			$Result &= "@@ Debug(" & $ScriptLineNumber & ") : "  & $err & "  " & $title & "  Type: " & VarGetType($a) & " = [" & $a & "]" & @LF
		Else ; é Array
			Local $rows = UBound($a)
			Local $cols = UBound($a, 2)
			Local $dims = UBound($a, 0)
			$RC = "[" & $rows & "]"
			If $dims = 1 Then
				$txt = StringFormat("%s Rows=%d",$title,$rows)
			Else
				$RC &= "[" & $cols & "]"
				$txt = StringFormat("%s Rows=%d Cols=%d",$title,$rows,$cols)
			EndIf
			If $dims = 1 And IsArray($a) And IsArray($a[0]) Then ; testa se Array de Array
				$Result &= "@@ Debug(" & $ScriptLineNumber & ") : "  & $err & "  " & $txt &"  Type: Array of Arrays " & @LF
				For $i = 0 To UBound($a) - 1
					Local $b = $a[$i]
					Local $rows = UBound($b)
					Local $cols = UBound($b, 2)
					Local $dims = UBound($b, 0)
					If $dims = 1 Then
						$txt = StringFormat("%s (%d) Rows=%d",$title,$i,$rows)
					Else
						$txt = StringFormat("%s (%d) Rows=%d Cols=%d",$title,$i,$rows,$cols)
					EndIf
					$Result &= __sArray($b, $txt, $Begin, $End)
				Next
			Else ; é Array Normal
				Local $rows = UBound($a)
				Local $cols = UBound($a, 2)
				Local $dims = UBound($a, 0)
				$RC = "[" & $rows & "]"
				If $dims = 1 Then
					$txt = StringFormat("%s Rows=%d",$title,$rows)
				Else
					$RC &= "[" & $cols & "]"
					$txt = StringFormat("%s Rows=%d Cols=%d",$title,$rows,$cols)
				EndIf
				$Result &= "@@ Debug(" & $ScriptLineNumber & ") : "  & $err & "  " & $title & "  Type: " & VarGetType($a) & $RC & @LF
				$Result &= __sArray($a, "", $Begin, $End)
			EndIf
		EndIf
	Return SetError($error, $extended, $Result) ; Restaura as condições de erro
EndFunc
Func __sArray($a, $title = "", $Begin = 0, $End = -1)
	If @Compiled Then Return ; nada a mostrar se compilado
	Local $S, $Result = ""
	Local $rows = UBound($a)
	Local $cols = UBound($a, 2)
	Local $dims = UBound($a, 0)
	If $Begin < 0 Then $Begin = 0
	If $End < $Begin Or $End >= $rows Then $End = $rows - 1
	If $title <> "" Then $Result &= "+ " & $title & @LF
	Local $j = 1
	For $i = $Begin To $End
		;		$S = StringFormat("-[%04i] %02i[%s]\n", $i, $j, $aTela[$i])
		If $dims = 1 Then
			$S = StringFormat("-[%i] [%s]\n", $i, $a[$i])
		Else
			$S = StringFormat("-[%i] ", $i)
			For $c = 0 To $cols - 1
				$S &= StringFormat("[%s]", $a[$i][$c])
			Next
			$S &= @LF
		EndIf
		$j += 1
		$Result &= $S
	Next
	$Result &= @LF
	Return $Result
EndFunc

 

 

 

Edited by Elias
  • Like 1

Share this post


Link to post
Share on other sites

Analise de variáveis:

 

Sei que tem a Func VarGetType() q retorna o Tipo de variável se é: Array, Binary, Bool, Ptr, Int32, Double, String, Keyword, Object, DLLStruct

 

No Spoiler Exemplo de analise de variável

 

 

 

Local $aArray[2] = [1, "Example"]
Local $bBinary = Binary("0x00204060")
Local $fBoolean = False
Local $hWnd = WinGetHandle("[CLASS:Shell_TrayWnd]")
Local $iInt = 1
Local $nFloat = 2.0
Local $sString = "Some text"
Local $vKeyword = Default
Local $oShell = ObjCreate("shell.application")
Local $str = "int var1;byte var2;uint var3;char var4[128]"
Local $DllStruc = DllStructCreate($str)

ConsoleWrite( _
		"$aArray    is a " & VarGetType($aArray) & " variable type." & @CRLF & _
        "$bBinary   is a " & VarGetType($bBinary) & " variable type." & @CRLF & _
        "$fBoolean  is a " & VarGetType($fBoolean) & " variable type." & @CRLF & _
        "$hWnd      is a " & VarGetType($hWnd) & " variable type." & @CRLF & _
        "$iInt      is a " & VarGetType($iInt) & " variable type." & @CRLF & _
        "$nFloat    is a " & VarGetType($nFloat) & " variable type." & @CRLF & _
        "$sString   is a " & VarGetType($sString) & " variable type." & @CRLF & _
        "$vKeyword  is a " & VarGetType($vKeyword) & " variable type." & @CRLF & _
        "$oShell    is a " & VarGetType($oShell) & " variable type." & @CRLF & _
        "$DllStruc  is a " & VarGetType($DllStruc) & " variable type." & @CRLF & _
		"")
resultado:
$aArray    is a Array variable type.
$bBinary   is a Binary variable type.
$fBoolean  is a Bool variable type.
$hWnd      is a Ptr variable type.
$iInt      is a Int32 variable type.
$nFloat    is a Double variable type.
$sString   is a String variable type.
$vKeyword  is a Keyword variable type.
$oShell    is a Object variable type.
$DllStruc  is a DLLStruct variable type.

 

 

 

Para ver o q tem um uma $Var basta usar ConsoleWite($var & @CRLF) e usando a Informação da VarGetType() pode-se fazer um display apropriado da Variável

 

Contanto q não seja um Array, Object ou DLLStruc

 

No caso de um Array ainda tem outros recursos como _ArrayDisplay($Var)

 

Mas nos casos de Obj e DllStrcut fica faltando muita informação.

 

Aqui algumas duvidas q não sei se tem como conseguir a informação por meio de uma rotina tipo _ArrayDisplay($Var)

  1. Como Listar as Propriedades, Métodos e Eventos de um Objeto?
  2. Como Listar a estrutura de uma DllStruc?
  3. Como Listar as Variáveis Globais Criadas?

 

 

Share this post


Link to post
Share on other sites

Boa noite galera, estou aqui porque tenho dúvidas, eu fiz um Script pequeno...

Mas eu queria que ele só funcionasse dentro de um Programa ou Um jogo , tipo..... Script executado dentro do jogo........Mas depois que saiu do Jogo ele ainda continua executando , como faço para ele somente Rodar dentro do game e quando eu sair dele ou mesmo minimizar o script pare sem ter que aperta ou da o comando ''Stop'' no {[x]}. Somente isso!

Share this post


Link to post
Share on other sites

Boa noite galera, estou aqui porque tenho dúvidas, eu fiz um Script pequeno...

Mas eu queria que ele só funcionasse dentro de um Programa ou Um jogo , tipo..... Script executado dentro do jogo........Mas depois que saiu do Jogo ele ainda continua executando , como faço para ele somente Rodar dentro do game e quando eu sair dele ou mesmo minimizar o script pare sem ter que aperta ou da o comando ''Stop'' no {[x]}. Somente isso!

Poutz man... Bom dia... Vc não leu mesmo as regras neh... :/

Share this post


Link to post
Share on other sites

Não me lembro mais qual declaração devo fazer para que o valor da variável seja atualizado apenas dentro de uma determinada função toda vez que ela for chamada!

Share this post


Link to post
Share on other sites

Excelente material.

 

O que eu mais sinto falta no AutoIt são as variáveis tipo PRIVATE, ou seja, são variáveis mistas entre global e local. É meio estranho, mas depois que vc pega o jeito são muito boas.

 

Funciona assim: ao declarar variáveis tipo PRIVATE elas tornam-se Globais naquela rotina e para baixo (funções abaixo), mas não são vistas acima. Ao terminar a função que elas foram declaradas, são extintas como Locais.

 

Não sei se deu pra entender...

Share this post


Link to post
Share on other sites

O que eu quero é uma variável local com atributo de global por exemplo tenho um contador que só será usado dentro de uma determinada função aí chamo esta função e atualizo o contador para 10 depois chamo novamente e atualizo para 11 e aí por diante ou seja vai armazenar o valor atual mas será visto só dentro daquela função, sei que tem esta declaração pois já ví aqui no forum mesmo só não lembro mais onde foi!

Share this post


Link to post
Share on other sites

Olá Belini.

 

O que vc precisa é a declaração LOCAL STATIC na sua variável.

 

Na primeira vez que o programa passar por ela, vai criar e inicializar a variável. Em passadas (chamadas) posteriores essa declaração é ignorada preservando o conteúdo que vc precisa,

Share this post


Link to post
Share on other sites

@Manimal era isto mesmo que eu queria, fiz um exemplo e vou postar aqui!

HotKeySet("{esc}", "sair")

While 1
	contador()
	Sleep(200)
WEnd

Func contador()
	Local Static $contar
	$contar += 1
	TrayTip("contador", $contar, 3)
EndFunc   ;==>contador

Func sair()
	Exit
EndFunc   ;==>sair
  • Like 1

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


×