Checando os pixel com Check-box Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey
Nauany
Posts: 15
Joined: 12 Dec 2016, 01:37

Checando os pixel com Check-box

19 Jun 2018, 06:46

Bom dia, estou criando um script para que adicione a cor de um pixel em 1 variável.
depois ele teste a cor no momento com a cor adicionada antes e se forem diferentes ele usa uma hotkey.
Tudo isso com um checkbox para ele funcionar quando eu achar necessário, e ao ligar que ele se mantenha checando constantemente
ex:

Code: [Select all] [Expand] [Download] GeSHi © Codebox Plus



o problema que ele não acontece nada quando eu "ativo" a check-box, e não estou conseguindo enxergar aonde estou errando.
Alguém com uma opinião por fora pra dar uma forcinha?
User avatar
Gio
Posts: 449
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Checando os pixel com Check-box  Topic is solved

19 Jun 2018, 10:33

Bom dia Nauany.

O AutoHotkey possui algumas ferramentas que auxiliam o programador a realizar o debugging dos seus scripts. Uma que eu utilizo bastante e considero muito útil é a tela de linhas executadas mais recentemente (Lines most recently executed).

Para acessá-la, basta seguir estes passos:

    1. Execute qualquer script do AutoHotkey que não termine imediatamente (ou seja, qualquer um que tenha uma GUI ou uma hotkey).
    2. Ao executá-lo, aparecerá um ícone de H verde no canto inferior direito da tela (a bandeja de ícones). Se não aparecer, clique na seta que mostra os ícones ocultos do tray e você vai vê-lo.
    3. Clique com o botão direito do mouse no ícone de H verde.
    4. Selecione Open.
    5. Na tela que se abre, selecione View -> Lines most recently executed (Essa tela na verdade já é a que aparece por padrão quando você clica em open).

Pronto! a lista que aparecerá será a das linhas do programa na ordem em que foram executadas!
Essa lista se atualiza a qualquer momento se você clicar F5, e também mostra o tempo desde a execução da última linha.

No caso do seu aplicativo, eu executei ele, depois cliquei no botão "On/Off", e fui olhar o que dizia na lista de linhas executadas. O resultado foi este:

RESULTADO CHECKBOX.png
RESULTADO CHECKBOX.png (30.24 KiB) Viewed 89 times


Se você observar a ordem de execução, verá que:
    1. Quando cliquei no checkbox, a label MCFo foi chamada.
    2. Na linha 38, a primeira da label MCFo, a variável MCFon recebeu os valores da checkbox. Seu novo valor portanto é 1.
    3. Na linha 39, é operada uma condicional de execução, que verifica se a variável MCFon tem um valor positivo. Como sabemos que o valor é 1, a condicional resulta verdadeira e, portanto, o primeiro bloco é o que executa.
    4. O primeiro bloco chama uma msgbox dizendo "ativado!"...
    5. E depois simplesmente termina (sinal de fechamento de bloco encontrado)!
    6. Assim, a execução pula para a linha após a condicional, que é uma linha de return, o que faz com que a label termine.

Só isso. Viu onde está o problema? Não tem nenhum settimer ou coisa parecida dentro do bloco da condicional que executa quando ativa a checkbox.

:arrow: Outra ferramenta muito útil para fazer debugging, é a lista de variáveis e valores. Você pode acessá-la na mesma tela da lista de linhas executadas recentemente, mas o caminho é View -> Variables and their contents. O resultado mostrado será sempre relativo ao estado das váriais na última linha executada, e você pode controlar isso adicionando MsgBox imediatamente depois das linhas em que quiser que a execução pare para ver o que tem nas variáveis.
"What is suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 1 guest