и товщини контуру, а також можливість вибору кольору фону та контуру. Розмістимо на формі додаткові компоненти: (Capture = Mode ), всередині якого розміщено дві кнопки:
SpeedButton1 (Capture = Brush , GroupIndex = 1, Down = True) - кнопка для малювання в режимі В«free hand В»(Capture = Ruler GroupIndex = 1, Tag = 1) - кнопка для малювання в режиміВ« прямої лінії В» span>
ColorGrid1 (властивість GridOrdering = go16x1 - комірки розташовані в один ряд)
SpiEdit1 (MaxValue = 22, MinValue = 1, Value = 1, Increment = 3).
Label1 (Capture = Width )
У властивості Tag буде зберігається номер режиму малювання.
В
. Напишемо наступні обробники: для ColorGrid1:
image1.Canvas.Pen.Color: = colorgrid1.ForegroundColor;// колір контура.Canvas.Brush.Color: = colorgrid1.BackgroundColor;// колір фонадля SpiEdit1:. Canvas.Pen.Width: = spinedit1.Value ;//задаємо товщину лінії
12. Тепер забезпечимо можливість малювання у другому режимі - прямі лінії. p align="justify"> OnClick для SpeedButton1:. Tag: = (sender as tspeedbutton). Tag;
(sender as Tspeedbutton). Down: = true;
Для події OnClick SpeedButton2 виберемо зі списку SpeedButton1Click
Опишемо глобальні змінні:, MovePoint: tpoint;
А в секції Implementation (відразу після {$ R *. dfm}) опишіть наступну процедуру:
procedure drawfigure (p1, p2: tpoint; amode: TPenMode); form1.Image1.Canvas do.Mode: = Amode; (p1.X, p1.Y); (p2.X, p2 . Y);
end;;
. Створимо наступні обробники:
Image1 OnMouseUp: startpoint.X = 10000 then exit; (image1.Tag = 1) or
(image1.Tag = 2)// це умова нам стане в нагоді в майбутньому для малювання фігур
then drawfigure (startpoint, point (x, y), pmCopy);
Відредагуємо метод Image1MouseMove наступним чином:
if ssleft in shift thenimage1.Tag of
: image1.Canvas.LineTo (x, y);
: begin (startpoint, movepoint, pmNotXor);: = Point (x, y); (StartPoint, MovePoint, pmNotXor);;;
У метод Image1MouseDown додайте:
startpoint: = point (x, y);: = StartPoint;
Тепер малювання можна робити в двох режимах: в режимі В«BrushВ» малюються лінії довільної форми, а в новому режимі В«RulerВ» малюються прямі лінії.
. Ускладнимо на редактор. ...