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

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

Вызов модальной формы в DLL из DLL... [D5, D6, Win95/98, Win2k, WinXP]


Sirus ©   (2004-04-06 08:24:00) 

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


SPeller   (2004-04-07 15:51:00) [1]


> Игорь Шевченко ©   (07.04.04 10:40) [7]

Согласен. Я к тому и клонил, что всё зависит от ситуации.


Игорь Шевченко   (2004-04-07 10:40:00) [2]

SPeller ©   (07.04.04 07:42)

Ради эксперимента попробуй в Word или Excel открыть два документа, вызвать в одном окне диалог настроек или свойств файла, и поработать с другим окном документа.

Модальность MessageBox определяется флажками, например, для MB_TASKMODAL
"The user must respond to the message box before continuing work in the window identified by the hWnd parameter. However, the user can move to the windows of other applications and work in those windows. Depending on the hierarchy of windows in the application, the user may be able to move to other windows within the application. All child windows of the parent of the message box are automatically disabled, but popup windows are not."

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


BiN   (2004-04-07 09:27:00) [3]

функция EnableWindow тебя спасет :)


SPeller   (2004-04-07 07:47:00) [4]

Даже банально - MessageBox. Блокирует только то окно, относительно которого был показан диалог.


SPeller   (2004-04-07 07:42:00) [5]


> Нет.Модальность в том и заключается, что всё управление
> переходит модальной форме

Не всегда. Вот вы когда в экслорере, в одном из его окошек, вызываете диалог настроек окошек, то разве вы теряете управление над другими окнами экслорера? А ведь они в одном процессе.


Cobalt   (2004-04-06 14:13:00) [6]

Вызывать в ОнАктивейт Модальной форлмы соответсвующий обработчик родительской формы.


Sirus   (2004-04-06 12:23:00) [7]

Ну тогда нельзя ли как нить сделать так чтобы форма из первой DLL была Enabled=False, но при этом чтобы OnActivate формы работал???


Cobalt   (2004-04-06 09:18:00) [8]

Нет.Модальность в том и заключается, что всё управлениепереходит модальной форме


Наверх

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