如何在按下 dbnavigator 删除按钮后根据决定中止删除记录?

Posted

技术标签:

【中文标题】如何在按下 dbnavigator 删除按钮后根据决定中止删除记录?【英文标题】:How can I abort deletion of record based on decisions after dbnavigator delete button pressed? 【发布时间】:2013-01-13 07:51:00 【问题描述】:

我可以根据dbnavigator 删除按钮按下后的决定中止删除记录吗? 我检查了beforeAction事件

if Button = nbDelete then  
  //check if not OK then

Button := nbCancel;

但它不起作用。有什么帮助吗?

我正在使用DelPhi XE2, anyDac Components

【问题讨论】:

【参考方案1】:

使用 BeforeAction 事件

procedure TForm1.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);
begin
  if Button = nbDelete then
  begin
    if MessageDlg('Confirm delete now?', mtConfirmation, [mbYes,mbNo], 0) = mrNo then
    begin
      Abort;
    end;
  end;
end;

【讨论】:

【参考方案2】:

您可以使用 BeforeDelete 事件:

procedure Tdm.MyDataSetBeforeDelete(DataSet: TDataSet);
begin
  if SomeCondition then
  begin
    ShowMessage('Sorry, you can not delete this record.');
    Abort;
  end;
end;

【讨论】:

【参考方案3】:

选择 DBNavigator,然后在 Options 内的 Object Inspector 上将 noConfirmDelete 设置为“false”

【讨论】:

以上是关于如何在按下 dbnavigator 删除按钮后根据决定中止删除记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何在按下按钮后每 10 分钟重复一次方法并在按下另一个按钮时结束它

C#如何在按下w,s,a,d按钮时删除'ding'系统声音

如何在按下按钮后单击屏幕上的图像

如何在按下按钮之前激活按钮?

如何在按下另一个按钮之前更改按钮状态?

在按下标签按钮时删除占位符