Copyright © 2010 Promsite. All Rights Reserved.
стр. 2


TStringGrid, часть II

Автор Деймон Чандлер                                                                перевод Виктор Алексеев aka prom



стр. 2
Управление процессом рендеринга

    Одним из недостатков при установке значения свойства DefaultDrawing в false является то, что появляется много ручной работы по сравнению с тем, как если бы оно стояло в true. Однако преимущество проявляется в полном управлении выбранной ячейкой. Если у вас возникают опасения, как изменять фиксированные ячейки, то не стоит беспокоиться. Функция Frame3D() библиотеки VCL делает эту задачу тривиальной (описано в EXTCTRLS.HPP). Всё, что вам нужно сделать для этого - положиться на процесс прорисовки согласно информации в параметре State. Далее обработчик события OnDrawCell демонстрирует, как сделать грид "нормальным" когда DefaultDrawing установлено в false:

     Есть несколько условий для проверки, что свойство Option содержит флаг goRowSelect. Тем не менее, мы написали 40 строк кода только для того, чтобы строка грида выглядела нормально. Какой в этом смысл? Пока свойство DefaultDrawing установлено в false, можно быть уверенным, что классы TCustomGrid и TSringGrid не будут прорисовывать ничего, что вы бы не хотели. В качестве бонуса, вы получаете полный контроль над ячейкой. Главным же конечно является эффективность.


     Используя, событие OnDrawCell, можно изменить способ прорисовки каждой ячейки, который был определен в параметрах ACol, ARow, State. Например, можно использовать следующий подход для изменения внешнего вида выделенных ячеек и изменения фона невыделенных ячеек. Результат показан на Figure A:

P  R  O  M  S  I  T  E
Статьи по С++Builder 6
страницы: 1   2   3   4   5   6
страницы: 1   2   3   4   5   6

Для отображения Облака ссылок
необходим
Adobe Flash Player 9
или выше.