Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Раскрашивание и изменение содержимого ячеек TcxGrid (из набора Dev Express)

Delphi , Компоненты и Классы , TStringGrid и TDrawGrid

procedure TDirectoryClientsListContracts.grClientsCodeDBTableView1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
//устанавливаем следуюший обработчик на CustomDrawCell компанента TcxGrid
Var
  lTextToDraw        : string;
  lColFont : TFont;
begin
  lColFont := ACanvas.Font;//сохраняем настройки шрифта по умолчанию для текущей ячейки

  lTextToDraw :=  trim(AViewInfo.GridRecord.DisplayTexts[5]);//считываем содержимое 5ого столбца, столбец должен быть добавлен в таблицу TcxGrid, но может быть не видимым
  if lTextToDraw = 'True' then lColFont.Style := [fsItalic]; //проверяем значение считанной ячейки, и устанавливаем курсив

  lTextToDraw :=  trim(AViewInfo.GridRecord.DisplayTexts[6]);
  if lTextToDraw = 'False' then lColFont.Color := clRed; //проверяем значение считанной ячейки, и красим в красный цвет

  ACanvas.Font := lColFont; //устанавливаем получившиеся выделение для всей строки

  if ((AViewInfo.Item.Index = 4) and (trim(AViewInfo.GridRecord.DisplayTexts[4]) = '30.12.1899')) then //если мы просматриваем 4й столбец, сравниваем содержимое с нулевой датой
    begin
      ACanvas.Canvas.FillRect(AViewInfo.Bounds);//при желании можем изменить форматирование ячейки, как описано ранее, но оставляем общее для строки форматирование
      ACanvas.DrawText('-', AViewInfo.Bounds, 0);//выводим вместо нулевой даты "-" (минус)
      ADone := True;//разрешаем переписать значение ячейки
    end;

end;

Аналогичным образом происходит работа со стандартным TStringGrid и TBDGrid.

 

Автор KAN

Программный код на Delphi, который обрабатывает событие CustomDrawCell для компонента TcxGrid (контроль таблицы от разработчика DevExpress). Цель этого кода - настроить внешний вид ячеек в таблице.

Вот шаг за шагом, что код делает:

  1. Он сохраняет стандартные настройки шрифта для ячейки с помощью ACanvas.Font.
  2. Затем он извлекает текст из 5-й колонки таблицы используя AViewInfo.GridRecord.DisplayTexts[5]. 5-я колонка предполагается быть в таблице, но может не быть видимой.
  3. Если извлеченный текст равен 'True', он устанавливает стиль шрифта ячейки в курсив с помощью lColFont.Style.
  4. Затем он извлекает текст из 6-й колонки и проверяет, если он равен 'False'. Если так, он устанавливает цвет текста ячейки в красный с помощью lColFont.Color.
  5. Затем он применяет измененные настройки шрифта к всей строке с помощью ACanvas.Font.
  6. Наконец, он проверяет, если текущий элемент - это 4-я колонка (индекс 4) и текст в этой колонке равен '30.12.1899'. Если так, он заполняет прямоугольник ячейки цветом с помощью ACanvas.Canvas.FillRect, рисует знак минус (-) в верхнем левом углу прямоугольника с помощью ACanvas.DrawText и устанавливает флаг ADone в True.

Код похож на тот, который используется для компонентов TStringGrid и TBDGrid, как вы упоминали.

Вот некоторые предложения:

  • Вместо использования жестких индексов колонок (например, 4, 5, 6), рассмотрите использование свойства AViewInfo.Item.Index для получения текущего индекса элемента.
  • Вы можете использовать более надежный способ проверки текста на равенство 'True' или 'False', например, метод EqualText() предоставленный DevExpress.
  • Рассмотрите добавление обработки ошибок для случаев, когда извлеченный текст null или пустой.

В целом, этот код выполняет некоторые основные настройки ячеек в таблице на основе содержимого конкретных колонок. Если вам нужно болееadvanced настройки, рассмотрите другие события и свойства контроля TcxGrid.

Практическая реализация изменения форматирования ячеек в компоненте TcxGrid от Dev Express, демонстрируя настройку шрифта, курсива и цвета текста, а также изменение вывода для определенных ячеек.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TStringGrid и TDrawGrid ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:09:40/0.0034530162811279/0