Toon posts:

[DELPHI] Row verwijderen uit stringgrid

Pagina: 1
Acties:
  • 117 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik wil de geselecteerde row uit een StringGrid verwijderen.
Ik probeer het nu met
StringGrid1.Rows[StringGrid1.Row].Delete(StringGrid1.Row);
maar krijg dan een error van "Cannot insert or delete rows from grid"

Hoe moet ik dit dan doen?

bvd

  • Eegee
  • Registratie: Januari 2000
  • Laatst online: 16-09 16:22

  • 9900578Heck
  • Registratie: Juli 2001
  • Laatst online: 21-07 09:24
jij heb geluk dat ik dat net in een progje was aan het schrijven,
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure DeleteRow(a: TStringGrid; i: Integer);
var k, j: Integer;
begin
  with a do
  begin
    for k := i to RowCount-2 do
    for j := 0 to ColCount-1 do
      Cells[j, k] := Cells[j, k+1];
    RowCount := RowCount - 1
  end;
end;

function RowIsEmpty(a: TStringGrid;i: integer): boolean;
var j: integer;
begin
  result:=true;
  for j:=1 to 7 do
  begin
    result:=not(a.Cells[j,i]<>'');
    if not(result) then
    exit;
  end;
end;

en dan
code:
1
2
3
4
5
6
7
8
9
10
  i:=0;
  while i<sgAgents.RowCount-1 do
  begin
    if RowIsEmpty(sgAgents,i) then
    DeleteRow(sgAgents,i)
    else
    inc(i);
  end;
  if RowIsEmpty(sgAgents,sgAgents.RowCount-1) then
    DeleteRow(sgAgents,sgAgents.RowCount-1);

die laatste twee zijn om een laatste lege regel te verwijderen.

om alle lege regels uit een grid te verwijderen (is ook nog meer dan je vroeg ;) )

Verwijderd

Topicstarter
bedankt, hiermee zal het zeker wel lukken!