Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
ВнизОтрисовка одной ячейки в StringGrid Найти похожие ветки
← →
BFG9k (2004-12-28 13:47) [0]Есть потомок TStringGrid с перекрытым DrawCell. Необходимо отрисовать одну ячейку , когда изменяются данные. Делаю примерно следующее :
State:=[];
DrawCell(i,j,CellRect(i,j),State);
... и ячейка не перерисовывается , либо перерисовывается некорректно. Если вместо вышеприведенного кода вызвать Refresh - все нормально отрисовывается. Но перерисовывать каждый раз всю таблицу , когда меняется всего одна ячейка, с помощью Refresh накладно , таблица мерцает.
Залезть внутрь Refresh дальше Repaint не получилось. Кто знает , что же еще делает Refresh кроме непосредсвенно прорисовки ячеек ? Такое впечатление , что что-то запрещает мне рисовать на таблице.
← →
У (2004-12-28 14:08) [1]InvalidateCell
← →
Ricko © (2004-12-28 16:27) [2]SottNick советует:
Если в таблице вы используете событие OnDrawCell для помещения в ячейку рисунка, причем различного, в зависимости, например, от соответствующего значения в двумерном массиве, и вам надо, чтобы после изменения значения в массиве обновилось изображение (Refresh не подходит, т.к. будет мелькать), то измените значение у ячейки (DrawGrid не годится):
StringGrid1.Cells[i,j]:="";
или
StringGrid1.Cells[i,j]:=StringGrid1.Cells[i,j];
если там что-то хранится
(C) Советы по Delphi. Валентин Озеров.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.047 c