您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關易語言如何實現超級列表框點擊表頭進行排序的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
超級列表框排序模塊源碼
.版本 2 .支持庫 iext .程序集 程序集1 .子程序 _啟動子程序, 整數型, , 請在本子程序中放置易模塊初始化代碼 _臨時子程序 () ' 在初始化代碼執行完畢后調用測試代碼 返回 (0) ' 可以根據您的需要返回任意數值 .子程序 _臨時子程序 ' 本名稱子程序用作測試程序用,僅在開發及調試環境中有效,編譯發布程序前將被系統自動清空,請將所有用作測試的臨時代碼放在本子程序中。 注意不要修改本子程序的名稱、參數及返回值類型。 .子程序 超級列表框排序, 整數型, 公開, 返回排序時間,選中后排序還選中,必須項目數值不為0 沒有默認為1 .參數 對象, 超級列表框 .參數 列索引, 整數型, , 索引值從 0 開始。 .參數 類型, 整數型, 可空, 0=數值;1=文本;2=日期時間;3=邏輯 .參數 區分大小寫, 邏輯型, 可空, 真為區分,默認為真 .參數 排序方式, 邏輯型, 可空, 真為小到大,默認為真 .局部變量 排序時間, 整數型 .局部變量 排序變量, 文本型, , "0" .局部變量 序號數組, 整數型, , "0" .局部變量 表項數值, 整數型, , "0" .局部變量 變量, 整數型 .局部變量 數據, 文本型 .局部變量 列數, 整數型 .局部變量 行數, 整數型 .局部變量 單元數, 整數型 .局部變量 選中項, 整數型 排序時間 = 取啟動時間 () 類型 = 選擇 (類型 ≥ 0 且 類型 ≤ 3, 類型, 1) 區分大小寫 = 選擇 (是否為空 (區分大小寫), 真, 區分大小寫) 排序方式 = 選擇 (是否為空 (排序方式), 真, 排序方式) .如果真 (對象.現行選中項 ≠ -1) .如果真 (對象.取表項數值 (對象.現行選中項) = 0) 對象.置表項數值 (對象.現行選中項, 1) .如果真結束 選中項 = 對象.取表項數值 (對象.現行選中項) .如果真結束 .計次循環首 (對象.取表項數 (), 變量) 數據 = 刪首尾空 (對象.取標題 (變量 - 1, 列索引)) .如果 (類型 ≠ 3) 單元數 = 二分查找 (排序變量, 數據, 類型, 區分大小寫) 插入成員 (排序變量, 單元數, 數據) 插入成員 (序號數組, 單元數, 變量 - 1) 插入成員 (表項數值, 單元數, 對象.取表項數值 (變量 - 1)) .否則 插入成員 (序號數組, 選擇 (數據 = “假”, 變量, 1), 變量 - 1) 插入成員 (表項數值, 選擇 (數據 = “假”, 變量, 1), 對象.取表項數值 (變量 - 1)) .如果結束 .計次循環尾 () 列數 = 對象.取列數 () 行數 = 取數組成員數 (序號數組) 單元數 = 行數 × 列數 重定義數組 (排序變量, 假, 單元數) .計次循環首 (單元數, 變量) 排序變量 [變量] = 對象.取標題 (序號數組 [取絕對值 (選擇 (排序方式, -1, 行數) - (變量 - 1) \ 列數)], (變量 - 1) % 列數) .計次循環尾 () .計次循環首 (單元數, 變量) 對象.置標題 ((變量 - 1) \ 列數, (變量 - 1) % 列數, 排序變量 [變量]) 對象.置表項數值 ((變量 - 1) \ 列數, 表項數值 [取絕對值 (選擇 (排序方式, -1, 行數) - (變量 - 1) \ 列數)]) .計次循環尾 () .如果真 (選中項 ≠ 0) .計次循環首 (對象.取表項數 (), 變量) .如果真 (對象.取表項數值 (變量 - 1) = 選中項) 對象.現行選中項 = 變量 - 1 對象.保證顯示 (變量 - 1) 跳出循環 () .如果真結束 .計次循環尾 () .如果真結束 返回 (取啟動時間 () - 排序時間) .子程序 二分查找, 整數型 .參數 數組, 文本型, 數組 .參數 待查, 文本型 .參數 類型, 整數型 .參數 區分大小寫, 邏輯型 .局部變量 K, 整數型 .局部變量 M, 整數型 .局部變量 J, 整數型 .局部變量 數值A, 雙精度小數型 .局部變量 數值B, 雙精度小數型 .局部變量 文本, 文本型 K = 1 M = 取數組成員數 (數組) .如果真 (M = 0) 返回 (1) .如果真結束 .判斷開始 (類型 = 0) 數值A = 到數值 (待查) .如果真 (數值A ≥ 到數值 (數組 [M])) 返回 (M + 1) .如果真結束 .如果真 (數值A ≤ 到數值 (數組 [1])) 返回 (1) .如果真結束 .判斷循環首 (K < M - 1) J = (K + M) \ 2 數值B = 到數值 (數組 [J]) .如果真 (數值A = 數值B) K = J 跳出循環 () .如果真結束 .如果 (數值A < 數值B) M = J .否則 K = J .如果結束 .判斷循環尾 () .判斷 (類型 = 1) .如果真 (文本比較 (待查, 數組 [M], 區分大小寫) ≥ 0) 返回 (M + 1) .如果真結束 .如果真 (文本比較 (待查, 數組 [1], 區分大小寫) ≤ 0) 返回 (1) .如果真結束 .判斷循環首 (K < M - 1) J = (K + M) \ 2 .如果真 (文本比較 (待查, 數組 [J], 區分大小寫) = 0) K = J 跳出循環 () .如果真結束 .如果 (文本比較 (待查, 數組 [J], 區分大小寫) < 0) M = J .否則 K = J .如果結束 .判斷循環尾 () .判斷 (類型 = 2) 數值A = 取字節集數據 (到字節集 (到時間 (待查)), #雙精度小數型) .如果真 (數值A ≥ 取字節集數據 (到字節集 (到時間 (數組 [M])), #雙精度小數型)) 返回 (M + 1) .如果真結束 .如果真 (數值A ≤ 取字節集數據 (到字節集 (到時間 (數組 [1])), #雙精度小數型)) 返回 (1) .如果真結束 .判斷循環首 (K < M - 1) J = (K + M) \ 2 數值B = 取字節集數據 (到字節集 (到時間 (數組 [J])), #雙精度小數型) .如果真 (數值A = 數值B) K = J 跳出循環 () .如果真結束 .如果 (數值A < 數值B) M = J .否則 K = J .如果結束 .判斷循環尾 () .默認 .判斷結束 返回 (K + 1)
超級列表框排序例程
.版本 2 .程序集 窗口程序集1 .程序集變量 變量, 文本型 .子程序 _超級列表框1_表頭被單擊 .參數 被單擊列索引, 整數型 .如果真 (被單擊列索引 = 0) .如果 (標簽1.標題 = “1”) ' 處理表和圖標對應 () 超級列表框排序 (超級列表框1, 0, 1, 真, 真) ' 重新排列圖標 () 標簽1.標題 = “2” .否則 ' 處理表和圖標對應 () 超級列表框排序 (超級列表框1, 0, 1, 真, 假) ' 重新排列圖標 () 標簽1.標題 = “1” .如果結束 .如果真結束 .如果真 (被單擊列索引 = 1) .如果 (標簽1.標題 = “1”) ' 處理表和圖標對應 () 超級列表框排序 (超級列表框1, 1, 1, 真, 真) ' 重新排列圖標 () 標簽1.標題 = “2” .否則 ' 處理表和圖標對應 () 超級列表框排序 (超級列表框1, 1, 1, 真, 假) ' 重新排列圖標 () 標簽1.標題 = “1” .如果結束 .如果真結束 .如果真 (被單擊列索引 = 2) .如果 (標簽1.標題 = “1”) ' 處理表和圖標對應 () 超級列表框排序 (超級列表框1, 2, 1, 真, 真) ' 重新排列圖標 () 標簽1.標題 = “2” .否則 ' 處理表和圖標對應 () 超級列表框排序 (超級列表框1, 2, 1, 真, 假) ' 重新排列圖標 () 標簽1.標題 = “1” .如果結束 .如果真結束
運行結果:
感謝各位的閱讀!關于“易語言如何實現超級列表框點擊表頭進行排序”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。