Usuwanie wierszy z warunkiem w StringGrid

0

Witam

Mam oto kodzik, który usuwa mi wiersze ze StringGrid, niespełniające jakiegoś kryterium:

procedure DeleteRow(Grid: TStringGrid; ARow: Integer);
var
   i: Integer;
begin
   for i := ARow to Grid.RowCount - 2 do
     Grid.Rows[i].Assign(Grid.Rows[i + 1]);
   Grid.RowCount := Grid.RowCount - 1;
end;

procedure TForm1.Button8Click(Sender: TObject);
var
   i:integer;
begin
   for i := 1 to jvStringGrid4.RowCount - 1 do
       if  JvStringGrid4.Cells[3,i] <> DateToStr(Now) then
     DeleteRow(jvStringGrid4, i);
end;

Kod spełnia swoją rolę, lecz nie do końca. Ma usuwać wszystkie wiersze, w których nie ma dzisiejszej daty w kolumnie DATA.
Jednak zostawia na samej górze (row 1, nie licząc komórek tytułowych) wiersz z inna datą i muszę jeszcze raz kliknąć na Button8, aby się poprawiło.

Jak to można poprawić, aby usuwał poprawnie niechciane wiersze za pierwszym razem? Dziękuję.

1

Usuwaj od końca.

0

No oczywiście...

...

for i:=jvStringGrid4.RowCount - 1 downto 1 do

...

Od razu lepiej. Z głowy mi to wyleciało. :) Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1