![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
MDI-интерфейс
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 тут ни при чем.