Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум ОА и П.doc
Скачиваний:
23
Добавлен:
29.08.2019
Размер:
13.34 Mб
Скачать

Лабораторная работа №32. Тема: «Разработка программ создания и использования мультимедийных возможностей».

Цель работы: получение навыков составления программ с использованием мультимедийных возможностей.

Задание

Создайте приложение мультипликацию, в котором на фоне снежных гор летит самолет. Рисунки фона и самолета можно сделать самостоятельно, (рис. 28).

рис. 28

Создайте форму, для свойства Caption которой задайте значение «Полет самолета». Поместите на форму компонент Timer из палитры System и компонент Image из палитры Additional. Задайте для свойства Image1.Align значение alClient. Сохраните файл под именем airplane, файл модуля – под именем main в папке «Летящий самолет».

Добавьте в раздел переменных модуля описание переменных:

Back, bitmap, Buf: Tbitmap; {фон, картинка, буфер}

BackRct, bitmapRct, BufRct: Trect; {область фона, картинки, буфера}

x, y: integer; {координаты левого верхнего угла картинки}

W, H: integer; {размеры картинки (ширина, высота)}

Для запуска анимации создайте обработчик события OnActivate, наступающего, когда форма получает или теряет фокус, например, при щелчке по ней мышью. Чтобы создать обработчик события, выберите в окне Инспектора объектов объект Form1 и на странице Events произведите двойной щелчок на пустом поле списка в событии OnActivate. После этого в окне Редактора кода будет сгенерирована заготовка процедуры обработчика события procedure TForm1.FormActivate (Sender. TObject);

Отредактируйте текст этой процедуры следующим образом:

Procedure TForm1.FormActivate (Sender: TObject);

Begin

Back:=TBitmap.Create; {фон}

Bitmap:= TBitmap.Create; {картинка}

Buf:= TBitmap.Create; {буфер}

{загрузить и вывести фон из файла Backgraund.bmp}

Back.LoadFromFile (‘Backgraund.bmp’);

Form1.Image1Canvas.Draw (0, 0, Back);

{загрузить изображение самолета, который будет двигаться}

bitmap.LoadFromFile (‘aplane.bmp’);

bitmap. Transparent:=True;

bitmap. TransParentColor:=bitmap. Canvas. Pixels[1, 1];

{создать буфер для сохранения копии области фона, на которую накладывается картинка}

W:=bitmap. Width;

H:=bitmap. Height;

Buf. Width:=W;

Buf. Height:=H;

Buf.Palette:=Back.Palette; {обеспечить соответствие палитр}

Buf. Canvas. CopyMode:=cmScrCopy;

BufRct:=Bounds (0, 0, W, H);

x:=-W;

y:=20;

BackRct:=Bounds (x, y, W, H); {обеспечить сохраняемую область фона}

Buf. Canvas. CopyRect (BufRct, Back. Canvas, BackRct); {сохранить ее}

end;

Для получения эффекта мультипликации создайте процедуру обработчика события OnTimer, для чего выберите в окне Инспектора объектов объект Timer1 и на странице Events произведите двойной щелчок на пустом поле списка в событии Timer1Timer. Отредактируйте тело процедуры обработчика события следующим образом:

Procedure TForm1. Timer1Timer (Sender: TObject);

Begin

Form1. Image1. Canvas. Draw (x, y, Buf); {восстановление фона (из буфера) -удалить рисунок}

x:=x+2; {смещение самолета по х}

if x>Form1. Image1. Width then x:=-W; {если самолет «вылетел» за пределы рисунка фона}

BackRct:=Bounds (x, y, W, H); {определить сохраняемую область фона}

Buf. Canvas. CopyRect (BufRct, Back. Canvas, BackRct); {сохранить ее копию}

Form1. Image1. Canvas. Draw (x, y, bitmap); {вывести рисунок самолета в новой позиции}

end;

Для освобождения памяти от переменных, в которых хранились значения фона, рисунка самолета и буфера с фрагментом фона, создайте процедуру обработчика события закрытия окна приложения. Для этого выберите в окне Инспектора объектов объект Form1 и на странице Events произвести двойной щелчок на пустом поле списка в событии OnClose. Вставьте в тело процедуры обработчика события вызов метода Free для освобождения памяти, динамически выделенной под объекты Back, bitmap и Buf.

Procedure TForm1. FormClose (Sender: TObject; var Action: TCloseAction);

Begin

Back. Free; {освободить память}

bitmap. Free;

Buf. Free;

End;

Сохраните текст приложения, откомпилируйте его и поверьте его работу. Убедитесь, что в окне приложения на фоне выбранного рисунка осуществляется перемещение изображения самолета, как показано ниже на рисунке 29.

рис. 29

Задание для самостоятельного решения.

Создайте приложение мультипликацию, в котором на фоне луга пасется корова. Рисунки фона и коровы можно сделать самостоятельно.

Лабораторная работа №33.

Тема: «Создание и обработка таблиц базы данных».

Цель работы: получение навыков составления программ с использованием графических примитивов, иллюстраций;

научиться создавать и использовать справочную систему.

ЗАДАНИЕ

Напишите программу, в которой можно хранить информацию о датах рождения своих близких и знакомых.

Откроем новый проект и сохраним его в папку DataBase. Выберем в главном меню пункты ToolsDatabase Desktop. Появится рабочий стол (Desktop) для проектирования структуры базы данных (Database). В меню File этого рабочего стола выберем подпункты New (Новый)  Table (Таблица). В возникшем диалоговом окне будет предложено выбрать тип используемой базы данных. Примем предлагаемый по умолчанию тип Paradox 7, щелкнув на кнопке ОК. откроется новое диалоговое окно, с помощью которого определим поля записи базы данных. В столбце Field Name (Имя Поля) напишем имя первого поля записи, которое у нас называется Name. Далее в столбце Type (Тип) щелкнем правой клавишей мыши – откроется список стандартных типов данных, которыми можно в данном случае воспользоваться. Выберем тип Alpha – он соответствует типу string в языке Pascal. В столбце Type возникает буква А. Далее в столбце Size (Размер) наберем число 30 . на последнюю колонку с именем Key (Ключ) внимание пока не обращаем. Нажав клавишу со стрелкой вниз перемещаемся к следующей строке таблицы. В столбце Field Name набираем строку имя поля DD для хранения числа месяца. В столбце Type для этого поля зададим тип Number (Число) – в строке пропишется буква N. В расположенном справа поле Minimum Value (Минимальная величина) укажем число 1, а в поле Maximum Value (Максимальная величина) – число 31. Это допустимый диапазон, в котором могут находится значения данного поля. В следующей строке таблицы указываем имя поля ММ типа N с возможным диапазоном значений Minimum Value: 1, Maximum Value: 12. Аналогично заполняем последнюю строку таблицы, указав в ней имя поля YY типа N для хранения цифры года. (см. рисунок ниже).

Щелкнув мышью по кнопке Save As… (Сохранить как …), откроем диалоговое окно для сохранения файла базы данных. Сохраним его в папку Data Base под именем Birth Day.db, (рис. 30).

рис. 30

Инструменты Database Form Wizard.

Выберем в главном меню пункты DatabaseForm Wizard (мастер конструирования формы для работы с базой данных). Этот мастер поможет нам создать проект для работы с файлом базы данных Birth Day.db. В первом открывшемся диалоговом окне нужно согласиться с установками, предлагаемые мастером по умолчанию, щелкнув по кнопке Next. В следующем диалоговом окне предлагается выбрать файл базы данных. В списке Directories (Папки) найдем и откроем папку с именем Data Base. После этого в списке Table Name (Имя Таблицы) появится ярлычок файла Birth Day.db. щелкнув на нем мышью, выберем его и тем самым активизируем кнопку Next для следующей операции мастера. Щелкнув на ней, переходим к третьему диалоговому окну. Здесь нужно щелкнуть на кнопке >> для пересылки в создаваемую мастером таблицу всех полей файла Birth Day.db. Еще раз щелкнем на кнопке Next, перейдем к четвертому диалоговому окну. Соглашаемся с установками мастера и щелкаем на Next для перехода к последнему диалоговому окну. Опять соглашаемся с установками мастера, щелкнув на кнопке Finish (Завершить).

Мастер создает полностью готовый проект. Остается только нажать клавишу F9 для его запуска. Результат работы мастера – интерфейс исполняющейся программы для работы с базой данных. (рис. 31).

рис. 31

В верхней части формы располагается панель управления базой данных.