어떤 특정값이 있는 Row에 색깔을 칠할려고 합니다...
OndrawCell event 는 현재 보이는 셀에만 적용이 되더군요.....
그런데 제가 비교하려는 특정값은 현재 화면에 보이지 않고
스크롤바를 이동했을때 보입니다....그래서 아래처럼....
ondrawCell procedure 와 똑같은 속성으로 procedure를 만들어서
한번 해봤는데 잘 안되더군요....아시는 분 있으면 갈켜주세요....
Procedure Tw_example.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
var i : integer;
begin
// 연습...
With StrGrid.Canvas Do
Begin
if ColorFlag = True then // 특정 Row 일때...
begin
Brush.Color:= clYellow;
FillRect(ARect);
end
else // 일반 Row 일때...
begin
Brush.Color:= clwhite;
FillRect(ARect);
end ;
end;
end;
Procedure Tw_example.Drawcnt(Rows: integer);
var jj : integer;
begin
for jj := 0 to 17 do
DrawCell(jj, Rows, ARect, AState);
end;
OnDrawCell이벤트에서 하시면 되는데요...
굳이 보이지 않는 셀을 그려줄 필요는 없어요... 특정셀이 보이게 되면 그 셀을 그리라고 OnDrawCell이벤트가 발생합니다. 이때 ACol, ARow 파라매터로 판단해서 그 셀이 특정 Row에 속하면 그려주시면 됩니다.
맞게 하신거 같은데 비교하는 부분이 이상하네요... ColorFlag로 특정 Row인가를 판단하시는것 같은데 ColorFlag하고 ARow, ACol파라매터하고 연관성이 하나도 없네요. 이런 식이라면 노란색이나 하얀색 하나로만 칠해질거 같네요...
특정 Row를 판단하는 근거가 미약하군요...
^^ 항상 즐코하세요...