Графика в Delphi - примеры задач на построение графиков, а также компоненты для графики

Самолет летит по небу

unit aplane_;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Timer1: TTimer;
Image1: TImage;
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
var
Back, bitmap, Buf: TBitMap; // фон, картинка, буфер
BackRct: TRect; // область фона, которая должна быть
// восстановлена из буфера
BufRct: Trect; // область буфера, которая используется для
// восстановления фона

x, y: integer; // текущее положение картинки
W, H: integer; // размеры картинки

procedure TForm1.FormActivate(Sender: TObject);
begin
// создать три объекта - битовых образа
Back := TBitmap.Create; // фон
bitmap := TBitmap.Create; // картинка
Buf := TBitmap.Create; // буфер

// загрузить и вывести фон
Back.LoadFromFile(’factory.bmp’);
Form1.Image1.canvas.Draw(0, 0, Back);

// загрузить картинку, которая будет двигаться
bitmap.LoadFromFile(’aplane.bmp’);
// определим “прозрачный” цвет
bitmap.Transparent := True;
bitmap.TransParentColor := bitmap.canvas.pixels[1, 1];

// создать буфер для сохранения копии области фона,
// на которую накладывается картинка
W := bitmap.Width;
H := bitmap.Height;
Buf.Width := W;
Buf.Height := H;
Buf.Palette := Back.Palette; // Чтобы обеспечить соответствие палитр !!
Buf.Canvas.CopyMode := cmSrcCopy;
// определим область буфера, которая будет использоваться
// для восстановления фона
BufRct := Bounds(0, 0, W, H);

// начальное положение картинки
x := -W;
y := 20;

// определим сохраняемую область фона
BackRct := Bounds(x, y, W, H);
// и сохраним ее
Buf.Canvas.CopyRect(BufRct, Back.Canvas, BackRct);
end;

// обработка сигнала таймера

procedure TForm1.Timer1Timer(Sender: TObject);
begin
// восстановлением фона (из буфера) удалим рисунок
Form1.image1.canvas.Draw(x, y, Buf);

x := x + 2;
if x > form1.Image1.Width then
x := -W;

// определим сохраняемую область фона
BackRct := Bounds(x, y, W, H);
// сохраним ее копию
Buf.Canvas.CopyRect(BufRct, Back.Canvas, BackRct);

// выведем рисунок
Form1.image1.canvas.Draw(x, y, bitmap);
end;

// завершение работы программы

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// освободим память, выделенную
// для хранения битовых образов
Back.Free;
bitmap.Free;
Buf.Free;
end;

end.

Powered WP Ъ скачать delphi, delphi 7, скачать delphi 7, delphi файлы, delphi, компоненты, delphi 2009, delphi программы, delphi бесплатно, delphi скачать, бесплатно работа delphi, delphi создание, delphi строки, программирования delphi, borland delphi, delphi формы