![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Автоматический подбор ширины колонок для TStringGrid 2Delphi , Компоненты и Классы , TStringGrid и TDrawGridАвтоматический подбор ширины колонок для TStringGrid 2
Оформил: DeeCo procedure TForm1.Button1Click(Sender: TObject); { by P. Below } const DEFBORDER = 8; var max, temp, i, n: Integer; begin with Grid do begin Canvas.Font := Font; for n := Low(Columns) to High(Columns) do begin max := 0; for i := 0 to RowCount - 1 do begin temp := Canvas.TextWidth(Cells[Columns[n], i]) + DEFBORDER; if temp > max then max := temp; end; { For } if max > 0 then ColWidths[Columns[n]] := max; end; { For } end; { With } end; {SetGridColumnWidths } Программный код на Delphi для автоматического определения ширины столбцов в компоненте TStringGrid: Переменные и константы
Процедура
Процедура вызывается при событии нажатия кнопки Button1. Она проходит по каждому столбцу в таблице с помощью цикла от Цикл по строкам Для каждой строки код измеряет ширину текста в текущей ячейке с помощью:
Если это значение больше максимальной ширины ( Обновление ширин столбцов После расчета максимальной ширины для каждой строки код проверяет, является ли максимальная ширина больше 0. Если это так, то устанавливает ширину столбца с помощью:
Таким образом, каждый столбец становится широким enough для его наибольшего текстового содержимого. Альтернативное решение
Хотя это подход работает, он может не быть самым эффективным или точным способом определения идеальных ширин столбцов. Вот альтернативное решение с использованием
В этом альтернативном решении мы создаем Обратите внимание, что это подход может быть более эффективным для больших таблиц или сложного текстового содержимого, но также требует больше памяти для хранения накопленных длин текста. В статье описывается процедура автоматического подбора ширины колонок для TStringGrid, которая использует алгоритм поиска максимальной длины текста в каждой ячейке и присваивает эту ширину соответствующей колонке. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: TStringGrid и TDrawGrid ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |