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

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

MDI-интерфейс


Страницы:   1 2

BornInUSSR ©   (2009-08-13 11:47:00) 

Здравствуйте. Вопрос по MDI. В приложении MDI, если открывать окошко как Maximized, то все ранее открытые окошки становятся Maximized. Соответственно та же ситуация и с Restore, открыто Maximized окшко, открываем следующии как нормальное, и окошко, которое ранее было Maximized ресторится.
Можно ли как-нибудь этого избежать, т.е. чтобы для каждого окошка в отдельности был определен его тип? Посмотрел дельфевый пример с MDI текстового редактора там такой-же геморрой с окнами :-(


BornInUSSR   (2009-08-14 14:47:00) [21]


> Создаём новую форму с FormStyle = fsMDIChild и WindowState
> = wsNormal, при том на главной у же есть формы с WindowState
> = wsMaximized, новая становится WindowState = wsMaximized,
>  т.е. она как остальные, а не наоборот. Это нормальное поведение
> MDI. Почему у тебя не так?

Если новую создавать как wsNormal то новая будет wsNormal, а остальные как она становятся wsNormal. Можете проверить. В Дельфи есть пример MDI приложения, какой-то текстовый редактор. Вот собственно код создания:

 Child := TMDIChild.Create(Application);
 Child.WindowState := wsNormal;


Inovet   (2009-08-14 14:40:00) [22]

> [14] sniknik ©   (14.08.09 14:34)
> > даже Микрософт в своей эмуляции не рискнул пойти на это
> 1С пошла.

Наверно автор этого и хочет.

> > Почему у тебя не так?
> у него так, и именно это ему не нравится.

Нет. автор пишет

> [9] BornInUSSR   (14.08.09 14:11)
> Если я новую форму принудительно открываю как не максимизированную,
> то всеформы ресторятся.


Медвежонок Пятачок   (2009-08-14 14:38:00) [23]

А если я ее принудительно открывю как не максимизированную? :-)
Ну открываешь. Активаная она все равно одна. При этом не все ли равно в каком состоянии остальные?


sniknik   (2009-08-14 14:34:00) [24]

> даже Микрософт в своей эмуляции не рискнул пойти на это
1С пошла.

> Почему у тебя не так?
у него так, и именно это ему не нравится.


BornInUSSR   (2009-08-14 14:33:00) [25]


> с чего это они не видны?
>
> Потому что активная максимизирована

А если я ее принудительно открывю как не максимизированную? :-)


Inovet   (2009-08-14 14:27:00) [26]

> [9] BornInUSSR   (14.08.09 14:11)
> Я о состоянии и говорил. Про сворачиваться я имел ввиду
> что они приобретают первоначальный размер, те есть ресторятся.
> Если я новую форму принудительно открываю как не максимизированную,
> то все формы ресторятся. так наверное понятнее.

Создаём новую форму с FormStyle = fsMDIChild и WindowState = wsNormal, при том на главной у же есть формы с WindowState = wsMaximized, новая становится WindowState = wsMaximized, т.е. она как остальные, а не наоборот. Это нормальное поведение MDI. Почему у тебя не так?


Медвежонок Пятачок   (2009-08-14 14:26:00) [27]

а вообще надо либо понять и принять что все так и должно быть в mdi приложении, либо менять сам тип приложения.


Медвежонок Пятачок   (2009-08-14 14:12:00) [28]

с чего это они не видны?

Потому что активная максимизирована


BornInUSSR   (2009-08-14 14:11:00) [29]

Я о состоянии и говорил. Про сворачиваться я имел ввиду что они приобретают первоначальный размер, те есть ресторятся. Если я новую форму принудительно открываю как не максимизированную, то все формы ресторятся. так наверное понятнее.


Inovet   (2009-08-13 13:50:00) [30]

> [6] BornInUSSR   (13.08.09 13:41)
> > Размер-то с чего?
>
> В смысле если все формы были максимизированны, то при попытке
> показать следующую в нормальном виде то все максимизированные
> сворачиваются до нормального размера.

Не размер, а состояние. И не сворачиваются они, а новая максимизируется.


BornInUSSR   (2009-08-13 13:46:00) [31]


> Показывается новая форма, и все остальные формы меняют свой
> размер.
>
> Они все равно не видны

с чего это они не видны?


BornInUSSR   (2009-08-13 13:41:00) [32]


> > [3] BornInUSSR   (13.08.09 12:17)
> >
> > > Это стандартное поведение MDI в Windows. Delphi тут
> ни
> > при
> > > чем.
> >
> > И что, ничего сделать нельзя? Как-то некрасиво получается.
>  
> > Показывается новая форма, и все остальные формы меняют
> свой
> > размер.
>
> Размер-то с чего?

В смысле если все формы были максимизированны, то при попытке показать следующую в нормальном виде то все максимизированные сворачиваются до нормального размера.


Медвежонок Пятачок   (2009-08-13 12:23:00) [33]

Показывается новая форма, и все остальные формы меняют свой размер.

Они все равно не видны


Inovet   (2009-08-13 12:21:00) [34]

> [3] BornInUSSR   (13.08.09 12:17)
>
> > Это стандартное поведение MDI в Windows. Delphi тут ни
> при
> > чем.
>
> И что, ничего сделать нельзя? Как-то некрасиво получается.
> Показывается новая форма, и все остальные формы меняют свой
> размер.

Размер-то с чего?


BornInUSSR   (2009-08-13 12:17:00) [35]


> Это стандартное поведение MDI в Windows. Delphi тут ни при
> чем.

И что, ничего сделать нельзя? Как-то некрасиво получается. Показывается новая форма, и все остальные формы меняют свой размер.


Anatoly Podgoretsky   (2009-08-13 12:10:00) [36]

> BornInUSSR  (13.08.2009 11:47:00)  [0]

Можно, если сделать свою реализацию, но по определению это будет уже не MDI - даже Микрософт в своей эмуляции не рискнул пойти на это


Юрий Зотов   (2009-08-13 12:02:00) [37]

Это стандартное поведение MDI в Windows. Delphi тут ни при чем.


Страницы:   1 2

Наверх

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