Содержание материала

В динамической библиотеке создаем глобальную переменную типа TApplication.

Сохраняем указатель на объект Application DLL в глобальной переменной.

Объекту Application динамической библиотеки ставим в соответствие указатель на Application

вызывающего приложения.

Создаем MDIChild-форму и работаем с ней.

Возвращаем в первоначальное состояние значение объекта Application динамической библиотеки

и выгружаем DLL из памяти.

Первый шаг прост. Просто помещаем следующий код в верхней части модуля DLL:

 

var

DllApp : TApplication;

 

Затем создаем процедуру, которая будет изменять значение объекта Application и создавать дочернюю форму.

Процедура может выглядеть примерно так:

Code:

procedure ShowMDIChild(MainApp : TApplication);

var

Child : TMDIChild;

begin

if not Assigned(DllApp) then begin

   DllApp := Application;

   Application := MainApp;

end;

Child := TMDIChild.Create(Application.MainForm);

Child.Show;

end;

  

Все, что нам теперь необходимо сделать, - это предусмотреть возвращение значения объекта Application

в исходное состояние. Делаем это с помощью процедуры MyDllProc:

Code:

procedure MyDLLProc(Reason: Integer);

begin

if Reason = DLL_PROCESS_DETACH then

   { DLL is выгружается. Восстанавливаем значение указателя Application}

   if Assigned(DllApp) then

     Application := DllApp;

end;

  

Вместо заключения.

 

Использование динамически подключаемых библиотек не так сложно, как это может показаться на первый взгляд.

DLL предоставляют широчайшие возможности для оптимизации работы приложений,

а также работы самих программистов.  Используйте DLL и, возможно, ваша жизнь станет легче!

 

 

Использование динамически подключаемых библиотек не так сложно, как это может показаться на первый взгляд.

DLL предоставляют широчайшие возможности для оптимизации работы приложений,

а также работы самих программистов.  Используйте DLL и, возможно, ваша жизнь станет легче!

https://subscribe.ru/

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить