Foros del Web » Programación para mayores de 30 ;) » Programación General »

Borrar filas de DBGrid con multiselect en Delphi/Object Pascal

Estas en el tema de Borrar filas de DBGrid con multiselect en Delphi/Object Pascal en el foro de Programación General en Foros del Web. Hola a todos, tengo un problema para eliminar datos de un DBGrid con multiselect en Delphi/Object Pascal, hace pocos dias que estoy estudiando este lenguaje. ...
  #1 (permalink)  
Antiguo 02/09/2011, 14:38
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 13 años, 4 meses
Puntos: 6
Borrar filas de DBGrid con multiselect en Delphi/Object Pascal

Hola a todos, tengo un problema para eliminar datos de un DBGrid con multiselect en Delphi/Object Pascal, hace pocos dias que estoy estudiando este lenguaje.

En la wiki de Lazarus(ese es el ide que estoy utilizando) encontre un ejemplo de como conectar con Access.
http://wiki.lazarus.freepascal.org/MS_Access

El ejemplo de ahi muestra como eliminar un solo elemento, pero si selecciono varios ahi viene el problema, hasta el momento esto tengo:

La primera prueba solo me elimina la ultima fila seleccionada, aunque seleccione varias solo me elimina la ultima que seleccione.
Código:
procedure TForm1.Button2Click(Sender: TObject); 
begin
  if SQLQuery1.RecordCount>0 then
  begin
    with DBGrid1.SelectedRows do
    begin
      SQLQuery1.Delete;
      SQLQuery1.ApplyUpdates;
      Form1.Caption:='DELETED';
    end;
  end;
end;
El segundo Intento, tengo por ejemplo 10 registros, y de prueba selecciono el primero y el ultimo para eliminar, entonces me elimina los dos primeros o los dos ultimos dependiendo cual fue el ultimo que seleccione.
Código:
procedure TForm1.Button4Click(Sender: TObject);
var
  x: Integer;
begin  
  with DBgrid1.SelectedRows do
  if Count > 0 then
  begin    
    for x := 0 to Count - 1 do
    begin
      if IndexOf(Items[x]) > -1 then
      begin        
        SQLQuery1.Delete;
        SQLQuery1.ApplyUpdates;
        Form1.Caption:='DELETED';
      end;
    end;
  end;
end;
Agreceria mucho si me pueden dar alguna pista de como hacer, porque ando buscando por la web y todavia no doy con la solucion que me funcione.

Por si las dudas, dejo tambien el proyecto y el exe compilado por Lazarus, por si pueden verlo talves se les hace más facil ver los errores que he cometido y decirme que deberia modificar o leer sobre.
http://www.mediafire.com/?bm040cch3agp379

Gracias de antemano.
__________________
http://blog.kiuvox.com

Etiquetas: dbgrid, delphi, lazarus, multiselect, object, pascal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:20.