델파이에서 스트링그리드 타이틀을 그룹핑하여 만들고 싶을 때가 있다.
예를들어
전년도 | 현재년도
--------------------------------
신규 | 해지 | 증감 | 신규 | 해지 | 증감
-------------------------------
"전년도" "현재년도" 를 TStringgrid 위에 TPanel 로 만들수 있다.
이때 TStringgrid의 컬럼이 많아 좌우 스크롤을 하면 TPanel은 그대로 있어 원하는 위치가 아닌 곳에 표시된다.
이것을 해결하는 방법은 스트링그리드의 onDrawCell에서 TPanel의 위치를 설정해주면 된다.
procedure TfrmHw400.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var rt: TRect; begin //11번째 컬럼 위에 타이틀그룹 패널 위치 설정 ************* rt := StringGrid1.CellRect(11,0); if rt.Left > 0 then //StringGrid1.CellRect(11,0)이 화면에 보일때 pnTitleGroup.Left := rt.Left; //**************************************** | cs |
(추가)
TDBGrid에서는
rt := TStringGrid(DBGrid1).CellRect(34,0);
처럼 TDBGrid를 TStringGrid로 타입변환하여 캐스팅하여 사용하면된다.
단 이때 Grid의 Indicator가 인덱스 0이고 첫번째 컬럼 인덱스는 1부터시작한다.
'델파이' 카테고리의 다른 글
TDBGrid 행 번갈아 색깔 넣기 row alternate color (0) | 2018.02.15 |
---|---|
스트링그리드 TStringGird 스크롤관련 가장왼쪽, 가장위쪽 셀 위치 (0) | 2018.02.13 |
델파이 엑셀 페이지레이아웃 너비 1페이지로 (0) | 2018.02.07 |
Delphi2007 "bordbk105N.dll" 오류 (0) | 2018.02.04 |
gist 연습 (0) | 2017.10.27 |