Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Снова модальные формы 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 вся ветка

Форум: "KOL";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.059 c
15-1140039304
Piter
2006-02-16 00:35
2006.03.26
Заправка картриджей!


1-1140463549
Grol
2006-02-20 22:25
2006.03.26
Потоки созданные ExcelApplication


2-1142312072
Гога
2006-03-14 07:54
2006.03.26
ООП


15-1141315416
Jeer
2006-03-02 19:03
2006.03.26
"Принцесса стоит смерти" (С) Л.


3-1139147979
OldNick
2006-02-05 16:59
2006.03.26
Удаленные записи в paradox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский