Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.049 c
2-1141896678
VitV
2006-03-09 12:31
2006.03.26
Использование LookUpField с отображением в dbgrid


1-1140099202
rolex
2006-02-16 17:13
2006.03.26
Как быстро удалить файл?


15-1141496647
Без имени и в общем..
2006-03-04 21:24
2006.03.26
Весна - что нового?


2-1141751190
Эля
2006-03-07 20:06
2006.03.26
минимизация многооконного приложения


2-1141733678
oleg__
2006-03-07 15:14
2006.03.26
TImageList




   Наверх