Table of contents
TARCE32는 사용자가 스크립트 작성을 이용해서 Dialog Box안에 List Box를 추가할 수 있습니다.
Dialog Box는 아래 화면처럼, 팝업 형태의 새 창을 띄워서 정보를 보여주거나 입력 받는 기능입니다.
List Box는 아래 화면처럼, 여러 아이템을 메뉴화 시켜 선택할 수 있게끔 보여주는 기능입니다.
TRACE32에서는 이 두 가지를 결합한 예제가 있고, 그 예제에서 간단하게 수정한 것을 정리해보겠습니다.
그리고 Dialog Box+List Box는 버튼을 클릭하여 접근하게끔 만들어보겠습니다.
버튼 생성과 색깔에 대해 궁금하신 분들은 아래 링크들을 참조하세요.
2022.02.21 - [개발툴/T32] - TRACE32(T32) 버튼 추가하기
2022.02.21 - [개발툴/T32] - TRACE32(T32) 버튼 색깔 모음 / 검정 / 빨강 / 녹색 / 파랑 / 사이온 / 마젠타 / 노랑 / 회색
Dialog+List Box 모습
최종 모습은 아래 화면과 같습니다.
'DB' 버튼을 클릭하면 Dialog+List Box가 보이게 됩니다.
원하는 메뉴 아이템을 더블클릭하거나 선택하여 OK 버튼을 클릭하면 해당 메뉴에 저장된 기능을 수행합니다.
dialog_listbox.cmm 추가
버튼은 만들었다고 가정하고, 버튼에 의해 실행될 파일을 추가하겠습니다.
코드는 아래의 코드를 참조하시면 됩니다.
참고로 'TEST1', 'TEST2', 'TEST3' 문구 위주로 보시면 금방 코드가 이해되실겁니다.
아래의 코드와 파일만 구성되어 있으면, 아래 화면처럼 에러가 발생합니다.
각, 선택에 따라
Do C:\T32\User_files\test1.cmm
Do C:\T32\User_files\test2.cmm
Do C:\T32\User_files\test3.cmm
파일을 실행할텐데 이 파일이 없기 때문입니다.
해당 경로에 파일을 만드시면 버튼 -> Dialog+List Box를 이용하여 원하는 cmm파일을 실행할 수 있습니다.
; --------------------------------------------------------------------------------
; @Title: Example for using a pair of lists in a Dialog
; @Description:
; How to manage two lists of items and move items between them.
;
; @Keywords: LISTBOX, DIALOG.STRing2, BUTTON, DIALOG, PRACTICE
; @Author: RIC AME SME
; @Copyright: (C) 1989-2016 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: dialog_list.cmm 12853 2018-07-16 15:11:08Z smeister $
LOCAL &list &mylist
; For longer lists the macro can be constructed across
; several lines with the line continuing sign like this
&list="TEST1,\
TEST2,\
TEST3"
; create and open a dialog named "mydialog"
WinPOS ,,,,,,mydialog
DIALOG.view
(&+
HEADER "Target Selection List Box"
POS 0.5 0. 44. 3.25
BOX "Instructions"
POS 1. 0.75 43. 1.75
INFOTEXT "Select Your Target And Click OK Button"+CONV.CHAR(10.) 2.
POS 0.5 3. 44. 7.5
L_LST: LISTBOX "&list"
(
; When the user double-clicks an item in the list
; execute the command associated with the transfer button (TA)
;DIALOG.EXecute TA
)
POS 20. 11.5 5. 1.25
BUTTON "OK"
(&-
PRIVATE &mylist &displaytxt
; get the complete list from the second listbox (R_LST). DIALOG.STRing only returns the
; currently selected item. DIALOG.STRing2 returns all values in the list.
;STRing : Read Selected
;STRing2 : Read List
;&mylist=DIALOG.STRing2(L_LST)
&mylist = DIALOG.STRing(L_LST)
; The next few lines will format the selected list for display
IF "&mylist"==""
(
; empty list
&displaytxt="You chose nothing"
)
ELSE
(
IF "&mylist"=="TEST1"
(
Do C:\T32\User_files\test1.cmm
)
ELSE "&mylist"=="TEST2"
(
Do C:\T32\User_files\test2.cmm
)
ELSE IF "&mylist"=="TEST3"
(
Do C:\T32\User_files\test3.cmm
)
)
;Open Message Box
;DIALOG.OK "&mylist"
; Continuing stopped script will cleanup and end
CONTinue
)
CLOSE "CONTinue"
)
; Script stops here after dialog is shown and waits for user input
STOP
; Close dialog
DIALOG.END
; End script here
ENDDO
'개발툴 > T32' 카테고리의 다른 글
TRACE32(T32) Start-up 주소 확인하는 방법 (0) | 2022.06.21 |
---|---|
TRACE32(T32) 디버깅 Watch 배열 Format 변경 (0) | 2022.03.07 |
TRACE32(T32) 버튼 색깔 모음 / 검정 / 빨강 / 녹색 / 파랑 / 사이온 / 마젠타 / 노랑 / 회색 (0) | 2022.02.21 |
TRACE32(T32) 버튼 추가하기 (0) | 2022.02.21 |