- •Введение Среда Delphi и ее компоненты
- •Компонентный подход
- •1. Разработка приложения с использованием компонентов edit, label и button
- •2. Разработка консольного приложения
- •3. Разработка приложения с использованием окон ввода-вывода текста
- •4. Использование компонента stringgrid для обработки массивов
- •5. Разработка приложения с использованием компонента memo при обработке текстовых файлов
- •6. Упорядочение массивов. Обработка одномерных динамических массивов
- •7. Обработка многомерных динамических массивов
- •8. Создание и использование типизированных файлов, состоящих из записей
- •9. Создание класса в отдельном модуле
- •10. Создание динамической библиотеки и ее использование в программе
- •11. Создание движущегося обьекта на фоне
- •12. Представление данных при помощи графиков
- •13. Использование в программе меню
- •14. Управление программой с помощью компонентов scrollbar, trackbar, radiobutton, checkbox
- •15. Создание многостраничного приложения
- •Исходные данные
- •16. Управление программой с помощью компонентов закладки dialogs
- •17. Буксировка экранных объектов. Использование технологии drag & drop
- •18. Создание и хранение шаблонов компонентов
- •19. Создание динамических структур данных типа список
- •20. Создание и использование базы данных
- •Исходные данные
- •Литература
- •Содержание
9. Создание класса в отдельном модуле
Задание: Создать «простой» класс на основе TObject, и записать его в отдельный модуль. Методы и свойства объекта должны обеспечивать рисование, а также анимацию изображений по вариантам (методы Draw(x,y), свойства Position_X, Position_Y и т.д. по усмотрению разработчика). Эскизы изображений взять из таблицы 9. Использовать команды рисования.
Т а б л и ц а 9
Эскизы изображений
Вариант 1 |
Вариант 2 |
Вариант 3 |
Вариант 4 |
Вариант 5 |
Вариант 6 |
Вариант 7 |
Вариант 8 |
Вариант 9 |
Вариант 10
|
Структура команд:
Рекомендовано к использованию Sleep(<кол-во миллисекунд>); выполняет задержку на указанный промежуток времени, аналог Delay из Turbo Pascal или таймер;
Unit <Имя модуля>;
//раздел интерфейса
Interface
Uses <Список используемых модулей>;
Const <Список констант>;
Type <Описание типов>
<Имя класса> = class (Имя класса-родителя, если TObject, то
можно не указывать)
<имя поля 1>: <Имя типа 1>;
<имя поля 2>: <Имя типа 2>;
………………………….
procedure <Имя метода 1> (<Список параметров>);
function <Имя метода 2>(<Список параметров>):<Тип
результата>;
………………………….
public//открытый раздел класса
{Public declarations}
{Сюда могут помещаться объявления переменных, функций и процедур, включаемых в класс, доступных для других модулей}
protected
private//закрытый раздел класса
{Private declarations}
{Сюда могут помещаться объявления переменных, функций и процедур, включаемых в класс, но не доступных для других модулей}
end;
var <Объявление переменных>
<Заголовок процедур>
<Заголовок функций>
//раздел реализации
Implementation
Uses <Список используемых модулей>;
Const <Список констант>;
Type <Описание типов>
var <Объявление переменных>
<Описание процедур>
<Описание функций>
{Сюда могут помещаться предложения Uses, объявление типов, констант, переменных, к которым не будет доступа из других модулей. Тут же должны быть реализации всех объявленных в разделе Interface функций и процедур, а так же могут быть реализации любых дополнительных, не объявленных ранее функций и процедур}
//Раздел инициализации
Initialization
<Операторы>;
{Располагаются операторы, выполняемые в начале работы программы}
//Раздел финализации
Finalization
<Операторы>;
{Располагаются операторы, которые выполняются при завершении работы программы}
End.
Содержание отчета: Условие, листинг программы, форма с результатом выполнения программы, выводы.
10. Создание динамической библиотеки и ее использование в программе
Задание: Создать динамическую библиотеку, реализующую функцию показа имени и фамилии студента.
Структура команд:
library <имя библиотеки, должно совпадать с именем >;
uses <используемые модули>;
<процедуры и функции, реализуемые в библиотеке>
Function MyExternalFunc(t: Real): Real; Export; stdcall;
Begin … end;
exports MyExternalFunc;
<список процедур и функций, доступных другим программам>
begin
<код, исполняемый при инициализации библиотеки>
end.
Для использования динамическая библиотека (файл с расширением dll), должна находиться либо в директории программы, либо в системной директории ОС.
Для использования внешней функции необходимо подключить ее к программе.
interface
function MyExternalFunc(t: Real): Real; external ‘file.dll’;
implementation
Result := MyExternalFunc(t);
Если программе не удастся найти библиотеку, то будет выдано сообщение о соответствующей ошибке.
Рекомендовано к использованию:
MessageBox(0, <заголовок сообщения>, <текст сообщения>, MB_OK); - выводит на экран сообщение с указанными заголовком и текстом. (подключить в USES модуль Windows!!!)
Содержание отчета: Условие, листинг программы, выводы.