안녕하세요
추운 겨울이 시작되는 데 건강조심하세요.
저는 DB에서 자료를 가져와 StringGrid에 뿌려주는 프로그램을 하고 있는데
여러가지의 조건에 따라 조건에 맡는 셀이 고유한 색(또는 그속에 들어가는 글자의 색)을 나타내고자 합니다.
onDrawCell 을 이용하는 방법은 많이 들었는데 onDrawCell 이 조건에 맞으면
호출되어 그 한 셀만 다른 특성을 나타낼 수 있는지 onDrawCell을 호출한다면
어떡해 호출하는 지, 아니면 사용자정의함수를
따로 만들어 처리를 해야 하는 지 궁금합니다.
그럼 고수님들의 많은 관심바라며 오늘도 건강하시길.......
> 안녕하세요
> 추운 겨울이 시작되는 데 건강조심하세요.
> 저는 DB에서 자료를 가져와 StringGrid에 뿌려주는 프로그램을 하고 있는데
> 여러가지의 조건에 따라 조건에 맡는 셀이 고유한 색(또는 그속에 들어가는 글자의 색)을 나타내고자 합니다.
> onDrawCell 을 이용하는 방법은 많이 들었는데 onDrawCell 이 조건에 맞으면
> 호출되어 그 한 셀만 다른 특성을 나타낼 수 있는지 onDrawCell을 호출한다면
> 어떡해 호출하는 지, 아니면 사용자정의함수를
> 따로 만들어 처리를 해야 하는 지 궁금합니다.
> 그럼 고수님들의 많은 관심바라며 오늘도 건강하시길.......
델세상(http://www.freechal.com/delphiworld)의 조규춘입니다.
예를 들어 2가지만 하겠습니다.
음.. 그 셀의 값이 10일때는 노란색, 20일때는 파란색 이렇게 만들어 보왔습니다.
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (Arow <> 0) and (ACol <> 0) then // 고정 행 및 고정 칼럼은 선 그리기 제외
begin
if StringGrid1.Cells[Acol, Arow] = '10' then
with StringGrid1.Canvas do
begin
Brush.Color := clyellow;
FillRect(Rect) ;
TextRect(Rect, 3, 3, '10');
end
else if StringGrid1.Cells[ACol, Arow] = '20' then
with StringGrid1.Canvas do
begin
Brush.Color := clblue;
FillRect(Rect) ;
end
end;
end;