Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #7  
Старый 16.04.2013, 17:45
xbron xbron вне форума
Прохожий
 
Регистрация: 15.04.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Все довольно просто. В конструкции for задаются границы определяющие значение счетчика на каждой цикле. В вашем случае:
Код:
for i:=1 to listbox1.Items.Count-1 do
(Кстати, с границами вы тоже наврали. Элементы в listbox1 начинаются с 0, а не с 1.)
Так вот, for вычисялет значение для правой границы только один раз, при входе в цикл. Т.е. если у вас при входе в цикл было 10 элементов в listbox1.Items.Count, то 10 раз он и будет выполнятся, независимо от того что вы будете делать внутри цикла с listbox1. И если в результате удаления элементов из listbox1 у вас их станет меньше 10, то вы получите ошибку выхода за границы. Но! Если цикл работает в обратную сторону, т.е:
Код:
for i:=listbox1.Items.Count-1 downto 0 do
то тут уже ничего страшного не произойдети если вы удалите текущий элемент, ведь на следующем проходе он будет двигаться к началу, и никакой ошибки выхода за границы быть уже не может.

Надеюсь теперь понятно.
Теперь да, но задача-то не решена )) Всё равно не проверяет на повторения ((
И кое-что ,
Код:
 f:=listbox1.Items.IndexOf(listbox1.Items.strings[i]);
F принимает значения от 0 до 2, но никак не -1, если существует повторение , что не так?

Последний раз редактировалось xbron, 16.04.2013 в 17:50.
Ответить с цитированием
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025