Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DBGridEh. Уместим строчки в клетку?

23K
06 мая 2008 года
FataLL
24 / / 10.05.2007
Имеем: DBGridEh. Пользуюсь последней бесплатной версией, со всеми её достоинствами и недостатками.

Задача: Уместить содержимое любой строки колонки. Т.е., чтобы RowLines был максимальным, в зависимости от длины строки любой колонки любой записи (я думаю, что так).

[COLOR="Red"]Вопрос[/COLOR]: как это сделать?
23K
08 мая 2008 года
FataLL
24 / / 10.05.2007
Может я неудачно вопрос сформулировал? В гриде выводится таблица. Размер колонок выбирается автоматически. В полях - текстовые данные (строки). У колоно DBGridEh есть прекрасное свойство WordWrap. Если его поставить в true, то текст будет автоматом переноситься (при RowLines > 1, как написано в хэлпе). И всё бы хорошо, но размер строк разный, соответственно, некоторые строчки полностью умещаются, некоторые нет. Таким образом, надо найти такое значение RowLines, при котором даже самая длинная строка будет показана полностью. Не думаю, что пробег по всему датасету перед выводом на экран будет хорошей идеей. Вроде задача не должна быть новой...
23K
11 мая 2008 года
FataLL
24 / / 10.05.2007
Вообщем, если кому интересно, сделал так:
Код:
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();
    }
}

Если у кого будут дополнения, исправления, просто умные мысли - милости прошу. В противном случае, тему можно закрывать...:rolleyes:
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог