Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет мой.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.46 Mб
Скачать

Задача 39. Анимация

Программа Анимация (Рис. 46) демонстрирует воспроизведение AVI-анимации при помощи компонента Animate. Анимация загружается из файла в начале работы работы программы. Процесс воспроизведения активизируется автоматически, в момент появления окна программы на экране. Следует обратить внимание, что компонент Animate обеспечивает воспроизведение только простой, не сопровождаемой звуком анимации.

Рис 46

Вывод: При выполнении этого задания мы научились воспроизводить анимацию на форме, которая воспроизводится путем нажатия кнопки запуска.

Листинг

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

bool loaded = false; // анимация загружена

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

/* если файл анимации недоступен илианимация

сопровождается звуком, возникает исключение*/

try

{

Animate1->FileName = "delphi.avi";

}

catch (Exception &e)

{ }

Form1->Caption = "Анимация - " + Animate1->FileName;

loaded = true;

Label1->Caption =

"Кадров: " + IntToStr(Animate1->FrameCount) +

" Размеркадров: " + IntToStr(Animate1->Width) +

"x" + IntToStr(Animate1->Height);

// началоработыпрограммы

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormActivate(TObject *Sender)

{

if ( loaded)

// воспроизвестианимацию один раз с первого по

// последнийкадр

Animate1->Play(1,Animate1->FrameCount,1);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if ( loaded)

// воспроизвестианимацию один раз с первого по

// последнийкадр

Animate1->Play(1,Animate1->FrameCount,1);

}

//---------------------------------------------------------------------------

Задача 40. Записная книжка

Программа Записная книжка (Рис. 47), демонстрирует использование компонентов BDE для работы с одноименной базой данных формата Paradox. База данных состоит из одной единственной таблицы adrbk.db.Программа работает с данными в режиме таблицы и позволяет просматривать, редактировать, добавлять и удалять записи, а также обеспечивает выборку (поиск) информации по содержимому поля Name. Для доступа к базе данных программа использует псевдоним adrbk.

Рис 47

Вывод: В этом задании мы научились демонстрировать использование компонентов BDE для работы с одноименной базой данных формата Paradox

Листинг

#include "Find_.h" // эта директива вставлена вручную

// начало работы программы void fastcall TMainForm::FormShow(TObject *Sender) { // если псевдоним adrbk не зарегистрирован, возникает ошибка try

{

Tablel->Open();

} catch (EDBEngineError &e) { ShowMessage("Ошибка доступа к базе данных: " "не определен псевдоним adrbk\n" + е.Message );

Button2->Enabled = false; BitBtnl->Enabled = false; CheckBoxl->Enabled = false;

// щелчокнакнопкепоискаинформации void fastcall TMainForm::BitBtnlClick(TObject *Sender)

Базыданных 165

{

FindForm->Tag = 0; FindForm->ShowModal(); // отобразитьокноЗапрос if ( FindForm->Tag ) { // пользовательзакрылокнопоиска // щелчкомнакнопкеОК, тоестьонввел // фамилиюилиимя Queryl->SQL->Text = "SELECT * FROM adrbk WHERE Name LIKE \042%" + FindForm->Editl->Text +"%\042"; // \042 - этовосьмеричныйкоддвойнойкавычки if ( CheckBoxl->Checked ) ShowMessage (Queryl->SQL->Text);

Queryl->Open(); // открыть (выполнить) запрос if ( Queryl->RecordCount != 0) DataSourcel->DataSet = Queryl; else { ShowMessage ("Вбазеданныхнетзапрашиваемой" " информации: " + FindForm->Editl->Text); DataSourcel->DataSet = Tablel;

// щелчокнакнопкеВсезаписи void fastcall TMainForm::Button2Click(TObject *Sender) { // источникданных - таблица DataSourcel->DataSet = Tablel;

// завершение работы программы

166 Часть 1. Примеры и задачи

void fastcall TMainForm::FormClose(TObject *Sender, TCloseAction SAction) { Tablel->Close();

// *** ЭтомодульформыНайти *** // окноНайтисталодоступным void fastcall TFindForm::FormShow(TObject *Sender) { Editl->SetFocus(); // установитькурсорвполе // редактированияУ

// ЩелчокнакнопкеОК (пользовательввелкритерийзапроса) void .fastcall TFindForm::ButtonlClick(TObject *Sender) { Tag = 1; // пользовательщелкнулнакнопкеОК Close();

// нажатаклавиша void fastcall TFindForm::EditlKeyPress(TObject *Sender, char &Key) { if ( Key == 13) Buttonl->SetFocus(); // переместитьфокус // накнопкуОК