Многострочный TStringGrid 3Delphi , Компоненты и Классы , TStringGrid и TDrawGridМногострочный TStringGrid 3Автор: http://www.sources.ru Сперва необходимо установить свойство DefaultDrawing в False. Далее, необходимо вставить следующий код в обработчик события OnDrawCell: procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Longint; Rect: TRect; State: TGridDrawState); var Line1: string; Line2: string; ptr: integer; padding: integer; hGrid: TStringGrid; begin hGrid := (Sender as TStringGrid); ptr := Pos(';', hGrid.Cells[Col, Row]); if ptr > 0 then begin Line1 := Copy(hGrid.Cells[Col, Row], 1, ptr - 1); Line2 := Copy(hGrid.Cells[Col, Row], ptr + 1, Length(hGrid1.Cells[Col, Row]) - ptr); end else Line1 := hGrid.Cells[Col, Row]; hGrid.Canvas.FillRect(Rect); hGrid.Canvas.TextOut(Rect.Left, Rect.Top + 2, Line1); if ptr > 0 then hGrid.Canvas.TextOut(Rect.Left, Rect.Top - hGrid.Canvas.Font.Height + 3, Line2); end; Теперь достаточно для переноса строки вставить в неё точку с запятой. Так же не забудьте изменить высоту строки так, чтобы переносы строки поместились в ячейку: StringGrid1.RowHeights[0] := StringGrid1.DefaultRowHeight * 2; В статье описывается способ создания многострочного TStringGrid 3, при котором строка автоматически переносится на следующую строку с помощью знака препинания в ячейке и изменением высоты строки. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: TStringGrid и TDrawGrid ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |