Usuwanie wierszy z warunkiem w StringGrid

Odpowiedz Nowy wątek
2014-12-28 20:17
Dominikana
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ę.

Pozostało 580 znaków

2014-12-28 20:51

Usuwaj od końca.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2014-12-28 21:01
Dominikana
0

No oczywiście...

...

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

...

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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