- •Оглавление
- •Введение
- •Глава 1
- •Использование компонентов общего назначения: tLabel, tButton, tEdit, tShape, tTimer, tPanel
- •1.1.1. Проект «Калькулятор»
- •1.1.2. Проект «Таймер»
- •1.1.3. Проект «Светофор»
- •1.1.4. Проект «Движение шарика tShape с отражением»
- •2.1. Класс tCanvas, его свойства и методы
- •2.1.1. Рисование узоров
- •2.1.2. Рисование поля для различных игр
- •Глава 2
- •2.1.3. Рисование координатной сетки
- •2.1.4. Построение графиков элементарных функций
- •2.2. Класс tBitmap и работа с растровыми рисунками
- •2.2.1. Рисование на поле растрового рисунка
- •2.2.2. Движение двоичного образа по фоновой картинке
- •2.3. Компонент tImage и его использование
- •2.3.1. Проект «Движение компонента tImage»
- •2.3.2. Перемещение картинок
- •2.3.3. Проект «Движение компонента tImage
- •Глава 3
- •3.1. События от мыши
- •3.1.1. Проект «Попади в мишень»
- •3.1.2. Проект «Снежинки»
- •3.1.3. Проект «Крестики-нолики»
- •3.1.4. Движение образа по удерживанию левой кнопки мыши
- •3.1.5. Проект «Жизнь клеток»
- •3.2. События от клавиатуры
- •3.2.1. Код клавиши
- •3.2.2. Управляемое движение образа
- •3.2.3. Совмещение управляемого и неуправляемого движений.
- •Глава 4
- •4.1. Проект «Простейший графический редактор»
- •Глава 5
- •5.1. Создание кнопок
- •5.1.1. Проект «Лохотрон»
- •5.1.2. Игра «Пятнадцать»
- •5.2. Создание компонентов tImage
- •5.2.1. Проект «Угадай картинку»
- •5.2.2. Проект «Собери картинку»
- •Глава 6
- •6.1. Компоненты tStringGrid и tDrawGrid
- •6.1.1. Сортировка массива
- •6.1.2. Проект «Таблица успеваемости»
- •6.1.3. Система предварительной продажи билетов
- •6.1.4. Проект «Таблица рисунков»
- •6.1.5. Рисование в таблице tDrawGrid
- •6.2. Компоненты tListBox, tCombobox ,
- •6.2.1. Прорисовка изображений в списке tListBox
- •6.2.2. Проект «Зоомагазин»
- •6.2.3. Проект «Шуточная игра»
- •6.2.4. Проект «Редактирование списка вопросов»
- •Глава 7
- •7.1. Тест «Знаете ли вы загадки?»
- •7.2. Проект «Исторические даты»
- •Глава 8
- •8.1. Компоненты tOpenDialog, tSaveDialog – диалоги
- •8.1.1. Просмотр текстовых файлов
- •8.2. Добавление и удаление записей в файл и из файла
- •8.2.1. Проект «Журнал группы»
- •8.3. Файлы для проекта «Судоку»
- •Глава 9
- •9.1. Просмотр видеофильма с использованием
- •9.2. Простейшая мультипликация
- •Глава 10
- •10.1. Пример использования try… except
- •Глава 11
- •11.1. Оформление проекта
- •11.1.1. Проект «Бегущая строка»
- •11.1.2. Проект «Титры»
- •11.1.3. Общие рекомендации по оформлению
- •11.2. Рекомендации для отчета по проекту
- •11.3. Темы проектов
- •11.3.1. Головоломка «Сквэрворд»
- •11.3.2. Задача «Путешествие по маршруту»
- •11.3.3. Головоломка «Ходом коня»
- •11.3.4. Задача «Извилистый путь»
- •11.3.5. Головоломка «Фишки на поле»
- •Список литературы
- •630058, Новосибирск, ул. Русская, 35
2.3. Компонент tImage и его использование
в динамических приложениях
2.3.1. Проект «Движение компонента tImage»
Постановка задачи. Создайте проект «Движение компонента TImage». Для простоты сначала задавайте движение образа слева направо, т. е. вначале Image1.Left положите равным нулю. Шаг перемещения задавайте случайным образом.
Реализация. Нарисуйте небольшую картинку в редакторе Paint и сохраните ее в папке «Движение образа», например, под именем 'ris1.bmp'. На форму положите один компонент TImage, две кнопки «Старт» и «Выход» и один таймер. Код, приведенный в процедуре Timer1Timer(Sender: TObject), описывает движение рисунка. В процедуре FormCreate(Sender: TObject) задаются начальные данные. Ниже дан код всех процедур.
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
image1.Picture.LoadFromFile('ris1.bmp');
Image1.Left:=0;
Image1.Top:=50;
Image1.Transparent:=true;
dx:=1+random(10);
timer1.enabled:=false;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin // Старт
timer1.enabled:=true;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin // Выход
Close;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.Left:=image1.Left+dx;
end;
Задание 1. Измените проект так, чтобы образ двигался в случайных направлениях.
Задание 2. Измените проект следующим образом. У вас два образа, один двигается в случайных направлениях, а другой образ «пытается» его догнать.
2.3.2. Перемещение картинок
Постановка задачи. Проект демонстрирует использование компонента TImage, методы BringToFront и SendToBack.
Реализация. Заведите две картинки и сохраните их в папке проекта. Положите на форму два компонента TImage и одну кнопку. Изначально картинки лежат одна на другой. Кликая на кнопку, меняем картинки, выставляя по очереди одну из них на передний или задний план. Понадобится глобальная переменная flag:
var Flag: boolean; // флаг перемещения картинок
В процедуре TForm1.FormCreate(Sender: TObject) задаем начальные настройки.
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Picture.LoadFromFile('school.bmp');
// Загружаем первую картинку
Image2.Picture.LoadFromFile('support.bmp');
// Загружаем вторую картинку
// Расположение верхнего левого угла Image1
Image1.Left:=0;
Image1.Top:=0;
// Задаем ширину первой картинки
Image1.Width:=250;
// Задаем высоту первой картинки
Image1.Height:=250;
// Расположение верхнего левого угла Image2
Image2.Left:=0;
Image2.Top:=0;
// Задаем ширину и высоту второй картинки
Image2.Width:=250;
Image2.Height:=250;
// Растягиваем первую и вторую картинки по площади
Image1.Stretch:=True;
Image2.Stretch:=True;
Flag:=true; // Изначально показана вторая картинка
end;
В обработчике события OnClick кнопки Button1 по очереди выдвигаем первую картинку на передний план и убираем ее на задний.
procedure TForm1.Button1Click(Sender: TObject);
begin
if Flag then
begin
Image1.BringToFront;
// Выдвигаем первую картинку на передний план
Flag:=False;
end
else
begin
Image1.SendToBack;
// Убираем первую картинку на задний план
Flag:=True;
end;
end;
