Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.09.2019, 20:24   #1
Devvver
Пользователь
 
Аватар для Devvver
 
Регистрация: 30.01.2010
Сообщений: 23
Вопрос Ошибка list index out of bounds(-1)

Код:
procedure TForm1.sButton11Click(Sender: TObject);
var
u9:integer;
begin
refreshF:=false;
for u9:= sortedkeys.Count-1   downto 0 do
sListView1.Items.BeginUpdate ;
begin
 IF pos(sEdit1.Text, sortedkeys[u9])<>0   then begin
  sortedkeys.Delete(u9);
  sortedZastota.Delete(u9);
 end;
end;

sListView1.Items.Clear;
 sListView1.Items.Count := sortedkeys.Count;
 sListView1.Items.EndUpdate ;
 refreshF:=true;
 sListView1.Invalidate;
end;
Получаю всегда Ошибка list index out of bounds(XX) Понимаю, что ошибка связана с выходом за размеры массива, но в упор не вижу ошибку.
мой сайт о Таиланде https://tailand-gid.org
Devvver вне форума Ответить с цитированием
Старый 05.09.2019, 20:39   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что за цикл, в котором только sListView1.Items.BeginUpdate? Операторные скобки хаотичны )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.09.2019, 20:47   #3
Devvver
Пользователь
 
Аватар для Devvver
 
Регистрация: 30.01.2010
Сообщений: 23
По умолчанию

sortedkeys - Stringlist
sortedZastota - Stringlist

В цикле идет проверка на вхождение слова - если оно есть нужно удалить элемент.
После выноса sListView1.Items.BeginUpdate ; за предел цикла ошибка перестала возникать в цикле, а появляется при попытке закрыть программу (та же)
мой сайт о Таиланде https://tailand-gid.org
Devvver вне форума Ответить с цитированием
Старый 05.09.2019, 20:58   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

sListView1.Items.Clear; //допустим почистил
sListView1.Items.Count := sortedkeys.Count; //что это по твоему делает?
или листвью у тебя виртуальный?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 05.09.2019 в 21:00.
Аватар вне форума Ответить с цитированием
Старый 05.09.2019, 21:02   #5
Devvver
Пользователь
 
Аватар для Devvver
 
Регистрация: 30.01.2010
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
sListView1.Items.Clear; //допустим почистил
sListView1.Items.Count := sortedkeys.Count; //что это по твоему делает?
Создаю XXX элементов Item
Это нужно OnData у sListView

Код:
procedure TForm1.sListView1Data(Sender: TObject; Item: TListItem);
var
kk:integer;
begin
  if refreshF=true then
begin


IF   inhg=0   then  begin
kk:=sortedlist.Count ;
inhg:=inhg+1;
end else
kk:= sortedkeys.Count;


//sortedlist.Count:=sortedkeys.Count;
  if Assigned(sortedlist) and (Item.Index <= kk) then
  begin
  item.Caption:= sortedkeys[Item.Index] ;
  item.SubItems.Add(sortedZastota[Item.Index]);

  end;
end;

end;
Я не гружу все данные в ListView он виртуальный с подгрузкой данных, так как записей очень много (100К-300К в среднем)

Для лучшего понимания







Обновление- нашел ошибку и исправил, Аватар спасибо!
мой сайт о Таиланде https://tailand-gid.org

Последний раз редактировалось Devvver; 05.09.2019 в 21:52.
Devvver вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка: List index out of bounds (3) Артист Общие вопросы Delphi 4 23.11.2017 10:19
Ошибка List index out of bounds (8) Dima170792 БД в Delphi 14 30.11.2014 14:06
ошибка List index out of bounds (0) Natalie023 Помощь студентам 9 17.12.2011 19:27
Ошибка List Index out of bounds Rapala Помощь студентам 1 03.05.2010 17:33
ошибка:List index out of bounds tanek Помощь студентам 7 26.12.2009 20:38