2009-05-08 18 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

    ありがとう、それはうまくいきます。 は少しハックのようです。しかし、ポストを取り消すことは、ちょっと怪しげなことです。 –

    +1

    私はそれがハックのように感じることに同意しますが、確かにそうではありません(少なくとも、これはそうであるはずです)。ドキュメントを参照してください:tinyurl.com/pxjuqsそして、実際には、私は投稿をキャンセルすることも完璧に賢明だと思う:) – onnodb

    関連する問題