📄 frmain.frm
字号:
If i Mod Fenkedushu = 0 Then
Keduchang = Zhizhen * 0.15
Else
Keduchang = Zhizhen * 0.1
End If
biaopan.Line (Zhizhen * Cos(PI * i / Zhukedushu / Fenkedushu), Zhizhen * Sin(PI * i / Zhukedushu / Fenkedushu))-((Zhizhen + Keduchang) * Cos(PI * i / Zhukedushu / Fenkedushu), (Zhizhen + Keduchang) * Sin(PI * i / Zhukedushu / Fenkedushu))
Next i
For Index = 0 To 4 '初始化表针
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = -(Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
biaozhen(Index).BorderWidth = Index + 1
Next Index
If Zhukedushu <> Zhukedushu1 Then '设定主刻度值的个数
If Zhukedushu > KEdushulinshi Then
For m = Zhukedushu1 + 1 To Zhukedushu
Load keduzhi(m)
Next m
Else
For n = Zhukedushu + 1 To Zhukedushu1
keduzhi(n).Visible = False
Next n
End If
End If
If Zhukedushu > 6 Then Zhukedushu1 = Zhukedushu
If Zhukedushu > KEdushulinshi Then KEdushulinshi = Zhukedushu
For j = 0 To Zhukedushu '设定刻度值的位置坐标,数值大小
Dim ls As Single
keduzhi(j).Visible = True
If Fix((Zuidazhi - Zuixiaozhi) * j / Zhukedushu) <> (Zuidazhi - Zuixiaozhi) * j / Zhukedushu Then
keduzhi(j).Caption = Format$((Zuidazhi - Zuixiaozhi) * j / Zhukedushu + Zuixiaozhi, "###.##")
Else
keduzhi(j).Caption = (Zuidazhi - Zuixiaozhi) * j / Zhukedushu + Zuixiaozhi
End If
keduzhi(j).AutoSize = True
keduzhi(j).BackStyle = 0
ls = (Sqr(keduzhi(j).Width * keduzhi(j).Width + keduzhi(j).Height * keduzhi(j).Height)) / 2 + Zhizhen * 0.1
keduzhi(j).Left = (Zhizhen + ls) * Cos(PI * (Zhukedushu - j) / Zhukedushu) - keduzhi(j).Width / 2
keduzhi(j).Top = (Zhizhen + ls) * Sin(PI * (Zhukedushu - j) / Zhukedushu) + keduzhi(j).Height / 2
Next j
End Sub
Sub biaozhenxuanzhuan(ls As Single) '设置表针走动
If Dongtaishu <= Zuidazhi And Dongtaishu >= Zuixiaozhi Then '设置表针
For Index = 0 To 4
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = (Zhizhen + 1) * Cos(ls) * ((5 - Index) / 5)
biaozhen(Index).Y2 = (Zhizhen + 1) * Sin(ls) * ((5 - Index) / 5)
Next Index
ElseIf Dongtaishu < Zuixiaozhi Then
For Index = 0 To 4 '表针置初位
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = -(Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
Next Index
ElseIf Dongtaishu > Zuidazhi Then
For Index = 0 To 4 '表针置于最大位置
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = (Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
Next Index
End If
End Sub
Private Sub biaoke_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
biaoke.Drag 1
End If
End Sub
Private Sub biaoke_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
biaoke.Drag 2
End Sub
Private Sub biaopan_DblClick()
yibiaoshezhi.Show
End Sub
Private Sub canshu_Click()
yibiaoshezhi.Show
End Sub
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
biaoke.Move X, Y
huadian '调用画点函数重新表壳周围的八个点
End Sub
Private Sub Form_Load() '初始化
PI = 3.15159 '定义常量PI值和缇与毫米的转换值
ZH = 1440 / 25.4
biaopan.Picture = LoadPicture()
ShuBiao = 0 '参数赋初值
Zhizhen = biaoke.ScaleWidth / 4
Kaiguanxiandian = True
Zuidazhi = 180
Zuixiaozhi = 0
Dongtaishu = 0
Zhukedushu = 6
Zhukedushu1 = 6
Fenkedushu = 5
KEdushulinshi = 6
Dian = 0
shezhibiaopan '初始化表盘
huadian '画出表壳周围的八个点
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then '表盘大小、位置赋初值
Top1 = biaoke.Top
Left1 = biaoke.Left
Width1 = biaoke.Width
Height1 = biaoke.Height
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'设置图片周围小点上的图标形状
If (X >= biaoke.Left - 55 And X <= biaoke.Left - 5) And (Y >= biaoke.Top - 55 And Y <= biaoke.Top - 5) Then
ShuBiao = 8
If Button = 1 Then Dian = 1
End If
If (X >= biaoke.Left - 55 And X <= biaoke.Left - 5) And (Y >= biaoke.Top + biaoke.Height / 2 And Y <= biaoke.Top + biaoke.Height / 2 + 50) Then
ShuBiao = 9
If Button = 1 Then Dian = 2
End If
If (X >= biaoke.Left - 55 And X <= biaoke.Left - 5) And (Y >= biaoke.Top + biaoke.Height + 5 And Y <= biaoke.Top + biaoke.Height + 55) Then
ShuBiao = 6
If Button = 1 Then Dian = 3
End If
If (X >= biaoke.Left + biaoke.Width / 2 And X <= biaoke.Left + biaoke.Width / 2 + 55) And (Y >= biaoke.Top + biaoke.Height + 5 And Y <= biaoke.Top + biaoke.Height + 55) Then
ShuBiao = 7
If Button = 1 Then Dian = 4
End If
If (X >= biaoke.Left + biaoke.Width + 5 And X <= biaoke.Left + biaoke.Width + 55) And (Y >= biaoke.Top + biaoke.Height + 5 And Y <= biaoke.Top + biaoke.Height + 55) Then
ShuBiao = 8
If Button = 1 Then Dian = 5
End If
If (X >= biaoke.Left + biaoke.Width + 5 And X <= biaoke.Left + biaoke.Width + 55) And (Y >= biaoke.Top + biaoke.Height / 2 And Y <= biaoke.Top + biaoke.Height / 2 + 55) Then
ShuBiao = 9
If Button = 1 Then Dian = 6
End If
If (X >= biaoke.Left + biaoke.Width + 5 And X <= biaoke.Left + biaoke.Width + 55) And (Y >= biaoke.Top - 55 And Y <= biaoke.Top - 5) Then
ShuBiao = 6
If Button = 1 Then Dian = 7
End If
If (X >= biaoke.Left + biaoke.Width / 2 And X <= biaoke.Left + biaoke.Width / 2 + 55) And (Y >= biaoke.Top - 55 And Y <= biaoke.Top - 5) Then
ShuBiao = 7
If Button = 1 Then Dian = 8
End If
frmain.MousePointer = ShuBiao '根据"ShuBiao"值设定形状
If Dian = 1 Then '利用1号点改变表盘大小
biaoke.Left = X
biaoke.Top = Y
Zhizhen = Abs(X - Width1 - Left1) / ZH / 4
shezhibiaopan '重设表盘
huadian '重新画出八个点
End If
If Dian = 2 Then '利用第2个点设置表盘大小
biaoke.Left = X
Zhizhen = Abs(X - Left1 - Width1) / ZH / 4
shezhibiaopan '重置表盘
huadian '重新画八个点
End If
If Dian = 3 Then '利用第3个点设置表盘大小
biaoke.Left = X
Zhizhen = Abs(X - Left1 - Width1) / ZH / 4
shezhibiaopan '重置表盘
huadian '重新画八个点
End If
If Dian = 4 Then '利用第4个点设置表盘大小
Zhizhen = Abs(Y - Top1) / ZH / 2.6
shezhibiaopan '重置表盘
huadian '重新画八个点
End If
If Dian = 5 Then '利用第5个点设置表盘大小
Zhizhen = Abs(X - Left1) / ZH / 4
shezhibiaopan '重置表盘
huadian '重新画八个点
End If
If Dian = 6 Then '利用第6个点设置表盘大小
Zhizhen = Abs(X - Left1) / ZH / 4
shezhibiaopan '重置表盘
huadian '重新画八个点
End If
If Dian = 7 Then '利用第7个点设置表盘大小
biaoke.Top = Y
Zhizhen = Abs(Y - Top1 - Height1) / ZH / 2.6
shezhibiaopan '重置表盘
huadian '重新画八个点
End If
If Dian = 8 Then '利用第8个点设置表盘大小
biaoke.Top = Y
Zhizhen = Abs(Y - Top1 - Height1) / ZH / 2.6
shezhibiaopan '重置表盘
huadian '重新画八个点
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift = 2 Then
frmain.Cls
Zhizhen = (Abs(X - biaoke.Left)) / ZH / 4
shezhibiaopan '设置表盘
End If
Dian = 0
ShuBiao = 0
End Sub
Private Sub Text1_Change()
JISHOUZHI = Val(Text1.Text)
celiangzhi.Text = JISHOUZHI
End Sub
Private Sub Timer1_Timer() '自动测验仪表盘
xxx = xxx + 3
celiangzhi.Text = xxx
If xxx >= 180 Then xxx = 0
End Sub
Private Sub celiangzhi_Change() '测量量改变时仪表改变
Dim ls As Single
Dongtaishu = Val(celiangzhi.Text)
ls = PI - (Dongtaishu - Zuixiaozhi) * PI / (Zuidazhi - Zuixiaozhi)
biaozhenxuanzhuan ls '调用指针改变函数
End Sub
Private Sub Command4_Click() '打开时钟,自动测验
Timer1.Enabled = True
End Sub
Private Sub Command5_Click() '关闭自动时钟按钮
Timer1.Enabled = False
End Sub
Private Sub xianshiyincang_Click()
Kaiguanxiandian = Not Kaiguanxiandian
If Kaiguanxiandian = True Then
huadian '重新画八点
Else
frmain.Cls
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -