| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Как правильно реализовать многострочность в ячейке |
| Автор: syscoder 6.3.2005, 19:57 | ||||
| Как правильно реализовать многострочность в ячейке StringGrid'а. Перепробовал несколько примеров, а в итоге никакого правильного результата. Приведу пару примеров обработчика OnDrawCell: [-1-]
Во время добавлении строк в таблицу делаю так: <code>SGmem.Cells[1,indxMemRow] := StrFM_gap.Strings[0]; StrFM_gap.Delete(0); SGmem.Cells[2,indxMemRow] := SGmem.Cells[2,indxMemRow] + StrFM_gap.Text; // если кол-во строк в ячейке больше её высоты if (SGmem.canvas.TextHeight(SGmem.Cells[2,indxMemRow])*2) > SGmem.RowHeights[indxMemRow] then // то делаем высоту ячейки во столько раз больше, сколько этих строк SGmem.RowHeights[indxMemRow] := SGmem.canvas.TextHeight(SGmem.Cells[2,indxMemRow])*(StrFM_gap.Count-1)+20;[/code] В этом случае возникает какой-то глюк в обработчике OnDrawCell при добавлении большого количества строк. Прога просто напросто закрывается без всяких ошибок, а в Дельфях пишет AV. В чём тут дело? [-2-]
Попробовал так, при таком же методе заполнения строк. Работает лучше! НО, никак не могу докумекать до одной фишки. Дело в том, что тект разбивается на строки, но в ячейке получается такая лажа: в первой строке ячейки добавляется вся остальная строка, разбитая ниже на строки, а когда выделяешь ячейку, то она отсекается и становиться всё пучком,... пока не сдвинешь на другую ячейку. Вот так. Помогите кто шарит в этом деле, срочно нужно, я уже сегодня весь день у компа торчу, уже недумается... |
| Автор: fess 6.3.2005, 20:25 |
| Тебе именно в стандартном StringGrid'e надо? Если не обязательно, то рекомендую воспользоваться AdvStringGrid'ом с сайта www.tmssoftware.com. В этом компоненте это реализованно без глюков. |
| Автор: Guest 6.3.2005, 21:24 | ||
Вот что мне посоветовали:
|