Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Различные цвета строк в DBCtrlGrid

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

Различные цвета строк в DBCtrlGrid

Ученый-компьютерщики решили облегчить жизнь юзеров и создали ракету системы "Земля - Провайдер".

Используйте событие drawColumnCell. И не забудьте выставить defautlDrawing в False


procedure TMain.ProjectGridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  projectGrid.canvas.brush.color := clWindow;
  projectGrid.canvas.fillRect(rect);
  if gdSelected in state then
  begin
    projectGrid.canvas.brush.color := clHighlight;
    if fsBold in projectGrid.canvas.font.style then
    begin
      projectGrid.canvas.font.color := clHighlightText;
      projectGrid.canvas.font.style := [fsBold];
    end
    else
      projectGrid.canvas.font.color := clHighlightText;
  end
  else if gdFocused in state then
  begin
    projectGrid.canvas.brush.color := clWindow;
    if fsBold in projectGrid.canvas.font.style then
    begin
      projectGrid.canvas.font.color := clWindowText;
      projectGrid.canvas.font.style := [fsBold];
    end
    else
      projectGrid.canvas.font.color := clWindowText;
  end
  else if gdFixed in state then
  begin
    projectGrid.canvas.brush.color := clHighlight;
    if fsBold in projectGrid.canvas.font.style then
    begin
      projectGrid.canvas.font.color := clHighlightText;
      projectGrid.canvas.font.style := [fsBold];
    end
    else
      projectGrid.canvas.font.color := clHighlightText;
  end;
  with globalDataModule.qProjects do
  begin
    // тестовая запись. Устанавливаем свойства для перекрытия заданных по умолчанию;
    if fieldByName('EST_COMPL_DATE').asDateTime < date then
      projectgrid.Canvas.font.color := clRed;
    if compareStr(fieldByName('STAT_CODE').asString, 'HD') = 0 then
      projectgrid.Canvas.font.color := clOlive;
    if (compareStr(fieldByName('CHANGED').asString, 'Y') = 0) and
      (fieldByName('ASSIGN_EMP_ID').asInteger = userRecord.UserId) then
      projectgrid.Canvas.font.style := [fsBold];
  end;
  projectGrid.canvas.textOut(rect.left + 2, rect.top + 2, column.field.text);
end;

Код, предоставленный ниже, является процедурой для рисования ячейки в компоненте DBCtrlGrid, называемом projectGrid. Процедура предназначена для выделения определенных ячеек на основе конкретных условий.

Вот что код делает:

  1. Он устанавливает цвет кисти канваса в clWindow (стандартный серый цвет) и заливает прямоугольник этим цветом.
  2. Если ячейка выбрана (gdSelected в параметре State), он изменяет цвет кисти на clHighlight, ярко-синий цвет, и применяет жирный стиль шрифта, если текстовый шрифт имеет стиль fsBold.
  3. Если ячейка фокусирована (gdFocused в параметре State), он устанавливает цвет кисти обратно в clWindow и применяет жирный стиль шрифта с белым текстовым цветом, если текстовый шрифт имеет стиль fsBold.
  4. Если ячейка зафиксирована (gdFixed в параметре State), он изменяет цвет кисти на clHighlight, ярко-синий цвет, и применяет жирный стиль шрифта с желтым текстовым цветом, если текстовый шрифт имеет стиль fsBold.
  5. Затем код проверяет конкретные условия для каждого записи в таблице:
    • Если поле EST_ COMPL_ DATE ранее даты текущего дня, он устанавливает цвет шрифта в красный.
    • Если поле STAT_ CODE равно 'HD', он устанавливает цвет шрифта в оливковый зеленый.
    • Если поле CHANGED равно 'Y' и поле ASSIGN_EMP_ID соответствует ID текущего пользователя, он применяет жирный стиль шрифта.
  6. Наконец, код рисует текст в ячейке с помощью метода textOut канваса.

Обратите внимание, что этот код использует компоненты базы данных Delphi (TField, TDataSet, и т.д.) и предполагает конкретную структуру данных. Он также использует некоторые константы, такие как clWindow, clHighlight, clWindowText, fsBold и другие, которые являются частью библиотеки VCL Delphi.

В статье описывается способ окрашивания строк в DBCtrlGrid с помощью события drawColumnCell и изменения цвета текста в зависимости от условий.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: TDBGrid ::


реклама



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

Время компиляции файла: 2024-06-02 10:20:12
2024-07-27 13:59:04/0.0074560642242432/2