박지훈.임프 님이 쓰신 글 :
: dodo 님이 쓰신 글 :
: : ListView에 Text 문자열을 넣기 전에 문자열을 검사하여
: : 조건에 따라 원하는 Font 색깔로 바꿔줄수 있는지요?
: : ViewStyle은 Report Type입니다.
: :
: : * 한 꼬맹이님 3676 답변 감사합니다.
: :
: :
:
:
: 임펠리테리입니다.
:
: 리스트뷰의 아이템들은 전체 리스트뷰에 대해 할당된 단 한가지의 폰트만으로 그려지므로 각각의 리스트뷰 아이템에 대해 폰트를 바꾸어줄 수는 없습니다. 이런 경우 리스트뷰의 오너드로우 특성을 이용하면 됩니다. 오너드로우란 컨트롤의 내용을 직접 코드로 그려주는 것을 말합니다. 3845번 글에 비슷한 예가 있으므로 참고하시기 바랍니다.
: http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=3845
:
: 그럼 참고하시길...
임펠리테리님 답변감사합니다.
이것저것 해보다가 보니 ListView의 item별로 font 색깔이 바뀌는 기능을 찾았습니다.
아래는 제가 사용한 code 입니다.
ListView의 Event중 OnCustomDrawItem 부분에 아래의 code를 넣으니, item별로 다른 색깔이
적용되었습니다.
OwnerDraw는 false이고, ViewStyle은 vsReport입니다.
void __fastcall TConsole::ListView2CustomDrawItem(TCustomListView *Sender,
TListItem *Item, TCustomDrawState State, bool &DefaultDraw)
{
if(line1[6] == 'E')
ListView2->Canvas->Font->Color = clRed;
else if(line1[6] == 'W')
ListView2->Canvas->Font->Color = clYellow;
else
ListView2->Canvas->Font->Color = clGreen;
}
|