⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmain.frm

📁 Visual Basic实现PC机与单片机串口通信任务 包含visual basic 和51的原代码
💻 FRM
📖 第 1 页 / 共 2 页
字号:
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 + -