Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удалить строку из 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]

код в студию


Наверх

Титульная страница Поиск, карта сайта Написать письмо