[Delphi] List Index Out of Bounds

0

co oznacza ten blad i dlaczego wyskakuje gdy mam jedna pozycje w ListBoksie i przepuszczam przez niego petle for?

for i:=0 to ListBox1.Items.Count do begin
if Listbox1.Items.Strings[ListBox1.ItemIndex] = tablica[1] then begin
j := i;
break;
end;
end;

Petla ma porownywac po kolei kazda pozycje w listboksie z pewnym stringiem i przyporzadkowac ja do zmiennej j.

0

Spróbuj tak:

for i:=0 to ListBox1.Items.Count-1 do begin
if Listbox1.Items.Strings[ListBox1.ItemIndex] = tablica[1] then begin
j := i;
break;
end;
end;

0

Spróbuj tak:

for i:=0 to ListBox1.Items.Count-1 do begin
if Listbox1.Items.Strings[ListBox1.ItemIndex] = tablica[1] then begin
j := i;
break;
end;
end;

dzialajacy kod:

for i:=0 to ListBox1.Items.Count-1 do begin
if Listbox1.Items[i] = tablica[1] then begin
j := i;
break;
end;
end;

dzieki za pomoc [browar]

0

bład jest wywołany tym że Count to liczba Itemów ale one są liczone od zera czyli index ostatniego jest równy Count -1. Item o Indexsie Count już nie istnieje i wtedy Out of Bounds :)

0

"List Index Out of Bounds" oznacza "indeks listy poza zakresem". Zmienna j nie ma nic do rzeczy, chodzi o wywołanie listboxa i tablicy.
Zrób to tak:

for i:=0 to ListBox1.Items.Count-1 do begin //jeśli nie będzie sprawdzać ostatniej pozycji, usuń "-1", ale chyba powinno tam być. Najpierw sprawdź jak działa
if Listbox1.Items[i] = tablica[1] then
begin
j := i;
break;
end;
end;

Jak zwykle nie gwarantuję że działa bo pisałem z pamięci :)

Qrczę, za późno.....

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