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

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

Удаление строк из ListBox [D7]


P0tia ©   (2003-08-27 23:29:00) 

Есть код. Который сначало пересылает в listbox все значение полей, потом стирает дубли и еще он должен стирать строки с одиночными записими, но последнее почемуто не работает, помогите.


Datamodule2.Table1.First;
i:=0;
j:=0;
for i:=0 to DataModule2.Table1.RecordCount-1 do begin
ListBox4.Items.Add(Datamodule2.Table1.Fields[5].AsString);
Datamodule2.Table1.Next;
end;
SL := TStringList.Create;
SL.Duplicates := dupIgnore;
SL.Sorted := True;
i:=0;
try
for i := 0 to ListBox4.Count - 1 do
SL.Add(ListBox4.Items[i]);
ListBox4.Items := SL
finally
SL.Free;
end;

// Загруска данных в Excel
Excel := CreateOleObject("Excel.Application");
Excel.Visible:=True;
Excel.WorkBooks.Add;
i:=0;
DataModule2.Table1.Filtered := false;
filt := Datamodule2.Table1.Filter;
For i:=0 to ListBox4.Count-1 do begin
DataModule2.Table1.Filter := ""+filt+" and Primechanie = """+ListBox4.Items[i]+"""";
DataModule2.Table1.Filtered := true;
if DataModule2.Table1.RecordCount = 1 then
begin
ListBox4.ItemIndex := i;
listBox4.DeleteSelected;
edit41.Text := ListBox4.Items[i];
end;
end;


Кщд   (2003-08-28 06:10:00) [1]

Guirrillero
Конечно там. Автор просто не понимает, что удаляя элемент, он сокращает количество элементов списка.


Guerrillero   (2003-08-27 23:59:00) [2]

Ошибка какая?
Скорее всего в этом For i:=0 to ListBox4.Count-1 do
Попробуй цикл с конца начинать


P0tia   (2003-08-27 23:37:00) [3]

И еще как можно повторить FOR с темже значением щетчика.


Наверх

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