📄 clsimages.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "clsImages"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Collection" ,"clsImage"
Attribute VB_Ext_KEY = "Member0" ,"clsImage"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
Option Explicit
'local variable to hold collection
Private mCol As Collection
Public Function Add(ID As Integer, IName As String, Introduce As String, TypeID As Integer, MinX As Double, MaxX As Double, MinY As Double, MaxY As Double, IDate As Date, Res As String, IFormat As String, TypeName As String, Proj As String, Label As String, Optional sKey As String) As clsImage
'create a new object
Dim objNewMember As clsImage
Set objNewMember = New clsImage
'set the properties passed into the method
objNewMember.ID = ID
objNewMember.IName = IName
objNewMember.Introduce = Introduce
objNewMember.TypeID = TypeID
objNewMember.MinX = MinX
objNewMember.MaxX = MaxX
objNewMember.MinY = MinY
objNewMember.MaxY = MaxY
objNewMember.IDate = IDate
objNewMember.Res = Res
objNewMember.IFormat = IFormat
objNewMember.TypeName = TypeName
objNewMember.Proj = Proj
objNewMember.Label = Label
If Len(sKey) = 0 Then
mCol.Add objNewMember
Else
mCol.Add objNewMember, sKey
End If
'return the object created
Set Add = objNewMember
Set objNewMember = Nothing
End Function
Public Property Get Item(vntIndexKey As Variant) As clsImage
Attribute Item.VB_UserMemId = 0
'used when referencing an element in the collection
'vntIndexKey contains either the Index or Key to the collection,
'this is why it is declared as a Variant
'Syntax: Set foo = x.Item(xyz) or Set foo = x.Item(5)
Set Item = mCol(vntIndexKey)
End Property
Public Property Get Count() As Long
'used when retrieving the number of elements in the
'collection. Syntax: Debug.Print x.Count
Count = mCol.Count
End Property
Public Sub Remove(vntIndexKey As Variant)
'used when removing an element from the collection
'vntIndexKey contains either the Index or Key, which is why
'it is declared as a Variant
'Syntax: x.Remove(xyz)
mCol.Remove vntIndexKey
End Sub
Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
'this property allows you to enumerate
'this collection with the For...Each syntax
Set NewEnum = mCol.[_NewEnum]
End Property
Private Sub Class_Initialize()
'creates the collection when this class is created
Set mCol = New Collection
End Sub
Private Sub Class_Terminate()
'destroys collection when this class is terminated
Set mCol = Nothing
End Sub
Public Function Find(Optional lngID As Long = -1, Optional lngTypeId As Long = 0) As clsImages
Dim rs As Recordset
Dim Index As Long
Dim obj As clsImage
'按输入的参数查询,并返回一个集合类
Dim strSQL As String
strSQL = "select * from IImage,IType where "
strSQL = strSQL & "I_TypeID=IT_ID and "
If lngID <> -1 Then
strSQL = strSQL & " I_ID=" & lngID & "and "
End If
If lngTypeId <> 0 Then
strSQL = strSQL & "I_TypeID=" & lngTypeId & "and "
End If
strSQL = strSQL & "I_ID>0"
'清空当前集合
Me.Clear
Set rs = g_Conn.Execute(strSQL)
'往集合中添加查询结果
For Index = 1 To rs.RecordCount
Set obj = New clsImage
With obj
.ID = rs.Fields("I_ID").Value
.Introduce = rs.Fields("I_Introduce").Value
.IDate = rs.Fields("I_Date").Value
.IName = rs.Fields("I_Name").Value
.Label = Trim(rs.Fields("I_Label").Value)
.IFormat = Trim(rs.Fields("I_Format").Value)
.MaxX = Trim(rs.Fields("I_MaxX").Value)
.MaxY = Trim(rs.Fields("I_MaxY").Value)
.TypeID = rs.Fields("I_TypeID").Value
.MinX = Trim(rs.Fields("I_MinX").Value)
.MinY = Trim(rs.Fields("I_MinY").Value)
.Proj = Trim(rs.Fields("I_Projection").Value)
.Res = Trim(rs.Fields("I_Resolution").Value)
.TypeName = Trim(rs.Fields("IT_Name").Value)
End With
Me.AddEx obj
Set obj = Nothing
rs.MoveNext
Next Index
Set rs = Nothing
Set Find = Me
End Function
Public Sub Clear()
'注意!在清除时必须倒序清除,否则要出错!
Dim i As Long
For i = mCol.Count To 1 Step -1
mCol.Remove i
Next i
End Sub
Public Sub AddEx(obj As clsImage)
mCol.Add obj, "A" & obj.ID
'加入对象是,最好同时加入其KEY属性
'KEY属性不能是数字型,因此在前面随便加个字母,这里加一个A
End Sub
Public Function Search(ByVal Str As String) As clsImages
Dim rs As Recordset
Dim Index As Long
Dim obj As clsImage
'按输入的参数查询,并返回一个集合类
Dim strSQL As String
strSQL = "select * from IImage where "
strSQL = strSQL & "I_Label='" & Str & "'"
'清空当前集合
Me.Clear
Set rs = g_Conn.Execute(strSQL)
'往集合中添加查询结果
For Index = 1 To rs.RecordCount
Set obj = New clsImage
With obj
.ID = rs.Fields("I_ID").Value
.Introduce = rs.Fields("I_Introduce").Value
.IDate = rs.Fields("I_Date").Value
.IName = rs.Fields("I_Name").Value
.Label = Trim(rs.Fields("I_Label").Value)
.IFormat = Trim(rs.Fields("I_Format").Value)
.MaxX = Trim(rs.Fields("I_MaxX").Value)
.MaxY = Trim(rs.Fields("I_MaxY").Value)
.TypeID = rs.Fields("I_TypeID").Value
.MinX = Trim(rs.Fields("I_MinX").Value)
.MinY = Trim(rs.Fields("I_MinY").Value)
.Proj = Trim(rs.Fields("I_Projection").Value)
.Res = Trim(rs.Fields("I_Resolution").Value)
End With
Me.AddEx obj
Set obj = Nothing
rs.MoveNext
Next Index
Set rs = Nothing
Set Search = Me
End Function
Public Function Research(ByVal Str As String) As clsImages
Dim rs As Recordset
Dim Index As Long
Dim obj As clsImage
'按输入的参数查询,并返回一个集合类
Dim strSQL As String
strSQL = "select * from IImage where "
strSQL = strSQL & "I_Name='" & Str & "'"
'清空当前集合
Me.Clear
Set rs = g_Conn.Execute(strSQL)
'往集合中添加查询结果
For Index = 1 To rs.RecordCount
Set obj = New clsImage
With obj
.ID = rs.Fields("I_ID").Value
.Introduce = rs.Fields("I_Introduce").Value
.IDate = rs.Fields("I_Date").Value
.IName = rs.Fields("I_Name").Value
.Label = Trim(rs.Fields("I_Label").Value)
.IFormat = Trim(rs.Fields("I_Format").Value)
.MaxX = Trim(rs.Fields("I_MaxX").Value)
.MaxY = Trim(rs.Fields("I_MaxY").Value)
.TypeID = rs.Fields("I_TypeID").Value
.MinX = Trim(rs.Fields("I_MinX").Value)
.MinY = Trim(rs.Fields("I_MinY").Value)
.Proj = Trim(rs.Fields("I_Projection").Value)
.Res = Trim(rs.Fields("I_Resolution").Value)
End With
Me.AddEx obj
Set obj = Nothing
rs.MoveNext
Next Index
Set rs = Nothing
Set Research = Me
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -