Alguém tem alguma ideia de Biblioteca ou funções para isso?
Ex. do que quero fazer:
![Image](https://raw.githubusercontent.com/RRUZ/vcl-styles-plugins/master/InnoSetup%20plugin/Images%20Site/output_qkrcra.gif)
Moderator: Gio
Todas essa modificações são possíveis também. Eu sugiro olhar o que já está disponível de forma integrada no AutoHotkey primeiro (pois é o mais fácil de implementar). Você pode encontrar algumas das opções integradas aqui: https://autohotkey.com/docs/misc/Styles.htmtipo,mudar o ícone do botão fechar/minimizar,as bordas,etc..
Code: Select all
Gui -Border
Gui, show, w300 h300
Não creio que causaria problemas, mas você teria que alinhar todas as particularidades das funções e da criação das GUIs, é claro.1-se eu usar funções para fazer elementos de GUI (Botão,Texto,etc...) pode me causar problemas
Isso é bem simples na verdade. Você pode fazer isso usando números ou nomes para identificar as diferentes GUIs. A sintaxe é essa abaixo (usando o número ou nome e depois dois pontos entre o comando "gui" e os comandos que você quer que se refiram a uma GUI específica).2- Criar varias GUIs no mesmo script
Code: Select all
Gui, add, text, x50 y50, PRIMEIRA GUI
Gui, show, w300 h400
Gui, 2: add, text, x50 y50, SEGUNDA GUI
Gui, 2: show, w600 h100
Code: Select all
;************************************************************************************
; PRIMEIRO, CRIAMOS A GUI PRINCIPAL, CHAMADA "SOMADORA COM SENHA"
;************************************************************************************
Gui, add, edit, x50 y50 number vPRIMEIRO_VALOR
Gui, add, edit, x50 y80 number vSEGUNDO_VALOR
Gui, add, button, x50 y120 gSOMAR_VALORES, SOMAR
Gui, add, EDIT, x50 y150 disabled
Gui, show, w400 h400, SOMADORA COM SENHA
Return
;******************************************************************************************************************************************************************
; DEPOIS, CRIAMOS UMA FUNÇÃO PARA CRIAR A SEGUNDA GUI, QUE SERÁ PERTENCENTE À GUI 1 (E VAI BLOQUEÁ-LA ENQUANTO NÃO FOR FECHADA).
; Essa função será chamada através da label do botão da Gui 1.
;******************************************************************************************************************************************************************
SOMAR_VALORES:
COLLECT_PASS()
Return
COLLECT_PASS()
{
Gui, 2: Add, Text, x50 y50, SENHA:
Gui, 2: add, edit, x50 y80 vSENHA_INSERIDA
Gui, 2: Add, Button, x50 y120 gVERIFICA_SENHA, CONFIRMAR
Gui, 2: show, w200 h150
Gui, 2: +Owner1
Gui, 1: +Disabled ; Aqui desabilitamos a Gui 1 quando a Gui 2 for criada (isso será desfeito quando a gui 2 for fechada, lá em 2guiclose).
}
VERIFICA_SENHA:
Gui, 2: Submit, nohide
If (SENHA_INSERIDA = "EXEMPLO") ; Se a senha escrita na Gui 2 estiver correta, o valor será somado.
{
Gosub, 2GuiClose
Gui, 1: Submit, nohide
VALOR_A_EXIBIR := PRIMEIRO_VALOR + SEGUNDO_VALOR
ControlSetText, Edit3, %VALOR_A_EXIBIR%, SOMADORA COM SENHA
}
Else ; Mas se a senha estiver errada, nada acontece (e não adianta fechar a gui 2, pois o código acima só ocorre se a senha estiver certa e o botão pressionado).
{
msgbox % "Senha errada! A senha correta é a palavra EXEMPLO"
}
Return
;***********************************************************************
; SE A GUI 2 FOR FECHADA, DESTRUÍMOS ELA E LIBERAMOS A GUI 1.
;***********************************************************************
2GuiClose:
Gui, 1: -Disabled ; Aqui reabilitamos a gui 1.
Gui, 2: Destroy
Return
;***********************************************************************
; SE A GUI 1 FOR FECHADA, ENCERRAMOS O SCRIPT.
;***********************************************************************
Guiclose:
ExitApp
Code: Select all
#NoEnv
#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance force
WM_NCLBUTTONDOWN := "0xA1" ; https://msdn.microsoft.com/en-us/library/windows/desktop/ms645620(v=vs.85).aspx
HTCAPTION := 2 ; https://msdn.microsoft.com/en-us/library/windows/desktop/ms645618(v=vs.85).aspx
JANELA_AMPLIADA := 1 ; https://www.autohotkey.com/docs/commands/WinGet.htm#List
Gui, minhaGUI:Default
Gui, -Caption hwndminhaJanelaID +MinSize300x300 +Resize
Gui, Color, White, White
Gui, Margin, 10, 10
Gui, Add, Picture, vbotãoMinimizar Section gminimizarAJanela Icon40, mmcndmgr.dll ; https://diymediahome.org/windows-icons-reference-list-with-details-locations-images/?lang=es
Gui, Add, Picture, vbotãoAmpliar ys-3 gampliarAJanela Icon62, mmcndmgr.dll
Gui, Add, Picture, vbotãoFechar ys-1 gfecharAJanela Icon162, imageres.dll
Gui, Add, Text, vbarraDoTítulo x0 y0 hp+20 Border BackgroundTrans Center gmoverAFanela,
Gui, Font, s15, Segoe UI
Gui, Add, Text, vtítulo x0 ys-3 BackgroundTrans Center, minha GUI
GuiControlGet, títuloPosiçãoETamanho, Pos, título ; https://www.autohotkey.com/docs/commands/GuiControlGet.htm#subcommands
TITULO_LARGURA := títuloPosiçãoETamanhoW
Gui, Show, w400 h400
return
minimizarAJanela:
MsgBox % A_ThisLabel
WinMinimize, A ; A = janela ativa
return
ampliarAJanela:
MsgBox % A_ThisLabel
WinGet, minOMax, MinMax ; https://www.autohotkey.com/docs/commands/WinGet.htm#List
if (minOMax = JANELA_AMPLIADA)
WinRestore, A
else
WinMaximize, A
return
moverAFanela: ; ; https://autohotkey.com/board/topic/80594-how-to-enable-drag-for-a-gui-without-a-titlebar/
PostMessage, %WM_NCLBUTTONDOWN%, %HTCAPTION%,,, A
return
minhaGUIGuiSize: ; https://www.autohotkey.com/docs/commands/Gui.htm#GuiSize ; https://www.autohotkey.com/docs/commands/GuiControl.htm#Move
GuiControl, MoveDraw, barraDoTítulo, % "w" . A_GuiWidth
GuiControl, MoveDraw, título, % "x" . A_GuiWidth//3-TITULO_LARGURA//2
GuiControl, MoveDraw, botãoMinimizar, % "x" . A_GuiWidth-110
GuiControl, MoveDraw, botãoAmpliar, % "x" . A_GuiWidth-70
GuiControl, MoveDraw, botãoFechar, % "x" . A_GuiWidth-30
return
minhaGUIGuiEscape:
minhaGUIGuiClose:
fecharAJanela:
MsgBox % A_ThisLabel
Exitapp