КАТЕГОРИИ: Архитектура-(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; Просмотров: 708; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |