저번에도 질문을 올렸는데, 답변해 준 사람이 한 분도 안 계셔가지고
다시 올립니다.
dbgrid에서 특정한 조건에 해당하는 줄의 색깔을 변경하려고 하는데요.
검색을 해보니 drawdatacell 이벤트를 태우기 위해서는
dbgrid1.columns.state 를 csDefault로 해야 한다고 하는데요.
이렇게 하면 타이틀이나 그리드의 컬럼 넓이가 망가지는데요.
정해놓은 타이틀명이나 컬럼넓이를 원래대로 보여주면서
색깔을 변경할 수 있는 방법은 없을까요?
dbgrid1.columns.state := csCustomized; 상태에서 drawdatacell
이벤트를 타게하는 방법은 정녕 없는건가요.............
제가 너무 실력이 없어서 자세한 소스와 설명 부탁합니다.
정말 궁금해요....
다른 건 신경쓰지 마시고..
DefaultDrawing 속성값을 true 에서 false 로 바꿔주세요.
그러면 DBGrid 같은 그리드 콤포넌트에서 DrawCell 이벤트를 발생시켜
줍니다. 그때 OnDrawCell 이벤트에서 그려주면 되죠..
Columns.State 를 변경한다는 것은 뭔말인지 모르겠는데..
그것은 선택되었냐, 포커스되었냐, 아무것도 아니냐.. 그런거일꺼 같은데..
ListBox 에서 TOwnerDrawState 타입처럼..
그런거는 현재 Cell 이 선택된 셀이냐 포커스된 셀이냐를 나타내는
거니까 상관없는 겁니다..
woody wrote:
> 저번에도 질문을 올렸는데, 답변해 준 사람이 한 분도 안 계셔가지고
> 다시 올립니다.
> dbgrid에서 특정한 조건에 해당하는 줄의 색깔을 변경하려고 하는데요.
> 검색을 해보니 drawdatacell 이벤트를 태우기 위해서는
> dbgrid1.columns.state 를 csDefault로 해야 한다고 하는데요.
> 이렇게 하면 타이틀이나 그리드의 컬럼 넓이가 망가지는데요.
> 정해놓은 타이틀명이나 컬럼넓이를 원래대로 보여주면서
> 색깔을 변경할 수 있는 방법은 없을까요?
> dbgrid1.columns.state := csCustomized; 상태에서 drawdatacell
> 이벤트를 타게하는 방법은 정녕 없는건가요.............
> 제가 너무 실력이 없어서 자세한 소스와 설명 부탁합니다.
> 정말 궁금해요....
>