(または使用している他のデータセットの種類)の独自の子孫TMyQuery
を作成する必要があります。TXxxQuery
そして、クラスオーバーライドPost
メソッドで新しいイベントを追加し、決定できるようにするPost
必要があります。TXxxQuery
次に、新しいコンポーネントを登録し、アプリケーションで。に置き換えますTMyQuery
。そして、イベントハンドラーを作成します。
たとえば、TMyQuery
:
interface
type
TMyAllowPostEvent = procedure (ASender: TDataSet; var AAllow: Boolean) of object;
TMyQuery = class (TXxxQuery)
private
FOnAllowPost: TMyAllowPostEvent;
public
procedure Post; override;
published
property OnAllowPost: TMyAllowPostEvent read FOnAllowPost write FOnAllowPost;
end;
implementation
procedure TMyQuery.Post;
var
lAllow: Boolean;
begin
lAllow := True;
if Assigned(OnAllowPost) then
OnAllowPost(Self, lAllow);
if lAllow then
inherited Post;
end;
そして、イベントハンドラーの例:
procedure TForm1.MyQuery1AllowPost(ASender: TDataSet; var AAllow: Boolean);
begin
AAllow := MessageDlg('Would you like to save changes ?', mtConfirmation, mbYesNo, -1) = mrYes;
end;