如何改变headercontrol的颜色?????????/能解决吗 高手!!!!!!!!!

解决方案 »

  1.   

    1。将各个section的style 设为hsOwnerDraw
    2。在onDrawSection事件中添加代码
    procedure TForm1.HeaderControl1DrawSection(HeaderControl: THeaderControl;
      Section: THeaderSection; const Rect: TRect; Pressed: Boolean);
    var
      title: String;
      cellLeft, cellTop: Integer;
    begin
      title := Section.Text;
      cellLeft := rect.Left + (rect.Right - rect.Left - HeaderControl1.Canvas.TextWidth(title)) div 2;
      cellTop := (rect.Bottom - HeaderControl1.Canvas.TextHeight(title)) div 2;
      HeaderControl1.Canvas.Brush.Color := clRed;
      HeaderControl1.Canvas.FillRect(rect);
      HeaderControl1.Canvas.TextRect(rect, cellLeft, cellTop, title);
    end;
      

  2.   

    好像没有什么好的办法啊。
      hc1.Canvas.Brush.Color := clred;
      hc1.Canvas.FillRect(Rect(hc1.Left,hc1.Top,hc1.Width,hc1.Height));
      

  3.   

    1。将各个section的style 设为hsOwnerDraw
    2。在onDrawSection事件中添加代码
    procedure TForm1.HeaderControl1DrawSection(HeaderControl: THeaderControl;
      Section: THeaderSection; const Rect: TRect; Pressed: Boolean);
    var
      title: String;
      cellLeft, cellTop: Integer;
    begin
      title := Section.Text;
      cellLeft := rect.Left + (rect.Right - rect.Left - HeaderControl1.Canvas.TextWidth(title)) div 2;
      cellTop := (rect.Bottom - HeaderControl1.Canvas.TextHeight(title)) div 2;
      HeaderControl1.Canvas.Brush.Color := clRed;
      HeaderControl1.Canvas.FillRect(rect);
      HeaderControl1.Canvas.TextRect(rect, cellLeft, cellTop, title);
    end;