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

📄

📁 VB代码生成器
💻
📖 第 1 页 / 共 3 页
字号:

Private Sub mnuCreateCode_Click()
   On Error GoTo ErrHandle
   
   If TreeTable.Nodes("M1Manager").Text = "服务器数据库 【未指定】" Then
      Call cmdNew_Click
   End If
   If TreeTable.Nodes("M1Manager").Text <> "服务器数据库 【未指定】" Then
      Call cmdSaveFile_Click
   End If
   
ErrHandle:
End Sub

Private Sub mnuDatabase_Click()
   Call Toolbar1_ButtonClick(Toolbar1.Buttons("Database"))
End Sub

Private Sub mnuDelNode_Click()
   If MsgBox("真的要删除该节点吗?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
   
   If Not TreeTable.SelectedItem Is Nothing Then
      TreeTable.Nodes.Remove TreeTable.SelectedItem.Key
   End If
End Sub

Private Sub mnuExit_Click()
   Unload Me
End Sub

Private Sub mnuProductRegister_Click()
   Call ProductRegister
End Sub

Private Sub mobjGetDatabase_GetDatabaseName(ByVal vstrDatabaseName As String)
   mstrDatabaseName = vstrDatabaseName
End Sub

Private Sub mobjGetDatabase_SaveProgressEnd()
   ProgressBar1.Visible = False
End Sub

Private Sub mobjGetDatabase_SaveProgressMax(ByVal vlngMax As Long)
   With ProgressBar1
      .Left = 0
      .Top = TreeTable.Height + Toolbar1.Height ' + 30
      .Width = Me.ScaleWidth + 100
      .Height = StatusBar1.Height ' - 30
      .Visible = True
      .ZOrder 0
      .Value = 0
      .Max = vlngMax
   End With
End Sub

Private Sub mobjGetDatabase_SaveProgressValue(ByVal vlngValue As Long)
   ProgressBar1.Value = vlngValue
End Sub

Private Sub StatusBar1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
   MousePointer = vbDefault
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
   DoEvents
   Select Case Button.Key
      Case "Database"
         Call cmdNew_Click
      Case "CreateCode"
         Call mnuCreateCode_Click
      Case "VBClass"
         mblnWatchVB = True
         Call TreeTableNodeClick(Nothing)
      Case "VCCPP"
         mblnWatchVB = False
         Call TreeTableNodeClick(Nothing)
      Case "FormatCode"

         Call TreeTableNodeClick(Nothing)
      Case "Delete"
         Call mnuDelNode_Click
      Case "ClearTree"
         Call cmdDelete_Click
      Case "About"
         Call mnuAbout_Click
      Case "Exit"
         Unload Me
      Case Else
   End Select
End Sub

Private Sub Toolbar1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
   MousePointer = vbDefault
End Sub

Private Sub TreeTable_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
   MousePointer = vbDefault
End Sub

Private Sub TreeTable_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Button = vbRightButton Then
      PopupMenu mnuOperat
   End If
End Sub

Private Sub TreeTable_NodeClick(ByVal Node As MSComctlLib.Node)
   If mintNodeIndex = Node.Index Then Exit Sub
   mintNodeIndex = Node.Index
   
   Call TreeTableNodeClick(Node)
End Sub

Private Sub TreeTableNodeClick(Optional ByVal Node As MSComctlLib.Node = Nothing)
   Dim strCode As String, lngLenth As Long
   Dim strNodeKey As String
   Dim strNewProjectName As String
   MousePointer = vbHourglass
   
   If Node Is Nothing Then
      Set Node = TreeTable.SelectedItem
      If Node Is Nothing Then Exit Sub
   End If
   
   strNewProjectName = IIf(Len(mstrDatabaseName) = 0, "[NewProject]", mstrDatabaseName)
   
   lngLenth = 0
   strNodeKey = Node.Key
   If Mid(strNodeKey, 2, 1) = "3" Then
      If mblnWatchVB Then
         If Left(strNodeKey, 1) = "T" Or Left(strNodeKey, 1) = "V" Then
            strCode = "Option Explicit" & vbCrLf & vbCrLf
            strCode = strCode & mobjGetDatabase.GetStructString(Node.Text)
            strCode = strCode & mobjGetDatabase.GetTableString(strNewProjectName, Node.Text, True)
         Else
            strCode = mobjGetDatabase.GetProcedureString(strNewProjectName, Node.Text)
            lngLenth = Len(strCode)
         End If
      Else
         If Left(strNodeKey, 1) = "T" Or Left(strNodeKey, 1) = "V" Then
            strCode = mobjGetDatabase.GetVCHeadString(strNewProjectName, Node.Text)
            strCode = strCode & mobjGetDatabase.GetVCCppString(strNewProjectName, Node.Text)
         Else
            strCode = mobjGetDatabase.GetConnectionHead(strNewProjectName)
            strCode = strCode & mobjGetDatabase.GetConnectionHeadProc(strNewProjectName, Node.Text)
            strCode = strCode & mobjGetDatabase.GetConnectionHeadTail & vbCrLf & vbCrLf
            
            strCode = strCode & mobjGetDatabase.GetConnectionCPP(strNewProjectName)
            strCode = strCode & mobjGetDatabase.GetConnectionCPPProc(Node.Text)
            lngLenth = Len(strCode)
         End If
      End If
   ElseIf Mid(strNodeKey, 2, 1) = "1" Then
      If mblnWatchVB Then
         strCode = mobjGetDatabase.GetProcedureString(strNewProjectName, , True)
      Else
         strCode = mobjGetDatabase.GetConnectionHead(strNewProjectName)
         strCode = strCode & mobjGetDatabase.GetConnectionHeadTail
         strCode = strCode & mobjGetDatabase.GetConnectionCPP(strNewProjectName)
      End If
   Else
      strCode = vbCrLf & Space(8) & "选择一个数据库后,在左边栏选择一个""表""、""视图""或""存储过程"",这里将显示预览相应的代码。"
   End If
   
   StatusBar1.Panels("Status").Text = Node.FullPath & "  → 【" & IIf(mblnWatchVB, "VB", "VC") & " Code 预览】"
   Call FormatRichTextBox(strCode)

   MousePointer = vbDefault
End Sub

Private Sub FormatRichTextBox(ByVal vstrCode As String)
   On Error Resume Next
   
   With RichTextBox1
      If Toolbar1.Buttons("FormatCode").Value = tbrPressed Then
         With ProgressBar1
            .Left = 0
            .Top = TreeTable.Height + Toolbar1.Height ' + 30
            .Width = Me.ScaleWidth + 100
            .Height = StatusBar1.Height ' - 30
            .Visible = True
            .ZOrder 0
            .Value = 0
            .Max = 82
         End With
         
         .Text = ""
         .Text = vstrCode
         mlngCodeLen = LenB(vstrCode)
         
         If mblnWatchVB Then
            Call FormatCodeVC
            Call FormatCodeVB
         Else
            Call FormatCodeVB
            Call FormatCodeVC
         End If
      
         ProgressBar1.Visible = False
         
      Else
         .Text = ""
         .Text = vstrCode
      End If
   
      .SelStart = 1
      .SelLength = Len(.Text)
      .SelIndent = 200
      txtCode.TextRTF = .TextRTF
   End With
End Sub

Private Sub FormatCodeVC()
   Call FormatCode("static")
   Call FormatCode("Const")
   Call FormatCode("CString")
   Call FormatCode("char")
   Call FormatCode("float")
   Call FormatCode("COleDateTime")
   Call FormatCode("bool")
   Call FormatCode("short")
   Call FormatCode("int")
   Call FormatCode("void")
   Call FormatCode("VARIANT")
   Call FormatCode("class")
   Call FormatCode("return")
   Call FormatCode("__stdcall")
   Call FormatCode("#endif")
   Call FormatCode("typedef")
   Call FormatCode("struct")
   Call FormatCode("virtual")
   Call FormatCode("#include")
   Call FormatCode("#ifndef")
   Call FormatCode("#define")
   Call FormatCode("#ifdef")
   Call FormatCode("#undef")
   Call FormatCode("#pragma once")
   Call FormatCode("#if")
   Call FormatCode("defined")
   Call FormatCode("__uuidof")
   Call FormatCode("try")
   Call FormatCode("catch")
   Call FormatNotes("//")
End Sub

Private Sub FormatCodeVB()
   Call FormatCode("Explicit")
   Call FormatCode("Call")
   Call FormatCode("Public")
   Call FormatCode("Private")
   Call FormatCode("Sub")
   Call FormatCode("End")
   Call FormatCode("Function")
   Call FormatCode("Dim")
   Call FormatCode("ReDim")
   Call FormatCode("Option")
   Call FormatCode("if")
   Call FormatCode("ByVal")
   Call FormatCode("ByRef")
   Call FormatCode("As")
   Call FormatCode("String")
   Call FormatCode("Long")
   Call FormatCode("Boolean")
   Call FormatCode("Integer")
   Call FormatCode("Single")
   Call FormatCode("Date")
   Call FormatCode("Variant")
   Call FormatCode("Double")
   Call FormatCode("Byte")
   Call FormatCode("Currency")
   Call FormatCode("Nothing")
   Call FormatCode("With")
   Call FormatCode("If")
   Call FormatCode("Then")
   Call FormatCode("Else")
   Call FormatCode("Select")
   Call FormatCode("Case")
   Call FormatCode("Optional")
   Call FormatCode("Set")
   Call FormatCode("Get")
   Call FormatCode("Let")
   Call FormatCode("Property")
   Call FormatCode("Exit")
   Call FormatCode("New")
   Call FormatCode("For")
   Call FormatCode("Next")
   Call FormatCode("False")
   Call FormatCode("True")
   Call FormatCode("Step")
   Call FormatCode("To")
   Call FormatCode("GoTo")
   Call FormatCode("Error")
   Call FormatCode("On")
   Call FormatCode("And")
   Call FormatCode("CStr(")
   Call FormatCode("Not")
   Call FormatCode("Empty")
   Call FormatCode("Type")
End Sub

Private Sub FormatNotes(ByVal vstrKey As String)
   Dim lngPlace As Long, lngVbcrlf As Long
   Dim lngKeyCount As Long
   lngKeyCount = Len(vstrKey)
   With RichTextBox1
      .SelStart = 0
      Do While lngPlace <> -1
            lngPlace = .Find(vstrKey, , mlngCodeLen - lngVbcrlf, rtfWholeWord)
            If lngPlace <> -1 Then
               .SelStart = lngPlace + 2
               lngVbcrlf = .Find(vbCrLf, , mlngCodeLen - lngPlace)
               .SelStart = lngPlace
               .SelLength = lngVbcrlf - lngPlace
               .SelColor = &H8000&
               .SelStart = lngVbcrlf
            End If
   '      DoEvents
      Loop
   End With
   ProgressBar1.Value = ProgressBar1.Value + 1
End Sub

Private Sub FormatCode(ByVal vstrKey As String)
   Dim lngPlace As Long, lngVbcrlf As Long
   Dim lngKeyCount As Long
   lngKeyCount = Len(vstrKey)
   With RichTextBox1
      .SelStart = 0
      Do While lngPlace <> -1
            lngPlace = .Find(vstrKey, , mlngCodeLen, rtfWholeWord)
            If lngPlace <> -1 Then
               .SelColor = vbBlue
               .SelStart = lngPlace + lngKeyCount
            End If
   '      DoEvents
      Loop
   End With
   ProgressBar1.Value = ProgressBar1.Value + 1
End Sub

Private Sub txtCode_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
   MousePointer = vbDefault
End Sub

'Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'   Dim strSerialNumber As String
'
'   If KeyCode = vbKeyR And _
'      (Shift And vbCtrlMask) > 0 And _
'      (Shift And vbAltMask) > 0 Then
'      strSerialNumber = InputBox("请输入目标计算机机内码:", "获取注册序列号")
'      strSerialNumber = CStr(CLng(Val(strSerialNumber)) Xor &H59421549 Xor 59421549)
'      MsgBox "目标计算机《代码生成器》的注册序列号为:" & vbCrLf & vbCrLf & strSerialNumber, vbInformation, "注册序列号"
'      Clipboard.Clear
'      Clipboard.SetText strSerialNumber
'   End If
'End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -