PUBLIC oform1 oform1=NEWOBJECT("form1") oform1.Show RETURN ************************************************** *-- Form: form1 (c:\temp\olympicrings.scx) *-- ParentClass: form *-- BaseClass: form *-- Time Stamp: 02/23/06 01:48:09 AM * #INCLUDE "c:\temp\ffc\gdiplus.h" * DEFINE CLASS form1 AS form Height = 400 Width = 650 DoCreate = .T. AutoCenter = .T. BorderStyle = 3 Caption = "Olympic Rings" WindowType = 0 BackColor = RGB(255,255,255) AllowOutput = .F. Name = "Form1" ADD OBJECT shpplaceholder AS shape WITH ; Top = 37, ; Left = 10, ; Height = 325, ; Width = 630, ; Anchor = 768, ; BackStyle = 0, ; Visible = .F., ; BackColor = RGB(255,255,255), ; Name = "shpPlaceHolder" PROCEDURE Paint *!* Syntax: THIS.DrawArc(toPen,tX,tY,tnW, tnH, tnStart, tnSweep) *!* LOCAL m.lnX, m.lnY, m.lnW, m.lnH, m.lnStart, m.lnSweep WITH ThisForm.shpPlaceHolder m.lnX = .left + 40 m.lnY = .top + 40 m.lnW = 35+120 m.lnH = 35+120 m.lnStart = 0 m.lnSweep = 360 endwith ogr.DrawArc( m.oPenBlue, m.lnX, m.lnY, m.lnW, m.lnH, m.lnStart, m.lnSweep) ogr.DrawArc( m.oPenBlack, m.lnX+180, m.lnY, m.lnW, m.lnH, m.lnStart, m.lnSweep) ogr.DrawArc( m.oPenRed, m.lnX+360, m.lnY, m.lnW, m.lnH, m.lnStart, m.lnSweep) ogr.DrawArc( m.oPenYellow,m.lnX+90, m.lnY+90, m.lnW, m.lnH, m.lnStart, m.lnSweep) ogr.DrawArc( m.oPenGreen, m.lnX+270, m.lnY+90, m.lnW, m.lnH, m.lnStart, m.lnSweep) ogr.DrawArc( m.oPenBlue,m.lnX, m.lnY, m.lnW, m.lnH, m.lnStart, 20) ogr.DrawArc( m.oPenBlack,m.lnX+180, m.lnY, m.lnW, m.lnH, m.lnStart+2, 20) ogr.DrawArc( m.oPenBlack,m.lnX+180, m.lnY, m.lnW, m.lnH, m.lnStart+92, 20) ogr.DrawArc( m.oPenRed,m.lnX+360, m.lnY, m.lnW, m.lnH, m.lnStart+91, 20) ENDPROC PROCEDURE Init * Ensure GDI+ is initialised *!* createobject( "ReportListener" ) public oGr as GpGraphics of HOME()+/ffc/_gdiplus.vcx oGr = newobject('GpGraphics',HOME()+'/ffc/_gdiplus.vcx') oGr.CreateFromHWND( Thisform.HWnd ) PUBLIC olinecolor *!* oLineColor = newobject('GpColor',home()+'/ffc/_gdiplus.vcx','', 0,0,255 ) oLineColor = newobject('GpColor',home()+'/ffc/_gdiplus.vcx','',39,154,216) LOCAL m.lnPenWidth m.lnPenWidth=15 *Here's code to create a GpPen object using that color, and specified as three pixels wide: * first create 'empty' pen, then create the * underlying GDI+ object PUBLIC oPenBlue, oPenYellow, oPenBlack, oPenGreen, oPenRed oPenBlue = newobject('GpPen', HOME()+'/ffc/_gdiplus.vcx' ) oPenBlue.Create( m.oLineColor, m.lnPenWidth ) *!* oLineColor.Set(255,255,0) && yellow oLineColor.Set(243,217,33) && yellow oPenYellow = newobject('GpPen', HOME()+'/ffc/_gdiplus.vcx' ) oPenYellow.Create( m.oLineColor, m.lnPenWidth ) oLineColor.Set(0,0,0) && black oPenBlack = newobject('GpPen', HOME()+'/ffc/_gdiplus.vcx' ) oPenBlack.Create( m.oLineColor, m.lnPenWidth ) *!* oLineColor.Set(0,255,0) && green oLineColor.Set(41,194,46) && green oPenGreen = newobject('GpPen', HOME()+'/ffc/_gdiplus.vcx' ) oPenGreen.Create( m.oLineColor, m.lnPenWidth ) *!* oLineColor.Set(255,0,0) && red oLineColor.Set(236,19,73) && red oPenRed = newobject('GpPen', HOME()+'/ffc/_gdiplus.vcx' ) oPenRed.Create( m.oLineColor, m.lnPenWidth ) ENDPROC ENDDEFINE * *-- EndDefine: form1 **************************************************