Главная страница
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.48 MB
Время: 0.064 c
15-1141477363
Вадикан
2006-03-04 16:02
2006.03.26
Исходник пианино!


2-1142158659
fasta
2006-03-12 13:17
2006.03.26
Почему не "обновляется" DBGrid?


1-1140803768
Игорь Степанов
2006-02-24 20:56
2006.03.26
Собственный компонент Preview для компонента QRCompositeReport


3-1138803561
Инъектор
2006-02-01 17:19
2006.03.26
Проблема в открытии dbf файла после выгрузки


2-1141668485
Vitaly73
2006-03-06 21:08
2006.03.26
mp3-проигрыватель