Jump to content
Bllee

nomear e chamar variaveis

Recommended Posts

salut,

eu queria saber como chamar a pos x e y de algum objeto desse jeito (mouse.pox,mouse.posy) (pra deixar o codigo mais bonitim) uashdusad

Share this post


Link to post
Share on other sites

Bom dia,:

Você recebe as coordenadas usando a função MouseGetPos() que gera um array com dois dados no índice 0 esta o X e no índice 1 esta o Y exemplo a baixo:

$pos = MouseGetPos()
   $x = $pos[0]
   $y = $pos[1]

Share this post


Link to post
Share on other sites

Olá Bllee.

   Existem vários métodos para nomear variáveis, cada um utiliza o que mais gosta, mas isto é muito pessoal mesmo.

   Posso recomendar a nomenclatura oficial = https://www.autoitscript.com/wiki/Best_coding_practices#Names_of_Variables

   Eu normalmente sigo o modelo oficial porque depois para fins de depuração e manutenção, fica bem mais fácil.

   Em relação aos arrays (ou vetores ou matrizes), ainda prefiro utilizar o comando ENUM para facilitar a visualização do código e deixar mais prático de trabalhar.

   Até porque se precisar mudar as posições de lugar (inserir ou remover tbm) é mais ácil mudar a linha do ENUM do que mudar todo o código. Exemplo:

Local Enum $eX_POS, $eY_POS
Local $aPosicao = MouseGetPos()
Local $nPontoX = $aPosicao[$eX_POS]
Local $nPontoY = $aPosicao[$eY_POS]

   Outro exemplo:

#include <Misc.au3>
#include <MsgBoxConstants.au3>

Local Enum $eKEY_CODE, $eKEY_DESCRIPTION
Local $aKeyboard = [ [ "01", "Left mouse button" ], _
                     [ "02", "Right mouse button" ], _
                     [ "03", "Control-break processing" ], _
                     [ "04", "Middle mouse button (three-button mouse)" ], _
                     [ "05", "X1 mouse button" ], _
                     [ "06", "X2 mouse button" ], _
                     [ "08", "BACKSPACE key" ], _
                     [ "09", "TAB key" ] ]
...
Local $nTecla = CHECK_KEYBOARD()
For $nIndice = 0 to UBound($aKeyboard)-1
   If $nTecla = $aKeyboard[$nIndice, $eKEY_CODE] Then MsgBox($MB_OK, "Info", "Vc pressionou: " & $aKeyboard[$nIndice, $eKEY_DESCRIPTION])
Next
...

   Ainda é possível também utilizar o conceito de ESTRUTURAS, mas é um pouquinho mais complexo, mas fica bem parecido com a tua intenção original. Veja um exemplo que o nosso colega Rogrigo Chaves Neto utilizou em um de seus scripts

 

Share this post


Link to post
Share on other sites

Olá,

Talvez este código te ajude

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

Dim $tSTRUCTPOS = 'struct;int x[256];int y[256];endstruct'
Dim $oMouse = DllStructCreate($tSTRUCTPOS)

$hWnd_Main = GUICreate("Exemplo", 615, 437, -1, -1)
$idBtn_Show = GUICtrlCreateButton('Show Position', 496, 376, 75, 25)
GUISetState(@SW_SHOW)

While 1
    _GetMousePos()
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $idBtn_Show
            MsgBox(262144+0, 'Show', 'Mouse x = ' & $oMouse.x & @CRLF & 'Mouse y = ' & $oMouse.y)
            
        

    EndSwitch
WEnd

Func _GetMousePos()
    Local $_MouseGetPos = MouseGetPos()
    $oMouse.x = $_MouseGetPos[0]
    $oMouse.y = $_MouseGetPos[1]
    WinSetTitle($hWnd_Main, '', 'Exemplo: Mouse x = ' & $oMouse.x & ' - Mouse y = ' & $oMouse.y)
EndFunc

 

Edited by Rodrigo Chaves Neto
A estrutura correta deve ser em inteiros

Share this post


Link to post
Share on other sites
On 21/11/2019 at 9:27 AM, Manimal said:

Olá Bllee.

   Existem vários métodos para nomear variáveis, cada um utiliza o que mais gosta, mas isto é muito pessoal mesmo.

   Posso recomendar a nomenclatura oficial = https://www.autoitscript.com/wiki/Best_coding_practices#Names_of_Variables

   Eu normalmente sigo o modelo oficial porque depois para fins de depuração e manutenção, fica bem mais fácil.

   Em relação aos arrays (ou vetores ou matrizes), ainda prefiro utilizar o comando ENUM para facilitar a visualização do código e deixar mais prático de trabalhar.

   Até porque se precisar mudar as posições de lugar (inserir ou remover tbm) é mais ácil mudar a linha do ENUM do que mudar todo o código. Exemplo:

Local Enum $eX_POS, $eY_POS
Local $aPosicao = MouseGetPos()
Local $nPontoX = $aPosicao[$eX_POS]
Local $nPontoY = $aPosicao[$eY_POS]

   Outro exemplo:

#include <Misc.au3>
#include <MsgBoxConstants.au3>

Local Enum $eKEY_CODE, $eKEY_DESCRIPTION
Local $aKeyboard = [ [ "01", "Left mouse button" ], _
                     [ "02", "Right mouse button" ], _
                     [ "03", "Control-break processing" ], _
                     [ "04", "Middle mouse button (three-button mouse)" ], _
                     [ "05", "X1 mouse button" ], _
                     [ "06", "X2 mouse button" ], _
                     [ "08", "BACKSPACE key" ], _
                     [ "09", "TAB key" ] ]
...
Local $nTecla = CHECK_KEYBOARD()
For $nIndice = 0 to UBound($aKeyboard)-1
   If $nTecla = $aKeyboard[$nIndice, $eKEY_CODE] Then MsgBox($MB_OK, "Info", "Vc pressionou: " & $aKeyboard[$nIndice, $eKEY_DESCRIPTION])
Next
...

   Ainda é possível também utilizar o conceito de ESTRUTURAS, mas é um pouquinho mais complexo, mas fica bem parecido com a tua intenção original. Veja um exemplo que o nosso colega Rogrigo Chaves Neto utilizou em um de seus scripts

 

Muito bom o comando Enum. A forma como o array $aKeyboard é construida lembra bastante a de criação de dicionario

 

$oDictionary = ObjCreate("Scripting.Dictionary")

$oDictionary.Add ("01", "Um" )
$oDictionary.Add ("02", "Dois")
$oDictionary.Add ("03", "Três")
$oDictionary.Add ("04", "Quatro")

 

  • 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


×