'Control Mode'에 해당되는 글 1건
- 2008.04.24 CVI Control Modes for Generating Events
2008. 4. 24. 21:42
CVI Control Modes for Generating Events
2008. 4. 24. 21:42 in Programmings/CVI
CVI로 이런 저런 프로그래밍을 하는 도중 늘 궁금한게 하나 있었다.
말이 그렇지 하나 뿐만이 아니고 아주 아주 많이있다..... -_-
그러던 도중 오늘 드디어 궁금증을 하나 풀어낸 것이 있으니.. 바로 "컨트롤 모드(control mode)"에 관련된 것이다.
각 컨트롤마다 Edit 창을 열어 속성을 정하거나 하는데.. 중간에 보면 꼭 Control Mode라는 것이 있는 것이다. 내용도 'Hot', 'Normal', Indicator', 'Validate'등 다양하게 있는데 뭔뜻인지.. ^^;
CVI정보나눔의 질문답변란에서 그 정답을 찾았다.
> 안녕하세요... > cvi를 시작한지 얼마 안 된 학생 입니다. > hot와 validate의 차이점에 관해 좀 알려 주시면 감사 하겠습니다. > 수고하세요... > CVI 도움말의 다음 항목에서 잘 설명해 주고 있습니다. Control Modes for Generating Events 아래는 제가 공부삼아 번역해본 내용입니다. --------------------------------------------------------- 이벤트 발생에 대한 Control Mode 여러분은 control에 의해 발생되는 이벤트의 type을 match시키기 위해 control의 mode를 Normal, Indicator, Hot 혹은 Validate mode로 설정할 수 있습니다. - Value Changed event는 GUI의 사용자가 control의 설정값을 수정할 때 발생되는 이벤트입니다. 즉, slide control의 slider를 마우스로 드래그 한다든지, string control에다 문자를 입력할 때 발생됩니다. - Commit event는 GUI의 사용자가 동작을 실제로 완료할 때 발생됩니다. 즉, menu를 선택한다든지, 숫자를 입력하고 Enter키를 누른다든지, 혹은 slide control에서 slider를 드래그한 후에 마우스 버튼을 놓을 때 말입니다. 여러분이 control을 만들 때, 아래의 control mode 중에서 하나를 지정할 수 있습니다. control mode는 control이 이벤트를 어떻게 발생시킬지, 사용자가 조작할 수 있는 범위를 어떻게 정할지를 결정합니다. - Normal: 이 모드에서는 사용자가 control을 조작할 수 있게 하고, 또 control이 commit 이벤트를 제외한 모든 이벤트를 발생시킬 수 있습니다. - Indicator: 이 모드에서는 사용자가 control을 조작할 수가 없고, 또 control이 commit나 value changed event를 발생시키지 않습니다. - Hot: 보통 Default로 설정되어 있습니다. 이 모드는 Normal과 거의 같은데, 사용자가 어떤 동작을 수행했을 때, control이 commit 이벤트를 발생시킵니다. 통상적으로 hot control은 상태가 변경되었을 때 commit event를 발생합니다. 예를 들면, 사용자가 binary switch를 off에서 on으로 드래그하고, 마우스 버튼을 놓으면, commit event가 발생됩니다. 아래의 control type에 대한 설명은 commit event가 어떻게 발생되는지에 대해 확실한 규칙을 보여줍니다. o Hot numeric, string, 그리고 text box control은 값을 control에 입력한 후, Enter나 Tab을 눌렀을 때, 또는 값을 입력한 후 마우스를 다른 곳 아무데나 클릭했을 때, commit event를 발생합니다. o Hot list box control은 check mode가 아닐 때, 사용자가 control이 active 되어 있는 동안 Enter를 누른 다든지, list item을 더블클릭했을 때 commit event를 발생합니다. o Hot list box control은 check mode일 때, 사용자가 control이 active되어 있는 동안 스페이스바를 누른 다거나, list item을 더블클릭했을 때 commit event를 발생합니다. o Hot graph control은 사용자가 화살표 키와 함께 커서를 이동할 때나, 사용자가 커서를 옮긴 후에 마우 스 버튼을 놓으면, commit event를 발생시킵니다. o Hot table control은 사용자가 numeric 혹은 string cell에다 값을 입력한 후 active cell을 변경할 때, commit event를 발생시킵니다. - Validate: 이 모드는 Hot 모드와 한가지 점만 빼고는 동일합니다. commit event가 발생되기 전에 프로그램은 range-checking 속성이 Notify로 되어 있는 panel상의 모든 numeric control을 유효화(validate)시키게 됩니다. Notify 설정은 LabWindows/CVI가 미리 지정된 range를 벗어나는 control값을 체크하도록 합니다. 만약 range를 벗어나는 무효한 조건이 발견된다면, LabWindows/CVI는 control을 활성화시키고, Out of Range 라는 이름의 notification box를 표시합니다. 그리고, validate control은 사용자가 모든 control에 대해 유효한 새 값을 입력할 때까지는 commit event를 발생시키지 않습니다. 이런 과정은 GUI가 commit event를 발생시키기 전에 모든 numeric/scalar control의 값을 유효한지를 분명하게 해줍니다. --------------------------------------------------------- 쉽게 말해서, Hot control은 숫자 컨트롤의 값이 range를 벗어나더라도 commit event가 발생되는 것이고, Validate control은 숫자 컨트롤의 값이 range를 벗어나면, 유효한 새 값이 입력되기 전까지 commit event가 발생되지 않는 모드입니다. 즉, 숫자 컨트롤에 range를 설정한다면, Validate 모드로 하는 것이 더 적절하겠습니다. 그럼, 좋은 하루되세요. |
2003-02-13 18:49:09
헐... 2003년 게시글이다... -_-
오래도 됐건만.. 난 이제서야 이런걸 찾고 하고 있다네.. ㅋㅋ
위의 내용은 'LabWindows/CVI Help'에서 'Control Modes for Generating Event(Library Reference > User Interface > Using a Graphical User > Control Modes for Generating Event)'라는 이름으로 찾을 수 있다.
'Programmings > CVI' 카테고리의 다른 글
CVI Serial통신 관련 함수 (0) | 2008.04.21 |
---|---|
CVI 시리얼 통신 예제 (0) | 2008.04.16 |
CVI Ring control의 간단한 예 (0) | 2008.04.11 |
CVI에서 Dynamic Link Library(DLL) 만들기 (0) | 2008.02.01 |
CVI에서 Static Library 만들기 (0) | 2008.02.01 |