2012-07-16 91 views
9

我一直在製作使用delphi組件爲我的網站LearnDelphi.tv的視頻。我正在尋找覆蓋THeaderControl,但找不到它的任何用處 - 這個組件現在不需要 - 超過其他組件,如TListView(與報告視圖樣式),還是有一些使用它,我忽略了?在Delphi中有沒有THeaderControl的用法

編輯: 我在THeaderControl上爲我的一個商業視頻錄製了一個片段,但我決定免費發佈這個小節(​​20分鐘,6小時)。在YouTube上觀看。感謝所有貢獻的人。

+1

它曾經是很好的與標籤正常列表上的標題,但它確實是比較少用現在。不知道這是一個問這個問題的好地方。 (我沒有downvote!) – mj2008 2012-07-16 11:31:19

+1

@TLama我已經看了幫助,並做了相當合理的谷歌搜索。一個例子不斷彈出一個TListBox上的頭文件,這實現起來非常麻煩 - 而且使用TListView更容易 - 我想知道是否有人用它來做一些有用的事情。 – Alister 2012-07-16 11:40:20

+1

我不明白這個問題。您似乎在尋找使用標題控件的原因。列表視圖控件有特定的問題嗎? – 2012-07-16 11:45:35

回答

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; 

enter image description here

相關問題