Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-09-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
eliminar un registro de un stringgrid

sencilla la pregunta
como elimino un registro de un stringgrid?
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #2  
Antiguo 10-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ingabraham.

El TStringGrid no trabaja con registros sino con celdas que a las que se accede por filas y columnas.

Te pongo algunos ejemplos de borrado de celdas:
Código Delphi [-]
begin
 StringGrid1.Cells[Col, Fil]:= ''; // elimina valor de una celda
 StringGrid1.Cols[Col].Clear; // elimina valores de una columna
 StringGrid1.Rows[Fil].Clear; // elimina valores de una fila
end;

Donde Col y Fil son respectivamente número de columna y número de fila.
Para borrar toda una fila o columna también es posible hacerlo con la propiedad Cells y una variable incremental en la posición de la fila o columna según se precise. Usando como cota inferior 0 y StringGrid.Cols.Count -1 ó StringGrid.Rows.Count-1 como superior; por ejemplo.


Saludos.

Última edición por ecfisa fecha: 10-09-2010 a las 22:27:34.
Responder Con Cita
  #3  
Antiguo 11-09-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola ingabraham, para borrar una fila, lo que puedes hacer es desproteger el StringGrid y utilizar el procedimiento DeleteRow.

Código Delphi [-]
type
  TStringGrid = class(Grids.TStringGrid);
 
....................................................
 
  StringGrid1.DeleteRow(StringGrid1.Row); //Para eliminar la fila actual

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 11-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Caro Ver Mensaje
Hola ingabraham, para borrar una fila, lo que puedes hacer es desproteger el StringGrid y utilizar el procedimiento DeleteRow.
Saluditos
Muy interesante ...

Nunca había usado el procedimiento DeleteRow de TCustomGrid, veo que también está DeleteColumn.

No uso casi nunca el StringGrid, voy a tener que revisarlo un poco más...

Gracias por la info Caro.

Saludos.
Responder Con Cita
  #5  
Antiguo 15-09-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
ok, resulta con este codigo elimino .
Código Delphi [-]
type
  TStringGrid = class(Grids.TStringGrid);
 
....................................................
 //en un boton o en un menu derecho de la grilla.
  StringGrid1.DeleteRow(StringGrid1.Row); //Para eliminar la fila actual

pero existe un problema, al ingresar un nuevo registro me vuelve a colocar el ultimo que elimine.

osea puedo eliminar uno,dos, tres registro
pero al momento de agregar uno nuevo, tambien me agrega el ultimo que elimine.

como hago?
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #6  
Antiguo 15-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Me da la impresion de que los registros los traes de una tabla.
El codigo NO elimina ningun registro, lo que hace es eliminar la linea donde aparece en el StringGrid, osea, no lo muestra nada mas.
Para eliminar el registro ya se tiene que ir directamente a la tabla.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 15-09-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
tengo unas casillas de textp
nombre dir tel sexo
y eso es lo q agrego ala grilla. no los traigo de ninguna parte.
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #8  
Antiguo 15-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ingabraham Ver Mensaje
pero existe un problema, al ingresar un nuevo registro me vuelve a colocar el ultimo que elimine.
osea puedo eliminar uno,dos, tres registro
pero al momento de agregar uno nuevo, tambien me agrega el ultimo que elimine.
como hago?
Podrías poner el código donde agregas la nueva Fila (Row) ?

Saludos.
Responder Con Cita
  #9  
Antiguo 15-09-2010
Avatar de ingabraham
ingabraham ingabraham is offline
Miembro
 
Registrado: ago 2007
Posts: 614
Poder: 17
ingabraham Va por buen camino
no

incremento un rowCount
Rejilla.rows[i][0] := de cada columna
incremento consecutivofilas


listo.-

------------------------------
al eliminar hago.
StringGrid1.DeleteRow(StringGrid1.Row);
decremento consecutivofilas
__________________
Enseñar es la virtud de un sabio.
Responder Con Cita
  #10  
Antiguo 15-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ingabraham Ver Mensaje
no

incremento un rowCount
Rejilla.rows[i][0] := de cada columna
incremento consecutivofilas


listo.-
No entiendo la lógica de lo que escribiste.
¿ Que valores toma la variable i ?, consecutivofilas que es, ¿ una variable ?
¿ rows[i][0]:= a que cosa ?
A primera vista pareciera que altera todos los valores de la columna 0 y agrega una fila...


Sería más sencillo ayudarte si ponés el código.

Saludos.

Última edición por ecfisa fecha: 15-09-2010 a las 03:06:21.
Responder Con Cita
  #11  
Antiguo 15-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Me quedé tratando de deducir que es lo que te pasaba...

Cita:
pero al momento de agregar uno nuevo, tambien me agrega el ultimo que elimine
El problema no lo podés tener al agregar una línea, es demasiado trivial:
Código Delphi [-]
  StringGrid1.RowCount:= StringGrid1.RowCount +1;

Así que debe ser al insertár una línea. Si no inferí mal, mi apellido desde ahora será Holmes .
El código:
Código Delphi [-]
procedure TForm1.InsertarFila(Index: Integer);
var
  i: Integer;
begin
  with StringGrid1 do
  begin
    RowCount:= RowCount +1;
    for i:= RowCount-1 downto Index do
       Rows[i]:= Rows[i-1];
    Rows[Index].Clear;
  end;
end;

Saludos.
Responder Con Cita
  #12  
Antiguo 15-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Empezado por ingabraham Ver Mensaje
tengo unas casillas de textp
nombre dir tel sexo
y eso es lo q agrego ala grilla. no los traigo de ninguna parte.
Bien: si dices que no los traes de ninguna parte entonces como explicas esto:
Cita:
Empezado por ingabraham Ver Mensaje
pero existe un problema, al ingresar un nuevo registro me vuelve a colocar el ultimo que elimine.

osea puedo eliminar uno,dos, tres registro
pero al momento de agregar uno nuevo, tambien me agrega el ultimo que elimine.
Si eliminas algo ya no esta, osea muerto...........
Traes, por que traes los datos de algun lado, en este caso de las supuestas
casillas de textp.
Ahora me pregunto:
Que clase de casillas de texto contienen o guardan los datos ya eliminados?, para mi, ninguna.
El concepto esta mal planteado:
1- Los datos provienen de Edits.
2- Los datos son pasados a StringGrid
3- Los datos son actualizados en los edits.
4- Los datos quieren ser borrados en el StringGrid.
Donde estan los datos?.
Donde se guardan los Datos?.
Por que para mi si no se guardan en algun lado simplemente no estan, entonces como se repiten?.
NO entiendo nada y mucho menos que digas: ''no los traigo de ninguna parte''.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #13  
Antiguo 15-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Caral Ver Mensaje
Hola

Bien: si dices que no los traes de ninguna parte entonces como explicas esto:

Si eliminas algo ya no esta, osea muerto...........
Traes, por que traes los datos de algun lado, en este caso de las supuestas
casillas de textp.
Ahora me pregunto:
Que clase de casillas de texto contienen o guardan los datos ya eliminados?, para mi, ninguna.
El concepto esta mal planteado:
1- Los datos provienen de Edits.
2- Los datos son pasados a StringGrid
3- Los datos son actualizados en los edits.
4- Los datos quieren ser borrados en el StringGrid.
Donde estan los datos?.
Donde se guardan los Datos?.
Por que para mi si no se guardan en algun lado simplemente no estan, entonces como se repiten?.
NO entiendo nada y mucho menos que digas: ''no los traigo de ninguna parte''.
Saludos
Esta lógica sí la entiendo...

Saludos.
Responder Con Cita
  #14  
Antiguo 15-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Amigo, lo poco que se de esto que llaman programación es que es pura y absoluta lógica.
Si la usas entonces hasta el código mas complejo se podrá entender.
Lo que no se puede hacer es tener manzanas y después de comértelas que aparezcan otra vez por arte de magia.
Por eso digo que el planteamiento esta mal hecho.
NUNCA, pero NUNCA llegaremos a entender el problema y en mi caso a TRATAR de ayudar si el mago no nos enseña su secreto.
Saludos
__________________
Siempre Novato
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Eliminar fila de un StringGrid santiago14 Varios 6 28-06-2014 18:04:02
como eliminar una fila del stringGrid. Arturo Varios 3 12-10-2006 20:54:04
Eliminar Fila de StringGrid...Consulta BlueSteel Varios 2 07-06-2006 10:47:52
Eliminar una Fila Completa de un StringGrid BlueSteel Varios 7 22-10-2004 15:21:39
Eliminar fila intermedia en StringGrid andre OOP 0 30-06-2003 15:57:33


La franja horaria es GMT +2. Ahora son las 12:50:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi