vladman
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Postscriptum Цитата: А почему тогда стандартный грид понимает и красит все правилбно - и когда удаленные записи отображаются, и когда не отображаются. | Без малейшего понятия. Откуда мне знать что это за AdsTable1 и как именно работает конструкция AdsTable1.AdsIsRecordDeleted(AdsTable1.AdsGetRecordNum). И что тогда красится, когда удаленные записи не отображаются? По идее все должно быть белым. Цитата: И в статье ведь речь идет о записи, на которой фокус стоит, правильно? | Правильно, с статье идет речь о фокусед, но это лишь для доступа к какой-то определенной записи, чтобы показать различные ее индексы. Вся ценность статьи в том, что в DataControllere есть понятие индекса для записи датасета и индекса для строки грида, и что это *две большие разницы*. Вкратце, индекс записи (Recordа) датасета не меняется при сортировках группировках, фильтрации, а индекс строк меняется. Добавлено: Postscriptum Цитата: Мне кажется - мы не понимаем друг друга. Вот 1 скрин - показываются удаленные записи (3-я): Вот 2-й скрин - не показываются удаленные записи. И начение AViewInfo.GridRecord.RecordIndex+1=3 у четвертой строки!!! | Я же уже написал, вставьте элементарную проверку в ваш TForm4.cxGrid1DBTableView1CustomDrawCell Код: if AdsTable1.AdsIsRecordDeleted(...) and AdsTable1.<ShouldShowDeletedRecord> then ACanvas.Brush.Color := clRed else ACanvas.Brush.Color:=OldC; | Пусть вместо AdsTable1.<ShouldShowDeletedRecord> будет <YourCheckBox>.Checked или еще лучше: Самой первой строкой в этом же обработчике if not <YourCheckBox>.Checked then Exit; |