Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Library ProjectDLL; uses



SysUtils, Classes; {$R *.RES} exports ShowAbout index 10; begin end.

Я добавил только одну строку exports ShowAbout index 10;. У нас будет только одна процедура ShowAbout с индексом 10. Эта процедура будет показывать окно «О программе».

Теперь щёлкаем File->New Form, чтобы создать новую форму. Нарисуй на ней что-нибудь, можно даже то, что сделал я (рисунок 18.4.1).

Переходи в текст модуля. В разделе var, после объявления формы опиши процедуру ShowAbout:

Var

Form1: TForm1;

procedure ShowAbout(Handle: THandle);export;stdcall;

Опять присутствует ключ export и добавлен ещё stdcall, указывающий на обязательность использования стандартного вызова процедуры.

Теперь напишем саму функцию после ключевого слова implementation и ключа {$R *.DFM}:

procedure ShowAbout(Handle: THandle);

begin // Установить указатель на приложение Application.Handle:= Handle; // Создать форму Form1:= TForm1.Create(Application); // Отобразить Form1.ShowModal; // Очистить Form1.Free;

End;

Эта процедура получает в качестве параметра указатель на главное приложение. В первой строке я устанавливаю этот указатель в свойство Handle объекта Application. Этот объект хранит настройки всего приложения, и этим присваиванием мы связали оба приложения.

Во второй строке кода я создаю окно TForm1.Create(Application), в результате чего мне будет возвращён указатель на это окно. Результат я сохраняю в переменной Form1. Эта переменная объявлена в разделе var проекта.

Следующей строкой я отображаю модально созданное нами окно. Как только оно закроется, будет выполнена последняя строка кода этой процедуры, а именно, окно будет уничтожено из памяти и процедура закончит своё выполнение.

В процедурах DLL библиотек будь более внимателен к высвобождению памяти. По моей практике могу сказать, что ошибки в библиотеках переносятся программами более критично, потому что тут основная программа практически бессильна.

Откомпилируй библиотеку (Ctrl+F9) и DLL-файл готов. Можно закрывать этот проект (File->Close All) и создавать новое приложение, из которого мы будем вызывать созданную в библиотеке процедуру (File->New Application).

В новом проекте переходим в текст формы и объявляем функцию ShowAbout:





Дата публикования: 2014-11-28; Прочитано: 228 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...