Listbox, pętla wczytywanie pozycji

0

Witam potrzebuję procedurę która kolejno będzie wykonywała:

1.Sprawdza czy pierwszy item jest różny od '' ( niczego, czyli po prostu czy istnieje)
2. Wpisuje do memo jakiś tekst
3. kasuje pierwszy item listboxa
3. Powtarza to aż do momentu kiedy pierwszy item listboxa będzie pusty

próbuję z pętlami ale nie bardzo wiem którą użyć, wydawało mi się że odpowiednia będzie pętla while... do no i wyskrobałem taki kod:

 begin
while login.Items[0] <> '' do
begin
 memo1.Lines.Add('Pobieram plik' + login.Items[0] ) ;

login.Items.Delete(0);

ale nie działa

pomożecie? Z góry dziękuję ;)

0

O ile pamiętam, nie można się odwołać do elementu, który nie istnieje, w tym wypadku o indexie 0. Sprawdź czy możesz porównać w ogóle (do tego służy try..except), a potem jeżeli istnieje pierwszy element, sprawdzasz czy nie jest pusty. Tak jak teraz, tylko dodaj try..except, jak nastąpi wyjątek to nic nie rób, po prostu następny obieg pętli będzie.

0

a jak sprawdzić czy istnieje pierwszy element..

to by było coś takiego

try
istnieje pierwszy element
except
wykonaj pętlę
while
pierwszy element nie jest pusty
do begin
wpisuj do memo i takie tam

0

Zależy jaka ma być kolejność działań. Sprawdzanie czy istnieje odwołuje się do if (listbox.Items[0] <> '');, tu powinno wywalić jak nie ma pierwszego elementu. A resztę tak jak chcesz.

0

nie radzę sobięz tym try except
Jak zsprawdzić czy istnieje pierwszy element bo

 begin
try login.Items[0] <> '';
except.....

nie działa

Edit:

Wykombinowałem coś takiego:

 begin
try memo1.Lines.Add('Pobieram plik  ' + login.Items[0] ) ;
  login.Items.Delete(0);;
except
memo1.lines.add(' braklo loginow');

ale nadal jak braknie pozycji w login (listbox) to sie sypie

0

Dobra już zrobiłem:

 begin
while login.Items.Count > 0 do
begin
memo1.Lines.Add('Pobieram plik  ' + login.Items[0] ) ;
  login.Items.Delete(0);
0
function CzyIndexIstnieje(Index: Integer): Boolean;
begin
  Result := (Index <= Form1.ListBox1.Items.Count - 1) and (Index >= 0);
end;

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