亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cshellsort.cls

?? 編輯數據庫表格,可以顯示圖形及打印
?? CLS
?? 第 1 頁 / 共 2 頁
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "cShellSortTGridCells"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit

' =================================================================
' Class:    cShellSortTGridCells
' Author:   SPM
' Date:     1 Feb 1997, modified 12/01/99 to support tGridCells
'
' Shell sorts a variant array according to a given
' column, using numeric, string or date type, ascending
' or descending.
'
' 19/10/99
' * Added CCLSortStringNoCase
'
' FREE SOURCE CODE - ENJOY!
' =================================================================
Public Enum cShellSortTypeConstants
   ' Text sorting:
    CCLSortNumeric = 100
    CCLSortString = 102
    CCLSortStringNoCase = 103
    
    ' Date sorting
    CCLSortDate = 200
    
    CCLSortDateYearAccuracy = 250
    CCLSortDateMonthAccuracy = 251
    CCLSortDateDayAccuracy = 252
    CCLSortDateHourAccuracy = 253
    CCLSortDateMinuteAccuracy = 254
    
    ' Icon sorting:
    CCLSortIcon = 300
    CCLSortExtraIcon = 301
    
    ' Colour sorting:
    CCLSortForeColor = 400
    CCLSortBackColor = 401
    ' Font sorting:
    CCLSortFontIndex = 500
    ' Selection sorting
    CCLSortSelected = 600
    ' Indentation sorting
    CCLSortIndentation = 700
End Enum
Public Enum cShellSortOrderCOnstants
   CCLOrderNone = 0
   CCLOrderAscending = 1
   CCLOrderDescending = 2
End Enum
Private m_iSortColumn() As Integer
Private m_eSortOrder() As cShellSortOrderCOnstants
Private m_eSortType() As cShellSortTypeConstants
Private m_iSortIndexCount As Integer
Private m_iLastSortIndex As Integer
Public Sub Clear()
Attribute Clear.VB_Description = "Clears all sort settings."
    m_iSortIndexCount = 0
    Erase m_iSortColumn
    Erase m_eSortOrder
    Erase m_eSortType
End Sub
Property Get LastSortIndex() As Integer
    LastSortIndex = m_iLastSortIndex
End Property
Property Let LastSortIndex( _
        ByVal iLastSortIndex As Integer _
    )
    m_iLastSortIndex = iLastSortIndex
End Property
Property Let SortColumn( _
        ByVal iSortIndex As Integer, _
        ByVal iSortColumn As Integer _
    )
Attribute SortColumn.VB_Description = "Gets/sets the grid column to sort by.  Up to three grid columns can be specified for a sort."
    If (pbValidSortIndex(iSortIndex)) Then
        m_iSortColumn(iSortIndex) = iSortColumn
    End If
End Property
Property Get SortColumn( _
        ByVal iSortIndex As Integer _
    ) As Integer
    SortColumn = m_iSortColumn(iSortIndex)
End Property
Property Let SortOrder( _
        ByVal iSortIndex As Integer, _
        ByVal iSortOrder As cShellSortOrderCOnstants _
    )
Attribute SortOrder.VB_Description = "Gets/sets the order to sort in for a specified sort column.  Up to three columns can be specified for a sort."
    If (pbValidSortIndex(iSortIndex)) Then
        m_eSortOrder(iSortIndex) = iSortOrder
    End If
End Property
Property Get SortOrder( _
        ByVal iSortIndex As Integer _
    ) As cShellSortOrderCOnstants
    SortOrder = m_eSortOrder(iSortIndex)
End Property
Property Get SortType( _
        ByVal iSortIndex As Integer _
    ) As cShellSortTypeConstants
Attribute SortType.VB_Description = "Gets/sets the type of sorting to use for a specified sort column.  Up to three columns can be specified for a sort."
    SortType = m_eSortType(iSortIndex)
End Property
Property Let SortType( _
        ByVal iSortIndex As Integer, _
        ByVal eSortType As cShellSortTypeConstants _
    )
    If (pbValidSortIndex(iSortIndex)) Then
        m_eSortType(iSortIndex) = eSortType
    End If
End Property
Private Function pbValidSortIndex( _
        ByVal iSortIndex As Integer _
    ) As Boolean
    If (iSortIndex > 0) And (iSortIndex <= 8) Then
        If (iSortIndex > m_iSortIndexCount) Then
            m_iSortIndexCount = iSortIndex
            ReDim Preserve m_iSortColumn(1 To m_iSortIndexCount) As Integer
            ReDim Preserve m_eSortOrder(1 To m_iSortIndexCount) As cShellSortOrderCOnstants
            ReDim Preserve m_eSortType(1 To m_iSortIndexCount) As cShellSortTypeConstants
        End If
        pbValidSortIndex = True
    Else
        Err.Raise vbObjectError + 1048 + 1, App.EXEName & ".cShellSort", "Invalid sort array index."
    End If
End Function

Friend Sub SortItems( _
        ByRef vItems() As tGridCell, _
        ByRef tRows() As tRowPosition _
    )
Dim iSwapIndex As Long
Dim iIncrement As Long
Dim iMainLoop As Long
Dim iSubLoop As Long
Dim vSortItems() As tGridCell
Dim tSortRow As tRowPosition
Dim iItemCount As Long
Dim iCol As Long
Dim iColumns As Long
           
    iColumns = UBound(vItems, 1)
    iItemCount = UBound(vItems, 2)

    ' Shell sort the list:
    ' ========================================================
    ' Implementation of Shell Sort algorithm using
    ' + 1 * 3 increment.
    ' ========================================================
    ' Prepare swap space storage:
    ReDim vSortItems(1 To iColumns) As tGridCell
    ' Get inital shell sort increment
    If (iItemCount > 2) Then
        iIncrement = piGetSuitableShellSortInitialIncrement(iItemCount)
        Do Until iIncrement < 1
            For iMainLoop = iIncrement + 1 To iItemCount
                ' Store iMainLoop in vSortItems():
                For iCol = 1 To iColumns
                    LSet vSortItems(iCol) = vItems(iCol, iMainLoop)
                Next iCol
                LSet tSortRow = tRows(iMainLoop)
                
                ' Loop form MainLoop-Increment to 0
                For iSubLoop = (iMainLoop - iIncrement) To 1 Step -iIncrement
                    If (pbGreater(vItems(), vSortItems(), iSubLoop)) Then
                        Exit For
                    End If
                    For iCol = 1 To iColumns
                        LSet vItems(iCol, (iSubLoop + iIncrement)) = vItems(iCol, iSubLoop)
                    Next iCol
                    LSet tRows(iSubLoop + iIncrement) = tRows(iSubLoop)
                Next iSubLoop
                For iCol = 1 To iColumns
                    LSet vItems(iCol, (iSubLoop + iIncrement)) = vSortItems(iCol)
                Next iCol
                LSet tRows(iSubLoop + iIncrement) = tSortRow
            Next iMainLoop
            ' Get next shell sort increment value:
            iIncrement = iIncrement - 1
            iIncrement = iIncrement \ 3
        Loop
    Else
        ' For only two items just check whether the second should
        ' be swapped with the first:
        '    Fix - last version caused GPF as it fell off the end
        '    of the array..
        If (iItemCount = 2) Then
            For iCol = 1 To iColumns
               LSet vSortItems(iCol) = vItems(iCol, 1)
            Next iCol
            If pbGreater(vItems(), vSortItems(), 2) Then
               ' swap
               LSet tSortRow = tRows(1)
               LSet tRows(1) = tRows(2)
               LSet tRows(2) = tSortRow
               For iCol = 1 To iColumns
                  LSet vItems(iCol, 1) = vItems(iCol, 2)
                  LSet vItems(iCol, 2) = vSortItems(iCol)
               Next iCol
            End If
         End If
    End If
    
End Sub

Private Function pbGreater( _
        ByRef vItems() As tGridCell, _
        ByRef vSortItems() As tGridCell, _
        ByVal iSubLoop As Long _
    ) As Boolean
Dim iSortIndex As Integer
Dim bIsEqual As Boolean
Dim bR As Boolean

    For iSortIndex = 1 To m_iSortIndexCount
        bR = pbIsGreater(vSortItems(m_iSortColumn(iSortIndex)), vItems(m_iSortColumn(iSortIndex), iSubLoop), iSortIndex, bIsEqual)
        If (iSortIndex < m_iSortIndexCount) And bIsEqual Then
            ' Must go to the next one
        Else
            pbGreater = bR
            Exit For
        End If
    Next iSortIndex

End Function
Private Function pbIsGreater( _
        ByRef vSortItem As tGridCell, _
        ByRef vItem As tGridCell, _
        ByVal iSortIndex As Long, _
        ByRef bIsEqual As Boolean _
    ) As Boolean
Dim vR As Variant
Dim lR As Long
Dim sSortItemText As String, sItemText As String
Dim vSortDate As Date, vDate As Date
Dim bSortDate As Boolean, bDate As Boolean
Dim lDiff As Long

    Select Case m_eSortType(iSortIndex)
    Case CCLSortSelected
        lR = Abs(vSortItem.bSelected) - Abs(vItem.bSelected)
        bIsEqual = (lR = 0)
        If (m_eSortOrder(iSortIndex) = CCLOrderAscending) Then
            pbIsGreater = (lR >= 0)
        Else
            pbIsGreater = (lR <= 0)
        End If
    
    Case CCLSortFontIndex
        lR = vSortItem.iFntIndex - vItem.iFntIndex
        bIsEqual = (lR = 0)
        If (m_eSortOrder(iSortIndex) = CCLOrderAscending) Then
            pbIsGreater = (lR >= 0)
        Else
            pbIsGreater = (lR <= 0)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人在线影院| 天堂va蜜桃一区二区三区| 亚洲激情五月婷婷| 国产一区啦啦啦在线观看| 欧美日韩精品欧美日韩精品| 国产精品国产三级国产普通话蜜臀| 视频一区二区三区中文字幕| eeuss鲁片一区二区三区在线观看| 欧美一区二区性放荡片| 夜夜嗨av一区二区三区网页 | 亚洲欧美偷拍三级| 国产成人在线影院 | 亚洲第一在线综合网站| 99精品国产99久久久久久白柏| 精品91自产拍在线观看一区| 日日夜夜免费精品| 欧美日韩1234| 丝袜美腿一区二区三区| 欧美日韩久久久久久| 亚洲乱码国产乱码精品精的特点| jlzzjlzz国产精品久久| 欧美国产精品v| 成人精品电影在线观看| 国产欧美日韩久久| 欧美日韩五月天| 视频一区视频二区在线观看| 欧美日韩日日骚| 亚洲成人av一区二区| 欧美日韩www| 日本亚洲电影天堂| 欧美变态凌虐bdsm| 国产在线一区二区综合免费视频| 精品日韩一区二区| 国产寡妇亲子伦一区二区| 国产亚洲欧美日韩在线一区| 成人综合婷婷国产精品久久| 国产精品私房写真福利视频| av一区二区久久| 亚洲精品视频免费观看| 欧美日韩国产bt| 免费观看一级特黄欧美大片| 精品国产91洋老外米糕| 国产精品一级在线| 国产精品嫩草久久久久| 中文字幕精品—区二区四季| 91在线观看下载| 亚洲线精品一区二区三区八戒| 欧美久久久影院| 狠狠狠色丁香婷婷综合激情| 欧美激情在线看| 在线观看视频欧美| 日本成人在线电影网| 久久―日本道色综合久久| 成人综合日日夜夜| 一区二区三区高清在线| 69精品人人人人| 国产福利一区二区三区视频在线| 日韩码欧中文字| 欧美日韩国产综合视频在线观看| 狠狠色丁香婷婷综合| 国产精品天干天干在线综合| 欧美系列亚洲系列| 国产一区二区久久| 亚洲一区二区不卡免费| 久久综合丝袜日本网| 91久久国产最好的精华液| 久久精品国产99国产| 亚洲摸摸操操av| 欧美v日韩v国产v| 99久久婷婷国产| 捆绑调教美女网站视频一区| 国产精品动漫网站| 欧美电影免费观看高清完整版| 99国内精品久久| 国内成+人亚洲+欧美+综合在线 | 国产欧美综合在线观看第十页| 色呦呦网站一区| 国产乱码精品一区二区三区五月婷 | 在线观看91精品国产麻豆| 国产成人aaaa| 免费三级欧美电影| 一区二区三区在线视频播放| 国产日韩一级二级三级| 欧美精品一卡两卡| 91福利视频久久久久| 成人av午夜影院| 韩日精品视频一区| 日韩av电影免费观看高清完整版 | 欧美日韩在线播放一区| www.成人在线| 激情综合网av| 琪琪一区二区三区| 亚洲成av人片一区二区| 亚洲视频每日更新| 久久久高清一区二区三区| 日韩欧美中文字幕精品| 日本道免费精品一区二区三区| 国产成人免费在线观看| 寂寞少妇一区二区三区| 免费看欧美女人艹b| 风流少妇一区二区| 国产不卡高清在线观看视频| 国产激情一区二区三区| 久久国产精品免费| 久草这里只有精品视频| 久久国产精品无码网站| 久久丁香综合五月国产三级网站| 日本vs亚洲vs韩国一区三区| 日本一不卡视频| 蜜乳av一区二区| 美女视频免费一区| 精品一区二区三区在线播放视频| 无码av免费一区二区三区试看 | 亚洲精品免费在线观看| 亚洲乱码中文字幕| 亚洲成人自拍一区| 日韩成人午夜精品| 日韩电影在线观看电影| 久久精品999| 国产激情视频一区二区在线观看| 国产剧情一区二区三区| 成人教育av在线| 91成人在线免费观看| 7777精品伊人久久久大香线蕉的 | 国产福利一区二区三区在线视频| 国产一区视频网站| www.色精品| 在线观看国产日韩| 91麻豆精品国产91久久久更新时间 | 欧美日韩国产小视频在线观看| 欧美精品1区2区| 欧美www视频| 国产精品―色哟哟| 一卡二卡欧美日韩| 老汉av免费一区二区三区| 国产91精品一区二区麻豆亚洲| 不卡的av在线播放| 欧美久久久影院| 日本一区二区三区国色天香| 亚洲自拍偷拍麻豆| 激情五月播播久久久精品| 成人v精品蜜桃久久一区| 精品视频在线免费| 久久精品欧美一区二区三区不卡| 中文字幕在线观看一区二区| 午夜久久久影院| 国产乱码精品一区二区三区忘忧草| 91麻豆免费观看| 久久久噜噜噜久久中文字幕色伊伊| 亚洲免费资源在线播放| 久久99久久久久| 色综合久久综合| 欧美成人福利视频| 亚洲自拍偷拍欧美| 高清国产一区二区三区| 91精品国产入口在线| 亚洲欧美一区二区三区久本道91| 欧美日韩国产电影| 亚洲欧洲三级电影| 国产一区二区视频在线| 欧美区在线观看| 日韩一区中文字幕| 国产精品一区二区在线观看网站| 91国偷自产一区二区三区观看| 久久久久久久久久久黄色| 日韩精彩视频在线观看| 一本久久精品一区二区| 久久久99精品久久| 毛片基地黄久久久久久天堂| 欧美在线色视频| 亚洲色图欧美偷拍| 成人一区二区三区视频 | 欧美三电影在线| 日韩一区在线播放| 国产成人av电影在线观看| 欧美一区二区免费视频| 一区二区三区高清不卡| 99久免费精品视频在线观看| 久久香蕉国产线看观看99| 丝袜美腿亚洲色图| 欧美日韩国产小视频在线观看| 亚洲黄色免费电影| 97成人超碰视| 中文字幕制服丝袜一区二区三区| 国产毛片精品视频| 久久午夜色播影院免费高清| 久久福利视频一区二区| 欧美成人video| 麻豆中文一区二区| 日韩精品专区在线影院重磅| 日韩av中文在线观看| 91麻豆精品91久久久久同性| 午夜欧美2019年伦理| 欧美精品乱人伦久久久久久| 亚洲一线二线三线视频| 91成人在线免费观看| 亚洲国产wwwccc36天堂| 欧美日韩国产成人在线91| 日韩中文字幕亚洲一区二区va在线 | 在线欧美日韩国产|