![]() |
![]() ![]() ![]() ![]() |
|
Увеличение ячейки TStringGrid при увеличении числа строкDelphi , Компоненты и Классы , TStringGrid и TDrawGridАвтор: Пётр Соболь
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow:
Integer; Rect: TRect; State: TGridDrawState);
var
Format: Word;
C: array[0..255] of Char;
r: integer;
begin
C := '';
Format := DT_LEFT or DT_WORDBREAK;
(Sender as TStringGrid).Canvas.FillRect(Rect);
StrPCopy(C, (Sender as TStringGrid).Cells[ACol, ARow]);
if c <> '' then //если есть значения
begin
r := WinProcs.DrawText((Sender as TStringGrid).Canvas.Handle, C,
StrLen(C), Rect, Format);
if r > (Sender as TStringGrid).RowHeights[Arow] then
//если высота колонки меньше
(Sender as TStringGrid).RowHeights[Arow] := r;
end;
end;
Код, предоставленный ниже, является методом в Delphi для увеличения высоты ячейки TStringGrid, когда ее содержимое превышает оригинальную высоту. Это достигается путем переопределения события DrawCell и использования функции WinProcs.DrawText для измерения требуемой высоты. Вот шаг за шагом, что код делает:
Цель этого кода - обеспечить, чтобы ячейки с длинным содержимымproperly отображались и не перезаполнялись своих границ, что могло привести к обрезке текста или другим проблемам отображения. Обновленные высоты строк позволяют более точное представление содержимого ячеек. Альтернативным решением было бы использовать свойство TStringGrid.ColWidths вместо RowHeights. Это бы adjusts ширину столбца в зависимости от длины содержимого в этом столбце, обеспечивая правильную выравнивание и пространство текста. Например: В этом альтернативном решении свойство ColWidths обновляется в зависимости от длины содержимого в каждом столбце. Это обеспечивает, что столбцы с длинным содержимымproperly размеруются и выравниваются, не требуя изменений высот строк. В статье описывается решение проблемы увеличения ячейки TStringGrid, когда количество строк увеличивается, путем изменения высоты строки в зависимости от длины текста. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: TStringGrid и TDrawGrid ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||