| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Не меняется автоматически масштаб рисунка |
| Автор: Нитонисе 30.11.2010, 15:57 |
| Есть компонент TImage заполняющий полностью форму TForm1, свойство Align = alClient. Черчу линию в Image с расстоянием в 20 пикселов от левого края и 20 пикселов от правого края. На событие формы OnResize вешаю функцию перерисовки линии в связи с новыми размерами Image, но метод работает только в сторону уменьшения размера форму - линия отрисовывается как надо, а вот если увеличивать форму, то расстояние от правой границы тоже увеличивается. Линия не вычерчивается длиннее, чем она была в исходных размерах компонента Image. В чем тут дело? |
| Автор: Нитонисе 30.11.2010, 16:30 |
| Цвет фона делал как у формы, поэтому не сразу увидел, что канва вообще не меняется, а меняется только компонент Image. Размер канвы остается неизменным после первого к ней обращения... не очень удобно. В компоненте PaintBox такой проблемы нет. |
| Автор: Нитонисе 2.12.2010, 10:39 |
Будем знать) Пока работаю с PaintBox, предстоит много рисовать... чем этот компонент отличается от Image? Знаю только, что Image перерисовывается автоматически, но у PaintBox размер канвы следует за размером самого PaintBoxa. Грань, заставляющая выбрать PaintBox, пока очень тонкая, может мне бы Image было лучше. |
| Автор: oldcode 2.12.2010, 11:56 |
| 1. Читаем названия: компонент PaintBox - создает область, в которой можно рисовать компонент Image, в который можно загрузить какое-либо изображение 2. Смотрим свойства а если рисовать на канве - то по барабану - на форме, на панели, где-то еще... и вот, запамятовал - AutoSize - разрешает автоматическое изменение размеров компонента по размера изображения |
| Автор: 586 2.12.2010, 19:43 |
В этом и приемущество. Если прорисовка сложная. А недостаток в том, что компонент выделяет память под TBitmap (который и выводит компонент TImage). |
| Автор: oldcode 2.12.2010, 21:15 | ||
|