이벤트 구조를 이용한 다중 이벤트 등록



주요한 소프트웨어:
주요한 소프트웨어 버전: 7.0
문제가 해결된 소프트웨어 버전:
부차적인 소프트웨어: LabVIEW Development Systems>>LabVIEW Full Development System

문제점:
같은 종류의 컨트롤들을 동작하게 하는 이벤트를 등록하려 합니다. 예를들어 몇 개의 웨이브폼 그래프가 있는데 이 그래프 중 어느것이던 단축메뉴가 선택되면 이벤트가 발생하게 하고 싶습니다. 어떤 방법이 가장 좋을까요?


솔루션:
한 가지 방법은 아래 그림과 같이 각각의 그래프의 경우에 대한 이벤트를 만들고 모든 그래프를 하나의 이벤트문에 넣는 방법입니다. 이 이벤트는 그래프 중 어느 것의 단축메뉴가 선택되었을 때 이벤트가 발생되도록 모니터링을 합니다. 그러나 이 방법은 모든 웨이브폼 그래프에 대해 이벤트를 전부 수동으로 등록해야 하기 때문에 시간이 많이 소모되며 그래프가 추가되었을 때 확장하기가 어렵습니다.
 
좀 더 나은 방법은 이벤트 팔레트에 있는 ‘이벤트등록’ 프로퍼티노드를 이용해 이벤트를 동적으로 등록하는 방법입니다. 첨부 VI는 이와 같은 동작을 하도록 되어 있습니다. 아래 그림에서와 같이 컨트롤 참조의 배열을 결선하고 프로퍼티노드에 연결할 이벤트를 선택합니다.
프로퍼티노드는 이벤트등록참조를 이벤트 구조의 다이나믹이벤트터미널로 반환합니다. 이 터미널은 기본적으로는 나타나지 않고 이벤트 구조의 프레임에 오른쪽 마우스를 큭릭해서 다이나믹터미널보이기를 선택하시면 나타납니다.
이와 같은 방법은 이벤트의 등록이 프로그램적으로 되며 결과적으로 사용자가 손 댈 부분이 별로 없기 때문에 효과적입니다. 이 방법은 또한 더 이상 필요없는 이벤트를 동적으로 해제하는 방법으로도 매우 유용합니다.
 
동적이벤트와 관련된 다른 예제를 보시려면 LabVIEW예제찾기 에서 ‘Dynamically Register for Events’ VI를 참고하시기 바랍니다.


관련 링크:
Developer Zone Example: Using Dynamic Event Registration to Watch for User Interaction With a Control
Developer Zone Example: Radio Buttons with Dynamic Events


첨부:


dynamic registration.vi - dynamic registration.vi


리포트 날짜: 03/13/2007
마지막 업데이트: 05/18/2009
문서 번호: 47CJ8NUI