Listbox, sprawdzanie czy item istnieje

0

Witam, jak sprawdzić, czy item istnieje ?
Robię coś takiego:


begin


if (Listbox1.Items[0] <> '') then
begin

 //Tresc procedury

      end
else
begin

//Tresc procedury

end;

if (Listbox1.Items[1] <> '') then
begin

 //Tresc procedury

      end
else
begin

//Tresc procedury

end;


      end;

I teraz tak:
Item 0 istnieje
Item 1 nieistnieje

I gdy kompiluje, po wykonaniu instrukcji z Itemu 0 wywala mi taki błąd:
"List index out of bounds (1)

Wiecie, może gdzie robię błąd, albo jak to zrobić ?
Pozdrawiam.

0

jak chcesz sprawdzać wszystkie itemy w listboxie, to zrób do tego pętlę jakąś np. coś w stylu

var
i, liczba_itemow: Integer;
begin
liczba_itemow:= ListBox1.Items.Count; //nie pamiętam, czy -1 trzeba dać do tego, czy nie, sprawdź jak zlicza, nie chce mi się delphi odpalać teraz
for i:= 0 to liczba_itemow -1 do
begin
//tutaj kod jakiś, czyli warunek sprawdzający IF item o indeksie "i".... bla bla bla
end;
1

Możesz sprawdzić Count jeżeli poszukiwany index jest większy od -1 i mniejszy od Count to na pewno istnieje.
Na upartego można napisać funkcję:

function ItemExists(Alist: TListBox; AIndex: Integer): Boolean;
begin
  result:= False;
  if Assigned(Alist) then
    result:= (AIndex > -1) and (AIndex <  Alist.Count);
end;

//przykład użycia:
  if ItemExists(ListBox1, 0) then
    ShowMessage('jest')
  else
    ShowMessage('nie ma')
0

ok, dzięki za pomoc, zaraz wypróbuję wasze rady i dam znać, czy się udało.


Dzięki wielkie działa ! :)

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