botão marca checkbox

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: botão marca checkbox

Re: botão marca checkbox

Post by Lazyyy » 12 Jun 2020, 05:17

obrigado, @garry consegui utilizando seu primeiro código

Re: botão marca checkbox

Post by garry » 11 Jun 2020, 04:59

@Gio , obrigado > F7 button
@Lazyyy boa tarde ,exemplo fácil : Checkbox / IniRead

Code: Select all

;- Checkbox and Iniread example ---------------------
;Modified = 20200611
;Created  = 20200611

#Warn
#NoEnv
#SingleInstance force
filename1=Checkbox_IniReadWrite
SetWorkingDir, %A_ScriptDir%
Gui,2: Color, Gray,Black 
Gui,2: Font,s12 cYellow ,Lucida Console    ;- font , font-size and color

;----------- ini-file create once and read ------------------------
RSSINI=%A_scriptdir%\%filename1%_config.ini
ifnotexist,%rssini%
    {
    IniWrite,notepad, %rssini% , Program-1 ,EXE
    IniWrite,calc   , %rssini% , Program-2 ,EXE
    }
IniRead, var1, %rssini%, Program-1, EXE
IniRead, var2, %rssini%, Program-2, EXE
;---------- check ini file -----------------------------------------
if (var1=1)
  cb1a=checked
else
  cb1a=
;------------
if (var2=1)
  cb2a=checked
else
  cb2a=
;--------------------------------------------------------------------
Gui,2:Add, checkbox, x10  y10  vcb1 %cb1a%, NotePad 
Gui,2:Add, Checkbox, x10  y40  vcb2 %cb2a%, Calc

Gui,2: Add, Button,  x10  y80  w160 h27   gRunSelected  ,Run_Selected
Gui,2: Add, Button,  x180 y80  w170 h27   gClearCheckBox,Clear_Checkbox

Gui,2: Show,x100 y10 w370 h120,%filename1%
return
;======================== END GUI =============================================
;- close script and save checkbox settings ----------------------------
2Guiclose:
Gui,2:submit,nohide
IniWrite, %Cb1%  , %rssini% ,Program-1   , EXE
IniWrite, %Cb2%  , %rssini% ,Program-2   , EXE
exitapp
;--------- Run Selected ---------------------
RunSelected:
Gui,2: submit, nohide
If (cb1 = 1)
  run,Notepad
If (cb2 = 1)
  run,calc
return
;---------- clearcheckbox --------------------
clearcheckbox:
Loop,2
  GuiControl,2:, cb%A_Index%, 0
return
;============== END SCRIPT =============================================

Re: botão marca checkbox

Post by Hologram » 10 Jun 2020, 06:11

Eu pessoalmente não uso ele, mas me parece algo bem simples, a unica coisa que precisa ser feita, é trocar a variavel de dentro desse script, pela variavel da sua CheckBox, nada mais

Re: botão marca checkbox

Post by Lazyyy » 10 Jun 2020, 02:30

garry wrote:
06 Jun 2020, 14:16
@Gio , obrigado
@Lazyyy boa tarde , save state in INI ( iniread / iniwrite )

Code: Select all

;-------- saved at 2020-06-06  19:30 UTC --------------
;- botão marca checkbox / Gio
;- https://www.autohotkey.com/boards/viewtopic.php?f=69&t=76913

Gui,2: -dpiscale
Gui,2:color,black,black
Gui,2:Font,s12 cYellow,Lucida Console
f1=%A_scriptdir%\safestop.txt
ifnotexist,%f1%
    IniWrite,1,%f1%,yes_no,state
IniRead,var1, %f1%,yes_no,state
if (var1=1)
  cb1=checked
else
  cb1=
Gui,2:add,Text,x20 y5 cGray, Aperte F7 para marcar a checkbox abaixo
Gui,2:add,edit,x10 y60 w270 h40 vE1 -hscroll -vscroll center readonly 
Gui,2:Add, CheckBox, vVar1 %cb1% x18 y200 gAA, STOP
Gui,2:show,x500 y100 w800 h300,Exemplo - Checkbox
Gosub,aa
Return
;----------
aa:
Gui,2:submit, nohide
if (Var1=1)
  GuiControl,2:,E1,Checked
else
  GuiControl,2:,E1,NOT Checked
return
;----------
2Guiclose:
Gui,2:submit,nohide
    IniWrite,%var1%,%f1%,yes_no,state
exitapp
;------------------------------------
$F7::
Gui,2: submit, nohide                                      ;- Populamos as variáveis dos controles.
If ((WinExist("Exemplo - Checkbox")) AND (VAR1 = 1))       ;- E então checamos se a variável do controle foi populada com 1 (marcado). Também vemos se a tela alvo existe (pode ter sido fechada pelo usuário).
{
	Control, UnCheck,, Button1, Exemplo - Checkbox         ;- Se ambas as condições resultarem verdadeiras, enviamos um comando para desmarcar a checbox (pois estava marcada).
	Return
}
Else if ((WinExist("Exemplo - Checkbox")) AND (VAR1 = 0))  ;- Também verificamos se a variável foi populada com 0 (desmarcada) e se a tela ainda existe.
{
	Control, Check,, Button1, Exemplo - Checkbox           ;- E se ambas as condições resultarem verdadeiras, enviamos um comando para marcar a checkbox (pois estava desmarcada)
	Return
}
else ;- Agora se nenhuma das verificações deu resultado...
{
	msgbox, 0x10, Erro, A tela alvo não existe (foi fechada pelo usuário) ;- É porque a tela não existe. Provavelmente foi fechada pelo usuário em algum momento (crie uma label GuiClose que implemente o comando ExitApp caso você queira terminar o script quando o usuário fechar a janela).
	Return
}
Return

;===================================
ficou muito confuso pra mim, não consegui adaptar ao meu código. Tem algum jeito mais fácil de fazer isso?

Re: botão marca checkbox

Post by garry » 06 Jun 2020, 14:16

@Gio , obrigado
@Lazyyy boa tarde , save state in INI ( iniread / iniwrite )

Code: Select all

;-------- saved at 2020-06-06  19:30 UTC --------------
;- botão marca checkbox / Gio
;- https://www.autohotkey.com/boards/viewtopic.php?f=69&t=76913

Gui,2: -dpiscale
Gui,2:color,black,black
Gui,2:Font,s12 cYellow,Lucida Console
f1=%A_scriptdir%\safestop.txt
ifnotexist,%f1%
    IniWrite,1,%f1%,yes_no,state
IniRead,var1, %f1%,yes_no,state
if (var1=1)
  cb1=checked
else
  cb1=
Gui,2:add,Text,x20 y5 cGray, Aperte F7 para marcar a checkbox abaixo
Gui,2:add,edit,x10 y60 w270 h40 vE1 -hscroll -vscroll center readonly 
Gui,2:Add, CheckBox, vVar1 %cb1% x18 y200 gAA, STOP
Gui,2:show,x500 y100 w800 h300,Exemplo - Checkbox
Gosub,aa
Return
;----------
aa:
Gui,2:submit, nohide
if (Var1=1)
  GuiControl,2:,E1,Checked
else
  GuiControl,2:,E1,NOT Checked
return
;----------
2Guiclose:
Gui,2:submit,nohide
    IniWrite,%var1%,%f1%,yes_no,state
exitapp
;------------------------------------
$F7::
Gui,2: submit, nohide                                      ;- Populamos as variáveis dos controles.
If ((WinExist("Exemplo - Checkbox")) AND (VAR1 = 1))       ;- E então checamos se a variável do controle foi populada com 1 (marcado). Também vemos se a tela alvo existe (pode ter sido fechada pelo usuário).
{
	Control, UnCheck,, Button1, Exemplo - Checkbox         ;- Se ambas as condições resultarem verdadeiras, enviamos um comando para desmarcar a checbox (pois estava marcada).
	Return
}
Else if ((WinExist("Exemplo - Checkbox")) AND (VAR1 = 0))  ;- Também verificamos se a variável foi populada com 0 (desmarcada) e se a tela ainda existe.
{
	Control, Check,, Button1, Exemplo - Checkbox           ;- E se ambas as condições resultarem verdadeiras, enviamos um comando para marcar a checkbox (pois estava desmarcada)
	Return
}
else ;- Agora se nenhuma das verificações deu resultado...
{
	msgbox, 0x10, Erro, A tela alvo não existe (foi fechada pelo usuário) ;- É porque a tela não existe. Provavelmente foi fechada pelo usuário em algum momento (crie uma label GuiClose que implemente o comando ExitApp caso você queira terminar o script quando o usuário fechar a janela).
	Return
}
Return

;===================================

Re: botão marca checkbox

Post by Lazyyy » 05 Jun 2020, 19:04

Gio wrote:
05 Jun 2020, 08:28
Bom dia Lazyyy.

Quando você mencionou botão, pensei que se tratava de um botão em uma gui (button), mas vejo que se trata na verdade de uma hotkey (F7).

Em ambos o caso isso é possível fazer isso usando o comando Control em suas opções Check e UnCheck.

Exemplo (veja os comentários no código):

Code: Select all

Gui, add, Text, x20 y20, Aperte F7 para marcar`n a checbox abaixo
gui, add, checkbox, x50 y50 vMARCADA_OU_DESMARCADA ; Usamos uma variável para o controle Checkbox.
gui, show, w200 h200, Exemplo - Checkbox
return

F7::
Gui, submit, nohide ; Populamos as variáveis dos controles.
If ((WinExist("Exemplo - Checkbox")) AND (MARCADA_OU_DESMARCADA = 1)) ; E então checamos se a variável do controle foi populada com 1 (marcado). Também vemos se a tela alvo existe (pode ter sido fechada pelo usuário).
{
	Control, UnCheck,, Button1, Exemplo - Checkbox ; Se ambas as condições resultarem verdadeiras, enviamos um comando para desmarcar a checbox (pois estava marcada).
	Return
}
Else if ((WinExist("Exemplo - Checkbox")) AND (MARCADA_OU_DESMARCADA = 0)) ; Também verificamos se a variável foi populada com 0 (desmarcada) e se a tela ainda existe.
{
	Control, Check,, Button1, Exemplo - Checkbox ; E se ambas as condições resultarem verdadeiras, enviamos um comando para marcar a checkbox (pois estava desmarcada)
	Return
}
else ; Agora se nenhuma das verificações deu resultado...
{
	msgbox, 0x10, Erro, A tela alvo não existe (foi fechada pelo usuário) ; É porque a tela não existe. Provavelmente foi fechada pelo usuário em algum momento (crie uma label GuiClose que implemente o comando ExitApp caso você queira terminar o script quando o usuário fechar a janela).
	Return
}
Return
Obrigado @Gio, esse código funcionou bem em script, só não consegui adaptar ao que eu já tinha, acho que o problema foi a variável, porque minha checkbox já tem uma label.
Meu código:

Code: Select all

Gui, Add, CheckBox, vCheck4 x18 y220 w160 h20 gstop1, STOP
Gui, show
Return

gosub stop1
stop1:
Gui, Submit, NoHide
	
if (check4)
{
	FileDelete, %A_ScriptDir%/Data/safestop.txt
	FileAppend, true, %A_ScriptDir%/Data/safestop.txt
}
else
{
	FileDelete, %A_ScriptDir%/Data/safestop.txt
	FileAppend, false, %A_ScriptDir%/Data/safestop.txt
}

Return

Re: botão marca checkbox

Post by Gio » 05 Jun 2020, 08:28

Bom dia Lazyyy.

Quando você mencionou botão, pensei que se tratava de um botão em uma gui (button), mas vejo que se trata na verdade de uma hotkey (F7).

Em ambos o caso isso é possível fazer isso usando o comando Control em suas opções Check e UnCheck.

Exemplo (veja os comentários no código):

Code: Select all

Gui, add, Text, x20 y20, Aperte F7 para marcar`n a checbox abaixo
gui, add, checkbox, x50 y50 vMARCADA_OU_DESMARCADA ; Usamos uma variável para o controle Checkbox.
gui, show, w200 h200, Exemplo - Checkbox
return

F7::
Gui, submit, nohide ; Populamos as variáveis dos controles.
If ((WinExist("Exemplo - Checkbox")) AND (MARCADA_OU_DESMARCADA = 1)) ; E então checamos se a variável do controle foi populada com 1 (marcado). Também vemos se a tela alvo existe (pode ter sido fechada pelo usuário).
{
	Control, UnCheck,, Button1, Exemplo - Checkbox ; Se ambas as condições resultarem verdadeiras, enviamos um comando para desmarcar a checbox (pois estava marcada).
	Return
}
Else if ((WinExist("Exemplo - Checkbox")) AND (MARCADA_OU_DESMARCADA = 0)) ; Também verificamos se a variável foi populada com 0 (desmarcada) e se a tela ainda existe.
{
	Control, Check,, Button1, Exemplo - Checkbox ; E se ambas as condições resultarem verdadeiras, enviamos um comando para marcar a checkbox (pois estava desmarcada)
	Return
}
else ; Agora se nenhuma das verificações deu resultado...
{
	msgbox, 0x10, Erro, A tela alvo não existe (foi fechada pelo usuário) ; É porque a tela não existe. Provavelmente foi fechada pelo usuário em algum momento (crie uma label GuiClose que implemente o comando ExitApp caso você queira terminar o script quando o usuário fechar a janela).
	Return
}
Return

botão marca checkbox

Post by Lazyyy » 05 Jun 2020, 03:36

Bom dia, minha dúvida é simples, gostaria de saber se é possível fazer com que um botão marque e desmarque uma checkbox na GUI.

Por exemplo:

*F7::
Se não estiver marcada:
✔️ Checkbox (marca)

Se já estiver marcada:
❌ Checkbox (desmarca)

Top