StringGrid (Como excluir uma linha inteira)

19/05/2003

2

Gostaria de saber se é possivel excluir uma ROW(linha) inteira de uma StringGrid. Se tem 10 linhas quando eu excluir a ou as linhas selecionadas o rowCount ficar = x.

Obrigado.


Responder

Posts

19/05/2003

Pardal3000

Olá,

procedure GridDeleteRow(RowNumber: Integer; Grid: TStringGrid);
Var
i : Integer;
Begin
Grid.Row := RowNumber;
If (Grid.Row = Grid.RowCount -1) Then Grid.RowCount := Grid.RowCount - 1
Else Begin
For i := RowNumber To Grid.RowCount - 1 Do Grid.Rows[i] := Grid.Rows[i+ 1];
Grid.RowCount := Grid.RowCount - 1;
End;
End;


Use assim para deletar a linha selecionada:

GridDeleteRow(StringGrid.Row, StringGrid);

Espero q tenha ajudado!

[]´s

Pardal


Responder

20/05/2003

Edmar Zatarin

vc pode colocar este codigo em um button, ou no que desejar:

codigo valido para linha com 4 colunas

//verifica se há algo no grid
if (grid.RowCount <= 2) or (trim(grid.cells[0,grid.row]) = ´´) then
Exit;

//puxando a linha de baixo
for i := grid.row to grid.rowcount do
begin
grid.cells[0,i] := grid.cells[0,i+1];
grid.cells[1,i] := grid.cells[1,i+1];
grid.cells[2,i] := grid.cells[2,i+1];
grid.cells[3,i] := grid.cells[3,i+1];
grid.cells[4,i] := grid.cells[4,i+1];
{se a grid tivesse mais colunas, basta aumentar}
{grid.cells[5,i] := grid.cells[5,i+1];
.
.
.
grid.cells[n,i] := grid.cells[n,i+1];}
end;

//eliminando linha
grid.rowcount := grid.rowcount - 1;
end;


deleta a linha que selecionar e puxa as restantes abaixo para cima...


boa sorte.


Responder