Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание динамически подключаемых библиотек (DLL)




Вопросы для самопроверки

Вопросы для самопроверки и контроля

1. Что содержит модуль данных и для чего он используется?

2. Каково назначение компонента Table?

3. Каково назначение компонента DataSource?

4. Каково назначение компонентаDBGrid?

5. Каково назначение компонентаDBNavigator?

6. Каково назначение компонентаDBText?

7. Каково назначение компонентаDBEdit?

8. Каково назначение запросов?

9. Что такое «подзапрос»?

10. Каково назначение транзакции?

11. Каковы дополнительные возможности клиент‑серверных СУБД?

Контрольные вопросы

1. Должны ли быть динамические поля в таблице?

2. Можно ли редактировать динамические поля?

3. Постоянные(виртуальные или псевдополя) поля должны быть в таблице?

4. Постоянные(виртуальные или псевдополя) поля можно редактировать?

5. Каково назначение базового запроса?

6. Допускается ли вложенность запросов?

7. Каково назначение компонента QuickRep?

8. Какая технология доступа к данным более универсальная: ADO (ActiveX Data Objects) или BDE (Borland Database Engine)?


Глава 4. Взаимодействие приложений

Библиотеки DLL являются хранилищем различных компонентов (обыч­но процедур, функций и ресурсов). Вызов компонентов из биб­лиотеки производится динамически при выполнении приложения по мере обращения к компонентам и не зависит от языка программирования. Это позволяет изменять компонент отдельно от приложения, не пере­трансли­руя его, и использовать его в приложениях, написанных на других языках программирования (C++, Visual Basic).

Приведем пример создания библиотеки из двух функций Sum и Mult.

Выполним команду File/New/Dll. Сформируется заготовка, которую далее отредактируем, после строки {$R *.RES} вставим строки:

function Mult(x,y:double):double; begin Result:=x*y; end; // произведение x*y

function Sum(x,y:double):double; begin Result:=x+y; end; // сумма x+y

exports Sum, Mult; //список имен экспортируемых функций Sum, Mult

Сохраним проект под именем BSP и откомпилируем его (^F9), сфор­ми­руется файл Bsp.Dll.

Внимание! Регистры букв в имени функции (в команде объ­яв­ле­ния функции в проекте) и в заголовке функции (в библиотеке) дол­жны соот­вет­­ст­во­вать.

В библиотеке можно хранить не только программы, но и ресурсы, например формы. Для примера создадим в проекте BSP форму (Form1) с надписью «Форма из BSP.DLL» и процедуру ShowFormDll (для создания и вывода формы Form1) вида:

procedure ShowFormDll(AOwner:TComponent); //заголовок процедуры

var F:TForm1; //переменная типа TForm1

begin F:=TForm1.Create(AOwner); //создание формы

F.ShowModal; {вывод формы} F.Free; {удаление формы} end;

Дополним строку exports:

exports Sum, Mult, ShowFormDll; //список имен экспортируемых функций

Откомпилируем проект (^F9) и получим новый вариант Bsp.DLL с дополненный формой и процедурой ее создания ShowFormDll.

Создайте новый проект для проверки Bsp.DLL (например, форма с двумя поля­ми вво­да чисел и кнопками (суммировать, перемножить, вывес­ти форму) для проверки подпрограмм Sum, Mult, ShowFormDll).

В новом проекте объявите процедуры:

function Mult(x,y:double):double; //объявление функции Mult

external 'bsp.dll' //имя библиотеки DLL с функцией Mult

function Sum(x,y:double):double; //объявление функции Sum

external 'bsp.dll' //имя библиотеки DLL с функцией Sum

procedure ShowFormDll (AOwner:TComponent); //объявление процедуры

external 'bsp.dll' //имя библиотеки DLL с процедурой ShowFormDll.

Вывод формы можно реализовать командой ShowFormDll(Self).




Поделиться с друзьями:


Дата добавления: 2014-12-08; Просмотров: 672; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.