- •Задача 1. Конвертер
- •Задача 2. Фунты-килограммы
- •Задача 3. Сила тока.
- •Задача 4. Сопротивление
- •Задача 5. Кафе
- •Задача 6. Любимый напиток
- •Задача 7. Электроэнергия
- •Задание 8. Осаго
- •Задание 9.Просмотр иллюстраций
- •Задача 10. Калькулятор
- •Задача 11. Калькулятор-2
- •Задача 12.Секундомер
- •Задача 13. Угадай число
- •Задание 14.Угадай число-2
- •Задание 15.Запуск Internet Explorer
- •Задание 16.Конвертор
- •Задание 17.Конвертор 2
- •Задание 18.Погода
- •Задание 19.Средняя температура
- •Задание 20. Простая база данных
- •Задание 21. Редактор текста
- •Задание 22. Приветствие
- •Задача 23. Олимпийский флаг
- •Задание 24. Диаграмма
- •Задача 26. Круговая диаграмма.
- •Задача 27. Просмотр иллюстраций.
- •Задача 28 .Часы
- •Задача 29. Пинг понг.
- •Задача 30. Полет в облаках
- •Задача 31.Баннер
- •Задача 32. Фоновый рисунок
- •Задача 33. Wav
- •Задача 34. Mp3 Player
- •Задача 35.Воспроизведение midi
- •Задача 36.Compact Disk Player (версия 1)
- •Задача 37.Compact Disk Player (версия 2)
- •Задача 38.VideoPlayer
- •Задача 39. Анимация
- •Задача 40. Записная книжка
- •Задача 41 Магазин
- •Задача 42. Ежедневник
- •Задача 43. Сапер
- •Часть 1. Примеры и задачи
- •Часть 1. Примеры и задачи
- •Задача 44 Игра 15
- •Часть 1. Примеры и задачи
- •Задача 45. Игра "Собери картинку" (Puzzle)
- •Задача 46 Игра "Парные картинки"
- •Задача 47. Экзаменатор
- •Задача 48. Экзаменатор-2
- •Задача 49. Календарь
- •Задача 50. Будильник
- •Задача 51. Очистка диска
- •Задача 52.Печать
- •Задачи для самостоятельного решения Задача 1. Скидка
- •Задача 2.Доход по вкладу
- •Задача 3. Таблица умножения
- •Задача 4.Поездка на автомобиле
- •Задача 5.Стоимость разговора
- •Задача 6. Стеклопакет
- •Задача7. Калькулятор
- •Задача 8. Электроэнергия
- •Задача 9. Добрый день
- •Задача 10. Часы
- •Задача 11. Узоры
- •Задача 12. Курс доллара
- •Задача 13. Диаграмма
- •Задача 14. Домашние животные
- •Задача 15. Кораблик
- •Задача 16. Сапер
- •Задача 17 .Экзаменатор
- •Задача 18. База данных "Расходы"
Задача 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(); // переместитьфокус // накнопкуОК
