강좌,팁

[강좌:015] 따라하기 10. 초기설정파일(ini) 이용하기 (3)

 

제3장 이번 프로그램에 한정된 기능 구현 단계(Setting Panel의 콜백함수)

15. 작업 디렉토리 선택하기(cmdBrowse() 콜백함수)
디렉토리 경로를선택하는 콜백함수를 그림 15.25와 같이 만들어 보세요. 보이지 않는 부분은 그림을클릭하면 볼 수 있습니다.

그림 15.25 cmdBrowse() 콜백함수

16. 설정값 받아들이기(cmdOK_Setting(), cmdApply_Setting() 콜백합수)
SettingPanel에서 OK나 Apply 버튼이 눌러지면, Setting Panel의 컨트롤 값이 해당 변수에지정되어야 합니다. OK 버튼의 경우 이런 과정을 거친후 Setting Panel을 닫는 반면,Apply 버튼은 Setting Panel을 닫지 않고 그대로 둡니다.

그림 15.26 cmdOK_Setting() 콜백 함수(L015_UsingINI.c 파일)

 

그림 15.27 cmdApply_Setting() 콜백 함수(L015_UsingINI.c 파일)

이제 프로그램이 거의 다 된 것 같군요. Build한 후에 실행을 시켜보세요. 그리고Setting 값을 다르게 설정한 후, 프로그램을 종료한 다음, 다시 실행시켰을 때 이전의설정값이 유지되는지를 확인해 보세요.

그림 15.28 실행화면

어떻습니까? 이제 설정값들이 프로그램 재 시작시에도 유지가 되나요? ini 파일에설정값들이 어떻게 저장되어 있는지를 볼까요?

그림 15.29 L015_UsingINI.ini 파일

이런 식으로 저장되어 있군요. 좀 투박하긴 해도 기능상에는 문제가 없이 잘 돌아갑니다.그죠?

 

제4장 알아두면 좋은 것

17. L015_UsingINI_default.ini 파일의 용도
L015_UsingINI_INI.h 파일의7라인을 보면, L015_UsingINI_default.ini 라는 파일명 문자열이 매크로 상수로 선언되어있습니다. 그리고, 그림 15.17의 17라인에서 L015_UsingINI_ini_setting.PathBuff에게복사되고 있습니다. 결국 그림 15.17의 40라인에서 이용되고 있는데, 이 파일은 어떤용도를 갖고 있겠습니까?
그것은 L015_UsingINI.ini 파일이 없을 경우, 프로그램은L015_UsingINI_default.ini 파일을 찾게 되는데, 만약 이 파일이 있다면, L015_UsingINI_default.ini에저장된 설정값이 프로그램에 Load됩니다.

결국 설정값의 초기화는

1순위: L015_UsingINI.ini 파일
2순위: L015_UsingINI_default.ini 파일
3순위:Initialize_L015_UsingINI_INI() 초기화 함수 내에 지정되는 값

으로 초기화가 이루어지게 됩니다.

18. Setting Panel에서 Tab order를 지정하는 방법
일반적으로 프로그램에서컨트롤들을 옮겨다닐 때 Tab키를 누릅니다. 그러면, 미리 지정된 다음 컨트롤로 focus가옮겨지게 되는데, 이 순서를 다음과 같이 지정할 수 있습니다.

먼저 UIR 파일에서 Setting Panel을 활성화시키십시오. 그리고 UIR 창 메뉴의Edit-Tab Order(Ctrl+T)를 그림 15.30과 같이 선택하십시오. <Ctrl+T>라는단축키를 이용해도 되겠습니다.

그림 15.30 Tab Order 기능을 선택

그러면, 그림 15.31과 같은 화면이 나타납니다. 여기서 원하는 순서대로 해당컨트롤을 차례로 클릭해 나간다음, 마지막에 OK 버튼을 눌러주면 됩니다. 그리고UIR 파일을 저장하십시오.

그림 15.31 Tab Order를 지정

이제 프로그램을 다시 실행하면, Setting Panel에서 Tab키를 눌렀을 때 원하는순서대로 컨트롤의 Focus가 이동되는 것을 볼 수 있을 겁니다.

 

---------------------------------------------------------------------------------------------------

출장을 떠나기 3~4시간 전이군요. 급하게 작성 하느라 빠진 데는 없는지 모르겠습니다.이해가 어려운 부분은 질문 올려주세요.

오늘은 노무현 대통령이 취임하는 날이군요. 앞으로의 임기를 마친 후에 어떤평가를 받는 대통령이 될지 기대해 봅니다.

그리고, 대구 지하철 화재 참사가 일어난 지 1주일 정도 되었습니다. 이 땅에다시는 이런 참사가 일어나지 않도록 함께 기도합시다.

 

극동테크(www.kdtechno.com)허창원


허창원

2003.03.23 01:25:49
*.96.191.238

[추가수정] 그림 15.26의 126라인과 그림 15.27의 161라인에 다음을 추가하세요. L015_UsingINI_ini_setting = prev_L015_UsingINI_ini_setting;

허창원

2003.04.17 15:03:54
*.96.191.238

DEFPROG_INI.h와 DEFPROG_INI.c로부터 소스를 가져와서 작업 중인 프로그램에 맞게 수정하는 과정 정리 가정: 현재 작업 중인 프로그램 명을 ABC라고 가정 1. 파일명 변경 DEFPROG 를 ABC 로 변경 2. 파일내의 문자열 변경 DEFPROG -&gt; ABC, defprog -&gt; abc (혹은 줄여서 a 등으로) 3. Setting 정보 변수 선언 및 각 함수 내의 해당 부분 작업 abc_INI_SETTING 구조체 내에 변수를 선언하고, Initialize_abc_INI() Open_abc_INI() Save_abc_INI() Refresh_abc_INI() 를 수정합니다. 이상입니다.
List of Articles
번호 제목 글쓴이 날짜 조회 수
56 [팁:6] 배포판(설치) 프로그램에 데이터 폴더 포함하기 허창원 2004-05-20 14916
55 [팁:5] Parallel Port 이용할 때, CVI Low-level support driver [2] 허창원 2004-05-18 12860
54 [팁004]팁아닌...팁..Text Message오른쪽 정렬..... [4] 야리싸내 2004-02-02 14964
53 객체의 위치값을 이용한 퍼즐 게임. file [2] 조인배 2004-01-09 13724
52 [강좌020]실행시에 uir파일을 사용하지 맙시다. file [6] 야리싸내 2003-12-19 13338
51 [강좌:019] CVI 런타임엔진과 설치 프로그램 허창원 2003-12-08 14648
50 그래프에 Zoom 기능을 만들어봤습니다.. ^^ file 야리싸내 2003-09-30 13393
49 헉..ㅠ_ㅠ;; 죄송합니다..위에 첨부파일에 소스가 없네요....ㅠ_ㅠ; file 야리싸내 2003-11-26 13338
48 [팁:003] NI DAQ 프로그래밍 예제 얻기 file 허창원 2003-08-11 14858
47 켄바스 기능을 이용한 아날로그시계 file [1] 조인배 2003-07-09 14545
46 [강좌:018] 따라하기 13. AudioPlayer(MP3, WMA, ASF, WAV 등) (2) 허창원 2003-04-11 13230
45 [강좌:018] 따라하기 13. AudioPlayer(MP3, WMA, ASF, WAV 등) (1) [1] 허창원 2003-04-11 14697
44 [강좌:017] 따라하기 12. 재사용 가능한 Library(static lib, DLL) 만들기 허창원 2003-04-11 15481
43 [팁:003] 종료시 MS Office와의 충돌 피해가는 대안 [2] 허창원 2003-04-01 13561
42 [강좌:016] 따라하기 11. 데이터 뷰어3로 업그레이드하기 (2) 허창원 2003-03-19 13875
41 [강좌:016] 따라하기 11. 데이터 뷰어3로 업그레이드하기 (1) 허창원 2003-03-19 12743
» [강좌:015] 따라하기 10. 초기설정파일(ini) 이용하기 (3) [2] 허창원 2003-02-25 14019
39 [강좌:015] 따라하기 10. 초기설정파일(ini) 이용하기 (2) [2] 허창원 2003-02-25 12546
38 [강좌:015] 따라하기 10. 초기설정파일(ini) 이용하기 (1) [2] 허창원 2003-02-25 14840
37 [강좌:014] 따라하기 9. 터치스크린에서 숫자 입력하기 (3) [4] 허창원 2003-01-15 12502