Объектно-ориентированное программирование. LAZARUS (Free Pascal): лабораторный практикум [Александр Анатольевич Сорокин] (pdf) читать постранично, страница - 45

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

TObject);
begin
Image2.Canvas.Pen.Color:=clBlack;
Image2.Canvas.Brush.Color:=clBlack;
Image2.Canvas.Rectangle(0,0,180,300);
Image2.Canvas.Brush.Color:= clWhite;
Image2.Canvas.Pen.Color:=clWhite;
Image2.Canvas.Rectangle(1,1,300,60);
Image2.Canvas.Brush.Color:= clBlue;
Image2.Canvas.Pen.Color:= clBlue;
Image2.Canvas.Rectangle (1,60,300,120);
Image2.Canvas.Brush.Color:= clRed;
Image2.Canvas.Pen.Color:= clRed;
Image2.Canvas.Rectangle (1,120,300,180);
end;
196

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

procedure TForm1.Button3Click(Sender: TObject);
begin
Image5.Canvas.Pen.Color:=clBlack;
Image5.Canvas.Brush.Color:=clBlack;
Image5.Canvas.Rectangle(0,0,180,300);
Image5.Canvas.Brush.Color:= clBlue;
Image5.Canvas.Pen.Color:=clBlue;
Image5.Canvas.Rectangle(1,1,100,299);
Image5.Canvas.Brush.Color:= clWhite;
Image5.Canvas.Pen.Color:= clWhite;
Image5.Canvas.Rectangle (100,1,199,299);
Image5.Canvas.Brush.Color:= clRed;
Image5.Canvas.Pen.Color:= clRed;
Image5.Canvas.Rectangle (200,1,299,299);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Image4.Canvas.Pen.Color:=clBlack;
Image4.Canvas.Brush.Color:=clBlack;
Image4.Canvas.Rectangle(0,0,180,300);
Image4.Canvas.Brush.Color:= clRed;
Image4.Canvas.Pen.Color:=clRed;
Image4.Canvas.Rectangle(1,1,300,60);
Image4.Canvas.Brush.Color:= clWhite;
Image4.Canvas.Pen.Color:= clWhite;
Image4.Canvas.Rectangle (1,60,300,120);
Image4.Canvas.Brush.Color:= clBlue;
Image4.Canvas.Pen.Color:= clBlue;
Image4.Canvas.Rectangle (1,120,300,180);
end;
end.

197

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Упражнение 16. Анимация (Сочи 2014)
Пример интерфейса

Код программы
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
StdCtrls, Buttons;
const
scr_width = 640; // ширина формы
scr_height = 479; // высота формы
var
x,y,y1:integer;
type
198

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
Image2: TImage;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
X:=X+7;//ТЕКУЩАЯ КООРДИНАТА + ШАГ для фмгуры
IF X>SCR_WIDTH+IMAGE2.WIDTH THEN X:=IMAGE2.WIDTH;// ОГРАНИЧЕНИЕ СПРАВА
IF XSCR_WIDTH+IMAGE2.WIDTH THEN X:=IMAGE2.WIDTH;// ОГРАНИЧЕНИЕ СПРАВА
IF XSCR_WIDTH+IMAGE3.WIDTH THEN X:=IMAGE3.WIDTH;// ОГРАНИЧЕНИЕ СПРАВА
IF ySCR_WIDTH+IMAGE4.WIDTH THEN X:=IMAGE4.WIDTH;// ОГРАНИЧЕНИЕ СПРАВА
IF ySCR_WIDTH+IMAGE5.WIDTH THEN X:=IMAGE5.WIDTH;// ОГРАНИЧЕНИЕ СПРАВА
IF yscr_width+image2.Width then x:=-image2.Width;// ограничение справа
if x1 x) then
Inc(x,5)
else
begin
// Если вышли за границы экрана,
// назначаем новые начальные координаты
x := 0;
y := Random(100) + 100;
end;
// Рисуем новый кораблик
Form1.Canvas.Pen.Color := clYellow;
Insert(x,y);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Width := 300;
Form1.Height := 300;
x := 0;
y := Random(100) + 100;
Form1.Color := clNavy;
Timer1.Interval := 50;
end;
end.

210

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Результат

Упражнение 22. Создать анимацию летящего самолета
Пример интерфейса

211

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Код программы
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
ExtCtrls;
const
scr_width=969;// Ширина фона
scr_helght=506;// Высота фона
var
x,y,y1:integer;
type
{ TForm1 }
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
212

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

procedure TForm1.Timer1Timer(Sender: TObject);
begin
X:=X+70;//ТЕКУЩАЯ КООРДИНАТА + ШАГ ДЛЯ
АВТОМОБИЛЯ
IF X>SCR_WIDTH+IMAGE2.WIDTH THEN X:=IMAGE2.WIDTH;// ОГРАНИЧЕНИЕ СПРАВА
IF X