Скучно...
| Код | type TForm1 = class(TForm) Timer1: TTimer; procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Timer1Timer(Sender: TObject); private cx, cy: integer; dx, dy: integer; img: TImage; procedure Draw; procedure StartDraw(X, Y: integer); procedure Ouch(Sender: TObject); public
end;
const r = 40;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Draw; begin if img = nil then Exit; inc(cx,dx); inc(cy,dy); if (cx+r+dy > ClientWidth) then dx := -dx else if (cx+dx<0) then dx := -dx; if (cy+r+dy > ClientHeight) then dy := -dy else if (cy+dy < 0) then dy := -dy; img.Left := cx; img.Top := cy; end;
procedure TForm1.StartDraw(X, Y: Integer); begin cx := x - r div 2; cy := y - r div 2; if img = nil then begin DoubleBuffered := true; img := TImage.Create(self); img.SetBounds(cx, cy, r, r); img.Picture.Bitmap.Width := r; img.Picture.Bitmap.Height := r; img.Transparent := true; img.OnClick := Ouch; with img.Picture.Bitmap.Canvas do begin Pen.Color := clNavy; Pen.Width := 2; Brush.Color := clYellow; Ellipse(0, 0, r, r); end; img.Parent := self; end; dx := Random(9)-4; dy := Random(9)-4; Timer1.Interval := 50; Timer1.Enabled := true; end;
procedure TForm1.Ouch(Sender: TObject); // не трогай шарик begin Timer1.Enabled := False; ShowMessage('Ай! Больно же!'); end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin StartDraw(X, Y); end;
procedure TForm1.Timer1Timer(Sender: TObject); begin Draw; end; |
|