Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!