русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Хранение форм в DLL-библиотеках

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

Добавим форму в проект geta.dll. Активируем его и создадим новую форму (команда меню FileàNewàForm). Сохраним созданный файл в директории Z:\111111\Иванов\DLL под произвольным именем, скажем, main.pas. Переименуем созданную форму (свойство Name) в DLLForm. В файле main.pas в разделе IMPLEMENTATION опишем процедуру:

PROCEDURE ShowModalForm;

BEGIN

DLLForm := TDllForm.Create(Application);

DLLForm.ShowModal;

DLLForm.Free

END;

Данная процедура выполняет трюк барона Мюнхгаузена с поднятием самого себя за волосы: она создает форму DLLForm (метод Create), отображает ее (метод ShowModal) и после закрытия пользователем выгружает из памяти (метод Free).

В раздел описаний надо добавить заголовок процедуры ShowModalForm, чтобы она была доступна из файла geta.dll:

type

TDLLForm = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

procedure ShowModalForm;

var

DLLForm: TDLLForm;

implementation

В файле geta.dll в раздел EXPORTS добавляем имя экспортируемой процедуры ShowModalForm:

EXPORTS

ShowModalForm, GetArea;

Библиотека с формой готова. Кстати, на форму можно поместить любые компоненты. Для вызова формы из библиотеки применим статическое связывание. В проекте project1.dpr поместим на форму еще одну кнопку и в ее обработчике запишем:

procedure TForm1.Button2Click(Sender: TObject);

begin

ShowModalForm

end;

А после оператора IMPLEMENTATION запишем:

procedure ShowModalForm; FAR; EXTERNAL 'geta';

Готово! При нажатии на кнопку в программе Project1.exe на экране появится вторая форма, хранящаяся в библиотеке geta.dll.

Просмотров: 795


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.