9

私は自分の Web サイトLearnDelphi.tvで Delphi コンポーネントの使用に関するビデオを作成しています。私は THeaderControl をカバーしようとしていますが、その用途が見つかりません - このコンポーネントは現在必要ありません - TListView (レポートビュースタイルを使用) などの他のコンポーネントに勝っていますか、それとも私が見落としていた使用方法がありますか? ?

編集: コマーシャル ビデオの 1 つで THeaderControl にセグメントを記録しましたが、この小さなセクション (6 時間のうち 20 分) を無料でリリースすることにしました。YouTubeでご覧ください。貢献してくれたすべての人に感謝します。

4

1 に答える 1

11

一般THeaderControlに、表形式データのヘッダーとして使用できます。もちろん、多くの場合、そのためにリスト ビューが使用されます。しかし、リスト ビューなどを使用して作成するのが容易ではない各列のさまざまなコンポーネントの風変わりなレイアウトの場合、または各列の完全に異なるレイアウトの場合でも、ヘッダー コントロールは便利です。必要な場所で柔軟性を提供するだけです。TPageControlよりも柔軟な提供と比較してくださいTTabControl

そして、特定のニッチなケースについて: たとえば、計画グリッド コンポーネントの一部としてヘッダー コントロールを使用します。ヘッダー コントロールはデータ ソースを介してキャプションを取得し、ヘッダー セクションは列およびスクロール バーと同期しています。実際、これにはいくつかのコードが必要ですが、さまざまなイベントのデザインタイムを実装する場合よりも多くはありません。

  TPlanGridHeader = class(TCustomHeaderControl)
  private
    FSectionWidth: Integer;
    procedure SetSectionWidth(Value: Integer);
    procedure WMMouseMove(var Message: TWMMouseMove); message WM_MOUSEMOVE;
  protected
    function CreateSection: THeaderSection; override;
    procedure SectionResize(Section: THeaderSection); override;
    procedure SectionTrack(Section: THeaderSection; Width: Integer;
      State: TSectionTrackState); override;
    property SectionWidth: Integer read FSectionWidth write SetSectionWidth;
  public
    procedure AddSection(const AText, AHint: String);
    constructor Create(AOwner: TComponent); override;
  end;

ここに画像の説明を入力

于 2012-07-16T15:21:02.727 に答える