nice tutorial!
where you say you haven't found a way to delete via a key stroke
can you not have a key up event (might have to have a key up even for multiple components calling the same function - not sure if there is a global key up)
procedure Tmyform.doDeleteKeyCheck(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (key=KEYVAL) then
query1.CancelUpdates;
query1.delete;
query1.applyUpdates;
end;
end;
or am I missing the point!