| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Изменение размера ячеек StrinGrid |
| Автор: 6urunduk 3.7.2010, 21:23 | ||
На форме есть StringGrid, в него загружаются картинки из Image в процедуре OnDrawCell
Вопрос: как подогнать размер ячеек под размер изображения ? |
| Автор: DarkProg 5.7.2010, 22:29 |
| Я бы скорее подогнал изображения под размер ячеек, потому как все изображения разных рамеров, а StringGrid как-то не очень оперирует размером каждой отдельной ячейки(я обычно в таких случаях создаю чего-нить своё в виде кучки динамических компонентов) Вот посему выставьте размер каждой ячейке скажем 300х300 и подгоняйте изображение. Также попробуйте поискать для интереса решение в DRKB, но я такого не видел как-то. |
| Автор: ~FoX~ 6.7.2010, 18:43 |
Ячеек - ни как, ну то есть можно конечно взять всю перерисовку на себя, но имхо проще использовать что то другое... Стриггрид позволяет рулить только размерами столбца/строки... Придется сначала померить все картинки находящиеся в столбце/строке, соответственно увеличить ширину/высоту, до самой большой картнки, и только после этого отрисовать все вместе... Что бы было ровно, можно разместить по центру имиджи меньшего размера... Тока ИМХО, будет весьма криво выглядеть... |
| Автор: 6urunduk 7.7.2010, 22:14 | ||
~FoX~, вот через размер столбца\строки и подогнал
DarkProg, вставить нужно одно изображение во все ячейки Но вот проблема: мерцание слишком заметно!!!Просто убивает! как от него избавиться?(от мерцания) |
| Автор: graffi 8.7.2010, 11:37 |
| А мерцания немножко меньше будет, если поставить DoubleBuffered в true (это свойство формы). Можно в обработчик создания формы сунуть. |
| Автор: 6urunduk 14.7.2010, 20:52 | ||||
~FoX~,
graffi,
|
| Автор: ~FoX~ 15.7.2010, 09:49 | ||
Ох-ох-ох...... Так посчитай!!! |
| Автор: 6urunduk 15.7.2010, 12:10 |
| ~FoX~, а не легче мерцание убрать, нежели просчитывать кол-во каритнок, которые умещаются на форме ? |
| Автор: ~FoX~ 15.7.2010, 18:38 |
| 6urunduk, А сам подумай? СтрингГрид не является контейнером, он не хранит изображения, он предоставляет только канвас, т.е. на каждую опирацию (скрол, перемещение формы, изменение размеров и даже просто провести курсором над изображением)... тебе придется перерисовывать все.... На сколько бы быстро не работал твой алгоритм перерисовки, на сколько бы оптимальны не были изображения, от мерцания ты не избавишься... Проверенно, даже при использовании GDI+.... Хочишь избавица от мерцания загоняй объекты контейнеры (TImage например) в ячейки грида.... |
| Автор: 6urunduk 15.7.2010, 20:00 |
| [Б]~ФоХ~[/Б], легче повеситься Добавлено через 4 минуты и 44 секунды а если использовать ДравГрид ? |
| Автор: ~FoX~ 15.7.2010, 22:22 |
| 6urunduk, аналогично |