Ahora con Visual FoxPro 9.0 podemos dibujar polígonos con un objeto Shape y la nueva propiedad PolyPoints.
Dibujando polígonos con VFP 9.0 Por Luis María Guayán, Tucumán, Argentina
La propiedad PolyPoints especifica el nombre de una matriz que contiene las coordenadas para crear formas poligonales usando el control Shape. La matriz debe estar en el alcance del objeto Shape para que el polígono sea dibujado.
Las cordenadas son de la forma (X,Y). Las coordenadas especificadas son porcentajes relativos a las dimensiones del control Shape. La coordenada (0,0) corresponde al ángulo superior izquierdo del objeto Shape, como se muestra en la gráfica. El polígono se dibujará en el orden que estas coordenadas aparezcan en la matriz.

A continuación el código de un formulario de ejemplo con dos polígonos dibujados.
PUBLIC goForm
goForm = CREATEOBJECT("MiForm")
goForm.SHOW(1)
RETURN
DEFINE CLASS MiForm AS FORM
DOCREATE = .T.
AUTOCENTER = .T.
CAPTION = "Dibujando polígonos con VFP 9.0"
NAME = "MiForm"
*-- Triángulo
ADD OBJECT shpTriangulo AS SHAPE WITH ;
TOP = 36, ;
LEFT = 24, ;
HEIGHT = 144, ;
WIDTH = 144, ;
BACKCOLOR = RGB(255,0,0), ;
POLYPOINTS = "This.aTri", ;
NAME = "shpTriangulo"
*-- Octógono
ADD OBJECT shpOctogono AS SHAPE WITH ;
TOP = 36, ;
LEFT = 204, ;
HEIGHT = 144, ;
WIDTH = 144, ;
BACKCOLOR = RGB(0,0,255), ;
POLYPOINTS = "This.aOct", ;
NAME = "shpOctogono"
PROCEDURE shpTriangulo.INIT
THIS.ADDPROPERTY("aTri[3,2]")
THIS.aTri[1,1]= 50
THIS.aTri[1,2]= 0
THIS.aTri[2,1]= 100
THIS.aTri[2,2]= 100
THIS.aTri[3,1]= 0
THIS.aTri[3,2]= 100
ENDPROC
PROCEDURE shpOctogono.INIT
THIS.ADDPROPERTY("aOct[8,2]")
THIS.aOct[1,1]= 33
THIS.aOct[1,2]= 0
THIS.aOct[2,1]= 67
THIS.aOct[2,2]= 0
THIS.aOct[3,1]= 100
THIS.aOct[3,2]= 33
THIS.aOct[4,1]= 100
THIS.aOct[4,2]= 67
THIS.aOct[5,1]= 67
THIS.aOct[5,2]= 100
THIS.aOct[6,1]= 33
THIS.aOct[6,2]= 100
THIS.aOct[7,1]= 0
THIS.aOct[7,2]= 67
THIS.aOct[8,1]= 0
THIS.aOct[8,2]= 33
ENDPROC
ENDDEFINE
|