Witam!
Kurcze męczę się nad jednym warunkiem.
Chodzi o to, że gdy odpalam program to on przy starcie (onCreate) pobiera pierwszą z góry nazwę pliku w FileListBox'ie. Pliki są umieszczone w jakimś folderze. Wszystko jest dobrze gdy pliki są w nim i wtedy ładnie pobiera
pierwszy z góry.
Natomiast gdy folder jest pusty to wyskakuje błąd z Itemem:
EStringListError with message 'List index out of bounds (0)'.
Jak napisac warunek "jeśli jest są pliki w folderze to pobieraj nazwę pierwszego pliku w FileListBox, w przeciwnym wypadku nie pobieraj"? Stoję z projektem przez to :( Pomocy. Dziękuję.
If FileListBox[.Items].Count>0 then {Pobieraj} else {Nie pobieraj};
Nie jestem pewny, czy to Items tam ma być, nie chce mi się sprawdzać, dlatego dałem w nawias kwadratowy. Jak nie pójdzie bez Items, to spróbuj z Items.
Generalnie wiem jak napisać konstrukcję warunku ale chodzi mi własnie o to jak napisać kodem te Twoje {Nie pobieraj} po else :) I w tym siedzi cała bajka. Z tym nie mogę sobie poradzić :(
Albo po else daj showmessage('nie znalazlem pliku'); albo w ogóle wyrzuć wszystko od słowa else :)
Niestety takie cos też nie działa:
If FileListBox1.Items.Count>0 then
Edit5.Text:=FilelistBox1.Items[0] else
showmessage('Nie znalazlem pliku');
Bez else też próbowałem :(
EStringListError with message 'List index out of bounds (0)'.
- wydaje mi się, a nawet jestem pewien że problem hest gdzie indziej niż przy wpisywaniu do edita nazwy tego pliku.
sprawdziłem u siebie, wszystko działa.
begin
FileListBox1.Directory:='c:\1'; //pusty katalog
if FileListBox1.Items.Count>0 then
Edit5.Text:=FilelistBox1.Items[0]
else showmessage('Nie znalazlem pliku');
end;
Zgadza się! Błąd siedzi w innym miejscu źródła. Przetestowałem tą prockę na nowym projekcie i działa. Idę szukać zatem tego awaryjnego miejsca. Dzięki.
[browar]