![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Не могу увеличить размер ТImage.
Дело в том, что я сначала в Canvas'e рисую клеточное поле, а потом при нажатии кнопки мне надо этот ТImage увеличить в размерах, и нарисовать новое поле с новым размером ячейки. Но если прописать Код:
Image1.Width := <длина> То ничего не происходит. А вот если с уменьшением длины - то без проблем. |
#2
|
|||
|
|||
![]() Repaint После этого вызвать нужно.
|
#3
|
|||
|
|||
![]() Field - поле ТImage.
n1,n2 - кол-во клеток по гориз. и вертикали. size - размер клетки. Код:
Field.Width := (n1-2)*size; Field.Height := (n2-2)*size; Field.Repaint; Не получается ![]() |
#4
|
||||
|
||||
![]() А у вас свойство Stretch активно?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
![]() Если активировать stretch, то поле увеличивается, но недостаточно: изначально в поле было по 15 клеток размером 20 пикс., а теперь - около 12-13.
|
#6
|
||||
|
||||
![]() Не понял, что значит недостаточно, при включеном свойстве stretch картинка вписывается в область TImage не принимая внимание исходные пропорции. При дополнительно включеном свойстве Proportional картинка будет вписана в TImage но уже без искажений. Выложите скриншот до и скриншот после - может так понятнее будет.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
![]() У меня не картинка
![]() |
#8
|
||||
|
||||
![]() Ага. А вы отрисовку в OnPaint для TImage передаете?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
![]() Код:
{Задаем цвет поля} Field.Canvas.Brush.Color := fieldcolor; {Очищаем его} Field.Canvas.FillRect(Canvas.ClipRect); {Увеличиваем размер клетки поля} inc(size,2); {Растягиваем TImage} Field.Width := (n1+2)*size; Field.Height := (n2+2)*size; Field.Repaint; {Рисуем прямоугольники (клетки)} Field.Canvas.Pen.Color := Form2.Panel4.Color; for i:=0 to (n1-2) do begin for j:=0 to (n2-2) do begin Field.Canvas.Rectangle(i*size, j*size, i*size+size, j*size+size); end; end; Вот так выглядит процедура увеличения размера клеток. Вот еще скрины самого поля, до и после: ![]() ![]() |