![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 05.01.2013
Сообщений: 61
|
![]()
Скажите, пожалуйста, как в MDI приложении спрятать панельку, отображающаяся при сворачивании child-окна (см. вложение)?
Дело в том, что при сворачивания дочернего окна вместо стандартной панельки у меня будут формироваться вкладки на отдельной панели типа как в Windows'e. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
и какой вам тогда смысл в MDI?
Куда вы эти окна денете потом? И откуда будите доставать... |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 05.01.2013
Сообщений: 61
|
![]()
Самый прямой - работа с дочерними окнами
Очень просто - у меня есть мой специальный класс-список TWindowList для хранения + некоторые полезные методы для этих окон. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Попробуйте ShowWindow функцию...
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 05.01.2013
Сообщений: 61
|
![]()
Вообщем посмотрел и провел эксперименты. Работает криво.
Для скрытия дочернего окна MDI-приложения, при этом чтобы не создавалась панелька (см. первоначальный вопрос этого топика) использую такой код: Код:
Код:
это окно 1 спрячется с экрана, и при этом активизируется окно 2, которое было до этого не активно - все вроде бы хорошо, НО если попытаться свернуть окно 2, то вместо скрытие оно разворачивается на всю MDI-форму (максимизируется), если после этого окно 2 вновь попытаться свернуть, то оно свернется но почему-то вдруг появляется окно 1. Какой-то бред вообщем наступает. Почему так получается? Последний раз редактировалось fedorov2012; 05.01.2013 в 19:56. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Потому что Borland так реалализовал MDI-технологию в своё время. Ничего путного у вас не получится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 05.01.2013
Сообщений: 61
|
![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 05.01.2013
Сообщений: 61
|
![]()
Выявлена ещё одна проблема - ShowWindow(Self.Hande, SW_HIDE) скрывает только если Self.Active = True, в случае Self.Active = False оно не работает. Как выяснил:
Открывает в MDI-приложении окно1 максимизируем его, затем открываем окно 2 (оно автоматически максимизируется), затем сворачиваем окно2, а затем окно1, затем максимизируем окно 1 (через ShowWindow(Self.Hande, SW_SHOWMAXIMIZED), а теперь самое интересно когда мы начнем максимизировать окно2 (также через ShowWindow), то окно1 минимизируется почему-то (видать так работает MDI) и вот когда в WMSize этого окна приходит сообщение SW_MINIMIZED Self.Active=False и ShowWindow(Self.Hande, SW_HIDE) просто тупо не прячет окно и у нас в результате возникнет панельки (та что приведена в рисунке в начале топика). Как заставить ShowWindow(Self.Hande, SW_HIDE) работать при Self.Active = False? |
![]() |
![]() |
![]() |
#9 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
![]()
Вы хотите сделать однооконный интерфейс что ли? Тогда вовсе не в ту сторону смотрите...Взгляните лучше, что из себя представляют фреймы...
Будь проще и люди к тебе потянутся
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 05.01.2013
Сообщений: 61
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
При максимизации MDI child пропадают кнопки мини/максимизации | Sullla | Общие вопросы Delphi | 1 | 08.08.2011 08:32 |
как при сворачивании формы скрыть ее из панели | betirsolt | Общие вопросы Delphi | 3 | 17.04.2010 17:57 |
Передача параметра с MDI родителя в MDI child через DLL | ByXalkin | Общие вопросы Delphi | 0 | 15.12.2009 17:21 |
Передача параметров между MDI Child | 8alig8 | Общие вопросы Delphi | 7 | 22.06.2009 16:39 |
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? | dimonchuk | Общие вопросы Delphi | 1 | 11.08.2007 12:13 |