Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Снова модальные формы KOL в DLL   Найти похожие ветки 

 
BelchonokH   (2005-08-03 19:43) [0]

Доброго вам! Основная программа пишется на VCL, плагин на KOL, в нём содержится форма, которую я создаю: NewForm1(Form1,Applet); и вызываю модально: Form1.Form.ShowModalEx; Она отображается, но совершенно не модальна, что сделать что бы она стала модальной для приложения?


 
Денис   (2005-08-04 08:14) [1]

Скорее всего надо создать апплет: applet:=NewApplet(""); кроме того, надо присвоить ему родителя из основного приложения, типа вот так:
SetParent(Applet.GetWindowHandle,hWindow); где hWindow - Handle окна основного приложения.


 
Vladimir Kladov   (2005-08-04 19:29) [2]

Нет такого понятия как модальность, кроме DialogBox"ов. В Delphi (VCL) модальность имитируется запрещением (Enabled := False) для всех прочих форм. Примерно так же и в KOL. Чтобы форма, запущенная из DLL, могла стать модальной, она должна найти и запретить все прочие формы приложения. Если запустить KOL-форму как главную из DLL, она не будет пытаться ничего запрещать. Как в VCL происходит с формой запускаемой из DLL, я не знаю, но предполагаю, что так же.


 
BelchonokH   (2005-08-04 20:05) [3]

2 Денис

Спасибо большое! Работает почти как надо!

2 Vladimir Kladov

Модальная форма получилась по рецепту в [1], но видимо потому что она не совсем относит себя к приложению при шелчке на кнопке в таскбаре активизируется главная форма, только она не доступна, а модальную из-под неё не вытащить, ибо не видно... :(


 
Денис   (2005-08-05 06:55) [4]

Это я все проходил, SetParent(Applet.GetWindowHandle,hWindow);
hWindow - должен быть хендлом текущего окна приложения. Т.е. если есть MDI-окно, а мы папашей взяли главное окно приложения, то будет такой эффект.


 
BelchonokH   (2005-08-05 07:31) [5]

ааа, вот в чём дело... просто параметр hWindow в моем случае передается плагин при инициализации в FormCreate главной формы в VCL, в это время как я понял окно ещё не создано, пришлось передавать Application.Handle, наверное поэтому такой эффект... Придётся передавать хендл активного окна при создании из плагина... Спасибо, попробую!


 
BelchonokH   (2005-08-05 17:56) [6]

2 Денис

Большое спасибо, всё работает как надо!



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.054 c
2-1141832281
Mozgan
2006-03-08 18:38
2006.03.26
Как узнать код клавиши F4


3-1138952777
Igor_
2006-02-03 10:46
2006.03.26
Транзакции MSSQL - работа через BDE


2-1141906952
Barsky
2006-03-09 15:22
2006.03.26
Форма поверх всех окон.


15-1140039304
Piter
2006-02-16 00:35
2006.03.26
Заправка картриджей!


2-1141670649
KILROY
2006-03-06 21:44
2006.03.26
ADOTable...