본문 바로가기

프로그램/앱인벤터

[앱인벤터2] 프로시저를 이용한 리스트(make list) 만들기

앱인벤터2  - 프로시저를 이용한 리스트 만들기


  앱인벤터2에 블록란에 to procedure를 이용하면 자주 반복되는 명령문을 처리할 때, call 프로시저에 변수만 입력하여 호출해서 사용하면 되므로 이를 통해 중복코딩를 방지하고 간단명료한 프로그램을 짤 수 있다. 



  앱 동작은 GPS로 현재위치를 수시로 띄워주고, 이동 궤적 기록을 클릭하면 밑에 레이블에 위도,적도를 리스트 형태로 나타내주고, 이 리스트는 "이동 궤적 기록"버튼을 누를 때 마다 한 줄씩 추가 업데이트 된다. 


  블록에서 우선 Initialize 로 리스트변수를 만들어 준다음 값을 비워두고, 리스트를 저장할 TinyWebDB의 StoreValue와 GetValue 를 꺼내어 GetValue는 프로그램시작시 실행되는 Screen.Initialize에, StoreValue는 저장하기 이므로 "이동 궤적 기록"버튼의 클릭시 실행되는 이벤트 블록에 넣어둔다. LocationSensor.Location Changed에 위도와 적도를 표시하는 레이블 두개를 넣고, "이동궤적기록(RememberedButton)"이벤트에 add item to list list와 item에 global DistanceList(리스트변수)와 join으로 CurrentLatLabel, ",", CurrentLongLabel을 넣어준다. 

그런다음 리스트를 한줄에 하나씩 표현하는 프로시저를 call해서 list 변수로 global DistanceList를 대입하고, 이전에 버튼안에 빼뒀던 call TinyWebDB1을 그 밑에 넣는다. 


여기서, "리스트한줄에하나"프로시저는 to procedure do를 꺼내어 이름바꾸고, 톱니바퀴누르고 input 넣어서 변수창을 만들고, list(지역변수) 선언, 프로시저안에 차례로 set.tempLabel1.Text to " "(리스트를 띄울 레이블을 비운다), for each item in list를 열어 list 변수를 대입하고, set tempLabel1.Text to join get item, "\n", tempLabel1.Text를 입력한다.