![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Модальная 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-формы тоже запрещены на время диалога.