Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 05.09.2019, 21:24   #1
Devvver
Пользователь
 
Аватар для Devvver
 
Регистрация: 30.01.2010
Сообщений: 20
Репутация: 5
Вопрос Ошибка 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, 21:39   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,905
Репутация: 6688
По умолчанию

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

sortedkeys - Stringlist
sortedZastota - Stringlist

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

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

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

Цитата:
Сообщение от Аватар Посмотреть сообщение
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 в 22:52.
Devvver вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка: List index out of bounds (3) Артист Общие вопросы Delphi 4 23.11.2017 11:19
Ошибка List index out of bounds (8) Dima170792 БД в Delphi 14 30.11.2014 15: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 21:38


09:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.