![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Menu out of range [D5, WinXP]
Peroon © (2002-11-26 22:29:00)Пишу цикл удаления всех пунктов меню кроме двух последних. Делаю вот так
for i:=0 to MainForm.PopupMenu1.Items.Count-3 do
MainForm.PopupMenu1.Items.Delete(i);
но Delphi мне постоянно выдает Menu out of range. В чем дело?
Peroon (2002-11-26 22:47:00) [1]Блин!!! Точно, каунт тоже ведь уменьшается!
Спасибо :))) Это все невнимательность! :))
oomneeq (2002-11-26 22:40:00) [2]C каждым делете реальный каунт уменьшается и поэтому i в конце твоего цикла оказывается больше, чем осталось айтемов в списке
делай либо обратный цикл - даунту либо так:
while MainForm.PopupMenu1.Items.Count>2 do
MainForm.PopupMenu1.Items.Delete(0);
ну и книжки почитывай :)
asmith (2002-11-26 22:35:00) [3]Здесь буквально вчера задавали точно такой же вопрос об удалении строк из списка. Items у любого меню - также список, так что все ранее сказанное справедливо и тут. Опять наступаем на те же самые грабли!