62 - [오토핫키] GUI응용 로딩창
62 - [오토핫키] GUI응용 로딩창
Progress나 GUI Progress는 진행 순서에 맞게 처음과 끝이 존재하죠? 이번엔 명령어가 아닌 GUI를 응용하여 다른 로딩창을 만들어 볼거에요. |
예제
원형 로딩창pix := ATan(1)*4 ;파이(3.14) piy := ATan(1)*4 ;파이(3.14) Gui +LastFound -caption +AlwaysOnTop WinSet, TransColor, F0F0F0 Gui, Font, s6 Loop, 25 Gui, Add, Text, x-10 y-10 cRed, ● ;안보이는곳에 ●를 추가합니다. Gui, Font, s15 bold Gui, Add, Text, x150 y185, Loading... Return
Loading: Gui, Show, w400 h400 loop, 25 { xPo := 190+sin(pix-=0.2)*60 ;x축으로 a+six(pi)*r를 연산합니다. a는 시작 좌표, r은 반지름 값이에요. yPo := 190+cos(piy-=0.2)*60 ;y축으로 a+cos(pi)*r를 연산합니다. a는 시작 좌표, r은 반지름 값이에요. Guicontrol, Move, Static%A_Index%, x%xPo% y%yPo% ;●를 이동시켜 로딩화면을 만듭니다. Sleep, 15 ;속도를 조절합니다. } Return
F1:: SetTimer, Loading ;로딩창 라벨을 실행합니다. ;~Script~ Sleep, 3000 ;본문을 실행합니다. 임시로 Sleep을 넣었어요. SetTimer, Loading, Off ;로딩창 라벨을 종료합니다. Gui, Hide ;GUI를 감춥니다. MsgBox, 로딩완료 Return |
원형으로 돌아가는 로딩창입니다. 수학에서 배우는 삼각함수 그래프를 그리는 방식으로 원을 만들수 있어요. Font나 r값을 변경하면 크거나 작게 보여줄 수도 있습니다. 일반적으로 사용하는 오토핫키L 버전은 멀티 쓰레드를 지원하지 않아서 로딩창의 속도를 조절할 경우 본문에 간섭을 주게 됩니다. |
원형 로딩창 Run방식#SingleInstance force ;로딩창을 재실행 할때의 확인창 무시
pix := ATan(1)*4 ;파이(3.14) piy := ATan(1)*4 ;파이(3.14) Gui +LastFound -caption +AlwaysOnTop WinSet, TransColor, F0F0F0 Gui, Font, s6 Loop, 25 Gui, Add, Text, x-10 y-10 cRed, ● ;안보이는곳에 ●를 추가합니다. Gui, Font, s15 bold Gui, Add, Text, x150 y185, Loading... Gui, Show, w400 h400 Loop Loop, 25 { xPo := 190+sin(pix-=0.2)*60 ;x축으로 a+six(pi)*r를 연산합니다. a는 시작 좌표, r은 반지름 값이에요. yPo := 190+cos(piy-=0.2)*60 ;y축으로 a+cos(pi)*r를 연산합니다. a는 시작 좌표, r은 반지름 값이에요. Guicontrol, Move, Static%A_Index%, x%xPo% y%yPo% ;●를 이동시켜 로딩화면을 만듭니다. sleep, 15 } Return
;======== 여기까지 로딩창 스크립트, 파일명 "Loading.ahk" ========
F1:: Run, Loading.ahk ;로딩창 스크립트를 실행합니다. ;~Script~ Sleep, 3000 ;본문을 실행합니다. 임시로 Sleep을 넣었어요. Winclose, Loading.ahk ;로딩창 스크립트를 닫습니다. MsgBox, 로딩완료 Return |
로딩창을 별도의 스크립트로 만듭니다. 본문에서는 로딩창을 열거나 닫기만 하기 때문에 본문과의 간섭이 일절 없습니다. 따라서 로딩창의 속도를 조절해도 본문에는 영향을 주지 않아요. 다만 로딩파일이 별도로 존재한다는점이 단점이지요. |