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
[35423] Re:Re:[질문] DBGrid에서 특정 Cell의 Blink 기능 구현하기
땅주인 [] 1060 읽음    2004-06-06 15:55
감사합니다.

해결은 그냥 스트링그리드로 했습니다. DB 조회하고 스트링 그리드에 표시하고,
1초마다 데이터 확인해서 새로운 것이면 똑같은 자리에 다시 쓰면서 OnDrawCell에서 색상을
바꾸어 주는 꼼수를 써서 그냥 해결했습니다.

정식으로 해결하려면 임프님 글처럼... 새로운 컴포넌트를 만들어야 할 것 같구요..
DBGrid로 이거저거 해보다가.. 스트링그리드로 꼼수 부려 해결했네요..

다시한번 감사합니다.


박지훈.임프 님이 쓰신 글 :
: DBGrid를 상속받아서 새로운 컴포넌트를 만드셔야 할 거 같구요.
: 상속받은 새로운 DBGrid 컴포넌트 내부에 타이머를 가지고 있으면서, 타이머 이벤트가 발생할 때마다 해당 셀만
: InvalidateCell()인가 함수를 호출해주어야 하고요. 물론 당연히 셀이 드로우될 때 해당 셀인지 확인해서
: 색깔을 바꾸어 그려주어야 하겠지요.
:
: 만약 새로운 컴포넌트를 만들지 않고 해결하려면 protected 멤버인 InvalidateCell()을 호출할 방법이 없어서
: 해당 셀만 다시 그릴 방법이 없습니다. 강제로 전체 그리드를 다시 그리게 하는 방법밖에 없지요.
: 이것은 스트링그리드를 써도 마찬가지입니다.
:
: 그럼...
:
:
: 땅주인 님이 쓰신 글 :
: : 클라이언트가 이 기능을 꼭 요구하네요..
: :
: : DBGrid에 데이터를 조회하는데..
: : 신규로 발생한 데이터이면 특정 셀(ACK처리셀)을 특정 색깔로 칠해서
: : 깜빡거리게 해달라고 합니다. 그리고, ACK 처리하면 본래의 하얀색으로
: : 돌아가게끔 요구합니다.
: :
: : DBGrid의 OnDrawCell() 이벤트에 특정 셀에 색상을 칠하게 하는 것은
: : 알고 있는데.. 이 이벤트가 셀에 데이터를 써야지만 동작하는 것으로
: : 알고 있습니다.
: :
: : 실제 디버거로 쫓아가봐도 그렇게 동작하구요..
: :
: : 1초 단위로 셀에 색상을 칠했다가, 하얀색으로 만들었다가 하면서 Blink 기능을
: : 구현하려고 하는데...이렇게 할 경우
: :
: : DBGrid에서 해당 셀의 데이터를 읽어서 다시 동일한 데이터를 써야 하는 문제가
: : 생기는데요.. 이 문제 외에도 첫번째 레코드에서부터 루프를 돌면서 셀의 테이터를
: : 읽어서 처리하면 화면의 Selected bar(선택바)가 같이 움직이는 현상이 발생하는데
: : 이렇게 되면 안될 것 같아서요..
: :
: : 좋은 방향이 있으면 알려 주시면 감사하겠습니다.
: :
: : 그냥 StringGrid를 쓰면 어떻까 생각중인데.. 좋은 방법을 알려주시길.....
: :
: :
: : 감사합니다.
: :
: :

+ -

관련 글 리스트
35236 [질문] DBGrid에서 특정 Cell의 Blink 기능 구현하기 땅주인 932 2004/05/28
35390     Re:[질문] DBGrid에서 특정 Cell의 Blink 기능 구현하기 박지훈.임프 1280 2004/06/04
35423         Re:Re:[질문] DBGrid에서 특정 Cell의 Blink 기능 구현하기 땅주인 1060 2004/06/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.