簡體   English   中英

針對Delphi / C ++ Builder的停靠庫的建議?

[英]Recommendations for a docking library for Delphi / C++Builder?

我的團隊目前正在考慮將現有的基於MDI的應用程序轉移到更現代的基於對接的方法。 我們仍在思考,但我們想把它轉移到VS2010的對接和視覺外觀上:

VS2010 UI和對接截圖

這具有以下功能:

  • 顯示窗口將停靠的混合輪廓
  • 划入標簽,並排並排
  • 允許通過拖動和釋放顯示停靠位置的圖像進行對接(我將其稱為“停靠小部件”)
  • 看起來也不錯(主題/ UI方式)

我無法找到與RAD Studio 2010一起使用的高質量對接庫,並且正在尋找關於我沒有找到的庫或者如何使用我發現的庫來實現這樣的建議的建議。

  • 更新:我最終購買了AutomatedQA的對接庫 我認為這是最好的。 有關它的部分,請參閱以下詳細信息。

  • 更新2,2011年7月:這個問題考察了Delphi / C ++ Builder可用的每個對接庫,所以我試圖讓它保持最新。 我知道的兩個變化:
    • SmartBear現在擁有AutomatedQA,擁有終結的AutomatedQA對接庫 這是我建議買的一個。 他們正在考慮開源。
    • 我與DevExpress對接的一個問題(這使它不值得購買)是它缺乏對VS2008 / 10式對接的支持,具有對接小部件,拖動時的透明覆蓋等等。 他們現在正在實現它 因此,由於AQDocking不再被出售,如果我現在問這個問題,我接受的答案就是購買DevExpress Docking

我找到了以下庫。 這是一個概述:

內置VCL對接

這允許表單停靠在其他表單或TWinControls上,但看起來非常基本。 使用XOR繪制的輪廓進行拖動,這在Vista和Win7上非常糟糕。 有一個用於標簽式停靠表單的TTabDockSet控件,但我無法弄清楚如何控制停靠表單的標題在停靠后呈現的方式。 我認為並行實施對接必須手動完成,即時創建新的docksite面板。 RAD Studio IDE的對接窗口比這個(例如,拖動表單時的透明矩形)有點光滑,這是奇怪的,因為我認為它使用了VCL對接支持。

JVCL對接

這看起來更像是內置VCL對接的一個不錯的解決方案。 它支持在任何邊緣或客戶端上對接,並顯示表單將停靠的alphablended矩形。

JVCL對接測試程序

它似乎是非常錯誤的(允許在第一個表單之上刪除第二個表單,但凍結程序)並且沒有內置的選項卡式底座支持或任何類型的drop-location小部件。

LMD對接包

這看起來很有希望:雖然它似乎沒有直接停靠表格,但它有對接面板和控件/框架。 現有表單可以遷移到框架。 它還有一個對接小部件和標簽式底座支持。

但是,該演示似乎非常不可靠。 我已經安裝了最新的評估版本,並創建了一個帶有停靠站點和多個面板的新項目,並按下Run會導致以下情況:

LMD對接

這在表單組件流中崩潰。 目視檢查DFM文件沒有顯示任何錯誤,但是有一個不透明的二進制blob用於可能導致它的布局信息。 在評估版本中,這並不是特別令人鼓舞。

DevExpress ExpressDocking

我對此寄予厚望:我以前從未使用任何DevExpress控件,但他們有良好的聲譽。 但他們的演示程序確實令人失望:

DevExpress對接

控件很閃亮,即使使用XP風格也不太適合Windows。 它確實有標簽對接,但它使用XOR-ed輪廓 - 這在XP或Vista上不能很好地工作。 它也沒有任何類型的對接小部件。 坦率地說,看起來它自Windows XP時代以來一直沒有更新。 2011年7月更新: 這項工作正在改進中

AutomatedQA / SmartBear對接庫

到目前為止,這是所有圖書館中最有前途的。

AutomatedQA對接庫

我經常使用AQTime ,這是一個出色的分析器,似乎是使用自己的對接庫編寫的,而且效果很好。 但是,最新版本的停靠庫試用版下載適用於RAD Studio 2009,並且安裝到2010年的建議是它不受支持,您應該重新編譯源代碼。 該演示沒有源代碼,我們沒有RS2009,安裝程序拒絕安裝,除非我們這樣做,即使我們管理它安裝我們也無法使用它,因為我們需要重新編譯不存在的來源。

我一直與他們的支持團隊保持聯系,他們向我指出了這個主題 我還發現了另一個與客戶提出相同問題的主題 我回復並希望聽到更好的消息。 我並不熱衷於建議購買我無法評估的產品,特別是當我們的IDE不支持它時。

  • 更新:我最終購買了這個庫。 盡管有評估問題(它在D2007中工作,我有一個副本),但似乎最容易使用所有庫,也是最強大的 - 例如,為它編寫主題很容易。 如果你還需要選擇一個停靠庫,我肯定會推薦它。

  • 2011年7月更新: 此庫不再銷售,但可能很快就會開源

我錯過了什么?

這就是我到目前為止所發現的一切。 現在怎么辦?

  • 我是否錯過了Delphi / C ++ Builder / RAD Studio 2010的任何好的對接庫?
  • 我錯過了目前為止我看過的圖書館的任何功能嗎? 答案如“你錯過了FooBar”或“JVCL確實有一個對接小部件,你可以像這樣使用它......”聽起來真是太棒了。
  • 你下一步會推薦什么?

感謝您的輸入 :)

我是一名jedi JVCL開發人員,我在自己的商業內部項目中使用了JvDocking,並發現它堅固可靠。

此外,它是免費的。 它很容易擴展。 它創造了與visual studio 2008時代對接相同的外觀和感覺。

我沒有找到一個可以完成我想做的事情的單個庫,所以經過一些實驗后我發現我可以通過使用Native VCL Docking(NVCLD)控件進行一系列自定義修改和一些額外的操作,幾乎可以完成我想要的一切控制。

以下列出了我在使NVCLD以我想要的方式工作時遇到的問題。 我在版本之間移植沒有太多問題,但那是因為我也有src。

如果您不想自己動手或者您真的想使用第三方庫,那么您可能會停止閱讀其余部分。 :)

附加組件:

  1. TDockPanel

    這個經過大量修改的對接面板是我的系統的主力。 我在網上找到了原版,但已對其進行了修改,因為它為我的需求提供了更大的靈活性。

  2. 自定義停靠表單 (基本表單)

    通過為我的停靠表單使用自定義基類並在需要時繼承它我對所有后代表單進行的修改較少。

自定義修改

這些是對NVCLD組件本身的.pas文件的修改。 由於從D2009開始對基本控件進行了一些增強,因此大多數這些修改不再需要完成。 您應該能夠只創建一個新的后代並在那里實現更改,而不是直接修改默認的src文件。

  1. 透明的對接形式

    默認情況下(2009年之前肯定)NVCLD不支持透明表單移動。 幾年前發布了一個JVCL補丁,增加了對JVCL的支持,這很容易合並到NVLCD補丁中。

  2. 停靠管理器

    默認的停靠管理器(肯定是2009年之前)不允許更新/自定義按鈕圖像或停靠標頭更改。 這在D2009中得到了糾正我相信當虛擬的必要方法。

  3. 標簽對接

    為了支持其他對接組件,我需要修改DockTabSet.pas文件以支持其他組件使用的其他對接屬性。 當Docking Manager被修改為之前的提及時,大多數情況已得到糾正。

正如我所說的大多數這些更改,我直接使用Delphi Src文件,你不應該為新版本的Delphi做到這一點。 我的觀點是,通過前面的一些工作,您可以擁有一個相當強大的對接系統,而無需使用第三方庫。 並不是說它們中的任何一個都有任何問題,但我不想使用它們,除非我別無選擇或者沒有時間讓它按照我的方式工作。

我使用過JCL,我有LMD,DevExpress和Automated QA Docking Library。

您將找到最符合您需求的AutomatedQA Docking Library。 我在我的工作中使用它來完成我的一個項目。

下一步,購買AutomatedQA庫:)

來自快樂的顧客。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM