![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление строк из 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 с темже значением щетчика.