Q&A

  • 스트링그리드의 문자 정렬..
스트링그리드에서 텍스트를 가운데 혹은 오른쪽 정렬을 하려고 합니다.

어찌 해야 하는지 좀 알려주세요.



즐거운 하루 보내세요....



1  COMMENTS
  • Profile
    홍성락 2001.08.21 19:04
    델사랑 wrote:

    > 스트링그리드에서 텍스트를 가운데 혹은 오른쪽 정렬을 하려고 합니다.

    > 어찌 해야 하는지 좀 알려주세요.

    >

    > 즐거운 하루 보내세요....

    /////////////////////////////////////////////////////////////////

    사용하기 편리하기에 되어있어 소개합니다.

    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;

    Rect: TRect; State: TGridDrawState);

    begin

    if (ACol in [0]) or (Arow in [0]) then //fixed행/열은 중앙정렬로 파란색글씨,노랑바탕

    gfSetCellCfg(StringGrid1, Rect, ACol, ARow, TA_CENTER, clBlue, clInfoBk)

    else if (ACol = StringGrid1.ColCount-1) then begin //끝행은 오른쪽, 빨간글씨로, Olive바탕

    gfSetCellCfg(StringGrid1, Rect, ACol, ARow, TA_RIGHT, clRed, clOlive);

    end //나머지는 왼쪽,검정,흰색으로

    else gfSetCellCfg(StringGrid1, Rect, ACol, ARow, TA_LEFT, clBlack, clWhite);

    end;



    procedure TForm1.gfSetCellCfg(psGrid : TStringGrid; pRect : TRect;

    piCol, piRow, pialign : Integer; pTxtColor, pCellColor: Tcolor);

    var

    OldColor : TColor;

    Oldalign : word;

    begin

    with psGrid do begin

    Oldalign := settextalign(Canvas.Handle, pialign);

    Canvas.Font := psGrid.Font;

    Canvas.Font.Color := pTxtColor;

    OldColor := Canvas.Brush.Color;

    Canvas.Brush.Color := pCellColor;

    case pialign of

    TA_LEFT :

    Canvas.TextRect(pRect,

    pRect.left,

    (pRect.Top+pRect.Bottom-psGrid.Font.Size-2) div 2,

    cells[piCol,piRow]);

    TA_RIGHT :

    Canvas.TextRect(pRect,

    pRect.right,

    (pRect.Top+pRect.Bottom-psGrid.Font.Size-2) div 2,

    cells[piCol,piRow]);

    TA_CENTER :

    Canvas.TextRect(pRect,

    (pRect.left+pRect.right) div 2,

    (pRect.Top+pRect.Bottom-psGrid.Font.Size-2) div 2,

    cells[piCol,piRow]);

    end;

    Canvas.Brush.Color := OldColor;

    settextalign(Canvas.Handle, Oldalign);

    end;

    end;