Copyright © 2010 Promsite. All Rights Reserved.
TStringGrid, часть II
Автор Деймон Чандлер перевод Виктор Алексеев aka prom
При использовании события OnDrawCell совместно со свойствами объектов TSringGrid, у вас есть возможность полного воздействия на внешний вид каждой ячейки. Далее, аналогичный подход, мы будем применять при прорисовке флажка в каждой ячейке; мы будем использовать свойства объектов для сохранения состояния каждого флажка.
Добавление флажка в каждую ячейку
Грид может содержать сотни или тысячи ячеек. При размещении элементов управления флажков в каждой ячейки, вы расходуете много системных ресурсов. Для простых элементов управления, таких как флажки или кнопки существует альтернативный способ - функция DrawFrameControl(). Как говорит название, функцию DrawFrameControl можно использовать для прорисовки широкого спектра элементов управления, включая кнопки, флажки, пункты всплывающего меню и даже заголовки. Здесь мы будем использовать эту функцию для прорисовки флажка в каждой ячейке.
Сохранение состояния флажка
Снова, главным преимуществом при прорисовке каждой ячейки вручную является то, что мы избегаем многочиcленных накладных расходов связанных с объектами TCheckBox. А основным недостатком является увеличение ручной работы с функциями флажков. Тем не менее, мы можем сохранить, как отмечалось ранее, состояние каждого флажка. Для этого потребуются несколько вспомогательных функций.