Q&A

  • 스트링그리드에 색을 넣는 부분에 관한 질문입니다.
질문1
스트링 그리드에 다음과 같은 코드를 사용하여서 해당되는 row별로 색을 넣으려고 합니다.

<!--CodeS-->
for k:=0 to 3 do
begin//5
Rect := StringGrid1.CellRect(k,i);
Canvas.Brush.Color := clBtnFace;
Canvas.FillRect(Rect);
Canvas.Font.Color := clBlack;
 Canvas.TextRect(Rect, Rect.Left+3, Rect.Top+3, cells[k,i]);
  end;
<!--CodeE-->
-문제점- 선택된row에 색이 들어갑니다. 하지만 활성중이던 실행 창을 비활성화 시키고 다른 창을 활성화시키고 다시 실행창을 활성화 시키면 색이 없어지는 현상입니다.
원래 그런것인지 아니면, 제가 부족했던 부분이 있는지 답변 부탁드립니다.

질문2
다음과 같은 비교문이 유효한 문장인지 알려주세요.
<!--CodeS-->
 if (StringGrid1.Canvas.Brush.Color <> clBtnFace) then
<!--CodeE-->
1  COMMENTS
  • Profile
    라벤더 2005.04.27 19:19



    안녕하세요.

    색을 설정하는 코드를 StringGrid 이벤트중 OnDrawCell에 작성하면

    비활성화 후 활성화 시켜도 색이 변하지 않습니다.

    단, 선택된 row에만 설정하기 위해서는 Rect을 따로 선언해주셔야겠죠-

    비교문은 유효한 문장이네요~

    즐코하세요~ ^-^