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

Выравнивание колонок StringGrid 4

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

Выравнивание колонок StringGrid 4

Создайте ваш собственный метод drawcell на примере того, что приведен ниже:


procedure Tsearchfrm.Grid1DrawCell(Sender: TObject; Col, Row: Longint;
  Rect: TRect; State: TGridDrawState);
var
  l_oldalign: word;
begin
  if (row = 0) or (col < 2) then
    {устанавливаем заголовок в жирном начертании}
    grid1.canvas.font.style := grid1.canvas.font.style + [fsbold];

  if col <> 1 then
  begin
    l_oldalign := settextalign(grid1.canvas.handle, ta_right);
    {NB использует для рисования правую сторону квадрата}
    grid1.canvas.textrect(rect, rect.right - 2, Rect.top + 2, grid1.cells[col,
      row]);
    settextalign(grid1.canvas.handle, l_oldalign);
  end
  else
  begin
    grid1.canvas.textrect(rect, rect.left + 2, rect.top + 2, grid1.cells[col,
      row]);
  end;

  grid1.canvas.font.style := grid1.canvas.font.style - [fsbold];
end;

Перевод контента на русский язык:

Метод Grid1DrawCell, ответственный за отрисовку ячеек в StringGrid, используется для кастомизации внешнего вида ячеек, включая стили шрифта и выравнивание текста.

В этом конкретном реализации метод проверяет, является ли текущая строка 0 или если номер столбца меньше 2. Если выполнено любое из этих условий, он устанавливает стиль шрифта для канваса грида в жирный, эффективно делая заголовочную ячейку жирной.

Затем метод проверяет, является ли текущий номер столбца не равен 1. Если это условие истинно, он сохраняет текущее выравнивание текста, устанавливает выравнивание текста в правую сторону и отрисовывает текст в ячейке с помощью Canvas.TextRect. После отрисовки текста метод восстанавливает оригинальное выравнивание текста.

Если номер столбца равен 1, он просто отрисовывает текст в ячейке без изменения выравнивания текста.

Наконец, метод сбрасывает стиль шрифта для канваса грида обратно в его 기본ное состояние.

Вот улучшенная версия этого кода с некоторыми минорными изменениями и дополнительными комментариями:

procedure Tsearchfrm.Grid1DrawCell(Sender: TObject; Col, Row: Longint;
  Rect: TRect; State: TGridDrawState);
var
  l_oldalign: word;
begin
   // Установка жирного стиля шрифта для заголовочных ячеек
  if (Row = 0) or (Col < 2) then
    Grid1.Canvas.Font.Style := Grid1.Canvas.Font.Style + [fsBold];

   // Проверка правого выравнивания текста для столбцов, кроме первого
  if Col <> 1 then
  begin
    l_oldalign := SetTextAlign(Grid1.Canvas.Handle, taRight);
    try
       // Отрисовка текста в ячейке с правым выравниванием
      Grid1.Canvas.TextRect(Rect, Rect.Right - 2, Rect.Top + 2, Grid1.Cells[Col, Row]);
    finally
       // Восстановление оригинального выравнивания текста
      SetTextAlign(Grid1.Canvas.Handle, l_oldalign);
    end;
  else
     // Отрисовка текста в ячейке с левым выравниванием для первого столбца
    Grid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Grid1.Cells[Col, Row]);

   // Сброс стиля шрифта обратно в его 기본ное состояние
  Grid1.Canvas.Font.Style := Grid1.Canvas.Font.Style - [fsBold];
end;

Код остался largely неизменным от оригинала, но включает некоторые минорные улучшения, такие как использование блока try-finally, чтобы обеспечить восстановление выравнивания текста, независимо от возникновения исключения при отрисовке текста.

В статье описывается создание метода drawcell для StringGrid 4, позволяющего выполнять выравнивание колонок с помощью установки жирного начертания и текстового правления.


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:34:39/0.0057599544525146/1