C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[29520] Re:Re:Re:질문 ] 리스트 뷰의 조건에 맞은 데이타들의 row를 원하는 색깔로 바꾸기?
방태윤 [nabty] 1173 읽음    2004-04-26 20:45
갭션에 따라 색을 바꾸려면 아래와 같은 구문 만 있어도 색갈이 바뀝니다...
void __fastcall TForm1::ListView1CustomDrawItem(TCustomListView *Sender,
      TListItem *Item, TCustomDrawState State, bool &DefaultDraw)
{
  if(Item->Caption=="a") ListView1->Canvas->Brush->Color=clYellow;
  else ListView1->Canvas->Brush->Color=clRed;
}
ListView1CustomDrawItem 이 위와같다면 갭션이 바뀌면 색도 자동으로 바뀌는데...
안바뀌면 Repaint(); 정도 해주거나요
음..무언가를 혼동하시는거 같기는 한데 ... 어떻게 도와드려야 할지...


초록물고기 님이 쓰신 글 :
: 답변 감사함니다... 그런데.. 어떻게 하라는 말씀인지... 잘 이해가 안갑니다.
: 일단 저의 상황은...
: 하나의 리스트 뷰에... (예를 들면)
: caption      colum1    colum2   colum3
: ======================================
: a            data1     data2    data3
: b            dtat1     data2    data3
: c            dtata     data2    data3
: a            data1     data2    data3
: b            dtat1     data2    data3
:
:
: 위와 같이 이미 리스트 뷰에 데이타가 이미 뿌려져 있습니다.
: 이렇게 이미 데이타가 뿌려진 상태에서...  사용자자 지정하는 색깔로 row의 전체색을 바꾸려고 합니다.
: 예를 들어 cpation 이 "a"  인 row에 대해서는 노랑, 캡션이 "b" 인 rows는 빨강 등입니다.
:
: CustomDrawItem 이벹트에서 , index 값이나, Caption 값 가지고,
: 즉 리스트 뷰에 데이타가 삽입되는 당시에는 , 색깔 지정이 잘 됩니다.
: (ListView1->Canvas->Brush->Color= clYellow; )
:
: 문제는 ... 리스트 뷰에 ..이미 데이타가 뿌려져 있는 상태에서... 특정row에 대한 색깔을 어떻게 바꾸는지가 궁금합니다... 안되는 것 같기도 하고.
:
: 답변 감사 드림다.
: 수고하세요.
:
:
:
:
:
:
:
:
: 방태윤 님이 쓰신 글 :
: : 오우너 드러우를 사용하시는거지요?
: : 어찌됬건간에 색갈에 대한 정보를 어디다 저장해 놓아야 됩니다.
: : 제가 하는 방법은 간단한 구조인 경우에는 그냥
: : 맨마지막에 서브 아이템을 하나 더 생성해서 거기에 정보를 담아둡니다.
: : 화면에는 안나오게 하면 되겟죠?
: :
: : 복잡한 경우에는 item 에보면 data 라는거 있는데
: : 그거랑 외부에 변수 만들어서 연결하면 될거 같고요..
: :
: : 그리고 오너드러우 부분에서 체크해서
: : if (subitems->Strings[5]=="2") ListView1->Canvas->Brush->Color= clYellow;
: : else ListView1->Canvas->Brush->Color= clred;
: :
: : 이런식으로 뿌려주면 되죠..
: :
: : 그러니까
: : :             if ( ListView1->Items->Item[i]->Caption == "원하는 문자열" )
: : :            
: : 이부분에서 서브아이템의 데이터를 모두 바꾸어주고
: : 리플레쉬한다던가 하면 화면에 반영이 되겟죠...?
: :
: : 암튼 drawitem 부분이 좀 바뀌어야 할거 같네여..
: :
: :
: : 초록물고기 님이 쓰신 글 :
: : : 안녕하세요...
: : :
: : : 리스트 뷰를 사용하다가,,, 간단 할 것 같은데... 막상 해 보니 잘 안되는 것 같아... 글을 올림니다.
: : :
: : : 현재 리스트 뷰에 데이타가 많이 들어 있습니다.
: : : 그리고 그 데이타 들 가운데... 특정 버튼이 눌리면 리스트 뷰에 들어있는 Caption을 비교하여,,,
: : : 찾은 조건에 맞는 데이타 이면, 그 row전체를 색깔을 바꾸어 주려고 합니다.
: : :
: : : void __fastcall TAddressGroupFrame::Button4Click(TObject *Sender)
: : : {
: : :     for ( i = 0 ; i < ListView1->Items->Count  ; i ++ )
: : :     {
: : :             if ( ListView1->Items->Item[i]->Caption == "원하는 문자열" )
: : :             {
: : :                    //검색의 조건에 맞은 모든 row 를 특정한 색깔로 표시한다.
: : :                         ListView1->Canvas->Brush->Color= clYellow; ==>?
: : :                    //여기서 색깔을 바꿀수 있는 방법을 잘모르겠습니다.
: : :                   // 불가능한 것인지요?
: : :                   //아니면 여기서... CustomDrawItem 을 호출할 수 있는지요?
: : :                   //호출을 하려니까,,, 인자를 어떻게 채워서 호출을 해야 하는지, 좀 어렵습니다.
: : :             }
: : :     }
: : : }
: : :
: : : 참고로 CustomDrawItem 에서 , index 값이나, Caption 값 가지고,
: : : 즉 삽입되는 당시에는 비교 하여, 색깔 지정이 잘 됩니다.
: : : switch ( Item->Index)
: : : {
: : :       case 0 :
: : :             ListView1->Canvas->Brush->Color= clYellow;
: : :             break;
: : : }
: : : 고맙습니다.
: : : 그럼 수고하세요.
: : :

+ -

관련 글 리스트
29511 질문 ] 리스트 뷰의 조건에 맞은 데이타들의 row를 원하는 색깔로 바꾸기? 초록물고기 887 2004/04/26
29517     Re:질문 ] 리스트 뷰의 조건에 맞은 데이타들의 row를 원하는 색깔로 바꾸기? 방태윤 974 2004/04/26
29519         Re:Re:질문 ] 리스트 뷰의 조건에 맞은 데이타들의 row를 원하는 색깔로 바꾸기? 초록물고기 872 2004/04/26
29520             Re:Re:Re:질문 ] 리스트 뷰의 조건에 맞은 데이타들의 row를 원하는 색깔로 바꾸기? 방태윤 1173 2004/04/26
29521                 Re:Re:Re:Re:질문 ] 리스트 뷰의 조건에 맞은 데이타들의 row를 원하는 색깔로 바꾸기? 초록물고기 947 2004/04/26
29532                     Re:리스트 뷰의 조건에 맞은 데이타들의 row를 원하는 색깔로 바꾸기? 방태윤 1151 2004/04/27
29535                         Re:Re:리스트 뷰의 조건에 맞은 데이타들의 row를 원하는 색깔로 바꾸기? 초록물고기 1346 2004/04/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.