![]() |
![]() ![]() ![]() ![]() |
|
Автоматический подбор ширины колонок для TStringGrid или TDrawGridDelphi , Компоненты и Классы , TStringGrid и TDrawGridАвтоматический подбор ширины колонок для TStringGrid или TDrawGrid
Оформил: DeeCo
{ This will resize the columns of a TStringGrid / TDrawGrid (text
only!) so the text is completely visble. To save some time,
it uses the first 10 rows only, but that should be easy to fix,
if you need more. }
// we need this to access protected methods
type
TGridHack = class(TCustomGrid);
procedure ResizeStringGrid(_Grid: TCustomGrid);
var
Col, Row: integer;
Grid: TGridHack;
MaxWidth: integer;
ColWidth: integer;
ColText: string;
MaxRow: integer;
ColWidths: array of integer;
begin
Grid := TGridHack(_Grid);
SetLength(ColWidths, Grid.ColCount);
MaxRow := 10;
if MaxRow > Grid.RowCount then
MaxRow := Grid.RowCount;
for Col := 0 to Grid.ColCount - 1 do
begin
MaxWidth := 0;
for Row := 0 to MaxRow - 1 do
begin
ColText := Grid.GetEditText(Col, Row);
ColWidth := Grid.Canvas.TextWidth(ColText);
if ColWidth > MaxWidth then
MaxWidth := ColWidth;
end;
if goVertLine in Grid.Options then
Inc(MaxWidth, Grid.GridLineWidth);
ColWidths[Col] := MaxWidth + 4;
Grid.ColWidths[Col] := ColWidths[Col];
end;
end;
Перевод контента на русский язык: Код Delphi, который изменяет размеры столбцов TStringGrid или TDrawGrid для полного отображения текста в каждом столбце, использует хак для доступа к защищенным методам контроля grid. Рассмотрим шаги кода:
Код использует хак для доступа к защищенным методам, создавая экземпляр В целом, этот код полезен для динамического изменения размеров столбцов TStringGrid или TDrawGrid на основе содержимого текста в каждом столбце. Альтернативное решение без хака: В этом альтернативном решении мы используем метод Автоматический подбор ширины колонок для TStringGrid или TDrawGrid позволяет обеспечить полную видимость текста, используя только первые 10 строк. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: TStringGrid и TDrawGrid ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||