![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удалить строку из ListBox по условию [D7, WinXP]
kyn66 © (2006-09-29 12:24:00)Пробегая по всем итемам, выискиваю ненужные и хочу удалить. Делаю RepFileListBox.DeleteSelected. Но оно не срабатывает, что не так?
Ketmar (2006-09-29 13:11:00) [1]>[4] kyn66(c) 29-Sep-2006, 13:01
второй быстрее. %-)
Ketmar (2006-09-29 13:11:00) [2]а вообще -- нельзя менять количество элементов в списке, если используешь for. только while/repeat в таких случаях.
Dmitrij_K (2006-09-29 13:11:00) [3]
> Мой выдает ошибку
Включи мозг.
kyn66 (2006-09-29 13:01:00) [4]Да, работает, спасибо !!! в чем тока разница оформления цикла?
Мой выдает ошибку, предложенный - работает на ура !
for i := 0 to Pred(RepFileListBox.Count) do
и
for i := RepFileListBox.Items.Count-1 downto 0 do
stone (2006-09-29 12:43:00) [5]for i := RepFileListBox.Items.Count-1 downto 0 do
if not RupsInParam(RepFileListBox.Directory, RepFileListBox.Items[i]) then
RepFileListBox.Items.Delete(i);
kyn66 (2006-09-29 12:38:00) [6]
procedure TMainFrm.FindFile;
Var
i : Integer;
begin
RepFileListBox.Mask := '???_info.rpt';
RepFileListBox.Directory := RemoveBackSlash(ImportPath);
RepFileListBox.Update;
for i := 0 to Pred(RepFileListBox.Count) do
if not RupsInParam(RepFileListBox.Directory, RepFileListBox.Items[i]) then
begin
// RepFileListBox.Selected[RepFileListBox.Itemindex] := True; - ???
RepFileListBox.DeleteSelected;
end;
RepFileListBox.Update;
LoadReports;
end;
stone (2006-09-29 12:26:00) [7]код в студию