📄 frmmain.frm
字号:
Fill_TreeCategories
Fill_Thumbs ""
'-- 初始化树型结构
FullGrid.Cols = 4
For i = 1 To FullGrid.Cols
'-- 设置列宽
FullGrid.ColWidth(i - 1) = Choose(i, 66, 176, 90, 64) * Screen.TwipsPerPixelX
FullGrid.ColAlignment(i - 1) = Choose(i, flexAlignCenterCenter, flexAlignLeftCenter, flexAlignCenterCenter, flexAlignCenterCenter)
Next i
'-- 设置默认的开始位置
optFilter.ListIndex = 0
End Sub
Private Sub Form_Paint()
'-- 绘制装饰线
DrawBar Me, 0
DrawBar Me, 27
DrawBar Me, 536
End Sub
'------------------------------------------------------------------------------
' Toolbar: Choose DB / Add, rename & delete category / ...
'------------------------------------------------------------------------------
Public Sub Commands_ButtonClick(ByVal Button As MSComctlLib.Button)
Dim ID As String
Select Case Button.Key
'-- 选择数据库
Case "Set_DB"
frmDB.Left = Me.Left + 11 * Screen.TwipsPerPixelX
frmDB.Top = Me.Top + (Me.Height - Me.ScaleHeight * Screen.TwipsPerPixelY) \ 2 + 34 * Screen.TwipsPerPixelY
frmDB.Show vbModal
If (Not frmDB.CancelDBSelection) Then
Fill_TreeCategories
Fill_Thumbs ""
End If
'-- 添加文件夹
Case "Add_Cat"
'-- 如果是根节点文件夹...:
If (TreeView.SelectedItem.Key = "C" And TreeView.Nodes.Count > 1) Then
'-- 弹出"请选择一个文件夹"提示对话框
MsgBox "请选择一个文件夹", vbInformation, "Add Category"
Exit Sub
End If
sResp = InputBox("输入文件名称 (max. 50) :", "添加文件夹", "New category")
'-- 如果在输入的文件名众出现单引号
If (InStr(1, sResp, Chr(39))) Then
'-- 弹出"不能接受单引号"提示对话框
MsgBox "不能接受单引号", vbInformation, "Add category"
Call Commands_ButtonClick(Commands.Buttons("Add_Cat"))
Exit Sub
End If
If (Trim$(sResp) = "") Then Exit Sub
'-- 停止运行
Call Commands_ButtonClick(Commands.Buttons("Pause"))
Commands.Buttons("Pause").Value = tbrPressed
frmFull.opFull(0).Checked = False
frmFull.opFull(1).Checked = True
'-- 如果是根节点文件夹...:
If (TreeView.SelectedItem.Key = "C") Then
'-- 设置ID等于"00"
ID = "00"
'-- 否则将文件的所处的层次赋予ID
Else
ID = Get_IDCat(TreeView.SelectedItem.Key, False)
End If
'-- 核对层次是否超过最大值
If (Len(ID) = 0 Or Len(ID) > 202) Then
MsgBox "Maximum exceeded: " & vbCrLf & vbCrLf & "Category added exceeds # 100", vbExclamation, "Add Category"
Exit Sub
End If
'-- 添加新的目录
DataCategories.Recordset.AddNew
DataCategories.Recordset("IDCat") = ID
DataCategories.Recordset("Category") = Left$(Trim$(sResp), 50)
DataCategories.Recordset.Update
'-- Fill Treeview
Fill_TreeCategories
'-- 新添加的文件夹获得焦点
TreeView.Nodes("C" & ID).Selected = True
TreeView.Nodes("C" & ID).EnsureVisible
Fill_Thumbs ""
'-- 使“添加图片”按钮可用
Commands.Buttons("Add_Pict").Enabled = True
'-- 添加一个子文件夹
Case "Add_SubCat"
'-- 如果是根节点文件夹...:
If (TreeView.SelectedItem.Key = "C" And TreeView.Nodes.Count > 1) Then
MsgBox "选择一个文件夹", vbInformation, "Add SubCategory"
Exit Sub
End If
sResp = InputBox("输入文件名称 (max. 50) :", "添加子文件夹", "New SubCategory")
'-- 如果在文件名中出现“单引号”
If (InStr(1, sResp, Chr(39))) Then
'出现"在文件名中不能出现单引号"提示对话框
MsgBox "在文件名中不能出现单引号", vbInformation, "Add SubCategory"
Call Commands_ButtonClick(Commands.Buttons("Add_SubCat"))
Exit Sub
End If
If (Trim$(sResp) = "") Then Exit Sub
'-- 停止运行
Call Commands_ButtonClick(Commands.Buttons("Pause"))
Commands.Buttons("Pause").Value = tbrPressed
frmFull.opFull(0).Checked = False
frmFull.opFull(1).Checked = True
'-- 如果是根节点文件夹...:
If (TreeView.SelectedItem.Key = "C") Then
'-- 设置ID等于"00"
ID = "00"
'-- 否则将文件的所处的层次赋予ID
Else
ID = Get_IDCat(TreeView.SelectedItem.Key, True)
End If
'-- 核对层次是否超过最大值
If (Len(ID) = 0 Or Len(ID) > 202) Then
MsgBox "超过最大值 " & vbCrLf & vbCrLf & "子目录添加超过 # 100", vbExclamation, "Add Subcategory"
End If
'-- 添加新的目录
DataCategories.Recordset.AddNew
DataCategories.Recordset("IDCat") = ID
DataCategories.Recordset("Category") = Left$(Trim$(sResp), 50)
DataCategories.Recordset.Update
'-- Fill Treeview
Fill_TreeCategories
'-- 新添加的文件夹获得焦点
TreeView.Nodes("C" & ID).Selected = True
TreeView.Nodes("C" & ID).EnsureVisible
Fill_Thumbs ""
'-- 使“添加图片”按钮可用
Commands.Buttons("Add_Pict").Enabled = True
'-- 重命名一个文件夹
Case "Ren_Cat"
'-- 如果不是文件夹,退出:
If DataCategories.Recordset.RecordCount = 0 Then Exit Sub
'-- 如果是根节点文件夹...:
If (TreeView.SelectedItem.Key = "C") Then
'-- 弹出 "选择一个文件夹"提示对话框
MsgBox "选择一个文件夹", vbInformation, "重命名文件夹"
Exit Sub
End If
'-- 出现输入对话框,在其中输入重命名的文件夹名,最大为50字符
sResp = InputBox("输入最大值(最大值为50) :", "重命名文件夹", TreeView.SelectedItem)
'-- 如果在文件名中出现单引号
If (InStr(1, sResp, Chr(39))) Then
'-- 弹出 "不能出现单引号"提示对话框
MsgBox "Character ['] not accepted", vbInformation, "Rename category"
Call Commands_ButtonClick(Commands.Buttons("Ren_Cat"))
Exit Sub
End If
If (Trim$(sResp) = "") Then Exit Sub
'-- 编辑选择目录
ID = TreeView.SelectedItem.Key
DataCategories.Recordset.FindFirst "[IDCat]='" & Right$(ID, Len(ID) - 1) & "'"
DataCategories.Recordset.Edit
DataCategories.Recordset("Category") = Left$(Trim$(sResp), 50)
DataCategories.Recordset.Update
'-- Fill Treeview
Fill_TreeCategories
'-- 重命名文件夹获得焦点
TreeView.Nodes(ID).Selected = True
TreeView.Nodes(ID).EnsureVisible
'-- 删除一个文件夹
Case "Del_Cat"
'-- 如果没有文件夹,退出
If (DataCategories.Recordset.RecordCount = 0) Then Exit Sub
'-- 假如是根节点(DB)...:
If (TreeView.SelectedItem.Key = "C") Then
'-- 出现"这将删除所有的数据库内容. 是否继续?"提示对话框
sResp = MsgBox("这将删除所有的数据库内容. 是否继续?", vbExclamation Or vbYesNo Or vbDefaultButton2, "删除数据连接")
Else
'-- 如果是文件夹,出现"所有子文件夹将被删除,删除文件夹 ?"提示对话框
sResp = MsgBox("所有子文件夹将被删除" & vbCrLf & "删除文件夹 ?", vbExclamation Or vbYesNo Or vbDefaultButton2, "Delete category")
End If
If (sResp = vbNo) Then Exit Sub
'-- 删除目录 (所有自文件夹将被删除)
Dim tmpSource As String
tmpSource = DataCategories.RecordSource
DataCategories.RecordSource = "Select [IDCat] from tblCategories where [IDCat] LIKE '" & Right$(TreeView.SelectedItem.Key, Len(TreeView.SelectedItem.Key) - 1) & "*'"
DataCategories.Refresh
DataCategories.Recordset.MoveFirst
Do Until DataCategories.Recordset.EOF
DataCategories.Recordset.Delete
DataCategories.Recordset.MoveNext
Loop
DataCategories.RecordSource = tmpSource
DataCategories.Refresh
'-- Fill Treeview
Fill_TreeCategories
Fill_Thumbs ""
'-- 添加图片
Case "Add_Pict"
'--停止运行
Call Commands_ButtonClick(Commands.Buttons("Pause"))
Commands.Buttons("Pause").Value = tbrPressed
frmFull.opFull(0).Checked = False
frmFull.opFull(1).Checked = True
'-- 隐藏“frmComments”窗体,隐藏说明窗体
If (chkComments) Then
chkComments = 0
frmComments.Hide
frmFull.opFull(19).Caption = "Show &comments"
End If
'-- 显示“frmAddtoDB”窗体,显示“添加图片”窗体
frmAddtoDB.DataPictures.Refresh
Me.Enabled = False
frmAddtoDB.Show , Me
'-- 全屏
Case "Full"
On Error Resume Next
If tblSt(ThumbIndex) > 0 Then Exit Sub
'--加入没有选择图片,退出
If ThumbIsSelected = False Then Exit Sub
frmFull.Image_Full.Visible = False
'--在本窗体中显示“frmFull”窗体,也就是全屏窗体
frmFull.Show , Me
Show_Picture
frmFull.Image_Full.Visible = True
If (chkComments) Then frmComments.Show , frmFull
frmFull.SetFocus
'-- 上一张
Case "Previous"
Select_Thumb (-1)
'-- 下一张
Case "Next"
Select_Thumb (1)
'-- 开始播放
Case "Play"
timerShowPictures.Enabled = True
frmFull.opFull(0).Checked = True
frmFull.opFull(1).Checked = False
'-- 停止播放
Case "Pause"
timerShowPictures.Enabled = False
frmFull.opFull(0).Checked = False
frmFull.opFull(1).Checked = True
'-- 第一张
Case "First"
ThumbIndex = 1
Select_Thumb (0)
'-- 最后一张
Case "Last"
ThumbIndex = UBound(tblID)
Select_Thumb (0)
End Select
End Sub
Private Sub CommandExit_ButtonClick(ByVal Button As MSComctlLib.Button)
'-- 退出电子相片管理系统
'-- 关闭所有的数据库和数据集
DataPictures.Recordset.Close
DataCategories.Recordset.Close
DataCategories.Database.Close
'-- 卸载所有窗体
Unload frmAbout
Unload frmAddtoDB
Unload frmComments
Unload frmDB
Unload frmHelp
Unload frmFull
Unload frmView
Unload Me
Set frmAbout = Nothing
Set frmAddtoDB = Nothing
Set frmComments = Nothing
Set frmDB = Nothing
Set frmHelp = Nothing
Set frmFull = Nothing
Set frmView = Nothing
Set frmMain = Nothing
End Sub
'------------------------------------------------------------------------------
' Treeview (Categories)
'------------------------------------------------------------------------------
Private Sub btnExpand_Click()
'--树型结构控件不可见
TreeView.Visible = False
'-- 遍历树型结构控件中的结点
For i = 1 To TreeView.Nodes.Count
'-- 展开结点文件夹
TreeView.Nodes(i).Expanded = True
Next i
'-- 使用蓝色显示选中的选项
TreeView.SelectedItem.EnsureVisible
'--树型结构控件可见
TreeView.Visible = True
End Sub
Private Sub btnContract_Click()
'-- 遍历树型结构控件中的结点
For i = 1 To TreeView.Nodes.Count
'-- 收缩结点文件夹
TreeView.Nodes(i).Expanded = False
Next i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -