Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Перемещение картинок

Введение | Глава 1 | Рисование узоров | Рисование поля для различных игр | Для построения графиков | Построение графиков элементарных функций | В случайных местах | Движение двоичного образа по фоновой картинке | Движение образа по удерживанию левой кнопки мыши | Код клавиши |


Читайте также:
  1. ГЛАВА 24 ПЕРЕМЕЩЕНИЕ ЛЕСОМАТЕРИАЛОВ НАПОЛЬНЫМ КОЛЕСНЫМ БЕЗРЕЛЬСОВЫМ ТРАНСПОРТОМ
  2. Изменение уровня и перемещение заголовка
  3. Копирование и перемещение данных
  4. Перемещение в керомса (спарринговая стойка) оборотный шаг вперед и назад с ударами ногами
  5. Перемещение вперед и назад в различных стойках по заданию экзаменатора с ударами локтем
  6. Перемещение и копирование листа в другие книги
  7. Перемещение и копирование листа в текущей книге

Постановка задачи. Проект демонстрирует использование компонента 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;

2.3.3. Проект «Движение компонента TImage

по окружности»

Постановка задачи. Реализовать движение картинки, загруженной в TImage, по окружности.

Реализация. Нарисуйте в редакторе Paint небольшую картинку, например, шарик и сохраните ее. Положите на форму две кнопки «Старт» и «Выход», таймер и один TImage. Найдите свойство
Picture у компонента TImage и загрузите туда нарисованную картинку. Вид формы приведен на рис. 15.

 

Рис. 15. Форма для проекта

Для удобства рассмотрения напишем процедуру krug, рисующую окружность, или можем использовать готовый метод ellipse. Введём следующие глобальные переменные:

u0, v0, mx, my, rad: integer;

dfi, fi: real;

procedure xytouv(x,y:real; var u,v:integer);

begin

u:=u0+round(x*mx);

v:=v0-round(y*my);

end;

procedure krug(u0,v0,rad:integer);

var x,y:real;

u,v:integer;

begin

Form1.Canvas.Pen.Color:=ClRed;

fi:=0;

dfi:=0.01;

x:=rad;

y:=0;

xytouv(x,y,u,v);

while fi<=2*pi do

begin

Form1.Canvas.MoveTo(u,v);

x:=rad*cos(fi);

y:=rad*sin(fi);

xytouv(x,y,u,v);

Form1.Canvas.LineTo(u,v);

fi:=fi+dfi;

end;

end;

 

Далее дан код остальных процедур, а момент движения нарисован на рис. 16.

 

procedure TForm1.FormCreate(Sender: TObject);

begin

randomize;

mx:=1;

my:=1;

u0:=130;

v0:=130;

rad:=100;

Image1.Transparent:=true;

Image1.Left:=u0+rad+20;

Image1.Top:=v0-20;

Timer1.Enabled:=false;

fi:=0;

dfi:=0.01;

end;

 

procedure TForm1.Timer1Timer(Sender: TObject);

begin

// Меняем координаты компонента TImage

Image1.Left:=u0+round((rad+20)*cos(fi));

Image1.Top:=v0-20-round((rad+20)*sin(fi));

fi:=fi+dfi;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Timer1.Enabled:=true;

krug(u0,v0,rad);

end;

 

Рис. 16. Движение шарика по окружности

Задание. Создайте проект «Движение компонента TImage по фоновому рисунку». Пусть на форме лежит картинка, например, пейзаж, а вторая небольшая картинка, например птичка, будет летать слева направо и обратно. Используйте свойство Picture компонентов TImage для загрузки в него картинок.


 


Дата добавления: 2015-08-20; просмотров: 67 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
В динамических приложениях| События от мыши

mybiblioteka.su - 2015-2024 год. (0.009 сек.)