주가, 스포츠 경기 결과, 영화 출석 등을 표시한다고 가정 해 봅시다.DBgrid를 업데이트 할 때 변경된 셀을 강조 표시하는 방법은 무엇입니까?
주기적으로 관련 데이터 소스에 연결된 쿼리의 Close() 및 Open()으로 그리드를 새로 고칩니다.
나는 소유자가 OnDrawCell()을 사용하여 셀을 그리는 방법을 알고 있습니다. 알아낼 수없는 것은 새 값이 주어진 셀의 이전 값과 같거나 다른지를 아는 방법입니다.
여기서 두 개의 유스 케이스가 있다고 가정합니다. 행 수가 고정되어 있고 동일한 행 순서로 유지되고 행이 변경 (삽입/삭제 또는 순서 변경) 될 수있는 경우를 가정합니다.
이전 버전의 경우 업데이트하기 전에 스냅 샷을 찍어서 업데이트 이후에 비교할 수 있지만 많은 양의 데이터가있을 수 있습니다. 현재 보이는 행으로 작업을 제한하려면 확실하지 않습니다. 사용자가 아래로 스크롤하고 마지막 업데이트 도중에 변경된 사항을 계속 알려주고 싶어한다고 생각합니다.
물론 각 행에 고유 키가없는 한 나는 뒤죽박죽이다.
이 작업을 어떻게 효율적으로 수행 할 수 있습니까? TDbGrid에 대한 솔루션은 TMS Software의 TAdvDbGrid 솔루션이 모든 사람에게 도움이 될 것입니다. (가능하면 무료 인 타사 구성 요소와 마찬가지로) 나도 괜찮을 것입니다.
DBGrid가 데이터 표시 전용 인 경우 이전 데이터를 캐시하고 새로 페치 된 레코드와 비교하거나 추적 할 데이터의 현재 값과 이전 값을 모두 포함하는 쿼리를 만들 수 있습니다. 그렇게하면 값을 비교하고 그에 따라 색상을 변경하는 것이 쉽습니다. – LightBulb