코딩을 해보자 05steemCreated with Sketch.

in #kr8 years ago (edited)

IDE의 위력

저번편에서 좌표노가다를 약간 해줬을텐데
제대로 맞출려면 짜증이 날 것이다
메모장이라면 어쩔 수 없이 그대로 가야되지만 우리가 쓰는건 무려
통합 개발 환경이다. 그러므로 그 혜택을 맛보자

메뉴에서 저렇게 생긴걸 누른다
그럼 GUI를 직접 보면서 만들고 배치할 수 있는 개발툴이 뜬다
사용법은 메뉴에서 툴을 고른후 원하는 지점에 누르면 그 지점을 시작점으로
크기를 정할 수 있다.
이미 만든 요소에서 오른쪽 버튼을 클릭하면 편집할 수 있는 메뉴들이 나오며
이동, 삭제, 텍스트 변경등등을 할 수 있다
또한 약간의 마우스제스쳐 기능도 제공하는데 마우스 왼쪽 버튼을 누른채로
자를 그리면 현재 만들어진 요소들을 이동할 수 있는 리모콘이 뜬다
동시에 이동할 수도 있고 개별적으로 이동할 수도 있다

이렇게 해서 완성한 GUI는 툴을 종료시키면

에디터에 해당코드를 삽입할 것인지를 물어온다


'예'를 선택하면 이렇듯 완성된 코드가 삽입된다
보았듯이 앞에서보다 월등히 쉽다
왜 처음부터 이렇게 안했냐면 해당문제로 고생하고 처음부터 밟아나간 사람과
그렇지 않고 툴로 편하게 하는 사람의 이해도는 천지차이기 때문이다
전자같이 수련하는 것을 정통무공(正統武功)이라고 하며
후자같이 수련하는 것을 마공(魔功)이라고 한다
참고로 마공이라고 해서 나쁜건 아니다 오히려 마공->정공이야말로 교육의 정석이며
정공부터 시작하면 영어교육 꼬라지가 날 가능성이 높다
다만 계속해서 툴이나 남의 코드만 의지하면 어떻게 되냐면
내 꼬라지 난다 (이도저도 아닌..-ㅅ-;)
조심하자

Goto, GotoSub

Routine(규칙적인 일) 은 Route(길) 에서 ine(대략 속성?)이 붙은 말로
하나의 길로 규칙적으로 따라간다라는 말로 이해하면 된다
프로그래밍에서 명령어는 줄을 순서에 따라서 실행되는데
이걸 Main Routine(메인 루틴)이라고 부른다
프로그램의 주요흐름이라고 볼 수 있다
이렇게 일직선으로만 쭈욱 가면 읽기도 좋고 만사오케이겠지만
아쉽게도 그리 순탄치 않다.
잠시 샛길로 빠지기도 하는 것이다. 그 샛길을 Sub Routine(서브 루틴)이라고 한다
(샛길이 메인 루틴과 갈라지진 않는다)

이러한 서브 루틴을 Function(함수)라고 한다
또한 오토핫키에서는 함수이외에도 GotoSub라는 명령어가 있다

한편 루트를 따라가다가 아예 해당 주소로 건너뛰어버리는게 있는데

이것을 Goto 명령어라고 한다

먼저 Goto 명령어부터 보겠다
우리의 핫키짱은 명령어를 열심히 한줄한줄 읽어가다가
Goto를 밟으면

ImageSource
무심코 날아가버린다
뭐 실제 저런 죽음의 함정은 아니고 Goto 다음에 적힌 주소로 날린다
그 주소는 Label(라벨)이라는 표지판이 떡하니 세워져 있어서

Image Soruce

터진개2길 : 

알아보기도 쉽고 뒤에 : 콜론만 붙이면 된다
예를들면

Gui, Add, Button, x222 y9 w120 h220  gClick, 눌러라
Goto, 거부

MsgBox, ♚♚오☆버☆워☆치♚♚가입시$$전원 21명의 영웅!!☜☜
MsgBox, 레벨업시 전리품상자100%증정※ ¥ 특정조건 §히오스 트레이서 영웅§
MsgBox, ♧스킨 5개♧ ♨하스스톤 카드뒷면♨ ♜월드오브 워크래프트♜펫 증정§§
MsgBox, 디아블로3 메르시날개§§★공허의유산★초상화획득기회@@@ /주간EVENT
MsgBox, 난투 서비스/클린한신고시스템♡/6대6 초이스/국도코스/도시코스/네팔코스/
MsgBox, 매일 세계여행☆/달콤살벌 위도우메이커/힐러는 닥추야★/찰진 엉덩이♡/
MsgBox, 새로운 영웅은 언제나 환영이야♥ ☞즉시이동

거부 :
Gui, Add, Picture, x22 y19 w190 h200 , D:\Study\Steemit\steem_coin830db.png
Gui, Add, Text, x22 y249 w190 h30 , 단축키 : Ctrl+J

이러면 Goto 만나는 순간 거부 라는 라벨까지 점프하는 것이다

자 그럼 다시 코딩으로 돌아가자

여기서 숫자 같은거 다 틀려도 상관없다
딱 하나만 똑같이 수정하자

Gui, Add, Button, -님맘대로-, 눌러라

여기서 -님맘대로-를 그대로 치진말자 저부분은 숫자 좀 달라진다고
아무문제 없기때문이다. 문제가 되는 부분은 Button 이거랑
제일 마지막에 눌러라 부분이다
저것도 엄밀히 말하면 그냥 텍스트라고 볼 수 있지만
Gui의 버튼은 Button과 뒤의 텍스트를 조합하여 자동으로
GotoSub 명령어가 만들어진다. 단지 내부적인거라 보여지진 않는다
거지 같겠지만 일단은 참자

그리고 아래의 코드를 마지막에 추가한다

Button눌러라:
MsgBox, 버튼이 눌려졌습니다

그러면 이제 버튼을 누르면 해당버튼의 Button+텍스트로 명명된 라벨로
날아가서 명령을 수행한다

여기서 이 명령어는 Goto가 아니라 GotoSub 라는 것을 알아둬야한다
Goto와 GotoSub의 차이점은
Goto의 경우는 그리로 점프한 뒤 그대로 진행하며 돌아가지 않는다
반면 GotoSub의 경우 점프를 하고 명령수행이 끝나면 GotoSub 명령을
내렸던 곳으로 다시 돌아간다는 것이다

만약 버튼의 명령이 Goto 명령이었다면 버튼을 한번 누르면 끝이다
두번째 눌렀을땐 이미 진행이 멀리가 있는 상황이라 작동하지 않는다
하지만 GotoSub는 점프해서 명령을 수행한 후 다시 버튼 있는데로
진행이 돌아와 있으므로 재차 눌러도 작동하는 것이다

그럼 위의

GuiClose :

는 뭘까 딱봐도 일단 라벨인 것은 알 수 있다
문제는 어디에 Goto가 있느냐다
Goto는 Gui의 Show 명령어가 발동하면 종료버튼에서 생성되어 대기타고 있을 것이다
(아마도..-ㅅ-.. )
솔직히 자세히 알아보진 않았지만 틀리지 않았을 것이다 (아마도..-ㅅ-)
의심나면 저기에다가 MsgBox라도 넣어보면 알것이다

GuiClose :
MsgBox, 종료합니다
ExitApp

이렇게 한 상태에서 종료버튼을 누르면 종료메세지가 뜨게 된다
그럼 ExitApp는? 뭐 이름 그대로다 어플리케이션(프로그램)을 종료한다는 뜻이다
심심하면 앞에 ;를 붙여서 주석처리하고 어떻게 작동하는지 알아보자
왜 있어야하는지 알게 될 것이다

오마케

마지막은 보너스다. (사실은 지난번에 빼먹었...)

::abc::
안녕하세요

:*:dfg::
안녕하세요오오오

::qwe::
(  줄이 나눠
   지는 문장 )

이것은 핫스트링이라고 핫키(단축키)랑 달리
해당 문자를 순서대로 치면 발동한다
예를들어
abc 라고 쓰고 스페이스나 엔터를 누르면
안녕하세요로 치환된다

두번째의 경우는 dfg 라고 치는 순간 바로 치환되면
마지막의 것은 줄이 나눠지는 것은 그냥 괄호안에 넣으면 다 나온다는 의미다

이건 나도 현재 쓰고 있는 것으로 본인의 경우

:*:im::`[ImageSource`]`(

이렇게 해놨다. 그림을 올리고 원본링크를 걸려면
[ImageSource] ( 주소 ) 이렇게 쳐야되는데 초귀찮다 고로 im 만 치는 순간
저렇게 다 바뀌고 복사한 주소를 그대로 붙여넣으면 완성되는 것이다

그리고 핫키에서 특수키의 기호들은 다음과 같다

# : 윈도우키
^ : Ctrl
! : Alt
+ : Shift
& : 조합

예를들면

a & b::        a를 누른채로 b를 누름 (띄워쓰기해야됨)
!+j::           Alt + Shift + J (띄워쓰면 안됨)

이외에도 마우스키라던지 키를 누르는 순간 혹은 떼는 순간 작동한다던지
많이 있으니 F1이나 구글링을 참조바람

함수까지 하고 싶었으나..
실패..;ㅁ;

Sort:  

코딩글은 추천입니다

오늘 '코딩을 해보자4/5' 두개를 하느라 땀남....
중간에 GuiClose 다음에 : 이 표시를 빠트려서 에러가 생겼는데
원인을 찾느라 혼났네요 . 겨우 따라했습니다. ㅎ

생각보다 개념설명을 해야할게 많죠.
나름 어려운건 최대한 피했는데 역시 결국은 밟아나가야하네요

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 58068.07
ETH 3133.85
USDT 1.00
SBD 2.44