vfp6.0表单时钟
是那种圆盘的 不是数字的! 展开
步骤1、新建一个表单,并有表单上拖放一个计时器timer1,然后将该对象的interval设置为1000,即每隔一秒钟激活一次计时器事件,并将ENABLED属性设置为.T.
2、在表单中添加两个自定义的方法mydrawclock,gettime
3、添加mydrawclock方法代码为:
*******mydrawclock()*********
parameters h,m,s
PI=3.1415926
*分别定义指针的长度
s_len=thisform.height*3/8
m_len=thisform.height*2/8
h_len=thisform.height/8
*计算中心点的坐标
centerX=thisform.width/2
centerY=thisform.height/2
*定义秒针另一端的坐标
secX=centerX+sin(6*s*pi/180)*s_len
secY=centerY-cos(6*s*pi/180)*s_len
*定义分针另一端的坐标
minX=centerX+sin(6*m*pi/180)*m_len
minY=centerY-cos(6*m*pi/180)*m_len
*定义时针另一端的坐标
hourX=centerX+sin(((30*h)+(m/2))*pi/180)*h_len
hourY=centerY+cos(((30*h)+(m/2))*pi/180)*h_len
thisform.cls
thisform.drawwidth=4
thisform.fillcolor=4194368
*绘制表面
thisform.circle(thisform.height/2,centerX,centerY,1)
*以不同的线条宽度绘制指针
thisform.drawwidth=2
thisform.line(centerX,centerY,secX,secY)
thisform.drawwidth=4
thisform.line(centerX,centerY,minX,minY)
thisform.drawwidth=7
thisform.line(centerX,centerY,hourX,hourY)
4、添加gettime方法
************gettime()方法代码***********
timeinstring=""
nhour=hour(datetime())
nmin=minute(datetime())
nsec=sec(datetime())
timeinstring=timeinstring+iif(nhour<10,"0"+alltrim(str(nhour)),alltrim(str(nhour)))+":"
timeinstring=timeinstring+iif(nmin<10,"0"+alltrim(str(nmin)),alltrim(str(nmin)))+":"
timeinstring=timeinstring+iif(nsec<10,"0"+alltrim(str(nsec)),alltrim(str(nsec)))
return timeinstring
5、双击timer1对象,在timer事件中添加如下代码:
h=hour(datetime())
m=minute(datetime())
s=sec(datetime())
thisform.mydrawclock(h,m,s)
thisform.caption=thisform.gettime()
2024-09-19 广告