Q&A

  • 스트링그리드 색이 글씨를 가려여????
글이 나오구여
그위에 색을 칠하니깐 글이 안보이내여
글이보여야 하거든여
값이 변경될때마다 두가지 색이 번갈아서 변하는 거라서리...
글두 보이구 색도 보이는 방법줌 알려주세요...
부탁드립니다.....
아래는 그 색칠하는 소스구여.....

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var
  m:integer;
begin
    with StringGrid1 do
    begin
             for m:=1 to StringGrid1.ColCount do begin
               Rect :=StringGrid1.CellRect(m,2);
               Canvas.Brush.Color := clYellow;   // 배경색을 바꿀때 사용
               Canvas.FillRect(Rect);
             end;
    end;
end;
2  COMMENTS
  • Profile
    홍성락 2002.10.02 21:23
    hsr////////////////////////////////////////////////////////////
    중간에 추가하세요.
    canvas.TextRect(Rect, Rect.Left, Rect.Top, cells[m, 2]);

    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
      var
      m:integer;
    begin
        with StringGrid1 do
        begin
                 for m:=1 to StringGrid1.ColCount do begin
                   Rect :=StringGrid1.CellRect(m,2);
                   Canvas.Brush.Color := clYellow;   // 배경색을 바꿀때 사용
                   Canvas.FillRect(Rect);
                   canvas.TextRect(Rect, Rect.Left, Rect.Top, cells[m, 2]);
                 end;
        end;
    end;

    ---------------------------------------------------
    그런데 Rect :=StringGrid1.CellRect(m,2); 는 2번째 줄에만 색칠하실건지요
    그럼 간단히 for문 돌릴 필요없이 하세요

       with StringGrid1 do begin
           if (ARow = 2)and(ACol<>0) then begin
              Canvas.Brush.Color := clYellow;   // 배경색을 바꿀때 사용
              canvas.TextRect(Rect, Rect.Left, Rect.Top, cells[ACol, ARow]);
           end;
        end;
  • Profile
    임형호 2002.10.02 17:48
    팁을 찾아보니까..이렇게 되어있네요.

        with (Sender as TDBGrid).Canvas do begin
           Brush.Color := clRed;
           FillRect(Rect);
           TextOut(Rect.Left, Rect.Top, Field.AsString); <-- 요게 없는것 같군요.
        end;