Das ist einleuchtend, nur geht es in diesem Fall (meiner Meinung nach) gar nicht, weil ich eine Komponente Namens TIWDBNavigator benutze, also nicht selber das Post Kommando gebe. Und da ich dieses Post Kommando nirgends sehe, kann ich es nicht mit einem try-except umhüllen (wahrscheinlich ginge dies, ich sehe aber nicht wie).
Aber ich bin soeben über die Abort Routine gestolpert. Ist wohl nicht schön, aber funktioniert.
[Edit]
Und anstatt OnDeleteError, mache ich jetzt folgendes:
Delphi-Quellcode:
procedure TfrmSystem_Devices_Management_Edit.BeforeDelete(Sender: TDataSet);
begin
DataSet.BeforePost := nil;
DataSet.Edit;
DataSet.FieldByName('Active').Value := False;
DataSet.FieldByName('UniqueID').Value :=
DataSet.FieldByName('Address').AsString + '_' +
DataSet.FieldByName('DeviceType.DeviceTypeID').AsString + '_' +
DataSet.FieldByName('Active').AsString + '_' +
DateTimeToStr(Now);
DataSet.Post;
DataSet.BeforeDelete := nil;
IWServerController.Move('frmSystem_Devices_Management_Select');
Abort;
end;
Ich will eigentlich nur das Löschen eines Datensatzes verhindern, aber trotzdem den Löschen-Knopf dieser Komponente benutzen um Datensätze verschwinden zu lassen.
[/Edit]