Hola amigos del foro y Masters en Programacion.
Tengo el siguiente problema: Necesito eliminar uno, dos o varios registros en una accion. Por ejemplo si es que selecciono en un DBGrid 3 filas, y al presionar el Botón eliminar del DBNavigator que me borre las que he seleccionado. Y esto lo hago de forma más general en el evento OnBeforeDelete de un Table (Antes de eliminar registros de la tabla). Con esto deseo que me respondan a los eventos de presionar la tecla suprimir del teclado, boton derecho del raton opcion eliminar, o bien desde el mismo navigator. Bueno aqui es el que me rompo la cabeza no se en que parte poner este mi procedimiento:
Procedure TF_Reg_Estudiantes.EliminarRegistro;
Var i:Integer;
Begin
if DBGrid1.SelectedRows.Count<=1 then
Begin
// ShowMessage('Una fila seleccionada.');
If Application.MessageBox ('¿Estas seguro que deseas eliminar el registro actual?',
'Eliminar registro',mb_YesNo+MB_IconStop) = ID_No Then
Abort
else
Table1.delete;
End
else
// ShowMessage('Varias filas seleccionadas')
If Application.MessageBox ('¿Estas seguro que deseas eliminar los registros seleccionados? Atte RMA',
'Eliminar registros seleccionados',mb_YesNo+MB_IconStop) = ID_No Then
Abort
else
Begin
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
Delete;
end;
End;
End;
- Al llamar el procedimiento desde el evento BeforeDelete de la Tabla, si es que presiono el boton eliminar del DBNavigator el ciclo que nunca se termina.
- No se, no puedo anular el boton eliminar del DBNavigator, q en ves d que haga su accion quiero que me haga la mia. Logré capturar el evento. Se me vino a la cabeza de ocultar este boton pero, pierdo las acciones que tiene este (DESACTIVARSE cuando no haya ningun registro, cuando este en modo insercion o modificacion) osea tendria que luchar con más codigo.
Creo que lo enrrolle el tema... espero que hayan comprendido, es que me urge poder resolver este problema. Por fa amigos echenme una manito.
Les quedo muy agradecido de antemano....