Прямоугольник
Прямоугольник
вычерчивается методом Rectangle, инструкция вызова которого в общем виде
выглядит следующим образом:
Объект.Canvas.Rectangle(x1,
y1,x2, y2)
где:
- объект — имя объекта
(компонента), на поверхности которого выполняется вычерчивание;
- x1, y1 и х2, у2 —
координаты левого верхнего и правого нижнего углов
прямоугольника.
Метод RoundRec
тоже вычерчивает прямоугольник, но со скругленными углами. Инструкция вызова
метода RoundRec выглядит так:
Объект.Canvas.RoundRec(x1,y1,х2, у2, х3, у3)
где:
- x1, y1, х2, у2 --
параметры, определяющие положение углов прямоугольника, в который вписывается
прямоугольник со скругленными углами;
- х3 и у3 — размер эллипса, одна четверть которого используется для вычерчивания скругленного угла (рис. 10.8).
Рис. 10.8.
Метод RoundRec вычерчивает прямоугольник со скругленными
углами
Вид линии
контура (цвет, ширина и стиль) определяется значениями свойства Реп, а цвет и
стиль заливки области внутри прямоугольника — значениями свойства Brush
поверхности (canvas), на которой прямоугольник вычерчивается.
Есть еще два
метода, которые вычерчивают прямоугольник, используя в качестве инструмента
только кисть (Brush). Метод FillRect вычерчивает закрашенный прямоугольник, а
метод FrameRect — только контур. У каждого из этих методов лишь один параметр —
структура типа TRect. Поля структуры TRect содержат координаты прямоугольной
области, они могут быть заполнены при помощи функции Rect.
Ниже в качестве
примера использования методов FillRect и FrameRect приведена процедура, которая
на поверхности формы вычерчивает прямоугольник с красной заливкой и
прямоугольник с зеленым контуром.
procedure TForm1.Button1Click(Sender: TObject);
var
r1, r2: TRect; //
координаты углов прямоугольников
begin
// заполнение полей
структуры
// зададим координаты
углов прямоугольников
r1 :=
Rect(20,20,60,40);
r2 :=
Rect(10,10,40,50);
with fоrm1.Canvas
do begin
Brush.Color :=
clRed;
FillRect(r1); // закрашенный прямоугольник
Brush.Color :=
clGreen;
FrameRect(r2}; // только граница прямоугольника
end;
end;