📄 form1.frm
字号:
Height = 210
Left = 4470
TabIndex = 116
Top = 7245
Width = 1470
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Const SWP_NOMOVE = &H2 '不更动目前视窗位置
Const SWP_NOSIZE = &H1 '不更动目前视窗大小
Const HWND_TOPMOST = -1 '设定为最上层
Const HWND_NOTOPMOST = -2 '取消最上层设定
Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
'定义全局变量
Dim a(32) As Integer '寄存器数据
Dim TP As Boolean '焦点在哪个文本框
Private Sub Check1_Click()
'窗口始终在上
If Check1.Value = 1 Then
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS
Else
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, FLAGS
End If
End Sub
Private Sub Form_Load()
'初始化变量和控件
TP = True
Check1.Value = 1 '窗口始终在上选择
Option1(0).Value = True
Option2(0).Value = True
Option3(0).Value = True
End Sub
Private Sub Command1_Click(Index As Integer)
'小按钮快速调整
TP = True
If Command1(Index).Caption = "1" Then
Command1(Index).Caption = "0"
Else
Command1(Index).Caption = "1"
End If
Text1(Index).Text = Command1(Index).Caption
Text1(Index).SetFocus
End Sub
Private Sub Command2_Click(Index As Integer)
Dim i As Integer
Select Case Index
Case 0:
TP = True
For i = 0 To 15
Text1(i).Text = "0"
Next i
Text1(0).SetFocus
Case 1:
TP = True
For i = 0 To 15
Text1(i).Text = "1"
Next i
Text1(0).SetFocus
Case 2:
TP = True
For i = 16 To 31
Text1(i).Text = "0"
Next i
Text1(16).SetFocus
Case 3:
TP = True
For i = 16 To 31
Text1(i).Text = "1"
Next i
Text1(16).SetFocus
Case 4:
End
Case 5:
TP = False
Text3(0).Text = "FFFF"
Text3(1).Text = "FFFF"
Text3(1).SetFocus
Case 6:
TP = False
Text3(0).Text = "0000"
Text3(1).Text = "0000"
Text3(1).SetFocus
Case 7: '说明按钮
MsgBox "说明"
End Select
End Sub
Private Sub CalcDecF32()
'32位浮点Float
End Sub
Private Sub CalcDecS32()
'计算32位有符号数
Dim Si, i As Long
Si = 0
For i = 0 To 30
Si = Si + a(i) * 2 ^ i
Next i
If a(31) = 1 Then
Text2(6).Text = Trim(Format(2147483648# - Si, "-0000000000"))
Else
Text2(6).Text = Trim(Format(Si, "+0000000000"))
End If
End Sub
Private Sub CalcDecU32()
'计算32位无符号数
Dim Si, i As Long
Si = 0
For i = 0 To 31
Si = Si + a(i) * 2 ^ i
Next i
Text2(6).Text = Trim(Format(Si, "0000000000"))
End Sub
Private Sub CalcDecU8()
'计算8位无符号数
Dim Si As Integer
Si = 0
For i = 0 To 7
Si = Si + a(i) * 2 ^ i
Next i
Text2(0).Text = Trim(Format(Si, " 000"))
Si = 0
For i = 8 To 15
Si = Si + a(i) * 2 ^ (i - 8)
Next i
Text2(1).Text = Trim(Format(Si, " 000"))
Si = 0
For i = 16 To 23
Si = Si + a(i) * 2 ^ (i - 16)
Next i
Text2(2).Text = Trim(Format(Si, " 000"))
Si = 0
For i = 24 To 31
Si = Si + a(i) * 2 ^ (i - 24)
Next i
Text2(3).Text = Trim(Format(Si, " 000"))
End Sub
Private Sub CalcDecS16()
'计算16位有符号数
Dim Si, i As Integer
Si = 0
For i = 0 To 14
Si = Si + a(i) * 2 ^ i
Next i
If a(15) = 1 Then
Text2(4).Text = Trim(Format(32768 - Si, "-00000"))
Else
Text2(4).Text = Trim(Format(Si, "+00000"))
End If
Si = 0
For i = 16 To 30
Si = Si + a(i) * 2 ^ (i - 16)
Next i
If a(31) = 1 Then
Text2(5).Text = Trim(Format(32768 - Si, "-00000"))
Else
Text2(5).Text = Trim(Format(Si, "+00000"))
End If
End Sub
Private Sub CalcDecU16()
'计算16位无符号数
Dim i As Integer
Dim Si As Long
Si = 0
For i = 0 To 15
Si = Si + a(i) * 2 ^ i
Next i
Text2(4).Text = Trim(Format(Si, "00000"))
Si = 0
For i = 16 To 31
Si = Si + a(i) * 2 ^ (i - 16)
Next i
Text2(5).Text = Trim(Format(Si, "00000"))
End Sub
Private Sub CalcDecS8()
'计算8位有符号数
Dim Si As Integer
Si = 0
For i = 0 To 6
Si = Si + a(i) * 2 ^ i
Next i
If a(7) = 1 Then
Text2(0).Text = Trim(Format(128 - Si, "-000"))
Else
Text2(0).Text = Trim(Format(Si, "+000"))
End If
Si = 0
For i = 8 To 14
Si = Si + a(i) * 2 ^ (i - 8)
Next i
If a(15) = 1 Then
Text2(1).Text = Trim(Format(128 - Si, "-000"))
Else
Text2(1).Text = Trim(Format(Si, "+000"))
End If
Si = 0
For i = 16 To 22
Si = Si + a(i) * 2 ^ (i - 16)
Next i
If a(23) = 1 Then
Text2(2).Text = Trim(Format(128 - Si, "-000"))
Else
Text2(2).Text = Trim(Format(Si, "+000"))
End If
Si = 0
For i = 24 To 30
Si = Si + a(i) * 2 ^ (i - 24)
Next i
If a(31) = 1 Then
Text2(3).Text = Trim(Format(128 - Si, "-000"))
Else
Text2(3).Text = Trim(Format(Si, "+000"))
End If
End Sub
Private Function CalcHex() As String
'2进制计算16进制
Dim St As String
Dim Si As Integer
St = ""
For i = 31 To 0 Step -4
Si = a(i) * 8 + a(i - 1) * 4 + a(i - 2) * 2 + a(i - 3)
If Si < 10 Then
St = St & Trim(Str(Si))
Else
Select Case Si
Case 10: St = St & "A"
Case 11: St = St & "B"
Case 12: St = St & "C"
Case 13: St = St & "D"
Case 14: St = St & "E"
Case 15: St = St & "F"
End Select
End If
Next i
CalcHex = St
End Function
Private Sub Option1_Click(Index As Integer)
If Index = 0 Then CalcDecS8
If Index = 1 Then CalcDecU8
End Sub
Private Sub Option2_Click(Index As Integer)
If Index = 0 Then CalcDecS16
If Index = 1 Then CalcDecU16
End Sub
Private Sub Option3_Click(Index As Integer)
If Index = 0 Then CalcDecS32
If Index = 1 Then CalcDecU32
If Index = 2 Then CalcDecF32
End Sub
Private Sub Text1_Change(Index As Integer)
'0,1文本框的变动
If Text1(Index).Text = "1" Or Text1(Index).Text = "0" Then
Command1(Index).Caption = Text1(Index).Text
Else
Text1(Index).Text = "0"
End If
For i = 0 To 31
a(i) = CInt(Text1(i).Text)
Next i
If TP Then
Text3(0).Text = Left(CalcHex(), 4)
Text3(1).Text = Right(CalcHex(), 4)
End If
If Option1(0).Value Then CalcDecS8 '8位有符号Byte
If Option1(1).Value Then CalcDecU8 '8位无符号Byte
If Option2(0).Value Then CalcDecS16 '16位有符号Integer
If Option2(1).Value Then CalcDecU16 '16位无符号Integer
If Option3(0).Value Then CalcDecS32 '32位有符号Long
If Option3(1).Value Then CalcDecU32 '32位无符号Long
If Option3(2).Value Then CalcDecF32 '32位浮点Float
End Sub
Private Sub Text1_GotFocus(Index As Integer)
'0,1文本框取得焦点
TP = True
Text1(Index).SelStart = 0
Text1(Index).SelLength = 1
End Sub
Private Sub Text2_GotFocus(Index As Integer)
'10进制文本框取得焦点
Text2(Index).SelStart = 0
Text2(Index).SelLength = Len(Text2(Index).Text)
End Sub
Private Sub Text3_KeyPress(Index As Integer, KeyAscii As Integer)
'If KeyAscii <= Asc("a") And KeyAscii >= Asc("z") Then
'End If
End Sub
Private Sub Text3_Change(Index As Integer)
'16进制框改动
Dim i As Integer
Dim St As String
Text3(Index).Text = UCase$(Text3(Index).Text)
Text3(Index).SelStart = Len(Text3(Index).Text)
If Not TP Then
If Len(Text3(0).Text) = 4 And Len(Text3(1).Text) = 4 Then
For i = 1 To 4
St = Mid(Text3(1).Text, i, 1)
Select Case St
Case "0":
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
Case "1":
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "1"
Case "2":
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "0"
Case "3":
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "1"
Case "4":
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "1"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
Case "5":
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "1"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "1"
Case "6":
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "1"
Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "0"
Case "7":
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "1"
Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "1"
Case "8":
Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
Case "9":
Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "1"
Case "A":
Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "0"
Case "B":
Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "1"
Case "C":
Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "1"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
Case "D":
Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "1"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "1"
Case "E":
Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "1"
Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "0"
Case "F":
Text1(19 - 4 * i).Text = "1": Text1(18 - 4 * i).Text = "1"
Text1(17 - 4 * i).Text = "1": Text1(16 - 4 * i).Text = "1"
Case Else '当0处理
Text1(19 - 4 * i).Text = "0": Text1(18 - 4 * i).Text = "0"
Text1(17 - 4 * i).Text = "0": Text1(16 - 4 * i).Text = "0"
End Select
Next i
For i = 1 To 4
St = Mid(Text3(0).Text, i, 1)
Select Case St
Case "0":
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
Case "1":
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "1"
Case "2":
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "0"
Case "3":
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "1"
Case "4":
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "1"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
Case "5":
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "1"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "1"
Case "6":
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "1"
Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "0"
Case "7":
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "1"
Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "1"
Case "8":
Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
Case "9":
Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "1"
Case "A":
Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "0"
Case "B":
Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "1"
Case "C":
Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "1"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
Case "D":
Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "1"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "1"
Case "E":
Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "1"
Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "0"
Case "F":
Text1(35 - 4 * i).Text = "1": Text1(34 - 4 * i).Text = "1"
Text1(33 - 4 * i).Text = "1": Text1(32 - 4 * i).Text = "1"
Case Else '当0处理
Text1(35 - 4 * i).Text = "0": Text1(34 - 4 * i).Text = "0"
Text1(33 - 4 * i).Text = "0": Text1(32 - 4 * i).Text = "0"
End Select
Next i
End If
End If
End Sub
Private Sub Text3_GotFocus(Index As Integer)
'16进制编辑框
TP = False
Text3(Index).SelStart = 0
Text3(Index).SelLength = Len(Text3(Index).Text)
End Sub
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
''0,1文本框光标键
If KeyCode = 37 Then If Index < 31 Then Text1(Index + 1).SetFocus '左移
If KeyCode = 39 Then If Index > 0 Then Text1(Index - 1).SetFocus '右移
End Sub
Private Sub Text3_LostFocus(Index As Integer)
If Len(Text3(Index).Text) = 0 Then Text3(Index).Text = "0000"
If Len(Text3(Index).Text) = 1 Then Text3(Index).Text = "000" & Text3(Index).Text
If Len(Text3(Index).Text) = 2 Then Text3(Index).Text = "00" & Text3(Index).Text
If Len(Text3(Index).Text) = 3 Then Text3(Index).Text = "0" & Text3(Index).Text
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -