FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Como eliminar una o varias filas de un TAdvStringGrid
Saludos a todos los participantes del foro.
Por favor me pueden ayudar informándome como eliminar una o varias filas en un AdvStrigGrid, he encontrado respuestas en este foro y he tratado de implementarlo en mi código sin resultado alguno. bueno, lo que hago es generar una o varias filas con sus respectivos checks. Hasta aquí todo bien...Cuando selecciono varios check y los quiero eliminar me elimina un solo o todos los registros, el código esta así: Tambien lo he hecho con esta linea
Agradezco el tiempo que le dedican a mi pregunta. Última edición por nlsgarcia fecha: 01-04-2015 a las 01:46:27. Razón: Sintaxis Delphi |
#2
|
||||
|
||||
No conozco el componente pero a simple vista puede decirse que funciona "igual" al TStringGrid standart
1) RemoveSelectedRows no necesariamente elimina una por una. En realidad elimina la fila seleccionada cuando le haces click con el boton izq. La que esta "sombreada en azul" (me imagino por defecto). Tambien seguro tiene una propiedad multi select que si la pones a true te deja seleccionar varias filas apretando shift o alguna otra tecla, y entonces si llamas a RemoveSelectedRows te elimina todas las seleccionadas. Dicho esto, Lo que hace tu for es recorrer todo el grid, hace una "pregunta" (no importa realmente que) y si da true, elimina la(s) fila seleccionada. Supongamos que esta seleccionada la primer fila cuando llamas a ese codigo, entonces elimina la primera, luego la seleccionada pasa a ser la de abajo, y si el codigo vuevle a dar true, te elimina la segunda (que ahora seria la primera). Osea que te puede pasar que estes preguntando por el checkbox i-esimo y estas eliminando otra fila, Me sigues? 2) RemoveRows. Este tiene pinta de que le das un valor de inicio y uno de fin, supongamos i y j. Entonces lo que hace es eliminar todas las filas que esten entre a y j. Lo que hace una llamda como la de tu codigo:
RowCount es la cantidad de filas, si tenes seleccionada la primera (GridProcedimientos.Row), entonces estas diciendole que elimine todo Lo que tendrias que hacer es un for similar al que pusiste primero, pero en ves de llamar a RemoveSelectedRows, tendrias que ver la forma de eliminar la fila i-esima (la que coincide con el checkbox del cual estas preguntando el estado) A ver si te sale, suerte! |
#3
|
|||
|
|||
Muchas gracias por tu repuesta AgustinOrtu tu comentario me ayuda mucha no había caído en cuenta en la parte que comentas... "Supongamos que esta seleccionada la primer fila cuando llamas a ese código, entonces elimina la primera, luego la seleccionada pasa a ser la de abajo, y si el código vuelve a dar true, te elimina la segunda (que ahora seria la primera). Osea que te puede pasar que estés preguntando por el checkbox i-esimo y estas eliminando otra fila".
pienso ahora que si lo recorro de abajo hacia arriba no debería tener ese problema, voy a intentarlo y ya les comentare... Son muy amables al responder tan pronto, Muchas pero muchas gracias...Son una gran ayuda |
#4
|
||||
|
||||
Deberia haber algun metodo que deje borrar fila por su indice, pero al no tener ese componente no puedo verificarlo
Por lo pronto podrias eliminar una sola fila haciendo uso del RemoveRows en tu bucle for
Saludos! |
#5
|
|||
|
|||
Me funciono con el siguiente código
De esta forma no tengo problema con el indice....Estuve verificando en las propiedades de AdvStringGrid y no encontré la opción de multi select que mencionas, pero tiene Multilinecells; seria verificar con esta opción. Tus comentarios me fueron de gran ayuda AgustinOrtu Última edición por nlsgarcia fecha: 01-04-2015 a las 01:45:33. Razón: Sintaxis Delphi |
#6
|
||||
|
||||
Solo para ahorrarte dolor de cabeza mas adelante, hace la siguiente prueba:
Selecciona la ultima fila con el mouse del grid, y despues llama a tu codigo a ver si funciona correctamente Saludos! PD: Usa el Tag [ DELPHI ] [ / DELPHI ] para que salga la identacion y resalte las palabras claves de delphi |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿control tipo TAdvStringGrid o stringrid con componentes en las filas? | JXJ | Varios | 1 | 07-08-2023 20:35:40 |
Caption de Label en varias filas | Novatin | C++ Builder | 6 | 03-07-2013 05:24:52 |
unir varias filas en una sola | microbiano | SQL | 4 | 26-04-2010 18:28:27 |
Marcar varias filas de dbgrid | Kenobi | Varios | 3 | 02-02-2010 15:22:03 |
Como veo varias filas con un Store Procedure | tulio | Firebird e Interbase | 2 | 24-05-2004 18:16:23 |
|