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

📄 frmnote.frm

📁 个人记事本
💻 FRM
📖 第 1 页 / 共 4 页
字号:
    If Not flag Then
        If RecentCount = 8 Then
            '将 当前数据库名 FName 存入 Recent() 数组末,并删除第一条纪录
            For i = 1 To RecentCount - 1
                Recent(i) = Recent(i + 1)
            Next
            Recent(RecentCount) = FName
        Else
            '将 当前数据库名 FName 存入 Recent() 数组末
            RecentCount = RecentCount + 1
            ReDim Preserve Recent(RecentCount)
            Recent(RecentCount) = FName
        End If
    End If
    
    Open App.Path & "\System\Recent.ini" For Output As #1
    For i = 1 To RecentCount
        Print #1, Recent(i)
    Next
    Close #1
    
'/////////////////////////////////////////////////////////
'////   BMPMenu
    Dim mHandle As Long, IRet As Long, sHandle As Long
    mHandle = GetMenu(hwnd)
    sHandle = GetSubMenu(mHandle, 0)
    IRet = SetMenuItemBitmaps(sHandle, 0, myflage, PicMenuOpen, PicMenuOpen)
    IRet = SetMenuItemBitmaps(sHandle, 1, myflage, PicMenuNew, PicMenuNew)
    IRet = SetMenuItemBitmaps(sHandle, 6, myflage, PicMenuClose, PicMenuClose)
    
    sHandle = GetSubMenu(mHandle, 1)
    IRet = SetMenuItemBitmaps(sHandle, 0, myflage, PicMenuAdd, PicMenuAdd)
    IRet = SetMenuItemBitmaps(sHandle, 1, myflage, PicMenuDel, PicMenuDel)
    IRet = SetMenuItemBitmaps(sHandle, 2, myflage, PicMenuOK, PicMenuOK)
    IRet = SetMenuItemBitmaps(sHandle, 4, myflage, PicMenuSearch, PicMenuSearch)

    sHandle = GetSubMenu(mHandle, 2)
    IRet = SetMenuItemBitmaps(sHandle, 0, myflage, PicMenuUndo, PicMenuUndo)
    IRet = SetMenuItemBitmaps(sHandle, 2, myflage, PicMenuCut, PicMenuCut)
    IRet = SetMenuItemBitmaps(sHandle, 3, myflage, PicMenuCopy, PicMenuCopy)
    IRet = SetMenuItemBitmaps(sHandle, 4, myflage, PicMenuPaste, PicMenuPaste)
    IRet = SetMenuItemBitmaps(sHandle, 7, myflage, PicMenuColor, PicMenuColor)
    IRet = SetMenuItemBitmaps(sHandle, 8, myflage, PicMenuFont, PicMenuFont)
    IRet = SetMenuItemBitmaps(sHandle, 9, myflage, PicMenuSearch, PicMenuSearch)
    
    sHandle = GetSubMenu(mHandle, 3)
    IRet = SetMenuItemBitmaps(sHandle, 2, myflage, PicMenuOption, PicMenuOption)
    
    sHandle = GetSubMenu(mHandle, 4)
    IRet = SetMenuItemBitmaps(sHandle, 0, myflage, PicMenuHelp, PicMenuHelp)
    IRet = SetMenuItemBitmaps(sHandle, 2, myflage, PicMenuEmail, PicMenuEmail)
    IRet = SetMenuItemBitmaps(sHandle, 3, myflage, PicMenuWeb, PicMenuWeb)
    IRet = SetMenuItemBitmaps(sHandle, 5, myflage, PicMenuNote, PicMenuNote)
    
'/////////////////////////////////////////////////////////
'////        for 查找
    For i = 0 To n - 1
        Combo.AddItem Search(i), i
    Next
    
    loadfinished = True
End Sub

Private Sub Form_Initialize()
    Dim strtmp As String
    With Data1
        If .Recordset.RecordCount = 0 Then
            CmdDel.Enabled = False
            Me.menuOperatDel.Enabled = False
            strtmp = "0/0"
            .Caption = Space(6 - Len(strtmp) / 2) + strtmp
            txtSubject.Enabled = False
            RTFMatter.Enabled = False
        Else
            .Recordset.MoveLast
            .Recordset.MoveFirst
            '载入listSubject的列表
            listSubject.Clear
            Do Until .Recordset.EOF = True
                listSubject.AddItem (txtSubject.Text)
                .Recordset.MoveNext
            Loop
            .Recordset.MoveFirst
    
            strtmp = Str(.Recordset.AbsolutePosition + 1) & "/" & Str(.Recordset.RecordCount)
            .Caption = Space(6 - Len(strtmp) / 2) + strtmp
            CmdDel.Enabled = True
            Me.menuOperatDel.Enabled = True
        End If
    End With
End Sub

Private Sub Form_Resize()
'使各控件充满文本框
    '调整各控件宽度
    If ScaleWidth - 2240 > 800 Then
        listSubject.Width = ScaleWidth - 240
        txtSubject.Width = ScaleWidth - 2260
        txtEditTime.left = txtSubject.Width + 190
        RTFMatter.Width = ScaleWidth - 240
    End If
    
    '调整各控件高度
    If ScaleHeight - 3250 > 0 Then
        RTFMatter.Height = ScaleHeight - 3250
    End If
End Sub

Private Sub CmdAdd_Click()
    txtSubject.Enabled = True
    RTFMatter.Enabled = True
    
    '【 Note 工程 】日记 12
    If Data1.Recordset.RecordCount Then Data1.Recordset.MoveFirst
    
    Data1.Recordset.AddNew
    txtSubject.SetFocus
    CmdDel.Enabled = False
    menuOperatDel.Enabled = False
    '禁止查找
    If CmdList.Visible Then CmdList_Click
    Me.CmdToSearch.Enabled = False
    Me.menuOperatSearch.Enabled = False
    
    Data1.Caption = ""
    add = True      'for update
End Sub

Private Sub CmdOK_Click()
    '容错
    If Data1.Recordset.RecordCount = 0 And add = False Then
        MsgBox "无当前记录", vbInformation + vbOKOnly, "错误信息"
        Exit Sub
    End If
    
    ok = True      'for update
    If add Then
        Data1.Recordset.Update
        Data1.Recordset.MoveLast    '【 Note 工程 】日记 4
    Else
        Data1.Recordset.Move (0)
    End If
End Sub

Private Sub CmdToSearch_Click()
    '容错
    If Data1.Recordset.RecordCount = 0 Then
        MsgBox "无记录", vbInformation + vbOKOnly, "错误信息"
        Exit Sub
    End If

    Frame1.Visible = True
    listSubject.Visible = False
    menuOperatSearch.Enabled = False
    CmdList.Visible = True
    CmdToSearch.Visible = False
End Sub

Private Sub CmdList_Click()
    Frame1.Visible = False
    listSubject.Visible = True
    menuOperatSearch.Enabled = True
    CmdList.Visible = False
    CmdToSearch.Visible = True
End Sub

Private Sub CmdDel_Click()
    Dim Msg As Integer, temp As Integer
    Msg = MsgBox("确实要删除当前记录吗?", vbYesNo, "删除确认")
    If Msg = vbYes Then
        With Data1.Recordset
             '更新listSubject列表
            temp = .AbsolutePosition
            listSubject.RemoveItem (temp)
            .Delete
            .MoveNext
            If .RecordCount = 0 Then
                txtSubject.Enabled = False
                RTFMatter.Enabled = False
                Exit Sub
            End If
            If .EOF Then .MoveLast
        End With
    End If
End Sub

Private Sub Data1_Reposition()
    Dim strtmp As String
    With Data1
        If .Recordset.RecordCount = 0 Then
            CmdDel.Enabled = False
            Me.menuOperatDel.Enabled = False
            strtmp = "0/0"
            .Caption = Space(6 - Len(strtmp) / 2) + strtmp
        Else
            strtmp = Str(.Recordset.AbsolutePosition + 1) & "/" & Str(.Recordset.RecordCount)
            .Caption = Space(6 - Len(strtmp) / 2) + strtmp
            CmdDel.Enabled = True
            Me.menuOperatDel.Enabled = True
        End If
    End With
        
    If loadfinished Then
        If Not Me.txtflag.Text = "1" Then
            Me.txtSubject.Enabled = True
            Me.RTFMatter.Enabled = True
        Else
            Me.txtSubject.Enabled = False
            Me.RTFMatter.Enabled = False
        End If
    End If
End Sub

Private Sub Data1_Validate(Action As Integer, Save As Integer)
    Dim Msg As Integer
    Select Case Action
        Case 1, 2, 3, 4, 5, 6, 11, 15:
        ' 1  *    调用 MoveFirst 方法
        ' 2  *    调用 MovePrevious 方法
        ' 3  *    调用 MoveNext 方法
        ' 4  *    调用 MoveLast 方法
        ' 5  *    调用 AddNew 方法
        ' 6  *    调用 Update 方法
        ' 7      调用 Dllete 方法
        ' 8      调用 Find 方法
        ' 9      调用 BookMark 方法
        ' 10     调用 Close 方法
        ' 11 *    调用 Unload 方法
        ' 15 *    调用 Move 方法
            If add Then '如果新建记录且添加了内容就强制保存
                        '【 Note 工程 】Bug 解决方法   9
                txtEditTime.Text = CStr(Now) '存入最后修改时间
                '更新listSubject列表
                listSubject.AddItem (txtSubject.Text)
                txtflag.Text = 0       '初始记录标志
                add = False         '恢复 add 标志
                ok = False      '如果上一步是 cmdOK ,恢复 ok 标志
                '恢复查找功能
                CmdToSearch.Enabled = True
                menuOperatSearch.Enabled = True
                Exit Sub
            End If
            If Save Then
                If ok Then      '如果上一步是确认,不用询问数据是否要更新
                    Msg = vbYes
                Else
                    Msg = MsgBox("数据要更新吗?", vbYesNo, "操作确认")
                End If
                
                If Msg = vbNo Then
                    Save = 0
                Else
                    txtEditTime.Text = CStr(Now) '存入最后修改时间
                    '更新listSubject列表
                    Dim temp As Integer
                    temp = Data1.Recordset.AbsolutePosition
                    listSubject.RemoveItem (temp)
                    listSubject.AddItem txtSubject.Text, temp
                End If
            End If
        If ok Then ok = False      '如果上一步是 cmdOK ,恢复 ok 标志
    End Select
End Sub

Private Sub Form_Unload(Cancel As Integer)
    DBCount = DBCount - 1
End Sub

Private Sub listSubject_Click()
    'VB 中的 Move 的参数为相对位置
    If add Then Data1.Recordset.Update
    Data1.Recordset.Move (listSubject.ListIndex - Data1.Recordset.AbsolutePosition)
End Sub

'/////////////////////////////////////////////////////////////////////////
'//     菜单
'//         文件
Private Sub menuFileOpen_Click()
    CommonDialog1.FileName = ""
    CommonDialog1.InitDir = QueryValue(HKEY_CURRENT_USER, "Software\Note", "TacitlySaveFolder")
    CommonDialog1.Filter = "Note Files (*.not)|*.not"
    CommonDialog1.CancelError = True    '按“取消”,产生错误信息
    On Error GoTo OpenCancelerr
    CommonDialog1.ShowOpen
    FName = CommonDialog1.FileName  '将打开的文件名存入FName
    
    If Dir(FName) = "" Then
        MsgBox FName & "已不存在", vbInformation + vbOKOnly, "错误信息"
        Exit Sub
    End If
    
    Dim frmD As New frmNote         '建立一个窗口 note 的实例
    frmD.Show
    DBCount = DBCount + 1
OpenCancelerr:
End Sub

Private Sub menuFileNew_Click()
    CommonDialog1.FileName = ""
    CommonDialog1.InitDir = QueryValue(HKEY_CURRENT_USER, "Software\Note", "TacitlySaveFolder")
    CommonDialog1.Filter = "Note Files (*.not)|*.not"
    CommonDialog1.CancelError = True    '按“取消”,产生错误信息
    On Error GoTo OpenCancelerr
    CommonDialog1.ShowOpen
    FName = CommonDialog1.FileName  '将打开的文件名存入FName
    
    If Not Dir(FName) = "" Then     '如果文件已存在,询问是否覆盖
        If MsgBox(FName & "文件已存在,是否覆盖?", vbYesNo + _
            vbExclamation, "提示信息") = vbNo Then Exit Sub
    End If
    
    FileCopy App.Path & "\System\model.not", FName '通过复制数据库model.not 建立新数据库
    Dim frmD As New frmNote         '建立一个窗口 note 的实例
    frmD.Show
    DBCount = DBCount + 1
OpenCancelerr:
End Sub

Private Sub menuFileSaveAs_Click()
    '容错
    If Data1.Recordset.RecordCount = 0 Then
        MsgBox "无当前记录", vbInformation + vbOKOnly, "错误信息"
        Exit Sub
    End If
    
    CommonDialog1.FileName = txtSubject.Text
    CommonDialog1.InitDir = QueryValue(HKEY_CURRENT_USER, "Software\Note", "TacitlySaveFolder")
    CommonDialog1.Filter = "文本文件(*.txt)|*.txt|rtf 文件(*.rtf)|*.rtf"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.CancelError = True
    On Error GoTo err
    CommonDialog1.ShowSave
    Open CommonDialog1.FileName For Output As #1
    If right(CommonDialog1.FileName, 3) = "txt" Then
        Print #1, txtSubject.Text & Chr(13) & Chr(10) & RTFMatter.Text
    ElseIf right(CommonDialog1.FileName, 3) = "rtf" Then
        Print #1, RTFMatter.TextRTF
    End If
    Close #1
err:
    Exit Sub
End Sub

Private Sub menuFileRecent_Click(Index As Integer)
    FName = Recent(RecentCount - Index + 1)  '将打开的文件名存入FName
    
    If Dir(FName) = "" Then
        MsgBox FName & "已不存在", vbInformation + vbOKOnly, "错误信息"
        Exit Sub
    End If
    
    Dim frmD As New frmNote         '建立一个窗口 note 的实例
    frmD.Show
    DBCount = DBCount + 1
End Sub

Private Sub menuFileCloseDatabase_Click()
    Unload Me
End Sub

'//////////////////////////////////
'////           记录操作
Private Sub menuOperatAdd_Click()
    CmdAdd_Click
End Sub

⌨️ 快捷键说明

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