樹形控制元件比較 (轉)
樹形比較
也許是受到資源管理介面的影響,樹形控制元件(TTreeView)在介面中的使用也越來越廣泛,其直觀的表現形式、方便的操作方式,確實為介面增色不少(是啊,仿介面,看著都親切).TTreeView在、BCB的自帶介面控制元件中,基本上算得上是最複雜的控制元件之一.雖然它只是BORLAND對WINDOWS標準控制元件的VCL封裝,對於一般的要求,使用起來還算方便.而對於更高一些的要求,就顯得不是太方便了,如平滑的背景底圖(螞蟻)、自動跟蹤的節點CheckBox(金山毒霸中目錄、選擇)和節點RadioButton、節點圖示及狀態圖示控制、多列(TreeList)、與表資料關聯、高管理海量節點數、匯出和列印等等,雖然用TTreeView也都能實現,但程式碼及控制的複雜性令人生畏,有時甚至超過本身完成的業務功能,實在不划算,論壇上關於這些方面問題帖子也是層出不窮.也不知道為什麼BORLAND不提供一個更強大、使用更方便的TTreeView ( TTreeViewEx ? ),鬱悶ing....
看來我們只有自力更生......去尋找好用的第三方樹形控制元件了,本人以前曾收集控制元件無數,試用的樹形控制元件不下十個(太誇張了吧),很多試用過的都不太理想,連名字都不太記得了,有些連安都懶得安,打碼看看屬性事件繼承關係程式碼質量等等就直接delete了,印象中較有特色的有T(xx)Tree,TCheckTree,T(xx)TreeList等幾個,一看名字就知道是
TreeView在某個方面功能的增強版,不提也罷.
優秀的有TdxTreeList,TdxDBTreeList,TVirtualTree,TElTree等幾個,都是從VCL的TCustomContorl繼承下來的(與TTreeView封裝WINDOWS標準控制元件不同),前兩個(簡稱dxTrees)是大名鼎鼎的DevExpress QuantumGrid控制元件包中的,DevExpress公司的控制元件,只能用兩個字形容:牛×,相信用過的人都有同感.TVirtualTree是free控制元件,絕對專業的"純VCL"樹形控制元件,功能強大,屬性事件豐富,絕對滿足你的定製要求,幫助文件(可惜是E文的)和DEMO也很全面,最新版本3.4.9支援DELHPI4567,BCB456,上面列舉的種種"高階功能",有了它全都搞定,某些方面比dxTrees更強大(當然也有不如dxTrees的地方).至於TElTree,比起前面幾個就差遠了,介面上還過得去,最不可容忍的是問題,在節點數很多時(如幾萬,幾十萬個),刪除(包括控制元件析構時)操作巨慢,不知道現在的最新版本有否改進,我很久以前就"喜新厭舊",不再使用它了.
總的來講,TdxTreeList,TdxDBTreeList,TVirtualTree屬於同一級別的,各有側重.
TVirtualTree相當於TTreeView+TListView+ (TStringGrid 或 TDrawGrid),底圖,節點級的Checked,Disabled,Visibled,HotTrack...,節點遍歷,儲存資料到流,到檔案(rtf,html,txt...)
剪貼簿支援,ole & vcl拖放支援,列印,排序,單元格編輯,Unicode支援,精細的外觀和行為定製,太多太多功能,尤其在效率和圖形方面,相當不錯(具體可見help或demo).一旦擁有,別無所求! 吐血推薦! 缺點是資料庫方面的直接支援和設計時的操作稍差(沒有設計時節點編輯器),節點的操作,顯示必須在執行時用程式碼實現,好象不如TdxTrees,但這是它的設計思想所決定的,即把資料和介面顯示分離開,這點類似於VC中的TreeView,對於高手來說,也許正是所需要的.結論:★★★★★
TdxTreeList相當於TTreeView+TListView+TStringGrid.與TVirtualTree相比,在單元格編輯和多層列頭及設計時的操作方面很突出.結論:★★★★
TdxDBTreeList相當於TTreeView+TListView+TDBGrid,在資料庫方面更好用,網格編輯,多層列頭,自動排序等等功能應有盡有,使用方便,介面豪華.結論:★★★★☆
說實話,本人對DevExpress系列的控制元件用得並不是很多,也許對其品價有失公允,從樹形單控制元件的角度綜合評價,TVirtualTree確實是我用過的最好的控制元件之一.
以上純屬個人意見,僅供參考.
附地址:
TVirtualTree:
">
DevExpress QuantumGrid控制元件包 :
delphi窯洞,
歡迎來信: to:gmxybease.com">gmxyb@netease.com
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991876/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Antd:Tree樹形控制元件資料解析(JSON轉換)控制元件JSON
- vue的樹形控制元件Vue控制元件
- 【Android】自定義樹形控制元件Android控制元件
- 踩坑日記-element ui樹形控制元件UI控制元件
- Iview元件庫之樹形控制元件增刪改功能View控制元件
- Vue+element中Tree樹形控制元件資料失效~Vue控制元件
- 字串陣列轉為樹形結構字串陣列
- 樹:基本樹形
- Python2轉Python3比較Python
- 將List物件列表轉為樹形結構物件
- BST(二叉搜尋樹)、AVL樹、紅黑樹、2-3樹、B樹、B+樹、LSM樹、Radix樹比較
- js 深比較和淺比較JS
- SAP CRM和Cloud for Customer裡的Formatted Text控制元件的比較CloudORM控制元件
- 字串大小寫轉換和字串的比較字串
- 樹形DP!
- 樹形DP
- 雜湊,二叉樹,紅黑樹,B樹,B+樹,LSM樹等資料結構做索引比較二叉樹資料結構索引
- 樹上染色(樹形dp)
- UFDoble型別計算、比較大小。BigDecimal轉UFDouble型別Decimal
- C#比較兩個字串的相似度【轉】C#字串
- Prometheus thanos Victoriametrics比較 victoria prometheus 區別 轉載Prometheus
- Oracle date 型別比較和String比較Oracle型別
- 字串比較字串
- Integer比較
- 比較集合
- 效能比較
- 樹形結構
- 在 Linux 中用 Meld以圖形方式比較檔案和資料夾Linux
- ArmSoM-Sige7/5/1 和樹莓派5規格比較樹莓派
- Go和Python比較的話,哪個比較好?GoPython
- 比較檔案是否相同,(比較MD5值)
- [C++] 自定義C++比較器比較大小C++
- 數字比較
- PHP比較字串PHP字串
- 常用 NoSQL 比較SQL
- 列舉比較
- Jsonunit 比較jsondiffJSON
- easyExcel & poi 比較Excel
- Integer的比較