void __fastcall TForm1::DBGridEh1GetCellParams(TObject *Sender,
TColumnEh *Column, TFont *AFont, TColor &Background,
TGridDrawState State)
{
int nRows = DBGridEh1->Canvas->TextWidth( Column->Field->Text ) / Column->Width + 1;
if( DBGridEh1->RowLines < nRows )
{
DBGridEh1->RowLines = nRows;
ADOQuery1->First();
}
}
DBGridEh. Уместим строчки в клетку?
Задача: Уместить содержимое любой строки колонки. Т.е., чтобы RowLines был максимальным, в зависимости от длины строки любой колонки любой записи (я думаю, что так).
[COLOR="Red"]Вопрос[/COLOR]: как это сделать?
Может я неудачно вопрос сформулировал? В гриде выводится таблица. Размер колонок выбирается автоматически. В полях - текстовые данные (строки). У колоно DBGridEh есть прекрасное свойство WordWrap. Если его поставить в true, то текст будет автоматом переноситься (при RowLines > 1, как написано в хэлпе). И всё бы хорошо, но размер строк разный, соответственно, некоторые строчки полностью умещаются, некоторые нет. Таким образом, надо найти такое значение RowLines, при котором даже самая длинная строка будет показана полностью. Не думаю, что пробег по всему датасету перед выводом на экран будет хорошей идеей. Вроде задача не должна быть новой...
Код:
Если у кого будут дополнения, исправления, просто умные мысли - милости прошу. В противном случае, тему можно закрывать...:rolleyes: