|
음...
기본 TStringGrid 를 이용한다고 가정하고..
1. Column의 가운데 정렬이나 특정Row 및 Col 내가 원하는 색상이나 font로 변경하는것 모두
OnDrawCell 이벤트에서 ARow와 ACol을 확인해서
- 직접 Canvas에 draw해주던가
- Canvas의 Brush나 Pan등을 바꿔주던가
하는 방법으로 합니다.
2. 특정 상황에서 DrawCell 을 호출하고 싶다것은?
DrawCell을 직접 호출은 의미가 없다구 생각되네요
왜냐면 scrollbar가 움직이거나 화면이 갱신되면 다시 그려줘야 하니까요
그럴것 아니라면 직접 StringGrid의 Canvas에 Draw해주면 되구요
그냥 StringGrid->Repaint(); 이렇게 repaint함수를 호출해주면
DrawCell 함수가 호출됩니다.
그럼..
linuxman 님이 쓰신 글 :
: 안녕하세요.
:
: 1.StringGrid에서 colum에 쓰인 문자열을 가운데정렬을 하려고 합니다..
: (default가 왼쪽 정렬인것 같은데 (첨부파일참조) , 가운데 정렬을 하려면 어떻게 해야 하나요?
: sg1->Cells[1][0]= "영어";
: SetTextAlign(StringGrid1->Canvas->Handle, TA_CENTER);
:
: 과 같이 해도... 물자열이 가운데로 오지는 않습니다.
:
: 2. StringGrid에서 클릭 같은 이벤트가 발생했을때가 아니라 , 어떤 데이타를 읽어서, 그값에 따라 특정하나의 Cell 만 ... 색깔을 바꾸고 싶습니다...
:
: 즉 if(조건이면) DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
: 호출하고 싶은데... Rect와 State 값을 설정할수 있는 방법 있나요?
: 즉 Cells[2][3]의 색을 바꾸고자하는데... 이때의 Rect 값과 State값을 구해서 DrawCell을 호출해 주면 될것 같은데..
: Rect와 State값을 어떻게 얻어올수 있나요?
:
: 수고하세요..
|