2014-07-23 10 views
2

Clarion에서 프로그래밍 방식으로 버튼 클릭 이벤트를 발생시키는 방법이 있습니까? 나는 다음을 시도했지만 그들은 일을하지 않은 : 더 올바른 방법이 있다면프로그래밍 방식으로 버튼 클릭 이벤트 발생

POST(EVENT:Accepted, ?ResetInput) 

다른 대답을 게시하시기 바랍니다 :

! Doesn't work: 
?ResetInput 

! Also doesn't work: 
?ResetInput:Accepted 

답변

3

내가 검색의 몇 시간 후 해결책을 알아 냈어 이것을하는 것.


여기 클라리온 도움말 문서에서 POST 기능에 관한 정보이다 :

POST (이벤트 [제어], 스레드], 위치])

이벤트 : 정수 상수, 변수, 표현식 또는 EQUATE 이벤트 번호가 들어 있습니다. 400h - 0FFFh 범위의 값은 사용자 정의 이벤트입니다.

컨트롤 : 이벤트에 의해 영향을받는 컨트롤의 필드 번호를 포함하는 정수 상수, EQUATE, 변수 또는 식입니다. 생략하면 이벤트는 필드와 관련이 없습니다.

스레드 : ACCEPT 루프가 이벤트를 처리하는 실행 스레드 번호를 포함하는 정수 상수, EQUATE, 변수 또는 표현식입니다. 생략하면 이벤트가 현재 스레드에 게시됩니다.

위치 : 정수 상수, EQUATE, 변수 또는 표현식에 0 또는 1을 포함합니다. 1 인 경우, 이벤트 메시지는 이벤트 메시지 큐의 맨 앞에 놓입니다. 생략되거나 0 인 경우, 이벤트 메시지는 이벤트 메시지 큐의 끝에 배치됩니다.

POST는 지정된 스레드의 현재 활성화 된 ACCEPT 루프에 이벤트를 게시합니다. 이것은 사용자 정의 이벤트이거나 다른 이벤트 일 수 있습니다. 사용자 정의 이벤트 번호는 400h와 0FFFh 사이의 정수로 정의 될 수 있습니다. 컨트롤이 지정된 상태로 게시 된 모든 이벤트는 필드 별 이벤트이며, 이벤트가없는 이벤트는 필드 독립적 이벤트입니다.

이벤트를 게시하면 ACCEPT 루프가 시작되지만 이벤트가 발생하지 않습니다. 예를 들어 POST (EVENT : Selected,? MyControl)는? MyControl에 대해 EVENT : Selected에서 코드를 실행하지만 MyControl이 포커스를 얻지 않습니다.

예 :

Win1 WINDOW('Tools'),AT(156,46,32,28),TOOLBOX 
    BUTTON('Date'),AT(0,0,,),USE(?Button1) 
    BUTTON('Time'),AT(0,14,,),USE(?Button2) 
END 

CODE 
    OPEN(Win1) 
    ACCEPT 

    ! Detect user-defined event:   
    IF EVENT() = EVENT:User THEN BREAK END 

    CASE ACCEPTED() 
    OF ?Button1 
     POST(EVENT:User,,UseToolsThread) !Post field-independent event to other thread 
    OF ?Button2 
     POST(EVENT:User) ! Post field-independent event to this thread 
    END 
END 

CLOSE(Win1)