Помощь - Поиск - Пользователи - Календарь
Полная версия: Масштабирование рисунков..
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Надежда..
unit Canvas_Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Timer1: TTimer;
Timer2: TTimer;
procedure FormPaint(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;


implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
var x1, y1, x, y:integer;

begin
x1:=250;
y1:=250;

with canvas do
begin


Form1.Canvas.pen.Color:=clBlack;
//telo
Form1.Canvas.Brush.Color:=clGray;
Form1.Canvas.Ellipse(x1-100,y1-125,x1,y1);
//golova
Form1.Canvas.Brush.Color:=clWhite;
Form1.Canvas.Ellipse(x1-80,y1-160,x1-20,y1-100);
//lapki
Form1.Canvas.Brush.Color:=clBlack;
Form1.Canvas.Ellipse(x1-40,y1-5,x1-15,y1+5);
Form1.Canvas.Ellipse(x1-60,y1-5,x1-85,y1+5);
//glazki
Form1.Canvas.Brush.Color:=clGreen;
Form1.Canvas.Ellipse(x1-55,y1-125,x1-65,y1-145);

Form1.Canvas.Ellipse(x1-45,y1-125,x1-35,y1-145);

//ushki

Form1.Canvas.MoveTo(x1-85,y1-165);
Form1.Canvas.LineTo(x1-75,y1-145);
Form1.Canvas.MoveTo(x1-85,y1-165);
Form1.Canvas.LineTo(x1-65,y1-155);
Form1.Canvas.MoveTo(x1-15,y1-165);
Form1.Canvas.LineTo(x1-25,y1-145);
Form1.Canvas.MoveTo(x1-15,y1-165);
Form1.Canvas.LineTo(x1-35,y1-155);

//nosik
Form1.Canvas.Brush.Color:=clWhite;
Form1.Canvas.Ellipse(x1-55,y1-120,x1-45,y1-114);
Form1.Canvas.MoveTo(x1-50,y1-114);
Form1.Canvas.LineTo(x1-50,y1-110);
Form1.Canvas.MoveTo(x1-55,y1-110);
Form1.Canvas.LineTo(x1-45,y1-110);

//ruchki //l
Form1.Canvas.MoveTo(x1-65,y1-65);
Form1.Canvas.LineTo(x1-65,y1-55);
Form1.Canvas.LineTo(x1-67,y1-48);
Form1.Canvas.LineTo(x1-70,y1-50);

// Form1.Canvas.LineTo(x1-75,y1-60);

//ruchki //r
Form1.Canvas.MoveTo(x1-35,y1-65);
Form1.Canvas.LineTo(x1-35,y1-55);
Form1.Canvas.LineTo(x1-33,y1-48);
Form1.Canvas.LineTo(x1-30,y1-50);
// Form1.Canvas.LineTo(y1-25,y1-60);

//hvostik
Form1.Canvas.Brush.Color:=clYellow;
Form1.Canvas.MoveTo(x1-25,y1-5);
Form1.Canvas.LineTo(x1+10,y1-15);
Form1.Canvas.LineTo(x1+25,y1-35);
Form1.Canvas.LineTo(x1+50,y1-120);

Form1.Canvas.Arc(x1+50,y1-130,x1+30,y1-110,x1+50,y1-120,x1+30,y1-120);
Form1.Canvas.MoveTo(x1+30,y1-120);
Form1.Canvas.LineTo(x1+5,y1-35);
Form1.Canvas.LineTo(x1-20,y1-15);
//zrachki
Form1.Canvas.brush.Color:=clBlack;
Form1.Canvas.Ellipse(x1-58,y1-137,x1-62,y1-133);

Form1.Canvas.Ellipse(x1-42,y1-137,x1-38,y1-133);

end;
end;

procedure TForm1.N6Click(Sender: TObject);
begin
Application.Terminate;
end;


Var x,y,dx, dy:integer;
procedure TForm1.FormActivate(Sender: TObject);
begin
x:=10;
y:=200;
dx:=5;
dy:=5;
Timer1.Interval:=100;
Timer2.Interval:=100;
Form1.Canvas.Brush.Color:=Form1.Color;
Randomize;
x := Random(ClientWidth); if x <135 then x:=0;
y := Random(ClientHeight); if y <0 then y:= 0;
end;

var nap:boolean; //горизонталь
procedure TForm1.N2Click(Sender: TObject);
begin
Form1.Canvas.pen.Color:=Form1.Color;
//telo
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-100,y-125,x,y);
//golova
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-80,y-160,x-20,y-100);
//lapki
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-40,y-5,x-15,y+5);
Form1.Canvas.Ellipse(x-60,y-5,x-85,y+5);
//glazki
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-55,y-125,x-65,y-145);

Form1.Canvas.Ellipse(x-45,y-125,x-35,y-145);

//ushki
Form1.Canvas.MoveTo(x-85,y-165);
Form1.Canvas.LineTo(x-75,y-145);
Form1.Canvas.MoveTo(x-85,y-165);
Form1.Canvas.LineTo(x-65,y-155);
Form1.Canvas.MoveTo(x-15,y-165);
Form1.Canvas.LineTo(x-25,y-145);
Form1.Canvas.MoveTo(x-15,y-165);
Form1.Canvas.LineTo(x-35,y-155);


//nosik
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-55,y-120,x-45,y-114);
Form1.Canvas.MoveTo(x-50,y-114);
Form1.Canvas.LineTo(x-50,y-110);
Form1.Canvas.MoveTo(x-55,y-110);
Form1.Canvas.LineTo(x-45,y-110);

//ruchki //l
Form1.Canvas.MoveTo(x-65,y-65);
Form1.Canvas.LineTo(x-65,y-55);
Form1.Canvas.LineTo(x-67,y-48);
Form1.Canvas.LineTo(x-70,y-50);

// Form1.Canvas.LineTo(x-75,y-60);

//ruchki //r
Form1.Canvas.MoveTo(x-35,y-65);
Form1.Canvas.LineTo(x-35,y-55);
Form1.Canvas.LineTo(x-33,y-48);
Form1.Canvas.LineTo(x-30,y-50);
// Form1.Canvas.LineTo(y-25,y-60);

//hvostik
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.MoveTo(x-25,y-5);
Form1.Canvas.LineTo(x+10,y-15);
Form1.Canvas.LineTo(x+25,y-35);
Form1.Canvas.LineTo(x+50,y-120);

Form1.Canvas.Arc(x+50,y-130,x+30,y-110,x+50,y-120,x+30,y-120);
Form1.Canvas.MoveTo(x+30,y-120);
Form1.Canvas.LineTo(x+5,y-35);
Form1.Canvas.LineTo(x-20,y-15);
//zrachki
Form1.Canvas.brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-58,y-137,x-62,y-133);

Form1.Canvas.Ellipse(x-42,y-137,x-38,y-133);

If nap=False Then
Begin
x:=x+dx;
End
Else
Begin
x:=x-dx;
End;
If X+50>=Form1.Width Then
Begin
nap:=True;
End;
If X-100=0 Then
Begin
nap:=False;
End;
{FormPaint(Sender);}
Form1.Canvas.pen.Color:=clBlack;
//telo
Form1.Canvas.Brush.Color:=clGray;
Form1.Canvas.Ellipse(x-100,y-125,x,y);
//golova
Form1.Canvas.Brush.Color:=clWhite;
Form1.Canvas.Ellipse(x-80,y-160,x-20,y-100);
//lapki
Form1.Canvas.Brush.Color:=clBlack;
Form1.Canvas.Ellipse(x-40,y-5,x-15,y+5);
Form1.Canvas.Ellipse(x-60,y-5,x-85,y+5);
//glazki
Form1.Canvas.Brush.Color:=clGreen;
Form1.Canvas.Ellipse(x-55,y-125,x-65,y-145);

Form1.Canvas.Ellipse(x-45,y-125,x-35,y-145);

//ushki
Form1.Canvas.MoveTo(x-85,y-165);
Form1.Canvas.LineTo(x-75,y-145);
Form1.Canvas.MoveTo(x-85,y-165);
Form1.Canvas.LineTo(x-65,y-155);
Form1.Canvas.MoveTo(x-15,y-165);
Form1.Canvas.LineTo(x-25,y-145);
Form1.Canvas.MoveTo(x-15,y-165);
Form1.Canvas.LineTo(x-35,y-155);


//nosik
Form1.Canvas.Brush.Color:=clWhite;
Form1.Canvas.Ellipse(x-55,y-120,x-45,y-114);
Form1.Canvas.MoveTo(x-50,y-114);
Form1.Canvas.LineTo(x-50,y-110);
Form1.Canvas.MoveTo(x-55,y-110);
Form1.Canvas.LineTo(x-45,y-110);

//ruchki //l
Form1.Canvas.MoveTo(x-65,y-65);
Form1.Canvas.LineTo(x-65,y-55);
Form1.Canvas.LineTo(x-67,y-48);
Form1.Canvas.LineTo(x-70,y-50);

// Form1.Canvas.LineTo(x-75,y-60);

//ruchki //r
Form1.Canvas.MoveTo(x-35,y-65);
Form1.Canvas.LineTo(x-35,y-55);
Form1.Canvas.LineTo(x-33,y-48);
Form1.Canvas.LineTo(x-30,y-50);
// Form1.Canvas.LineTo(y-25,y-60);

//hvostik
Form1.Canvas.Brush.Color:=clYellow;
Form1.Canvas.MoveTo(x-25,y-5);
Form1.Canvas.LineTo(x+10,y-15);
Form1.Canvas.LineTo(x+25,y-35);
Form1.Canvas.LineTo(x+50,y-120);

Form1.Canvas.Arc(x+50,y-130,x+30,y-110,x+50,y-120,x+30,y-120);
Form1.Canvas.MoveTo(x+30,y-120);
Form1.Canvas.LineTo(x+5,y-35);
Form1.Canvas.LineTo(x-20,y-15);
//zrachki
Form1.Canvas.brush.Color:=clBlack;
Form1.Canvas.Ellipse(x-58,y-137,x-62,y-133);

Form1.Canvas.Ellipse(x-42,y-137,x-38,y-133);
Timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
N2Click(Sender);
end;



procedure TForm1.N3Click(Sender: TObject); //вертикаль
var nap, Horiz, vert:boolean;
begin
Form1.Canvas.pen.Color:=Form1.Color;
//telo
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-100,y-125,x,y);
//golova
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-80,y-160,x-20,y-100);
//lapki
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-40,y-5,x-15,y+5);
Form1.Canvas.Ellipse(x-60,y-5,x-85,y+5);
//glazki
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-55,y-125,x-65,y-145);

Form1.Canvas.Ellipse(x-45,y-125,x-35,y-145);

//ushki
Form1.Canvas.MoveTo(x-85,y-165);
Form1.Canvas.LineTo(x-75,y-145);
Form1.Canvas.MoveTo(x-85,y-165);
Form1.Canvas.LineTo(x-65,y-155);
Form1.Canvas.MoveTo(x-15,y-165);
Form1.Canvas.LineTo(x-25,y-145);
Form1.Canvas.MoveTo(x-15,y-165);
Form1.Canvas.LineTo(x-35,y-155);


//nosik
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-55,y-120,x-45,y-114);
Form1.Canvas.MoveTo(x-50,y-114);
Form1.Canvas.LineTo(x-50,y-110);
Form1.Canvas.MoveTo(x-55,y-110);
Form1.Canvas.LineTo(x-45,y-110);

//ruchki //l
Form1.Canvas.MoveTo(x-65,y-65);
Form1.Canvas.LineTo(x-65,y-55);
Form1.Canvas.LineTo(x-67,y-48);
Form1.Canvas.LineTo(x-70,y-50);

// Form1.Canvas.LineTo(x-75,y-60);

//ruchki //r
Form1.Canvas.MoveTo(x-35,y-65);
Form1.Canvas.LineTo(x-35,y-55);
Form1.Canvas.LineTo(x-33,y-48);
Form1.Canvas.LineTo(x-30,y-50);
// Form1.Canvas.LineTo(y-25,y-60);

//hvostik
Form1.Canvas.Brush.Color:=Form1.Color;
Form1.Canvas.MoveTo(x-25,y-5);
Form1.Canvas.LineTo(x+10,y-15);
Form1.Canvas.LineTo(x+25,y-35);
Form1.Canvas.LineTo(x+50,y-120);

Form1.Canvas.Arc(x+50,y-130,x+30,y-110,x+50,y-120,x+30,y-120);
Form1.Canvas.MoveTo(x+30,y-120);
Form1.Canvas.LineTo(x+5,y-35);
Form1.Canvas.LineTo(x-20,y-15);
//zrachki
Form1.Canvas.brush.Color:=Form1.Color;
Form1.Canvas.Ellipse(x-58,y-137,x-62,y-133);

Form1.Canvas.Ellipse(x-42,y-137,x-38,y-133);

if Horiz then
Begin
if not Nap then
y:=y+dy
else
y:=y-dy;
if y>=ClientWidth then Nap:=True; //ширина
if y<=0 then Nap:=False;
end
else
Begin
if not Nap then
y:=y+dx
else
y:=y-dx;
if y>=ClientHeight then Nap:=True;
if y<=0 then Nap:=False;
end;


Form1.Canvas.pen.Color:=clBlack;
//telo
Form1.Canvas.Brush.Color:=clGray;
Form1.Canvas.Ellipse(x-100,y-125,x,y);
//golova
Form1.Canvas.Brush.Color:=clWhite;
Form1.Canvas.Ellipse(x-80,y-160,x-20,y-100);
//lapki
Form1.Canvas.Brush.Color:=clBlack;
Form1.Canvas.Ellipse(x-40,y-5,x-15,y+5);
Form1.Canvas.Ellipse(x-60,y-5,x-85,y+5);
//glazki
Form1.Canvas.Brush.Color:=clGreen;
Form1.Canvas.Ellipse(x-55,y-125,x-65,y-145);

Form1.Canvas.Ellipse(x-45,y-125,x-35,y-145);

//ushki
Form1.Canvas.MoveTo(x-85,y-165);
Form1.Canvas.LineTo(x-75,y-145);
Form1.Canvas.MoveTo(x-85,y-165);
Form1.Canvas.LineTo(x-65,y-155);
Form1.Canvas.MoveTo(x-15,y-165);
Form1.Canvas.LineTo(x-25,y-145);
Form1.Canvas.MoveTo(x-15,y-165);
Form1.Canvas.LineTo(x-35,y-155);


//nosik
Form1.Canvas.Brush.Color:=clWhite;
Form1.Canvas.Ellipse(x-55,y-120,x-45,y-114);
Form1.Canvas.MoveTo(x-50,y-114);
Form1.Canvas.LineTo(x-50,y-110);
Form1.Canvas.MoveTo(x-55,y-110);
Form1.Canvas.LineTo(x-45,y-110);

//ruchki //l
Form1.Canvas.MoveTo(x-65,y-65);
Form1.Canvas.LineTo(x-65,y-55);
Form1.Canvas.LineTo(x-67,y-48);
Form1.Canvas.LineTo(x-70,y-50);

// Form1.Canvas.LineTo(x-75,y-60);

//ruchki //r
Form1.Canvas.MoveTo(x-35,y-65);
Form1.Canvas.LineTo(x-35,y-55);
Form1.Canvas.LineTo(x-33,y-48);
Form1.Canvas.LineTo(x-30,y-50);
// Form1.Canvas.LineTo(y-25,y-60);

//hvostik
Form1.Canvas.Brush.Color:=clYellow;
Form1.Canvas.MoveTo(x-25,y-5);
Form1.Canvas.LineTo(x+10,y-15);
Form1.Canvas.LineTo(x+25,y-35);
Form1.Canvas.LineTo(x+50,y-120);

Form1.Canvas.Arc(x+50,y-130,x+30,y-110,x+50,y-120,x+30,y-120);
Form1.Canvas.MoveTo(x+30,y-120);
Form1.Canvas.LineTo(x+5,y-35);
Form1.Canvas.LineTo(x-20,y-15);
//zrachki
Form1.Canvas.brush.Color:=clBlack;
Form1.Canvas.Ellipse(x-58,y-137,x-62,y-133);

Form1.Canvas.Ellipse(x-42,y-137,x-38,y-133);
Timer1.Enabled:=true;
end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin
{ N3Click(Sender); }

end;




end.
amega
сабж состоит из одного кода good.gif

если не читать заглавие темы то мы телепаты nea.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.