2

重複の可能性:
Firefox の「アドオン|拡張機能リスト」を模倣できる Delphi コントロール?

カスタム ListBox コントロールを作成したいと思います。Firefoxのダウンロードのように見える場合があります

Firefox のダウンロード例

しかし、特定のレイアウトのカスタム描画をハードコーディングする代わりに、レイアウトを個別に定義できるようにしたいと考えています。説明させてください、リストボックスには公開されたプロパティ Layout: TWinControl があります。アイデアは、言うパネルでレイアウトを設計することです。したがって、上記の例では、次のようになります。

行レイアウトのパネル

次に、ListBox の customdraw で、パネルの描画を使用します。もちろん、各行は対応する項目のデータを描画します。したがって、コントロールは DbAware になり、recordIndex は描画ごとに調整されます。(DBAware コントロールは実際には使用せず、カスタム データ バインディングを使用しますが、原則は同じです)

誰かがすでにこのようなことをしていますか? それは良い/悪い考えだと思いますか?

テストアプリの作成を開始しました。この質問を編集して、特定の実装に関する質問を追加します。

すべての行に対してパネルのインスタンスを 1 つだけ使用することを望んでいます。リストボックスの外に表示されないようにする必要があります。

これまでのところPanel.PaintTo()、 ListBoxOnDrawItemで使用してみましたが、基本的には機能しますが、 Panel が親であり、フォームの他の場所に表示されている場合のみです。パネルを非表示にできますが、まだペイントを使用できますか? これをどのように実装しますか?

4

0 に答える 0