Читайте также:
|
|
Постановка задачи. Проект демонстрирует использование компонента 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
В динамических приложениях | | | События от мыши |