Zeus |
Отправлено: 30.01.2004, 12:58 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 5
|
Люди подскажите как создать ячейку DBGrid высотой в несколько строк.
Может нужно использовать компонент Memo?
Заранее благодарен! |
|
Valdemar |
Отправлено: 30.01.2004, 14:41 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
Можно использовать DBMemo, но если очень хочется использовать DBGrid, то можно использовать обработчик события OnDrawDataCell.
Я делал так:
1. Для DBGrid ширину колонок устанавливал программно, в не через CollumnEditor (т.к. если я добалял столбцы в CollumnEditor, то ничего не получалось)
2. Для DBGrid ставил большой шрифт
3. В обработчике события OnDrawDataCell при рисовании всех ячеек делал шрифт обычного размера, это позволяло выводить несколько строк текста.
CODE | void __fastcall TForm1::DBGrid1DrawDataCell(TObject *Sender,
const TRect &Rect, TField *Field, TGridDrawState State)
{
TRect r=Rect;
InflateRect(&r,-2,-2);
DBGrid1->Canvas->Font->Size=8;
DBGrid1->Canvas->FillRect(Rect);
DrawText(DBGrid1->Canvas->Handle,Field->AsString.c_str(), Field->AsString.Length(), &r, DT_LEFT|DT_WORDBREAK);
} |
Данный способ работал в силу того, что мне не требовалось редактировать таблицу и я для DBGrid в Options поставил dgEditing=false |
|
Admin |
Отправлено: 30.01.2004, 15:39 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Вообще советую присмотреться к компоненту DBGridEh (523 Кб)
(из библиотеки EhLib)
очень много интресных (полезных и нужных) возможностей
есть Help (185 Кб), демо-программа (743 Кб) , которая показывает
возможности компонента.
Пока бесплатно, не триал (для exUSSR)
http://www.farpost.com/personal/dmitryb/RUS/
|
|
|