|
#1
|
|||
|
|||
Экземпляр формы
Практикуюсь в реализации библиотек с формами.
Наверное тупик из-за того,что изначально не верно порождаю эти формы. Основное приложение - MDI. Форма из библиотеки вызывается таким образом: Код:
//основное приложение GetForm: function (aParent:HWND):TForm;stdcall; Код:
//в библиотеке function CallForm(aParent:HWND):TForm;stdcall; begin ... LibrForm:=TLibForm.CreateParented(aParent); FormHandlList.Add(pointer(LibForm.Handle)); LibrForm.Name:=LibrForm.Name+inttostr(FormHandlList.Count); LibrForm.Caption:=cDllName+inttostr(FormHandlList.Count); result:=LibrForm; .... end; Такой угрюмый метод был предпринят по причине того что, конструкция вида Код:
nForm:=TForm.Create(Application.mainform); nForm.parent:=Application.mainform; В итоге это привело к проблеме - я не могу корректно закрыть N-ую форму, потому как класс TLibrForm ссылается на последнюю созданную (хэндл, имя). Все мои потуги перехватить данные, закрываемой формы, проваливаются. Да, я могу обратиться к любой нужной форме за счёт того же списка, но как определить какая из них вызвала CloseQuery? |