易語言超級列表框點(diǎn)擊表頭進(jìn)行排序的代碼
更新時(shí)間:2018年11月23日 15:52:30 作者:易語言源碼教程
今天小編就為大家分享一篇關(guān)于易語言超級列表框點(diǎn)擊表頭進(jìn)行排序的代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
超級列表框排序模塊源碼
.版本 2 .支持庫 iext .程序集 程序集1 .子程序 _啟動(dòng)子程序, 整數(shù)型, , 請?jiān)诒咀映绦蛑蟹胖靡啄K初始化代碼 _臨時(shí)子程序 () ' 在初始化代碼執(zhí)行完畢后調(diào)用測試代碼 返回 (0) ' 可以根據(jù)您的需要返回任意數(shù)值 .子程序 _臨時(shí)子程序 ' 本名稱子程序用作測試程序用,僅在開發(fā)及調(diào)試環(huán)境中有效,編譯發(fā)布程序前將被系統(tǒng)自動(dòng)清空,請將所有用作測試的臨時(shí)代碼放在本子程序中。 注意不要修改本子程序的名稱、參數(shù)及返回值類型。 .子程序 超級列表框排序, 整數(shù)型, 公開, 返回排序時(shí)間,選中后排序還選中,必須項(xiàng)目數(shù)值不為0 沒有默認(rèn)為1 .參數(shù) 對象, 超級列表框 .參數(shù) 列索引, 整數(shù)型, , 索引值從 0 開始。 .參數(shù) 類型, 整數(shù)型, 可空, 0=數(shù)值;1=文本;2=日期時(shí)間;3=邏輯 .參數(shù) 區(qū)分大小寫, 邏輯型, 可空, 真為區(qū)分,默認(rèn)為真 .參數(shù) 排序方式, 邏輯型, 可空, 真為小到大,默認(rèn)為真 .局部變量 排序時(shí)間, 整數(shù)型 .局部變量 排序變量, 文本型, , "0" .局部變量 序號數(shù)組, 整數(shù)型, , "0" .局部變量 表項(xiàng)數(shù)值, 整數(shù)型, , "0" .局部變量 變量, 整數(shù)型 .局部變量 數(shù)據(jù), 文本型 .局部變量 列數(shù), 整數(shù)型 .局部變量 行數(shù), 整數(shù)型 .局部變量 單元數(shù), 整數(shù)型 .局部變量 選中項(xiàng), 整數(shù)型 排序時(shí)間 = 取啟動(dòng)時(shí)間 () 類型 = 選擇 (類型 ≥ 0 且 類型 ≤ 3, 類型, 1) 區(qū)分大小寫 = 選擇 (是否為空 (區(qū)分大小寫), 真, 區(qū)分大小寫) 排序方式 = 選擇 (是否為空 (排序方式), 真, 排序方式) .如果真 (對象.現(xiàn)行選中項(xiàng) ≠ -1) .如果真 (對象.取表項(xiàng)數(shù)值 (對象.現(xiàn)行選中項(xiàng)) = 0) 對象.置表項(xiàng)數(shù)值 (對象.現(xiàn)行選中項(xiàng), 1) .如果真結(jié)束 選中項(xiàng) = 對象.取表項(xiàng)數(shù)值 (對象.現(xiàn)行選中項(xiàng)) .如果真結(jié)束 .計(jì)次循環(huán)首 (對象.取表項(xiàng)數(shù) (), 變量) 數(shù)據(jù) = 刪首尾空 (對象.取標(biāo)題 (變量 - 1, 列索引)) .如果 (類型 ≠ 3) 單元數(shù) = 二分查找 (排序變量, 數(shù)據(jù), 類型, 區(qū)分大小寫) 插入成員 (排序變量, 單元數(shù), 數(shù)據(jù)) 插入成員 (序號數(shù)組, 單元數(shù), 變量 - 1) 插入成員 (表項(xiàng)數(shù)值, 單元數(shù), 對象.取表項(xiàng)數(shù)值 (變量 - 1)) .否則 插入成員 (序號數(shù)組, 選擇 (數(shù)據(jù) = “假”, 變量, 1), 變量 - 1) 插入成員 (表項(xiàng)數(shù)值, 選擇 (數(shù)據(jù) = “假”, 變量, 1), 對象.取表項(xiàng)數(shù)值 (變量 - 1)) .如果結(jié)束 .計(jì)次循環(huán)尾 () 列數(shù) = 對象.取列數(shù) () 行數(shù) = 取數(shù)組成員數(shù) (序號數(shù)組) 單元數(shù) = 行數(shù) × 列數(shù) 重定義數(shù)組 (排序變量, 假, 單元數(shù)) .計(jì)次循環(huán)首 (單元數(shù), 變量) 排序變量 [變量] = 對象.取標(biāo)題 (序號數(shù)組 [取絕對值 (選擇 (排序方式, -1, 行數(shù)) - (變量 - 1) \ 列數(shù))], (變量 - 1) % 列數(shù)) .計(jì)次循環(huán)尾 () .計(jì)次循環(huán)首 (單元數(shù), 變量) 對象.置標(biāo)題 ((變量 - 1) \ 列數(shù), (變量 - 1) % 列數(shù), 排序變量 [變量]) 對象.置表項(xiàng)數(shù)值 ((變量 - 1) \ 列數(shù), 表項(xiàng)數(shù)值 [取絕對值 (選擇 (排序方式, -1, 行數(shù)) - (變量 - 1) \ 列數(shù))]) .計(jì)次循環(huán)尾 () .如果真 (選中項(xiàng) ≠ 0) .計(jì)次循環(huán)首 (對象.取表項(xiàng)數(shù) (), 變量) .如果真 (對象.取表項(xiàng)數(shù)值 (變量 - 1) = 選中項(xiàng)) 對象.現(xiàn)行選中項(xiàng) = 變量 - 1 對象.保證顯示 (變量 - 1) 跳出循環(huán) () .如果真結(jié)束 .計(jì)次循環(huán)尾 () .如果真結(jié)束 返回 (取啟動(dòng)時(shí)間 () - 排序時(shí)間) .子程序 二分查找, 整數(shù)型 .參數(shù) 數(shù)組, 文本型, 數(shù)組 .參數(shù) 待查, 文本型 .參數(shù) 類型, 整數(shù)型 .參數(shù) 區(qū)分大小寫, 邏輯型 .局部變量 K, 整數(shù)型 .局部變量 M, 整數(shù)型 .局部變量 J, 整數(shù)型 .局部變量 數(shù)值A(chǔ), 雙精度小數(shù)型 .局部變量 數(shù)值B, 雙精度小數(shù)型 .局部變量 文本, 文本型 K = 1 M = 取數(shù)組成員數(shù) (數(shù)組) .如果真 (M = 0) 返回 (1) .如果真結(jié)束 .判斷開始 (類型 = 0) 數(shù)值A(chǔ) = 到數(shù)值 (待查) .如果真 (數(shù)值A(chǔ) ≥ 到數(shù)值 (數(shù)組 [M])) 返回 (M + 1) .如果真結(jié)束 .如果真 (數(shù)值A(chǔ) ≤ 到數(shù)值 (數(shù)組 [1])) 返回 (1) .如果真結(jié)束 .判斷循環(huán)首 (K < M - 1) J = (K + M) \ 2 數(shù)值B = 到數(shù)值 (數(shù)組 [J]) .如果真 (數(shù)值A(chǔ) = 數(shù)值B) K = J 跳出循環(huán) () .如果真結(jié)束 .如果 (數(shù)值A(chǔ) < 數(shù)值B) M = J .否則 K = J .如果結(jié)束 .判斷循環(huán)尾 () .判斷 (類型 = 1) .如果真 (文本比較 (待查, 數(shù)組 [M], 區(qū)分大小寫) ≥ 0) 返回 (M + 1) .如果真結(jié)束 .如果真 (文本比較 (待查, 數(shù)組 [1], 區(qū)分大小寫) ≤ 0) 返回 (1) .如果真結(jié)束 .判斷循環(huán)首 (K < M - 1) J = (K + M) \ 2 .如果真 (文本比較 (待查, 數(shù)組 [J], 區(qū)分大小寫) = 0) K = J 跳出循環(huán) () .如果真結(jié)束 .如果 (文本比較 (待查, 數(shù)組 [J], 區(qū)分大小寫) < 0) M = J .否則 K = J .如果結(jié)束 .判斷循環(huán)尾 () .判斷 (類型 = 2) 數(shù)值A(chǔ) = 取字節(jié)集數(shù)據(jù) (到字節(jié)集 (到時(shí)間 (待查)), #雙精度小數(shù)型) .如果真 (數(shù)值A(chǔ) ≥ 取字節(jié)集數(shù)據(jù) (到字節(jié)集 (到時(shí)間 (數(shù)組 [M])), #雙精度小數(shù)型)) 返回 (M + 1) .如果真結(jié)束 .如果真 (數(shù)值A(chǔ) ≤ 取字節(jié)集數(shù)據(jù) (到字節(jié)集 (到時(shí)間 (數(shù)組 [1])), #雙精度小數(shù)型)) 返回 (1) .如果真結(jié)束 .判斷循環(huán)首 (K < M - 1) J = (K + M) \ 2 數(shù)值B = 取字節(jié)集數(shù)據(jù) (到字節(jié)集 (到時(shí)間 (數(shù)組 [J])), #雙精度小數(shù)型) .如果真 (數(shù)值A(chǔ) = 數(shù)值B) K = J 跳出循環(huán) () .如果真結(jié)束 .如果 (數(shù)值A(chǔ) < 數(shù)值B) M = J .否則 K = J .如果結(jié)束 .判斷循環(huán)尾 () .默認(rèn) .判斷結(jié)束 返回 (K + 1)
超級列表框排序例程
.版本 2 .程序集 窗口程序集1 .程序集變量 變量, 文本型 .子程序 _超級列表框1_表頭被單擊 .參數(shù) 被單擊列索引, 整數(shù)型 .如果真 (被單擊列索引 = 0) .如果 (標(biāo)簽1.標(biāo)題 = “1”) ' 處理表和圖標(biāo)對應(yīng) () 超級列表框排序 (超級列表框1, 0, 1, 真, 真) ' 重新排列圖標(biāo) () 標(biāo)簽1.標(biāo)題 = “2” .否則 ' 處理表和圖標(biāo)對應(yīng) () 超級列表框排序 (超級列表框1, 0, 1, 真, 假) ' 重新排列圖標(biāo) () 標(biāo)簽1.標(biāo)題 = “1” .如果結(jié)束 .如果真結(jié)束 .如果真 (被單擊列索引 = 1) .如果 (標(biāo)簽1.標(biāo)題 = “1”) ' 處理表和圖標(biāo)對應(yīng) () 超級列表框排序 (超級列表框1, 1, 1, 真, 真) ' 重新排列圖標(biāo) () 標(biāo)簽1.標(biāo)題 = “2” .否則 ' 處理表和圖標(biāo)對應(yīng) () 超級列表框排序 (超級列表框1, 1, 1, 真, 假) ' 重新排列圖標(biāo) () 標(biāo)簽1.標(biāo)題 = “1” .如果結(jié)束 .如果真結(jié)束 .如果真 (被單擊列索引 = 2) .如果 (標(biāo)簽1.標(biāo)題 = “1”) ' 處理表和圖標(biāo)對應(yīng) () 超級列表框排序 (超級列表框1, 2, 1, 真, 真) ' 重新排列圖標(biāo) () 標(biāo)簽1.標(biāo)題 = “2” .否則 ' 處理表和圖標(biāo)對應(yīng) () 超級列表框排序 (超級列表框1, 2, 1, 真, 假) ' 重新排列圖標(biāo) () 標(biāo)簽1.標(biāo)題 = “1” .如果結(jié)束 .如果真結(jié)束
運(yùn)行結(jié)果:
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接