Jak moge z TstringList usunąć linijki o numerach itemów zaznaczonych w komponencie ListBox?
Próbowałem tak:
ListBox1.Deleteselected;
Files.Delete(ListBox1.ItemIndex); //Files to jest TstringList
i wszystko działało ale potem nadzeszła potrzeba jeszcze wywołania procedurey pod tym i przestało działać.
Miałęm więc tak
ListBox1.Deleteselected;
Files.Delete(ListBox1.ItemIndex); //Files to jest TstringList
Numeruj; //Nazwa procedury
Procedure Numeruj czyści komponnet llistbox a nastepnie dodaje do niego itemy z TstringList Files numerując je przy tym.
No i tak nie działa. Bo jeśli mam zaznaczone dwa itemy (pod sobą) to usówa tytlko ten wyżej, jeśli zaznaczone są dwa itemy miedzy którymi jest przerwa jednego itemu to kasuje ten item miedzy tamtyi dwoma. Jeśli jest zaznaczone wiecej to już sam nie wiem jak to działa.
Gdy wstawiłem to do pętli też nie działa:
for i := 0 to ListBox1.Items.Count - 1 do
begin
if ListBox1.Selected[i] then
begin
Files.Delete(i);
Numeruj;
end;
end;
Wywoływana procedura numeruj nie wiem czy powinna byc w tym miejscu, jednak gdziekolwiek by nie była to i tak nie działa wywalając AccessViolation List index ouf of bounds i jakas tam liczba'. W zasadzie to sie nie dziwe czemu to nie działa, bo przecież po usunięciu pierwszego zaznaczonego itemu numery indexów w Files ulegają zmianie.
No ale więc jak to powinienem zrobić? Mam nadzieję ze zrozumieliście o co mi chodzi, mimo że sporo namieszałęm.