2012-07-16 15 views
9

He estado produciendo videos sobre el uso de componentes delphi para mi sitio web LearnDelphi.tv. Estoy buscando cubrir THeaderControl pero no puedo encontrar ningún uso para él (este componente ahora no es necesario) superado por otros componentes como TListView (con el estilo de vista de informe) o hay alguna forma de usarlo que he pasado por alto ?Hay un uso para THeaderControl en Delphi

Editar: Grabé un segmento en THeaderControl para uno de mis videos comerciales, pero he decidido lanzar esta pequeña sección (20 minutos de 6 horas) de forma gratuita. Míralo en YouTube. Gracias a todos los que han contribuido.

+1

lo que solía ser bueno para una cabecera en una lista normal con pestañas, pero sí es menos usado ahora. Sin embargo, no estoy seguro de que este sea un buen lugar para hacer esa pregunta. (¡No renuncié!) – mj2008

+1

@TLama He consultado la ayuda y he hecho una búsqueda bastante razonable en Google. Un ejemplo sigue apareciendo para los encabezados en un TListBox, que es bastante complicado de implementar, y usar un TListView es mucho más fácil, me preguntaba si alguien lo estaba usando para hacer algo útil. – Alister

+1

No entiendo esta pregunta. Parece que busca una razón para usar el control de encabezado. ¿Tiene un problema específico con el control de vista de lista? –

Respuesta

11

En general: THeaderControl se puede utilizar como encabezado para datos tabulares. Por supuesto, a menudo se usa una vista de lista para eso. Pero para un diseño exótico de diferentes componentes en cada columna que no sería fácil de crear utilizando una vista de lista o similar, o incluso para diseños diferentes completos para cada columna, el control del encabezado podría ser útil. Simplemente ofrece más flexibilidad allí donde se necesita. Compárelo con TPageControl ofreciendo más flexibilidad que TTabControl.

Y sobre un caso de nicho específico: por ejemplo, utilizo el control de encabezado como parte de un componente de la cuadrícula de planificación. El control de encabezado obtiene sus subtítulos a través de una fuente de datos, y las secciones de encabezado están sincronizadas con las columnas y la barra de desplazamiento. De hecho, esto requiere un cierto código, pero no más que en la aplicación de los diferentes eventos designtime:

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

Cuestiones relacionadas