************************************************** ***-----------时钟代码-------------------------*** *** 作者: ziyang 日期:2008.3.10 *** ************************************************* set sysmenu on release window
常用,项目管理器,表单控件,命令,布局 _screen.windowstate=2&;&;最大化 zoom window screen max&;&;最大化 PUBLIC xx dz=addbs(left(sys(16),rat('\',sys(16))-1)) set default to(dz) xx=CREATEOBJECT("ziyangform") xx.show on shutdown retu DEFINE CLASS ziyangform AS form Height = 300 width = 300 AutoCenter = .t. BorderStyle = 2 Caption = "时钟轨迹—[Esc 键--退出]" MaxButton = .F. top=200 showwindow=0 Name = "ziyang" closable=.f. backcolor =RGB(128,128,255) **----------------------------------------*** **----------------添加控件----------------*** ADD OBJECT line1 as line &;&;添加线条控件 ADD OBJECT line2 as line &;&;添加线条控件 ADD OBJECT line3 as line&;&;添加线条控件 ADD OBJECT timer1 as timer with;&;&;添加时间控件 interval=1000 **----------------添加控件----------------*** **----------------------------------------*** PROCEDURE load PUBLIC h,m,s,pi pi=3.1415 ENDPROC **-**----------------thisform.init-----------*** PROCEDURE init FOR i=1 TO 60
thisform.addobject('label'+allt(str(i)),'label') a="thisform.label"+ALLTRIM(STR(i))+".visible" &;a=.t. IF MOD(i,5)=0 a="thisform.label"+ALLTRIM(STR(i))+".Caption" &;a=ALLTRIM(STR(i/5)) ELSE a="thisform.label"+ALLTRIM(STR(i))+".Caption" &;a=ALLTRIM("。") endif a="thisform.label"+ALLTRIM(STR(i))+".backstyle" &;a=0 a="thisform.label"+ALLTRIM(STR(i))+".left" &;a=27+120*(1+SIN(i*pi/30)) a="thisform.label"+ALLTRIM(STR(i))+".top" &;a=23+120*(1-cos(i*pi/30)) ENDFOR ENDPROC **----------------thisform.init-----------*** **----------------------------------------**** **----------------thisform.text1.keypress-----------*** PROCEDURE keypress LPARAMETERS nKeyCode, nShiftAltCtrl IF nkeycode=27 IF MESSAGEBOX("你真的退出吗??",4+32+0,"退出提示")=6 thisform.release ENDIF endif endproc **----------------thisform.text1.keypress-----------*** **-------------------------------------------------------**** **---------------秒针转动轨迹----------------------------**** PROCEDURE timer1.timer h=MOD(hour(dateTIME()),12)+mINUTE(dateTIME())/60.0+MOD(INT(SECONDS()),60)/3600. 0 m=mINUTE(dateTIME())+MOD(INT(SECONDS()),60)/60.0 s=MOD(INT(SECONDS()),60) with thisform.line3 .BorderWidth=1 ---------------------------------------*** DO CASE CASE 0=
.height=ABS(cos(pi*s/30)*120) .Left=150 .top=150-ABS(cos(pi*s/30)*120) CASE 15= 30)*120) ENDCASE endwith **---------------秒针转动轨迹----------------------------**** **--------------