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

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

По поводу ShowModal [D5, Win2k]


stelius ©   (2004-08-04 17:53:00) 

Народ, подскажите как сделать так, чтобы форма была поверх не всех окон (ShowModal), а только поверх определенных?


Кириешки   (2004-08-10 14:20:00) [1]

Mim1 ©   (10.08.04 13:41) [10]

Пасиба!


Mim1   (2004-08-10 13:41:00) [2]


> [8] Кириешки ©   (10.08.04 13:18)

По умолчанию свойство visible у вновь созданой формы имеет значение false, когла вы применяете стиль формы fsmdichild это свойство (visible) получает значение true. Когда же вы восстанавливаете стиль (делаете fsNormal) свойство отвечающее за видимость не изменяется.

PS Свойство Visible не влияет на поведение главной формы. Для главной формы управлять видимостью можно при помощи application.showmainform.


TUser   (2004-08-10 13:36:00) [3]

Писать SetForegroundWindow при активизации тех форм, которые надо перекрывать, если показана та, которая д.б. сверху.


Кириешки   (2004-08-10 13:18:00) [4]

PS. Я не знаю из за чего такое получается. Может кто-нибудь из умных дядек объяснит.


Кириешки   (2004-08-10 13:14:00) [5]

Чтобы была доступна вызывающая форма, я делал так :
1) Ставил у первой формы - fsMDIForm
2) У второй ставил fsMDIChild
3) На первую форму ставил кнопку, которая вызывает вторую форму
  методом ShowModal. Например Form2.Showmodal;
4) Запускал программу. Нажимал на кнопку, появлялась сообщение об    ошибке, что типа модальное окно не может стать видимым (потому    что оно уже видимо изначально).
5) Зывершал программу.
6) Ставил у первой формы fsNormal
7) Запускал программу. Опять появлялось сообщение об ошибке.
8) Завршал программу и ставил у второй форму fsNormal;

ПОСЛЕ ЧЕГО ОБЕ ФОРМЫ были доступны, можно работать с обоими одновременно. Вот.


Cobalt   (2004-08-10 12:25:00) [6]

я же говорю - запрещай (disable) необходимую тебе форму, и ставь её в качестве родителя.
Честно говоря, в этом не уверен - никогда так не делал, но ты попробуй...


Iconka   (2004-08-04 18:09:00) [7]

Стандарной возможности нет.


stelius   (2004-08-04 18:03:00) [8]

2 Cobalt
Ну может не ShowModal, а что-нибудь исчо, способ не важен гл. результат.


stelius   (2004-08-04 18:02:00) [9]

=) Ну вот хочу я так. Есть такая возможность или нет. =)
На если серьезно, то:
Вот есть у меня приложение с MDI формами. Открыто несколько из них. Из одной вызывается не MDI форма методом ShowModal и пока я ее не закрыл остальные не доступны, а мне надо чтоб недоступной была толька вызвавшее это окно форма.


Cobalt   (2004-08-04 17:59:00) [10]

Так не получится - модальная форма захватывает весьпоток событий. Разве что запретить (Enable:=false) нужные формы. А если обязательно поферх какой-то из них, то можно установить её Родительским окном.


Iconka   (2004-08-04 17:54:00) [11]

А смысл?


Наверх

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