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

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

Модальная KOL-форма из VCL-проекта


Dimaxx ©   (2003-06-13 17:57:00) 

Как заставить VCL правильно отображать KOL-форму из DLL МОДАЛЬНО!!
Скомпилировал демо-проект с сайта - все работает, но так не модальный
диалог получается. Мне же нужен модальный. Видел здесь одну тему по
определению PControl из HWND. В проекте DLL пишу:

procedure DemoModal(Owner: HWND);
const ID_SELF: array[0..5] of Char = ('S','E','L','F','_',#0);
var Frm: PControl;
begin
 Frm:=Pointer(GetProp(Owner,ID_SELF));
 NewKOLForm1(KOLForm1,Frm);
 KOLForm1.Form.CenterOnParent;
 KOLForm1.Form.ShowModal;
 KOLForm1.Form.Free;
 KOLForm1:=nil;
end;


На кнопку вешаю (все как в примере)

...
Form.ModalResult:=1;
Form.Close;
...


Далее в VCL-проекте определяю (или гружу динамически с определением)
процедуру и в нужном месте пишу:

...
DemoModal(Handle);
...


Форма появляется на одно мгновение и потом исчезает! Причем не работает ни
статический, ни динамический вызов!! Как быть??

PS: В демо-проекте с сайта после нажатия кнопки Close выскакивает ошибка
"Access violation...". Чтение/запись неправильно произведена, в общем.

Вот такие пироги с котятами!


romtek   (2003-12-02 15:34:00) [1]

Trouble in KOLfromVCL:
When i click "Call KOL form modal" and then trying to click "x" (close window) of form instead of clicking "close" button, i see "Access violation...in module KOLDLL.dll ..."


Dimaxx   (2003-06-15 00:25:00) [2]

Биг сенькс!


Vladimir Kladov   (2003-06-14 19:24:00) [3]

Я обновил DemoVCLtoKOLdll, ввиду большого числа изменений. Теперь, кстати, используется ShowModalEx, т.е. вызов именно модальный: VCL-формы тоже запрещены на время диалога.


Наверх

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