46

私のチームは現在、既存のMDIベースのアプリケーションをより最新のドッキングベースのアプローチに移行することを考えています。私たちはまだ考えていますが、VS2010のドッキングと視覚的な外観のようなものに移動したいと思います:

VS2010UIとドッキングのスクリーンショット

これには次の機能があります。

  • ウィンドウがドッキングするブレンドされたアウトラインを表示します
  • タブにドッキングするだけでなく、並べて配置する
  • ドックの位置を示す画像上でドラッグアンドリリースすることでドッキングを許可します(以下ではこれを「ドッキングウィジェット」と呼びます)
  • 見た目もかなり良い(テーマ/ UIに関して)

RAD Studio 2010で使用する高品質のドッキングライブラリを見つけるのに苦労しており、見つけていないライブラリ、または見つけたライブラリを使用してこのようなことを実現する方法についてアドバイスを求めています。


  • 更新2、2011年7月:この質問では、Delphi / C ++ Builderで使用可能なすべてのドッキングライブラリを調べたので、最新の状態に保とうとしています。私が知っている2つの変更:
    • 現在AutomatedQAを所有しているSmartBearには、使用済みのAutomatedQAのドッキングライブラリがあります。これは私が購入することをお勧めしたものです。彼らはそれをオープンソーシングすることを検討しています。
    • 私がDevExpressドッキングで抱えていた問題の1つは、VS2008 / 10スタイルのドッキングがサポートされていないことでした。ドッキングウィジェット、ドラッグしたときの透明なオーバーレイなど があります。現在、実装されています。このため、またAQDockingは販売されなくなったため、この質問をした場合、受け入れられる答えはDevExpressDockingを購入することです。

次のライブラリを見つけました。概要は次のとおりです。

内蔵VCLドッキング

これにより、フォームを他のフォームまたはTWinControlsにドッキングできますが、非常に基本的なように見えます。フォームは、XORペイントされたアウトラインを使用してドラッグします。これは、VistaおよびWin7では非常にうまく機能しません。タブ付きのドッキングされたフォーム用のTTabDockSetコントロールがありますが、ドッキングされたフォームのタイトルがドッキングされた後のレンダリング方法を制御する方法がわかりません。ドッキングを並べて実装するには、手動で実行して、新しいドックサイトパネルをその場で作成する必要があると思います。RAD Studio IDEのドッキングウィンドウは、これよりも少し滑らかです(たとえば、フォームをドラッグするときの透明な長方形)。これは、VCLドッキングサポートを使用していると思ったため、奇妙なことです。

JVCLドッキング

これは、組み込みのVCLドッキングよりもまともなソリューションのように見えます。任意のエッジまたはクライアントでのドッキングをサポートし、フォームがドッキングする場所にアルファブレンドされた長方形を表示します。

JVCLドッキングテストプログラム

かなりバグがあるようで(最初のフォームの上に2番目のフォームをドロップすることは許可されていますが、プログラムがフリーズします)、タブ付きドックのサポートやドロップロケーションウィジェットは組み込まれていません。

LMDドッキングパック

これは有望に見えます。フォームを直接ドッキングしているようには見えませんが、ドッキングパネルがあり、その上にコントロール/フレームが配置されています。既存のフォームをフレームに移行できます。また、ドッキングウィジェットとタブ付きドックのサポートもあります。

ただし、デモは非常に信頼性が低いようです。最新の評価バージョンをインストールしました。ドックサイトといくつかのパネルを使用して新しいプロジェクトを作成し、[実行]を押すと、次のようになります。

LMDドッキング

これは、フォームコンポーネントストリーミングでクラッシュしています。DFMファイルを視覚的に調べても問題はありませんが、それを引き起こしている可能性のあるレイアウト情報の不透明なバイナリブロブがあります。これは、評価バージョンでは特に推奨されません。

DevExpress ExpressDocking

私はこれに大きな期待を抱いていました。これまでDevExpressコントロールを使用したことはありませんが、評判は良いです。しかし、彼らのデモプログラムは本当にがっかりしました:

DevExpressドッキング

コントロールがちらつき、XPスタイルを使用していても、Windowsではテーマがうまく機能していないようです。タブ付きドッキングはありますが、XOR化されたアウトラインを使用します。これはXPまたはVistaではうまく機能しません。また、ドッキングウィジェットもありません。率直に言って、WindowsXPの時代から更新されていないようです。2011年7月の更新: これは改善されています。

AutomatedQA/SmartBearドッキングライブラリ

これは、これまでのすべてのライブラリの中で最も有望です。

AutomatedQAドッキングライブラリ

私は定期的にAQTimeを使用しています。これは、独自のドッキングライブラリを使用して作成されているように見える優れたプロファイラーであり、うまく機能します。ただし、ドッキングライブラリの試用版のダウンロードの最新バージョンはRAD Studio 2009用であり、2010にインストールする場合のアドバイスは、サポートされていないため、ソースを再コンパイルする必要があるということです。デモにはソースが付属しておらず、RS2009もありません。インストールしない限り、インストーラーはインストールを拒否します。インストールするように管理したとしても、再コンパイルする必要があるため、使用できません。存在しないソース。

私は彼らのサポートチームと連絡を取り合っており、彼らは私にこのスレッドを教えてくれました。私はまた、顧客がほとんど同じことを求めている別のスレッドを見つけました。私は返信しました、そしてより良いニュースを聞くことを望んでいます。特にIDEでサポートされていない場合は、評価できない製品を購入することをお勧めしません。

私は何を逃しましたか?

それが私がこれまでに見つけたすべてです。今何?

  • Delphi / C ++ Builder / RAD Studio 2010用の優れたドッキングライブラリを見逃したことがありますか?
  • これまでに見たライブラリの機能を見逃したことがありますか?「FooBarを見逃しました」や「JVCLには確かにドッキングウィジェットがあり、そのように使用できます...」などの回答を聞くと、かなり素晴らしいでしょう。
  • 次のステップとして何をお勧めしますか?

ご入力いただきありがとうございます:)

4

3 に答える 3

7

私はjediJVCL開発者であり、JvDockingを自社の商用プロジェクトで使用しており、堅実で信頼性が高いことがわかりました。

また、無料です。拡張は簡単です。VisualStudio2008時代のドッキングとほぼ同じルックアンドフィールを作成します。

于 2011-10-27T20:22:59.373 に答える
3

必要なすべてを実行する単一のライブラリが見つからなかったため、いくつかの実験を行った後、一連のカスタム変更といくつかの追加のネイティブVCLドッキング(NVCLD)コントロールを使用することで、必要なほとんどすべてを実行できることがわかりました。コントロール。

以下は、NVCLDを希望どおりに動作させるために遭遇したもののリストです。バージョン間の移植に多くの問題はありませんでしたが、それは私もsrcを持っているからです。

自分で作成することを考えていない場合、または本当にサードパーティのライブラリを使用したい場合は、おそらくこの残りの部分を読むのをやめることができます。:)

追加コンポーネント:

  1. TDockPanel

    この大幅に変更されたドッキングパネルは、私のシステムの主力製品です。私はネット上でオリジナルを見つけましたが、私のニーズに少し大きな柔軟性を提供するためにそれを変更しました。

  2. カスタムドッキングフォーム(ベースフォーム)

    ドッキングフォームにカスタム基本クラスを使用し、必要に応じてそれを継承することで、すべての子孫フォームで行う変更が少なくなります。

カスタム変更

これらは、NVCLDコンポーネント自体の.pasファイルへの変更です。D2009以降、基本コントロールにいくつかの機能拡張が行われたため、これらの変更のほとんどを行う必要がなくなりました。デフォルトのsrcファイルを直接変更する代わりに、新しい子孫を作成してそこに変更を実装できるはずです。

  1. 透明なドッキングフォーム

    デフォルト(2009年以前)では、NVCLDは透過的なフォームの移動をサポートしていません。数年前にリリースされたJVCLパッチがあり、NVLCDパッチに簡単に組み込むことができるJVCLにそのサポートが追加されました。

  2. ドッキングマネージャー

    デフォルトのドッキングマネージャー(確かに2009年以前)では、新しい/カスタムボタンの画像やドッキングヘッダーの変更は許可されていませんでした。これはD2009で修正され、必要なメソッドが仮想化されたと思います。

  3. タブ付きドッキング

    追加のドッキングコンポーネントをサポートするには、DockTabSet.pasファイルを変更して、追加のコンポーネントで使用される追加のドッキングプロパティをサポートする必要がありました。これのほとんどは、前述のようにドッキングマネージャが変更されたときに修正されました。

これらの変更のほとんどを述べたように、Delphi Srcファイルに直接行ったので、新しいバージョンのDelphiではそれを行う必要はありません。私のポイントは、事前に少し作業をすれば、サードパーティのライブラリを使用しなくても、かなり堅牢なドッキングシステムを使用できるということです。それらのいずれかに問題があるわけではありませんが、他に選択肢がないか、自分のやり方で機能させる時間がない場合を除いて、それらを使用しないことを好みます。

于 2010-08-03T18:15:59.047 に答える
2

私はJCLを使用し、LMD、DevExpress、および自動QAドッキングライブラリを使用しています。

ニーズを満たす最も近いものは、AutomatedQAドッキングライブラリです。私は自分のプロジェクトの1つの仕事でそれを使用しています。

次のステップは、AutomatedQAライブラリを購入する:)

幸せな顧客から。

于 2010-08-03T10:09:17.153 に答える