Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачи_Делфи.docx
Скачиваний:
11
Добавлен:
14.08.2019
Размер:
1 Мб
Скачать
☆

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;