[Automation/All] Form Editor를 사용하여 GUI 작성 시 사용자 조작에 의해 화면 내용이 즉시 바뀌도록 처리

Version 2

    DxDesigner, ExpeditionPCB 등에서 Automation Script를 작성할 때에 GUI가 필요하다면 Form Editor 를 사용하여 쉽고 간단하게 구현할 수 있습니다.

     

    Form Editor는 어떤 GUI 구성 요소가 담고 있는 내용이 사용자의 조작에 의해 실시간으로 변경되도록 구성할 수 있는 event 도 지원합니다.

    이 예제에서는 두 개의 항목을 가진 radio button의 선택에 따라 combobox 에서 선택가능한 항목들이 변경되도록 처리해 보았습니다.

     

     

    firstlook.jpg

     

    1. Form Editor의 Object Bar를 이용해서 RadioButton 과 ComboBox를 끌어 놓습니다.

     

    2. RadioButton을 마우스로 선택 > 마우스 우측 버튼 > Object Properties 메뉴를 누른 후, ListItems 에 선택 항목을 추가합니다.

     

    ListChoices.jpg

     

    3. 다시 Form Editor에서 Radio Button을 마우스로 선택하고, 마우스 우측 버튼 > Object Events 메뉴를 누릅니다.

     

    4. 소스 편집창으로 전환되면 EventChange 를 찾아 해당 이벤트함수에 특정함수(아래에 별도 설명)을 호출하도록 합니다.

      여기에서는 RefreshAppCombo 라는 함수를 호출하도록 한 후, RefreshAppCombo 함수는 다음 단계에서 작성하겠습니다.

     

    EventChange.jpg

     

    5. Radio Button의 EventInitialize에 This.Value = 0 을 추가하여 Radio Button의 초기 선택이 첫번째 항목이 되도록 합니다.

     

    6. 이제 소스편집장에서 (General) object 로 이동하여, RefreshAppCombo 함수를 작성합니다.

     

    RefreshAppCombo.jpg

     

    7. GUI에서 선택한 항목들이 잘 인식되는 지 확인하기 위해 form 에 버튼을 추가하여 RadioButton과 ComboBox의 선택값을 표시하도록 합니다.

     

    Button.jpg

     

    첨부 파일은 위의 과정을 모두 거쳐 만든 결과입니다.

    ExpeditionPCB 등에서 load하면 GUI가 표시되고, 좌측 Radio Button 선택에 따라 우측의 Combo Box 내용이 바뀌는 것을 볼 수 있습니다.

    그리고, GUI 내의 버튼을 누르면 현재 선택되어 있는 Radio Button의 Index와 Combo Box 의 항목이 메시지창에 표시됩니다.

     

    GUI Form을 작성할 수 있는 Automation Editor (IDE) 의 사용 방법은 소프트웨어 설치시 제공되는 pdf 파일들 중 auto_ed_user.pdf 를 참조하시기 바랍니다.

     

     

    //==========================================================================

    // DISCLAIMER OF WARRANTY:  Unless otherwise agreed in writing,

    // Mentor Graphics software and associated files are provided "as is"

    // and without warranty.  Mentor Graphics has no obligation to support

    // or otherwise maintain software.  Mentor Graphics makes no warranties,

    // express or implied with respect to software including any warranty

    // of merchantability or fitness for a particular purpose.

    //

    // LIMITATION OF LIABILITY: Mentor Graphics is not liable for any property

    // damage, personal injury, loss of profits, interruption of business, or for

    // any other special, consequential or incidental damages, however caused,

    // whether for breach of warranty, contract, tort (including negligence),

    // strict liability or otherwise. In no event shall Mentor Graphics'

    // liability exceed the amount paid for the product giving rise to the claim.

    //==========================================================================