Поведение MDI окон
работаю с несколькими MDI окнами, периодически переключаясь между ними.
Окно "Каталог" разделено горизонтальным Splitterom. Чаще всего окна "развёрнуты" в границы окна приложения. Но, иногда, размещаю окна "по горизонтали".
Если горизонтальный Splitter делит окно "Каталог" пополам, то после размещения окон командой:
Код:
TileMode = tbHorizontal; Tile();
горизонтально, высота окна станет соизмерима, а может и меньше, высоты Splitter-a,
и я не увижу ни Splitter-a ни информации в верхней половине моего окна "Каталог".
Чтобы программа автоматом исправляла подобную ситуацию я решил в обработчике
OnResize формы окна корректировать высоту Splitter-a как мне надо.
Всё работает, но ....
Я и не думал, что если одно из MDI окон "развёрнуто", то остальные - НЕТ!
А при переходе к другому окну, например комбинацией Ctrl+Tab, текущее окно переводится из "развёрнутого" в "нормальное" и только после этого уходит на задний план, а новое окно из "нормального" переходит в "развёрнутое" и отображается.
Именно такая последовательность действий ( убирая окно с переднего плана оно переводится в состояние "не развёрнуто" ), как говорится, путает мне все карты!!!
Т.к. при этом вертикальный размер окна уменьшается, запускается обработчик OnResize, уменьшается высота Splitter-a!!! Потом, возвращаясь в моему окну "Каталога" я вижу изменённое, но не по моему желанию, положение разделителя.
Что посоветуете?