2014-05-21 4 views
0

Delphi XE6에서 DBGRID 구성 요소의 특정 열에서 Title 셀의 색을 변경하려고합니다. 그리드가 특정 열에 따라 정렬 될 때 필자는 열 제목을 그리는 데 사용되었습니다.DBGRID 열 제목 색

DBGRID1.Columns[1].Title.Color := clBlue; 

이게 가능합니까? 또는 정렬 된 열을 강조 표시하는 더 좋은 방법이 있습니까?

+0

'DBGrid1.Columns [1] .Title.Font.Color : = clBlue;'시도 했습니까? –

+0

"제목 셀의 색 변경"이 의미하는 바를 명확히 할 수 있습니까? 글꼴 색상이나 실제 셀 (열 머리글) 자체의 색상을 의미합니까? –

+0

일반적으로 키 기둥을 나타내는 작은 글리프가 그려집니다. 약간의 코드가 필요합니다. 내가 JvDBGrid를 올바르게 기억하고 있다면 기본적으로 그랬다. –

답변

1

시도 재정의 절차 TCustomDBGrid.DrawCellBackground 제목의 배경 색상을 강제로 :

procedure TMyDBGrid.DrawCellBackground(const ARect: TRect; AColor: TColor; AState: TGridDrawState; ACol, ARow: integer); 
begin 
    if (FLastSortedColumnIdx = ACol) and (ACol >= 0) and (ARow = -1) then 
    AColor := Columns[ACol].Title.Color; 

    inherited; 
end; 

FLastSortedColumnIdx 정렬 된 열을 저장 당신이 Column.Index이 필드입니다.

Delphi XE3에서 작동해야합니다.

+0

왜해야합니까? 코드 작동 방식을 이해하지 않고 단순히 복사하여 붙여 넣기하는 경향을 최소화하기 때문에 이것이 어떻게 작동하는지 설명하십시오. OP는 귀하의 선택 뒤에있는 파급 효과를 이해하고 이것이 자신의 목적에 적합한 지 여부를 결정할 수 있어야합니다. – rayryeng

+0

수정 됨. 실수해서 죄송합니다. – vnc

+0

+1 - 설명 주셔서 감사합니다 :) – rayryeng