TValueListEditor - czyszczenie listy

0

Hej!

Jak oczyścić listę TValueListEditor (klucze i wartości) - coś na wzór Memo1.Clear; ?

Próbowałem ten problem rozwiązać, ale pojawia się błąd "List index out of bounds (-1)"...

Count, i2: integer;

//----------------CUT HERE---------------

Count := ValueListEditor.RowCount;

if Count > 0 then
for i2 := 0 to Count - 1 do
ValueListEditor.DeleteRow(i2);

//----------------CUT HERE---------------

0
Count := ValueListEditor.RowCount;
if Count > 0 then
for i2 := 0 to Count - 1 do
ValueListEditor.DeleteRow(0);

albo

Count := ValueListEditor.RowCount;
if Count > 0 then
for i2 := Count - 1 downto 0 do
ValueListEditor.DeleteRow(i2);
0

Przypisujesz zmiennej count wartość :

Count := ValueListEditor.RowCount;

Załóżmy, że tych wierszy jest tam 30, i taką wartość przyjmuje zmienna count.
Potem kasujesz w pętli te wiersze. Po pierwszym wykonaniu pętli jest już wierszy 29, a pętla ciągnie się i tak do 30, bo tak jej kazałeś. I tak za każdym przebiegiem pętli liczba wierszy zmniejsza się o 1, aż w końcu i2 przyjmie wartość większą od ilości wierszy, i stąd błąd. Powinieneś spróbować pobawić się z

downto

w pętli.

0

Nie chwal dnia przed zachodem... :-/

Oba te rozwiązania skutkują tym samym błędem, ze zmienną wartością w nawiasie (out of bounds (-1) albo (0))...
Jak to rozwiązać?

// no to skorzystaj z debugera, będziesz wiedział, co jest nie tak - ŁF

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