【问题标题】:How can I abort deletion of record based on decisions after dbnavigator delete button pressed?如何在按下 dbnavigator 删除按钮后根据决定中止删除记录?
【发布时间】:2013-01-13 07:51:00
【问题描述】:
我可以根据dbnavigator 删除按钮按下后的决定中止删除记录吗?
我检查了beforeAction事件
if Button = nbDelete then
//check if not OK then
Button := nbCancel;
但它不起作用。有什么帮助吗?
我正在使用DelPhi XE2, anyDac Components
【问题讨论】:
标签:
delphi
delphi-xe2
ttnavigator
anydac
【解决方案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”