![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Увеличение ячейки 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 |