Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Borrar fila seleccionada de un componente TStringGrid (https://www.clubdelphi.com/foros/showthread.php?t=37511)

JM75 15-11-2006 14:42:24

Borrar fila seleccionada de un componente TStringGrid
 
Hola, tengo un componente TStringGrid con una serie de filas, siendo la primera fila fija. Lo que necesito es saber cómo se puede borrar la fila seleccionada. Hasta ahora he conseguido borrar la primera fila que no es fija con el siguiente código que me han pasado, pero no hace lo que necesito:

while (aux < Grid.RowCount) do
begin
Grid.Rows[aux]:=Grid.Rows[aux+1];
index:=index+1;
end;
if (Grid.RowCount > 2) then
begin
Grid.RowCount:=Grid.RowCount-1;
end;

Gracias por adelantado.

aldmoscardi 15-11-2006 15:04:32

borrar fila StringGrid
 
Lo que te sugiero es en actives la propiedad de la grilla selectrow, y que tomes el numero de fila al realizar clic sobre la fila, berifiques que no sea nulo y procedas a pasarle un clear al numero de fila seleccionada, cualquier cosa manda un correo que te mando un ejemplo

Neftali [Germán.Estévez] 15-11-2006 15:53:03

Una opción:

Código Delphi [-]
    //-----------------------------------------------------------
    // Mover el resto de filas hacia arriba
    procedure DeleteRow1(StringGrid: TStringGrid; ARow: Integer);
    var
      i: Integer;
    begin
      with StringGrid do
      begin
        // MOver una posicion hacia arriba el resto de líneas
        for i := ARow to RowCount - 2 do
          Rows[i].Assign(Rows[i + 1]);
        // Decrementar el número total de líneas
        RowCount := RowCount - 1
      end;
    end;
    //-----------------------------------------------------------


y otra opción:
Código Delphi [-]
  //-----------------------------------------------------------
    procedure DeleteRow2(StringGrid: TStringGrid; ARow: Integer);
    begin
      with THackStringGrid(StringGrid) do
        DeleteRow(ARow);
    end;
  //-----------------------------------------------------------

Te faltará (en el segundo caso) esta definición:

Código Delphi [-]
THackStringGrid = class(TStringGrid);

JM75 16-11-2006 10:31:06

Borrar fila seleccionada de un componente TStringGrid
 
Hola, muchas gracias a los dos. Al final he implementado una mezcla de lo que tenía con la primera opción que me sugirió Neftali:

<DIV class=frame_codigo_delphi>Código Delphi [-]<DIV class=texto_codigo_delphi id=delphi_div_455c2fd095f16>
index := sgViajesCorto.Row;
if (sgViajesCorto.RowCount <> index+1) then
begin

while (index


La franja horaria es GMT +2. Ahora son las 01:28:52.

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