Skip to main content

TcxTreeListStyles.OnGetBandHeaderStyle Event

Occurs whenever a band header needs repainting.

Declaration

property OnGetBandHeaderStyle: TcxTreeListGetBandStyleEvent read; write;

Remarks

This event occurs every time a TreeList band header is repainted. This allows you to substitute the assigned band header style by another style.

To change the style, you should write an event handler that passes the existing instance of the TcxStyle class to the control via the AStyle parameter. Note that the AStyle parameter doesn’t represent any TcxStyle instance and is nil by default. So you can’t implement the following code:

AStyle.Color := clBlack

before you assign a TcxStyle instance to it.

The following code is not recommended either:

AStyle := TcxStyle.Create;

In this case, a TcxStyle instance will be created every time the event occurs and will never be removed until application termination. Implementing the above code creates excessive TcxStyle instances and excessive memory usage as the result. The correct method is to create a TcxStyle instance outside the event handler and pass it to the control via the AStyle parameter within the event handler. For instance, you can use the StyleRepository to create and store your custom styles.

The Sender parameter contains the TreeList control instance that owns the style collection.

The ABand parameter contains the TreeList band whose header is being repainted.

The following sample code shows how to change the background color of the first visible band (see IsLeftMost) within the TreeList control.

procedure TFormMain.tlMainStylesGetBandHeaderStyle(Sender: TcxCustomTreeList; ABand: TcxTreeListBand; var AStyle: TcxStyle);
begin
  if not ABand.IsLeftMost then Exit;
  if (InternalStyle = nil) then
  begin
    InternalStyle := TcxStyle.Create(nil);
    InternalStyle.Color := $E6F0FA;
  end;
  AStyle := InternalStyle;

end;

The initial style for column footer cells is determined by the TcxTreeListStyles.BandHeader property.

See Also