Q&A

  • 원하는 row의 특정column에 font, color바꾸기
소계, 합계, 총계 이런걸 파빌처럼 한큐에 끝낼수 엄씀을 무지 슬퍼하던 어느날. 왕초보 땡글이는 바쁜 선배들의 엽구리를 쿡쿡 찔러가믄서 sql문으로 소계, 합계, 총계의 과업을 이룩하고야 말았떤 거시였따.

허나~ 산넘어 산이라 했던가. 아~ 왕초보의 시련은 여기서 끝나지 않았다.

이 소계, 합계, 총계가 Line 사이에서 굵게보이믄서 색깔도 약간 뽀사시 해야 하는데, 땡글이는 그 테크닉을 구사할 수가 엄썼기 때문이었던 거시다.

구래서 짧은 지식으로 잔재주를 부리믄 되지 않을까 했는데 막 에러가 나구 난리버거지다. 글믄또 어케 할것인가 고민하ㄷ건 땡글이 이젠 델파이 넷티즌에게 구원의 고사리손을 뻗힌다. " 땡글이 살리도~~~~~" 하므서 말이다...



조회가 모두끝난 DBGrid에서 소계, 합계, 총계가 있는 Row만 굵게하구, 색을 넣고 싶습니다. 물론 sql문을 지지고 볶았으니 소계, 합계, 총계는 지가 data인척하구 Query에 있구여.



고수님들의 불타는 델파이 사랑으로 땡글이에게 한수 갈쳐줍쇼~ ^^;;

1  COMMENTS
  • Profile
    김태균 1999.08.16 19:19
    아래 내용을 참고 하셔서 조금만 수정하면 원하시는 기능을 구현 하실수

    있을 겁니다.



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    Db, DBTables, ExtCtrls, Grids, DBGrids;



    type

    TForm1 = class(TForm)

    DBGrid1: TDBGrid;

    Panel1: TPanel;

    DataSource1: TDataSource;

    Table1: TTable;

    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

    DataCol: Integer; Column: TColumn; State: TGridDrawState);

    private

    { Private declarations }

    public

    { Public declarations }

    procedure DrawField(const Value : String;

    const Rect : TRect;

    vCanvas : TCanvas;

    vFont: TFont;

    vAlignment: TAlignment;

    FontStyle : TFontStyles;

    FontColor : TColor;

    BGColor : TColor);

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}







    {This is the workhorse routine that does the drawing.}

    procedure TForm1.DrawField(const Value : String;

    const Rect : TRect;

    vCanvas : TCanvas;

    vFont: TFont;

    vAlignment: TAlignment;

    FontStyle : TFontStyles;

    FontColor : TColor;

    BGColor : TColor);

    var

    I : Integer;

    begin

    I := 0;



    //First, fill in the background color of the cell

    vCanvas.Brush.Color := BGColor;

    vCanvas.FillRect(Rect);

    //SetBkMode ensures that the background is transparent

    SetBkMode(Canvas.Handle, TRANSPARENT);



    //Set the passed font properties

    vCanvas.Font := vFont;

    vCanvas.Font.Color := FontColor;

    vCanvas.Font.Style := vCanvas.Font.Style + FontStyle;



    //Set Text Alignment

    case vAlignment of

    taRightJustify :

    begin

    SetTextAlign(vCanvas.Handle, TA_RIGHT);

    I := Rect.Right - 2;

    end;