![]() |
|
#1
|
|||
|
|||
![]() Доброго времени суток, проблема вот такого рода.
я сделал такой код по вот такому заданию В проекте выполнить построение звезды на канве при ЩК мыши (клике). Звезда прорисовывается в месте клика, а цвет зависит от кнопки, которой был произведён клик, т.е. правой кнопкой или левой. Вот код Код:
unit Stars_; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } procedure StarLine(x0,y0,r: integer); // рисует звезду end; var Form1: TForm1; implementation {$R *.dfm} // рисует звезду procedure TForm1.StarLine(x0,y0,r: integer); // x0,y0 - координаты центра звезды // r - радиус звезды var p : array[1..11] of TPoint; // массив координат лучей и впадин a: integer; // угол между осью ОХ и прямой, соединяющей // центр звезды и конец луча или впадину i: integer; begin a := 18; // строим от правого гор. луча for i:=1 to 10 do begin if (i mod 2 = 0) then begin // впадина p[i].x := x0+Round(r/3*cos(a*2*pi/360)); p[i].y:=y0-Round(r/3*sin(a*2*pi/360)); end else begin // луч p[i].x:=x0+Round(r*cos(a*2*pi/360)); p[i].y:=y0-Round(r*sin(a*2*pi/360)); end; a := a+36; end; p[11].X := p[1].X; // чтобы замкнуть контур звезды p[11].Y := p[1].Y; Canvas.Polyline(p); // начертить контур звезды end; // нажатие кнопки мыши procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft // нажата левая кнопка? then Canvas.Pen.Color := clBlack else Canvas.Pen.Color := clRed; StarLine(x, y, 30); end; он не компилируется и пишет вот это. Цитата:
|