Определяет массив координат для создания многоугольных (полигонов) контуров (shapes) с помощью управляющего элемента Shape и линий многоугольника с помощью управляющего элемента Line. Редактируемое как в design, так и в run time.
Для управляющих элементов Shape свойство PolyPoints описывает многоугольный контур. Для управляющих элементов Line свойство PolyPoints создает линии многоугольника или контур.
Control. PolyPoints [= cArrayName] |
Возвращаемое значение
- cArrayName
-
Указывает имя массива, содержащего пары координат, для рисования многоугольного контура или линии. Координаты используют формат (X, Y). Массив должен быть в области видимости для того, чтобы объект отобразил многоугольник или искривленную линию должным образом.
Совет
Массив может иметь любой размер; однако, если он будет содержать две колонки, это упростит вашу задачу программирования многоугольного контура или линии. Храните точку X-координаты в первой колонке и Y-координату во второй. Массив должен быть заполнен полностью численными значениями; в противном случае, хвостовые элементы будут заполнены False (.F.), что приведет к тому, что контур или линия не будут прорисованы.
Замечание
Свойство PolyPoints требует по меньшей мере две пары координат для рисования линии, три пары координат для рисования многоугольной линии, три пары координат для рисования многоугольного контура для управляющего элемента Shape, и четыре пары кординат для линий, создающих контур.
Для создания многоугольного контура с помощью управлющего элемента Line, пятая пара координат массива должны иметь теже самые координаты, что и первая пара для прорисовки последнего сегмента линии и завершения, таким образом контура многоугольника.
При установке значения свойства LineSlant для рисования кривых Безье, вы должны указать в сумме (3n + 1) координат, где n представляет число кривых, которые вы желаете нарисовать. Для получения более подробной информации, смотрите Свойство LineSlant.
Примечания
Visual FoxPro рисует полигоны в порядке, в котором координаты появились в массиве, что воздействует на закраску областей, ассоциированных с полигонами. Вы можете рисовать контуры с полигонами, без касания границ полигона с помощью указания точек внутри границ. Для получения более подробной информации о закраске областей и стилях, смотрите Свойство FillStyle и Свойство FillColor.
Координаты, указанные в массиве являются are relative percentages to the dimensions of the Shape (or Line) control so that the polygon will resize as the shape is resized.
Обновление массива автоматически обновит управляющие элементы Shape или Line, когда они будут прорисовываться повторно.
Если массив содержит нечетное число элементов, последний элемент сбрасывается.
Если свойство PolyPoints установлено, Visual FoxPro сбрасывает значение свойства Style, когда оно установлено в 3 (Themed), свойства Curvature и трех-мерную установку свойства SpecialEffect.
Visual FoxPro автоматически перерисовывает контур, когда изменяется свойство Rotation, когда вращает контур. Для получения более подробной информации, смотрите Свойство Rotation.
Массив должен быть в области видимости, чтобы объект смог отобразить полигон или многоугольную линию. Если вы желаете отобразать полигон в design-time, тогда свойство PolyPoints должно указывать на массив в области видимости public. Для получения более подробной информации об областях видимости, смотрите Доступ к переменным.
Пример
Приведенный ниже пример отображает форму с полигональной линией, нарисованной с помощью управляющих элементов Line, на основе массива координат, указанного в свойстве PolyPoints.
![]() | |
---|---|
DIMENSION poly[5,2] poly[1,1]= 0 poly[1,2]= 50 poly[2,1]= 50 poly[2,2]= 100 poly[3,1]= 100 poly[3,2]= 50 poly[4,1]= 50 poly[4,2]= 0 poly[5,1]=0 poly[5,2]=50 frmMyForm = CREATEOBJECT('Form') frmMyForm.AddObject('shpLine','Line') frmMyForm.AddObject('cmdCmndBtn1','cmdMyCmndBtn1') frmMyForm.shpLine.Top = 20 frmMyForm.shpLine.Left = 125 frmMyForm.shpLine.PolyPoints = "poly" frmMyForm.shpLine.Visible = .T. frmMyForm.cmdCmndBtn1.Visible =.T. frmMyForm.Show READ EVENTS DEFINE CLASS cmdMyCmndBtn1 AS CommandButton Caption = '\<Quit' Cancel = .T. Left = 125 Top = 150 Height = 25 PROCEDURE Click CLEAR EVENTS ENDDEFINE |