쿼리가 있습니다.PowerBuilder에서 조상의 PostEevent에 대한 쿼리
저는 조상 창을 가지고 있습니다. 조상 창의 공개 이벤트에는 하나의 사후 이벤트가 있습니다. 그 postevent는 자손 창을 열 때 자손 창에서 작동 할 것입니다.
아무에게도 설명해주세요.
참고 : 하위 창에서 open 이벤트는 확장 된 상위 스크립트를 선택했습니다.
감사 이벤트가 먼저 조상에서 호출 파워 빌더에서
쿼리가 있습니다.PowerBuilder에서 조상의 PostEevent에 대한 쿼리
저는 조상 창을 가지고 있습니다. 조상 창의 공개 이벤트에는 하나의 사후 이벤트가 있습니다. 그 postevent는 자손 창을 열 때 자손 창에서 작동 할 것입니다.
아무에게도 설명해주세요.
참고 : 하위 창에서 open 이벤트는 확장 된 상위 스크립트를 선택했습니다.
감사 이벤트가 먼저 조상에서 호출 파워 빌더에서
Ambat. w_grandfather => w_father => w_child라고 가정합니다. 여기서 w_grandfather는 기본 클래스 (조상)입니다. 먼저 w_grandfathers 이벤트는 w_child의 이벤트 다음에 w_fild 이벤트가 발생합니다.
예를 들어 w_father에서 상위 선행 스크립트 확장을 선택 취소하고 스크립트를 작성하면 w_grandfathers 이벤트가 실행되지 않습니다. 먼저 w_fathers 이벤트가 발생하고 w_child 이벤트가 발생합니다. 이 경우 당신은 다음과 같이 명시 적으로 쓰기 코드가 w_grandfather의 이벤트를 호출하려면 :
슈퍼 :: 행사 열려()
은 또한 당신이 postevent를 사용할 때 이벤트가 마지막 이벤트 후 해고 것, 알 이벤트 목록에. "의지력"을 발휘해야한다면 :) 트리거 이벤트를 사용해야합니다.
이 정보가 도움이되기를 바랍니다. 그냥 마음 편하게 물어봐! 좋은 하루 되세요!
br. Grabber
메소드가 이벤트이든 함수이든간에 직접 호출 되었든 게시 되었든 관계없이 PowerBuilder는 먼저 인스턴스화 된 객체, 즉 하위 객체에서 메소드를 검색합니다. 일치하는 스크립팅 된 메소드가 발견되면 PowerBuilder가이를 실행합니다. 이 메소드가 발견되지 않으면, 일치하는 스크립트 메소드를 찾을 때까지 PowerBuilder는 조상 체인을 검색합니다. 발견 된 첫 번째 스크립트 메소드는 실행될 것이고 다른 것은 아무것도 없다는 것을 이해하는 것이 중요합니다. PowerBuilder는 "Extend Ancestor"기능을 사용하여 이벤트를 혼란스럽게 만듭니다. 내 보낸 구문을 살펴보면이 상자를 선택하면 PowerBuilder가 call
구문을 사용하여 스크립트 시작 부분에서 직계 조상에 대한 호출을 삽입 함을 알 수 있습니다. 이것은 DARKinVADER가 조상으로부터 이벤트가 먼저 호출된다고 말하면서 DARKinVADER가 참조하는 것입니다. 이것은 기본적으로 각 자손 스크립트가 직계 조상을 호출하기 때문에 발생합니다. 할아버지의 스크립트에 중단 점을 넣으면 호출 스택에있는 모든 스크립트 된 자손 메서드를 볼 수 있습니다.
PowerBuilder가 배후에서 조상에게 호출을 삽입하기 때문에 많은 개발자는 이벤트를 확장 할 때 ancestorreturnvalue
에 대한 책임을지게됩니다. ancestorreturnvalue
으로 아무 것도하지 않으면 손실됩니다. 이런 식으로 프레임 워크를 깨뜨릴 수 있습니다. 예를 들어, ancestorreturnvalue
을 올바르게 처리하지 않고 u_dw의 이벤트를 확장하여 PFC 연결 서비스를 중단 할 수 있습니다.