String Grid에서는 Fixed Column을 지정할 수 있습니다.
퀀텀그리드에서는 Fixed Column을 지정하는 방법이 제가 아는 방법으로는 없습니다.
여기서 중요한것은 Fixed Column 처럼 보이게 하는 property가 없는것이지 Fixed Column처럼 지정을 못하는 것은 아닙니다.
BandTable을 사용하면, Band옵션에 따라서 Fixed를 지정할수 있습니다.
Fixed를 지정하면, 지정된 컬럼은 좌우로 스크롤이 되지 않습니다.
하지만 각 Column의 모양은 일반 Cell의 모양과 동일합니다. 그래서, 원하는 컬럼을 Fixed Column처럼 보이게 하기로 했습니다.
방법은 CustomerDrawCells Event를 이용하는 겁니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
procedure TForm2.cxGrid1TableView1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); begin if AViewInfo.Item.Index = AColumn.Index then begin cxGrid1TableView1.LookAndFeelPainter.DrawHeader( ACanvas, AViewInfo.Bounds, AViewInfo.TextBounds, [], [bBottom, bLeft, bRight], cxbsNormal, taCenter, vaCenter, False, False, AViewInfo.Text, ACanvas.Font, ACanvas.Font.Color, clBtnFace ); ADone := True; end; end; |
직접 LookAndFeelPainter에 포함된 Draw류의 함수를 이용하여 직접 출력하는 방법입니다.
간단하지만 꽤나 유용한 방법입니다.
즐거운 하루 되시기 바랍니다.
최신 댓글