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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2023, 08:40   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Удалить отмеченные чикетом

А не могли бы Вы подсказать как удалить записи? То есть из текстового файла загружаю список. И нужно так же , какие отмечены чикетом, то те удалить записи.


Код:
if ListBox1.Count < 1 then Exit; 
  for var I: Integer := 0 to ListBox1.Count - 1 do
    if ListBox1.ListItems[I].IsChecked then 
      ListBox1.Items.Delete(I);

Не работает
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 13.08.2023, 09:50   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Как только вы удаляете элемент, то Count уменьшается и индексация смещается. В таких случаях запускают цикл в обратном порядке, то есть как-то так:

Код:
for var I: Integer := ListBox1.Count - 1 downto 0 do
Arigato на форуме Ответить с цитированием
Старый 13.08.2023, 10:26   #3
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
for var I: Integer := ListBox1.Count - 1 downto 0 do
Ошибку выдает: [DCC Error] EXT.pas(136): E2029 'DO' expected but 'DOWNTO' found
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 13.08.2023, 11:21   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

А вы на чем пишете, что оно downto не понимает?
Arigato на форуме Ответить с цитированием
Старый 13.08.2023, 11:30   #5
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
А вы на чем пишете, что оно downto не понимает?
firemonkey
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 13.08.2023, 12:36   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Ну я озвучил идею, как технически реализовать, сами смотрите, может там скобки нужны или вынести объявление переменной I:
Код:
for var I: Integer := (ListBox1.Count - 1) downto 0 do
С Делфи давно не работаю и что там наруковертили с синтаксисом не в курсе. Но downto обязан быть, это еще база.
Arigato на форуме Ответить с цитированием
Старый 13.08.2023, 13:01   #7
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Спасибо!
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ужасный и невидимый вирус. Как его найти и удалить? Как удалить этот наглый вирус, замедляющий интернет и компьютер? polinaistomina95 Безопасность, Шифрование 15 02.04.2018 14:58
Не могу записать отмеченные строки в массив. Хочу сделать ListView с чекбоксами и кнопку, при нажатии на которую данные с отмеченных строк записываются в массив valerrkaaa Java Мобильная разработка (Android) 0 30.10.2017 14:19
Вывести отмеченные чекбоксы koks8282 HTML и CSS 1 08.04.2017 10:59
удалить дубли в tstringlist, и удалить по списку AHTOLLlKA Компоненты Delphi 2 17.01.2010 10:20
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36