![]() |
![]() ![]() ![]() ![]() |
|
Автоматический подбор ширины колонок для 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 | ||||