Space Base Space Base
+7 928 008-80-89
ru
  • en
  • es
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  1. Библиотека
  2. Delphi
  3. Выравнивание текста в ячейке Delphi StringGrid
logo

Выравнивание текста в ячейке Delphi StringGrid

19.11.2014

При добавлении текста в ячейкикомпонента StringGrid , он по умолчанию центруется по левой стороне. Однако очень часто для удобства отображения информации необходимо чтобы он располагался по центру или по правой стороне. Например, столбец с числами лучше располагать по правому краю, чтобы сделать такую информацию более наглядной и удобной к восприятию.

Специальных средств для настройки центровки текста хотя бы по столбцу не предусмотрено, поэтому делать это необходимо программными средствами, подобно механизму закраски ячеек StringGrid.

Для решения данной задачи воспользуемся процедурой DrawText и одним из ее параметров Format. Параметру Format можно назначить сразу группу значений через оператор “OR”. Для центровки текста в ячейках используются значения DT_CENTER, DT_LEFT и DT_RIGHT, для расположения по центру, по левой стороне и по правой стороне, соответственно.

Выполняется это так же как и окрашивание ячеек StringGrid в процессе срабатывания события OnDrawCell, где условиями определяется какой ячейке какой из значений параметра Format назначить.

procedure TForm1.MyStringGridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
   Format: Word;
   C: array[0..255] of Char;
begin
   if ACol = 0 then
      Format := DT_CENTER // первый столбец - положение текста по центру
   else if ACol = 1 then
      Format := DT_LEFT // второй столбец – положение текста по левому краю
   else
      Format := DT_RIGHT // остальные – положение текста по правому краю

   if ARow = 0 then
      Format := DT_CENTER // первая строка – положение текста по центру

   MyStringGrid.Canvas.FillRect(Rect); // перерисовка ячейки
   StrPCopy(C, MyStringGrid.Cells[ACol, ARow]); // преобразование строки в формат PChar
   WinProcs.DrawText(MyStringGrid.Canvas.Handle, C, StrLen(C), Rect, Format); // вывод текста
end;

Для использования функции DrawText, необходимо подключить библиотеку WinProcs.

uses
WinProcs;

Рисунок: Выравнивание текста в ячейках StringGrid

Другие материалы:

Копирование, удаление, перемещение, переименование и проверка на наличие файла в Delphi


Округление чисел в Delphi


Функция FileExists в Delphi, описание и примеры


Написать комментарий

Комментарии

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


коммент.

Разработка сайтов

Корпоративный сайт
Интернет-магазин
Лендинг - одностраничный сайт
Сайт-визитка
Сайт-портфолио

Проектирование

Прототип, UX-дизайн

Дизайн

UI-дизайн
Логотип

+54 911 2801-4950

info@space-base.net
+7 928 008-80-89

Web-сайты для успешного бизнеса

Web-сайты для успешного бизнеса

Главная Услуги Портфолио События Библиотека Контакты
+7 928 008-80-89 Меню
Политика в отношении обработки персональных данных © Copyright 2014 - | Space-Base

Лучшее время начать свой проект - Сейчас!

Выбраны опции:

Отправить сообщение на:

Telegram WhatsApp

Отправляя сообщение, вы даете свое согласие на
обработку песональных данных