Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема при удалении последней вкладки на TabSet [D5]


Ghost del vonte ©   (2011-01-13 01:28:00) 

Доброго времени суток! Знаю что вопрос глупый но все же надеюсь на вашу помощь!

В моем МДИ приложении работает много окон (дочерних), внизу главной формы лежит Табсет, при добавлении нового окна в нем добавляется вкладка, пользователь может выбором вкладки переключится на соответствующее дочернее окно! Проблема в том, что все вкладки удаляются нормально (при удалении дочернего окна удаляется и соответствующая вкладка в Табсете), но вот когда удаляется ПОСЛЕДНЯЯ  вкладка, вылетает сообщение об ошибке http://content.foto.mail.ru/mail/ghostdelvonte/173/s-401.bmpпожалуйста подскажите как это устранить? Гугл мне не помог.... Заранее вам благодарен!


Ghost del vonte   (2011-01-13 17:02:00) [1]


> вкладки и по тегу,


Ошибка: -> и по тегу, <- А по тегу! :)


Ghost del vonte   (2011-01-13 17:01:00) [2]

Тема закрыта, я нашел выход:

При создании дочернего окна я присваивал его Tag-у номер созданной вкладки, а при удалении окна удалял не по индексу активной вкладки и по тегу, проблема исчезла, спасибо всем за внимание! :)


Ghost del vonte   (2011-01-13 06:24:00) [3]


> Какие обработчики событий Табсет используются в программе?


Только OnClick , а вот и обработчик его:

TForm(TabSet1.Tabs.Objects[TabSet1.TabIndex]).Show;


Германн   (2011-01-13 02:41:00) [4]

Какие обработчики событий Табсет используются в программе?

P,S. Использовать устаревший Табсет в современных приложениях конечно можно, но нужно "семь раз подумать, прежде чем его использовать!"  
Тем более так не стандартно.


Servy   (2011-01-13 02:26:00) [5]


> подскажите как это устранить?


Используйте отладчик. Если ошибка в приведенной строке, то очевидно, что TabSet1.Tabs.IndexOf(fmChild.Caption) был равен минус единице.


Ghost del vonte   (2011-01-13 01:41:00) [6]

Вот код удаления вкладки при удалении дочернего окна:  

with fmMain do
      TabSet1.Tabs.Delete(TabSet1.Tabs.IndexOf(fmChild.Caption));


Наверх

Титульная страница Поиск, карта сайта Написать письмо