| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > перерисовка компонента :( |
| Автор: tol 27.5.2006, 16:41 | ||
| никак ненайду решения одного явления. Нужно создать канву для отрисовки изображений переменного размера. Беру ScrollBox кладу на него Image, свойство Image.Align := alClient Теперь если перед тем как что-либо нарисовать на канве сначала её увеличить то при прокрутке ScrollBox канва видна вовсём своём размере. А если перед увеличением размера что-либо нарисовать и потом увеличить Image то при прокрутке ScrollBox видна только часть Image которая вписывалась в размер ScrollBox. Какой метод применить что-бы избавиться от этого бага Для более ясного представления привожу пример -
|
| Автор: Mechanic 27.5.2006, 17:00 |
| SetBounds ? |
| Автор: tol 27.5.2006, 18:02 |
| Ни какой реакции метод SetBounds не дал я пробовал добавлять Image1.SetBounds() всё работает как раньше. То-есть если на канве что-либо нарисовать до увеличения размера (это когда полосы прокрутки в ScrollBox не проявляются) то при увеличении длинны Image в ScrollBox появляются полосы прокрутки, когда пытаюсь посмотреть скрытую часть канвы то вижу вместо рисунка линии пустое место |
| Автор: Mechanic 27.5.2006, 18:17 |
| Извини, не дописал. Нужно делать SetBounds() с максимальными размерами. См. DRKB ("Если отображается только часть TImage"). |
| Автор: Snowy 27.5.2006, 18:21 |
| Зачем, если ты собираешься устанавливать размеры вручную? |
| Автор: tol 27.5.2006, 18:32 |
| конечно можно заранее установить максимальные размеры Image и непариться, я этот вариант держу в запасе, тем-немение сам эфект непонятен почему в одном варианте компонент нормально отображается , а в другом ненормально . Я пробовал и методы refresh,repaint,update ничего неполучается Добавлено @ 18:40 Snowy-- Image.Align := alClient Зачем, если ты собираешься устанавливать размеры вручную? Я и этот вариант прорабатывал баг не исчезает |
| Автор: Демо 27.5.2006, 18:46 |
Не баг, а проблема ;) |
| Автор: Mechanic 28.5.2006, 14:19 |
| Что я делаю не так? |
| Автор: tol 28.5.2006, 23:54 |
| Всё так Спасибо за пример надо увеличивать пропорционально компоненту. |