Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cómo borrar filas de un StringGrid (https://www.clubdelphi.com/foros/showthread.php?t=55676)

sac 23-04-2008 19:53:48

Cómo borrar filas de un StringGrid
 
Hola de nuevo "gente delphi"
como verán me cuesta familiarizarme con el gridstring.
Resulta que tengo uno con solo 2 columnas y algunas filas. La idea es seleccionar la opcion borrar que tengo dentro de un popup y así eliminar UNA fila del grid y hacerle un sort al stringlist para que me quede ordenada nuevamente.
Cuál es el evento que tengo que usar? cómo lo harían facilmente?

BlueSteel 23-04-2008 20:45:29

Cita:

Empezado por sac (Mensaje 282048)
Hola de nuevo "gente delphi"
como verán me cuesta familiarizarme con el gridstring.
Resulta que tengo uno con solo 2 columnas y algunas filas. La idea es seleccionar la opcion borrar que tengo dentro de un popup y así eliminar UNA fila del grid y hacerle un sort al stringlist para que me quede ordenada nuevamente.
Cuál es el evento que tengo que usar? cómo lo harían facilmente?


Hola sac...

bueno, ese tema ya ha sido tratado.. puedes utilizar buscar del foro.. y encontraras estos resultados

Despues de un tiempo usandolo, me he cambiado a varios componentes... uno de ellos es el NiceGrid.. que permite hacer eso de una forma más fácil.. y el otro es utilizando Tablas de Memoria (algo así como virtuales...), en donde puedes tener un mayor manejo de los datos a tratar...

Aqui te pongo el ejemplo de borrar un fila de un StringGrid que para este caso se llama Items_Paso

Código Delphi [-]
     If MessageDlg('Seguro de borrar el Items '+#13+Items_Paso.Cells[1,Items_Paso.Row], mtConfirmation, [mbYes, mbNo], 0) = mrYes Then
        Begin
             For i := Items_Paso.Row To Items_Paso.RowCount - 1 Do
             Begin
                  Items_Paso.Rows[i][0] := Items_Paso.Rows[i+1][0];
                  Items_Paso.Rows[i][1] := Items_Paso.Rows[i+1][1];
                  Items_Paso.Rows[i][2] := Items_Paso.Rows[i+1][2];
                  Items_Paso.Rows[i][3] := Items_Paso.Rows[i+1][3];
                  Items_Paso.Rows[i][4] := Items_Paso.Rows[i+1][4];
             End;
             Items_Paso.RowCount := Items_Paso.RowCount -1;
        End;

Salu2:p:D

cascarrabias 24-04-2008 08:38:52

Coincido con BlueSteel, NiceGrid es un componente muy util!

Neftali [Germán.Estévez] 28-04-2008 10:51:23

Este es el que he utilizado alguna vez:

Código Delphi [-]

procedure TFormStringGrid.__DeleteRow(SG: TStringGrid; Index:Integer);
var
  i:Integer;
begin

  // Sólo está la de títulos?
  if (SG.RowCount = 1) then begin
    Exit;
  end;

  for i := Index to (SG.RowCount) do begin
    SG.Rows[i].Assign(SG.Rows[i+1]);
  end;

  // No quedan Líneas?
  if (SG.RowCount > 1) then begin
    SG.RowCount := SG.RowCount - 1;
  end
  else begin

  end;
end;


La franja horaria es GMT +2. Ahora son las 07:45: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