2009-05-08 4 views
14

메인 데이터 입력 화면에서 OnBeforePost 이벤트에 OK/Cancel 대화 상자가 있습니다.Delphi : OnBeforePost 이벤트에서 TDataSet.Post 취소

  • OK 지금
  • 취소 일이 자신의 코스를 수강 할 수 있습니다 그것은 다시 모든 변경 사항을 롤에 의미가 무엇을 수행하고 찾아보기 모드로 데이터 집합을두고 이는 Dataset.Cancel;

않습니다.

이 고객의 대부분 괜찮지 만, 우리는

  • 으로 변경 될 수있는 경우, 취소 포스트를 중단하고 현재의 변화와 편집 모드를 유지 요청 유지하고있다.

취소하려는 경우 취소 버튼을 사용할 수 있습니다.

procedure TDataSet.Post;의 소스를 보면이 방법으로 이벤트를 사용할 수 없습니다.

누구나 할 수있는 방법에 대한 의견이 있습니까?

후속 :이 나는 (내가 올바르게 기억, 단위 System에서) 방법 Abort를 호출 지금

case MessageDlg('Save Changes?', mtWarning, [mbYes, mbNo, mbAbort], 0) of 
    mrYes: ; 
    mrNo: Dataset.Cancel; 
    mrAbort: Abort; 
    mrNone: Abort; 
end; 

답변

22

그것을 처리하기 위해 선택한 바로 현재를 취소 자동 EAbort 예외를 제기 한 방법이다 조작. 그게 효과가있다.

(Btw : 데이터베이스 조작을 취소하는이 방법은 도움말 시스템의 깊은 곳에서도 설명되어 있습니다.이 방법은 원래이 기술을 사용하는 곳입니다.)

+0

감사합니다. 잘 작동합니다. 은 해킹 비트처럼 보입니다. 그러나 게시물을 취소하는 것은 prob의 비트가되는 것입니다 –

+1

나는 그것이 해킹처럼 느껴진다는 것에 동의하지만, 분명히 그렇지 않습니다 (또는 적어도 이것과 같을 것입니다). 워드 프로세서를 참조하십시오 : tinyurl.com/pxjuqs 그리고 실제로, 나는 게시물을 취소 완벽하게 합리적인 것 같아요 :) – onnodb

관련 문제