Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Поведение MDI окон

3.2K
09 июля 2008 года
nikipelovav
152 / / 12.04.2006
Ситуация:

работаю с несколькими MDI окнами, периодически переключаясь между ними.
Окно "Каталог" разделено горизонтальным Splitterom. Чаще всего окна "развёрнуты" в границы окна приложения. Но, иногда, размещаю окна "по горизонтали".

Если горизонтальный Splitter делит окно "Каталог" пополам, то после размещения окон командой:
 
Код:
TileMode = tbHorizontal;  Tile();

горизонтально, высота окна станет соизмерима, а может и меньше, высоты Splitter-a,
и я не увижу ни Splitter-a ни информации в верхней половине моего окна "Каталог".

Чтобы программа автоматом исправляла подобную ситуацию я решил в обработчике
OnResize формы окна корректировать высоту Splitter-a как мне надо.

Всё работает, но ....

Я и не думал, что если одно из MDI окон "развёрнуто", то остальные - НЕТ!
А при переходе к другому окну, например комбинацией Ctrl+Tab, текущее окно переводится из "развёрнутого" в "нормальное" и только после этого уходит на задний план, а новое окно из "нормального" переходит в "развёрнутое" и отображается.

Именно такая последовательность действий ( убирая окно с переднего плана оно переводится в состояние "не развёрнуто" ), как говорится, путает мне все карты!!!
Т.к. при этом вертикальный размер окна уменьшается, запускается обработчик OnResize, уменьшается высота Splitter-a!!! Потом, возвращаясь в моему окну "Каталога" я вижу изменённое, но не по моему желанию, положение разделителя.

Что посоветуете?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог