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

📄 frmdoc.frm

📁 这是一个完美版本的的超强文件编辑器,支持各种程序的语法高亮,支持插件和宏录制,支持XP菜单,支持浏览器浏览等等功能,记得有位网友做文件编辑器要求我给他一个支持语法高亮和DockWindows技术的代码
💻 FRM
📖 第 1 页 / 共 2 页
字号:
VERSION 5.00
Object = "{665BF2B8-F41F-4EF4-A8D0-303FBFFC475E}#2.0#0"; "cmcs21.ocx"
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomctl.ocx"
Begin VB.Form frmDoc 
   Caption         =   "Untitled"
   ClientHeight    =   2940
   ClientLeft      =   60
   ClientTop       =   225
   ClientWidth     =   4275
   Icon            =   "frmDoc.frx":0000
   LinkTopic       =   "Form1"
   MDIChild        =   -1  'True
   ScaleHeight     =   2940
   ScaleWidth      =   4275
   WindowState     =   2  'Maximized
   Begin VB.Frame fmLang 
      Height          =   615
      Left            =   0
      TabIndex        =   1
      Top             =   -70
      Width           =   4335
      Begin VB.ComboBox cboLanguage 
         Height          =   315
         ItemData        =   "frmDoc.frx":1042
         Left            =   480
         List            =   "frmDoc.frx":1044
         Sorted          =   -1  'True
         Style           =   2  'Dropdown List
         TabIndex        =   3
         TabStop         =   0   'False
         Top             =   200
         Width           =   2025
      End
      Begin VB.ComboBox cboProcedures 
         Appearance      =   0  'Flat
         Height          =   315
         ItemData        =   "frmDoc.frx":1046
         Left            =   2880
         List            =   "frmDoc.frx":1048
         Sorted          =   -1  'True
         Style           =   2  'Dropdown List
         TabIndex        =   2
         TabStop         =   0   'False
         Top             =   200
         Width           =   1995
      End
      Begin VB.Image imgPic 
         Height          =   240
         Index           =   0
         Left            =   2520
         Picture         =   "frmDoc.frx":104A
         ToolTipText     =   "Jump to..."
         Top             =   195
         Width           =   240
      End
      Begin VB.Image imgPic 
         Height          =   240
         Index           =   1
         Left            =   120
         Picture         =   "frmDoc.frx":1194
         ToolTipText     =   "Language"
         Top             =   200
         Width           =   240
      End
   End
   Begin MSComctlLib.ImageList imgCode 
      Left            =   3360
      Top             =   1200
      _ExtentX        =   1005
      _ExtentY        =   1005
      BackColor       =   -2147483643
      ImageWidth      =   16
      ImageHeight     =   11
      MaskColor       =   16777215
      _Version        =   393216
      BeginProperty Images {2C247F25-8591-11D1-B16A-00C0F0283628} 
         NumListImages   =   3
         BeginProperty ListImage1 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmDoc.frx":12DE
            Key             =   ""
         EndProperty
         BeginProperty ListImage2 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmDoc.frx":1540
            Key             =   ""
         EndProperty
         BeginProperty ListImage3 {2C247F27-8591-11D1-B16A-00C0F0283628} 
            Picture         =   "frmDoc.frx":17A2
            Key             =   ""
         EndProperty
      EndProperty
   End
   Begin CodeSenseCtl.CodeSense rt 
      Height          =   2055
      Left            =   840
      OleObjectBlob   =   "frmDoc.frx":1A04
      TabIndex        =   0
      Top             =   840
      Width           =   1935
   End
End
Attribute VB_Name = "frmDoc"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'****************************************************************************
'人人为我,我为人人
'枕善居汉化收藏整理
'发布日期:05/06/19
'描  述:完整版本的超强文件编辑器
'网  站:http://www.mndsoft.com/
'e-mail:mnd@mndsoft.com
'OICQ  : 88382850
'****************************************************************************
Option Explicit
Public TabNum As Long
Public Changed As Boolean
Public FileName As String
Public r As CodeSenseCtl.range
Public FTP As Boolean
Public IsFile As Boolean
Public FTPAccount As String
Public ftpDir As String
Private LastLine As New Collection
Private LineIndex As Long
Dim Keywords() As String, Elements() As String, Attributes() As String

Private Sub cboLanguage_Click()
  On Error Resume Next
  rt.Language = cboLanguage.Text
  LangKeywords cboLanguage.Text
  SetLangWords
End Sub

Private Sub cboProcedures_Click()
  InsertString rt, cboProcedures.Text
End Sub

Private Sub Form_Activate()
  dnum = Me.Tag
    
  frmMain.tb.Tabs("key" & Me.Tag).Caption = StripPath(Me.Caption)
  frmMain.tb.Tabs("key" & Me.Tag).Selected = True
  frmMain.tb.Tabs("key" & Me.Tag).ToolTipText = Me.Caption
  If Changed = False Then
    frmMain.tb.Tabs("key" & Me.Tag).Image = 1
  Else
    frmMain.tb.Tabs("key" & Me.Tag).Image = 2
  End If
  EnableMac
  EnableMenu
  OpenAble
  ShouldEnable
  If rt.Language = "" Then
    frmMain.stBar.Panels(3).Text = "Text"
  Else
    frmMain.stBar.Panels(3).Text = rt.Language
  End If
End Sub

'+-----------------------------------------------------------------------+
'| Build language list. I descided for some reason to store the languages|
'| on the document form itself this time. I think it will improve        |
'| performance a bit. On top of that I think it will make it easier to   |
'| use. You will also notice a language keyword list next to the language|
'| list. It is updated to display all keywords of the language as a      |
'| quick refrence. Highlighting a keyword will insert it.                |
'+-----------------------------------------------------------------------+
Private Sub AddLang()
  Dim UA() As String, LngCnt As Long
  cboLanguage.Clear
  cboProcedures.Clear
  cboLanguage.AddItem "Text"
  cboLanguage.AddItem "C/C++"
  cboLanguage.AddItem "Basic"
  cboLanguage.AddItem "Java"
  cboLanguage.AddItem "Pascal"
  cboLanguage.AddItem "SQL"
  cboLanguage.AddItem "HTML"
  cboLanguage.AddItem "XML"
  cboLanguage.Text = "Text"
  UA = Split(Langs, Chr$(10))
  For LngCnt = 0 To UBound(UA) - 1: cboLanguage.AddItem UA(LngCnt): Next
  Erase UA
End Sub

Private Sub Form_Load()
  On Error Resume Next
  AddLang
  frmMain.tb.Tabs.Add fIndex, ("key" & Format(fIndex)), Me.Caption ' "me.tag: " & Me.Tag    'Me.Caption  AddLang
  ReadOptions rt
  ReadInput
  Clear
  LastLine.Add 0
  LineIndex = 1
  If WhiteSpaced = True Then
    rt.DisplayWhitespace = True
  Else
    rt.DisplayWhitespace = False
  End If
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Dim msgRes As VbMsgBoxResult
  If rt.Modified = True Then
    msgRes = MsgBox("Document: " & Me.Caption & Chr(10) & "Do you wish to save?", vbYesNoCancel + vbQuestion, "Save")
    If msgRes = vbYes Then
      doSave
    ElseIf msgRes = vbNo Then
      'do nothing

    ElseIf msgRes = vbCancel Then
      'Cancel
      Cancel = 1
      StopClose = True
      rt.SetFocus
    End If

  End If
End Sub

Private Sub Form_Resize()
  On Error Resume Next
  fmLang.Move 0, -100, Me.ScaleWidth
  rt.Move 0, fmLang.Top + fmLang.Height, Me.ScaleWidth, Me.ScaleHeight - fmLang.Height - fmLang.Top
End Sub

Private Sub Form_Unload(Cancel As Integer)
  On Error Resume Next
  'Me.Visible = False
  DisableMac
  DisableMenu
  CloseAble
  FState(Me.Tag).Deleted = True
  frmMain.tb.Tabs.Remove ("key" & Format(Me.Tag))
  'Unload Me
  dnum = 0
End Sub




Private Sub rt_Change(ByVal Control As CodeSenseCtl.ICodeSense)
  Changed = rt.Modified
  If Changed = True Then
    frmMain.tb.Tabs("key" & Me.Tag).Image = 2
  Else
    frmMain.tb.Tabs("key" & Me.Tag).Image = 1
  End If
End Sub

Private Function rt_CodeList(ByVal Control As CodeSenseCtl.ICodeSense, ByVal ListCtrl As CodeSenseCtl.ICodeList) As Boolean
'  On Error Resume Next
  Dim i As Integer
  ListCtrl.hImageList = imgCode.hImageList
  ListCtrl.EnableHotTracking True
  For i = 0 To UBound(Keywords) - 1
    ListCtrl.AddItem Keywords(i), 0
  Next
  For i = 0 To UBound(Elements) - 1
    ListCtrl.AddItem Elements(i), 1
  Next
  For i = 0 To UBound(Attributes) - 1
    ListCtrl.AddItem Attributes(i), 2
  Next
  
  rt_CodeList = True
End Function

Private Function rt_CodeListSelChange(ByVal Control As CodeSenseCtl.ICodeSense, ByVal ListCtrl As CodeSenseCtl.ICodeList, ByVal lItem As Long) As String
  rt_CodeListSelChange = ListCtrl.GetItemText(lItem)
End Function

Private Function rt_CodeListSelMade(ByVal Control As CodeSenseCtl.ICodeSense, ByVal ListCtrl As CodeSenseCtl.ICodeList) As Boolean
    Dim strItem As String
    Dim range As New CodeSenseCtl.range

    ' Determine which item was selected in the list
    strItem = ListCtrl.GetItemText(ListCtrl.SelectedItem)

    ' Replace current selection
    rt.ReplaceSel (strItem)

    ' Get new selection
    Set range = rt.GetSel(True)

    ' Update range to end of newly inserted text
    range.StartColNo = range.StartColNo + Len(strItem)
    range.EndColNo = range.StartColNo
    range.EndLineNo = range.StartLineNo

    ' Move cursor
    rt.SetSel range, True

    ' Clear any text left in the status bar

    ' Don't prevent list view control from being hidden
    rt_CodeListSelMade = False

End Function

Private Function rt_CodeListSelWord(ByVal Control As CodeSenseCtl.ICodeSense, ByVal ListCtrl As CodeSenseCtl.ICodeList, ByVal lItem As Long) As Boolean
  rt_CodeListSelWord = True
End Function

Private Sub rt_GotFocus()
  Dim x As Integer
  SetLang
  For x = 1 To frmMain.tb.Tabs.Count
    If frmMain.tb.Tabs(x).Tag = Me.TabNum Then
      frmMain.tb.Tabs(x).Selected = True
      Exit For
    End If
  Next
End Sub



Private Function rt_MouseDown(ByVal Control As CodeSenseCtl.ICodeSense, ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal Y As Long) As Boolean
  If Button = 2 Then PopupMenu frmMain.edit
End Function


Private Sub rt_SelChange(ByVal Control As CodeSenseCtl.ICodeSense)
  On Error Resume Next
  Set r = rt.GetSel(True)

  frmMain.stBar.Panels(2).Text = "Ln " & r.EndLineNo + 1 & ", Col. " & r.EndColNo & ", Lines " & rt.LineCount
  If HighLight = True Then
    rt.HighlightedLine = r.EndLineNo
  Else
    rt.HighlightedLine = -1
  End If
  If LastLine.Count <> 0 Then
    If LastLine(LineIndex) <> r.EndLineNo Then
      LastLine.Add r.EndLineNo
      LineIndex = LastLine.Count
    End If
  Else
    LastLine.Add r.EndLineNo
    LineIndex = LastLine.Count
  End If
  If LineIndex < LastLine.Count Then
    frmMain.tBar.Buttons(39).Enabled = True
  Else
    frmMain.tBar.Buttons(39).Enabled = False
  End If
  
  If LineIndex > 1 Then
    frmMain.tBar.Buttons(38).Enabled = True
  Else
    frmMain.tBar.Buttons(38).Enabled = False
  End If
  ShouldEnable
End Sub

Private Sub SetLang()
  setChk
End Sub

Private Sub setChk()
  Dim x As Integer
End Sub

Public Sub NextLine()
  On Error Resume Next

⌨️ 快捷键说明

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