사용자 도구

사이트 도구

English

ct1820:메뉴시스템:index

메뉴 시스템 라이브러리

화면상에 메뉴를 표시하고 터치입력을 받기 위한 명령어 모음입니다. 본 라이브러리를 사용하면 아래와 같은 화 면을 쉽게 구성하고 운영할 수 있게 됩니다.

CT1820 에는 총 50 개의 MENU 보턴을 기억할 수 있는 방이 있습니다. 각각의 방에 MENUSET 명령으로 MENU 의 영역과 스타일을 정의해 놓습니다. 그리고 MENUTITLE 명령으로 MENU 의 제목을 표시하고, 터치입 력이 들어오면, MENUCHECK 명령으로 눌려진 MENU 를 찾아내는 방법으로 프로그램을 작성합니다.

각 보턴의 상황을 기록해 놓는 50 개의 방은 MENUSET 명령에 의해서 언제든지 다시 셋팅할 수 있습니다. 즉, 한 화면에서 최대 50 개의 보턴을 입력 받을 수 있고, 다음 화면에서 보턴의 상태를 다시 셋팅하여 사용할 수 있 습니다.


Menuset

MENUSET index, style, x1, y1, x2, y2

Index : 메뉴인덱스 번호
Style : 보턴의 모양; 0=표시없음, 1=박스, 2=그림자박스
x1,y1,x2,y2 : 메뉴 보턴의 위치정보

Index 에는 0~49 사이의 값을 적어줍니다. Style 은 보턴의 모양입니다. 0 으로 하면 아무것도 표시되지 않습니다.

1 은 보통박스의 모양이며, 2 는 그림자가 있는 박스의 모양입니다.

x1,y1, x2, y2 를 대각선으로 하는 박스가 보턴의 크기가 됩니다. 이 명령이 실행되면 화면의 일부 영역이 보턴영 역으로 설정되고, 스타일의 종류에 따라 보턴의 모양이 표시됩니다.


Menuset2

MENUSET2 index, style, x1, y1, x2, y2

Index : 메뉴인덱스 번호
Style : 보턴의 모양
x1,y1,x2,y2 : 메뉴 보턴의 위치정보

Menuset 과 완전히 동일한 명령어입니다. Style 을 0 부터 3 까지 지정할 수 있으며, 기존 Menuset 과는 다른 다 양한 모양의 보턴을 그립니다. 본 명령어는 CT1721C 에서는 사용할 수 없습니다.


Menureverse

MENUREVERSE index

Index : 메뉴인덱스 번호

선택된 메뉴 박스를 반전시켜 주는 명령입니다. 어떤 메뉴가 선택되었는지 표현하기 위해 사용합니다.


Menureverse2

MENUREVERSE2 index, Style

Index : 메뉴인덱스 번호
Style : 보턴의 모양

선택된 메뉴 박스를 반전시켜 주는 명령입니다. Menuset2 로 선언한 경우 Menureverse2 로 반전해야, 해당 보턴 에 맞는 반전을 표시합니다. 본 명령어는 CT1721C 에서는 사용할 수 없습니다.

아래 소스를 ctrl+C 로 카피한뒤 CUBLOC Studio 에 ctrl+V 로 붙여넣기해서 테스트해보실 수 있습니다.

#include "CT18XX"
 Dim I As Integer
 Dim TX1 As Integer, TY1 As Integer
 Contrast 550
 On Pad Gosub GETTOUCH
 Menuset2 0,3,120,155,195,200
 Menutitle 0,20,14,"RESET"
 
 Do
    Locate 15,6
    Print DEC5 I
    Incr I
    Delay 200
 Loop
 
GETTOUCH:
 TX1 = Sys(10)
 TY1 = Sys(11)
 Locate 0,0 
 Print Dec TX1, " ", Dec TY1
 
 If Menucheck(0,TX1,TY1) = 1 Then
    Menureverse2 0,3 ‘ 파라메터가 2 개입니다. 주의하세요
    Ct18beep 20 '키터치음 발생
    I = 0
 End If
 Return

Menutitle

MENUTITLE index, x, y, string

Index : 메뉴인덱스 번호
x,y : 메뉴 보턴의 왼쪽 위 기준점에서 x,y 위치
string : 메뉴의 제목

Menuset 명령으로는 박스만 표시되기 때문에 어떤 메뉴인지 알 수 없습니다. Menutitle 명령으로 Menuset 명령으 로 선언한 메뉴영역에 제목을 표시합니다.

 Menutitle 0,13,13,"가스잔량"
 Menutitle 1,16,13,"초기화"
 Menutitle 2,13,13,"가격계산"


Menucheck( )

Variable = MENUCHECK( index, touchx, touchy)

variable : 결과를 저장할 정수형 변수 (선택되었으면 1, 아니면 0)
index : 메뉴인덱스 번호
touchx : 터치입력지점의 x 좌표
touchy : 터치입력지점의 y 좌표

어떤 메뉴가 선택되었는지 알아낼 수 있는 명령어입니다. Touchx, Touchy 에는 유저가 터치패드에 입력한 지점 의 좌표를 넣고, Index 에는 Menuset 에서 선언한 값을 적어줍니다.

Index 에 지정한 메뉴가 선택되었다면 1 을 반환합니다. 선택되지 않았으면 0 을 반환합니다.

If Menucheck(0,TX1,TY1) = 1 Then
 Menureverse 0
 Beep 18,180
End If

Menu( )

Variable = MENU( index, pos)

Variable : 결과를 저장할 정수형 변수 (선택되었으면 1, 아니면 0)
Index : 메뉴인덱스 번호
pos : 위치 (0=x1, 1=y1, 2=x2, 3=y2)

Menuset 명령에 의해 셋팅된 값을 다시 읽어낼 필요가 있을 때, 사용하는 함수입니다. 해당인덱스에서 pos 값에 따라 읽어옵니다. 0 이면 x1, 1 이면 y1, 2 이면 x2, 3 이면 y2 의 좌표 값을 읽어옵니다. 마치 CUTOUCH 내부에 있는 MENU 영역을 2 차원배열로 억세스 하는 것과 비슷합니다.

If Menu(0,1) < 100 THEN        ‘ 메뉴 보턴 0 번의 Y1 위치가 100 보다 작으면
ct1820/메뉴시스템/index.txt · 마지막으로 수정됨: 2018/10/12 17:23 저자 Comfile Technology