Q&A

  • TMS ColumnGrid 가운데 정렬...
TMS ColumnGrid 가운데 정렬...을 어떻게 하는지 몰라서 도움을 얻고자 글을 적습니다.

내용부분은 가운데 정렬이 되는데 헤더부분은 정렬을 어떻게 하는지 몰라서요 ;;;

답변 기다릴께요 ;;
1  COMMENTS
  • Profile
    장성호 2008.02.04 20:17
    TAdvColumnGrid는 별로 써보지 않았느데..
    TAdvStringGridd와 별반 다른게 없더군요


    1) OnGetAlignment 이벤트 핸들러에서...

    TMS의 Grid는 대게 cell의 정렬을 OnGetAlignment 이벤트에서 처리하합니다.
    거기에서  

    가로는 HAlign:=taCenter로
    세로는 VAlign:=vtaCenter 로... 이런식으로 하죠

    근데 가로는 잘 먹는데 세로는 잘 안먹더군요
    제가 쓰는 component버젼만 그런것인지?


    2) OnCustomDrawCell 이벤트에서..

      가운데 정렬을 비롯하여 cell에 내마음데로 그리려면 OnCustomDrawCell 이벤트함수에서 그려주면 됩니다.
      OnCustomDrawCell 이벤트 함수에서는 파라메타로 Draw할 cell의 영역인 TRect  가 넘어오기때문에
      Grid의 Canvas에서 Rect 영역에 TextOut   또는 TextRect해주면 됩니다.

      그런데 Cell이 크거나 작은 경우 정렬해서 그리려면?
      TCanvas에는 TextExtent라는 함수가 있습니다.
      Draw하지 않고 string이 canvas에 얼마만큼의 크기를 차지할지 미리 계산해주는함수입니다.
      가로만은 TextWidth , 세로는 TextHeight , 가로세로 둘다는 TextExtent ...

      TextExtent 라는 함수를 이용해서 영역을 계산해보고
      
    TextRect 하면서 left ,top을 잘 정해주면 됩니다.


    그럼..