Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление страниц PageControl, Выскакивает ошибка ... 
:(
    Опции темы
Marriage
Дата 20.12.2004, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



Код

 for i:=0 to PageControl.PageCount -1 do
   begin
    if PageControl.Pages[i].Tag = odsTemp.FieldByName('fk_id').AsInteger then
    begin
      ShowMessage(PageControl.Pages[i].Caption);
      ShowMessage(IntToStr(i));
      try
      PageControl.Pages[i].Free; <- выскакивает List Out of Bounds , почему ???????
      except
       ShowMessage('!!!');
      end;
       PageControl.Refresh;
    end;
   end;


Нимогу понять ошибку..
ЗАкладки динамически созданные ...



--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
z-END
Дата 20.12.2004, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Допустим при выполнении этого кода имелось 3 закладки, тоесть цикл должен выполниться 3 раза и удалиться хотябы одна, то при условии что удаляемая закаладка не последняя (к примеру вторая) то произойдет следующее:
После ее удаления цикл примет следующее значение т.е. 3 а вкладок останется 2, т.е. здесь и вылитит ошибка т.к. PageControl1.Pages[3] уже не существует т.к. ее индекс стал равен 2!
поэтому лучше делать так:
Код

i := 0;
while i < PageControl.PageCount - 1 do
    if PageControl.Pages[i].Tag = odsTemp.FieldByName('fk_id').AsInteger
            then PageControl.Pages[i].Free
            else Inc (i);

PageControl.Refresh;



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Marriage
Дата 20.12.2004, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



nJIaKca.spb
Пасиб ....
smile


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Satana
Дата 20.12.2004, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 564
Регистрация: 15.9.2004
Где: Ставрополь, СЗ ра йон

Репутация: 1
Всего: 5



или что тоже самое почти
for i:=PageControl.PageCount -1 downto 0 do
по идее тоже должно работать



--------------------
 Работай на себя 
www.abalentsev.com - Сайт портфолио.
www.pokushau.ru - Рецепты со всего мира.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0909 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.