Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TMS advStringGrid: многострочные ячейки


Автор: quarz 1.3.2009, 01:46
сабж. Надо чтоб при записи строки в ячейку
Код
advStringGrid.Cells[1,1]:='Очень длинная строка';
 ячейка автоматически масштабировалась по высоте под размер текста. Параметр из SizeWhileTyping Height:=true не подходит, т.к. ячейка будет масштабироваться только при ввода с клавиатуры. Разбивать строку через #13 тоже не хочется, ведь должно это как-то быть реализовано средствами этого компонента

Добавлено через 2 минуты и 5 секунд
P.S. Примеры с  офф.сайта смотрел, тему Акеллы про TMS тоже

Автор: Akella 1.3.2009, 01:54
а WordWrap?

Добавлено через 11 минут и 49 секунд
а multilinecells?

Добавлено через 13 минут и 11 секунд
http://www.tmssoftware.com/site/asg1.asp

Автор: quarz 1.3.2009, 02:18
WordWrap - слова переносит, но ячейка по высоте не увеличивается.
multilinecells попробовал - ноль реакции, разницы вообще никакой.
А этот пример я смотрел, они читеры. Там ячейки в designEditor'e заранее по высоте подогнаны! smile

Автор: Akella 1.3.2009, 11:39
У меня так. Все строки одинаковой высоты, т.е. в одну строку. Затем я нажимаю в ячейке Enter для вызова редактирования. Строка сразу увеличивается, становиться многострочной. Когда выходишь из редактирования, строка так и остаётся много строчной. Может так и задумано?

Автор: Akella 1.3.2009, 12:01
А версия какая у тебя?

Автор: quarz 1.3.2009, 14:02
Цитата(Akella @  1.3.2009,  14:39 Найти цитируемый пост)
У меня так. Все строки одинаковой высоты, т.е. в одну строку

А у меня что-то совсем не так ) 
Версия advStringGrid - 4.0.14.0
Это вроде последняя версия, из TMS component pack v5.0.1

Автор: quarz 1.3.2009, 15:29
Решение найдено  smile 

procedure AutoSizeRows(const DoFixedRows: Boolean; const Padding: Integer);
Description : modifies the height of all rows (except fixed rows if specified) so that all text properly fits in the rows. Only required when using the grid in multiline mode. Optionally adds extra space specified in the padding parameter. 

Рабочий код для теста:

Код

advStringGrid1.Multilinecells:=true;                                //хотя у меня и без этого почему-то работает
advStringGrid1.WordWrap:=true;                                  //а вот это нужно обязательно
advStringGrid1.Cells[1,1]:='Очень длинная строка';
advStringGrid1.AutoSizeRows(true);


Автор: Pellegrino 11.3.2012, 09:42
Спасибо, пригодилось! Долго искал тоже. Но есть косяк, если была шапка таблички заранее выставленная, то он её тоже сравняет. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)