Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.10.2009, 21:24
RayOfLight RayOfLight вне форума
Прохожий
 
Регистрация: 27.09.2009
Сообщения: 11
Репутация: 10
Вопрос Изменение размера Timage

Не могу увеличить размер ТImage.

Дело в том, что я сначала в Canvas'e рисую клеточное поле, а потом при нажатии кнопки мне надо этот ТImage увеличить в размерах, и нарисовать новое поле с новым размером ячейки.

Но если прописать
Код:
Image1.Width := <длина>

То ничего не происходит. А вот если с уменьшением длины - то без проблем.
Ответить с цитированием
  #2  
Старый 22.10.2009, 07:14
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию

Repaint После этого вызвать нужно.
Ответить с цитированием
  #3  
Старый 22.10.2009, 14:36
RayOfLight RayOfLight вне форума
Прохожий
 
Регистрация: 27.09.2009
Сообщения: 11
Репутация: 10
По умолчанию

Field - поле ТImage.
n1,n2 - кол-во клеток по гориз. и вертикали.
size - размер клетки.

Код:
  Field.Width := (n1-2)*size;
  Field.Height := (n2-2)*size;
  Field.Repaint;

Не получается
Ответить с цитированием
  #4  
Старый 22.10.2009, 14:48
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А у вас свойство Stretch активно?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 22.10.2009, 15:03
RayOfLight RayOfLight вне форума
Прохожий
 
Регистрация: 27.09.2009
Сообщения: 11
Репутация: 10
По умолчанию

Если активировать stretch, то поле увеличивается, но недостаточно: изначально в поле было по 15 клеток размером 20 пикс., а теперь - около 12-13.
Ответить с цитированием
  #6  
Старый 22.10.2009, 15:09
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Не понял, что значит недостаточно, при включеном свойстве stretch картинка вписывается в область TImage не принимая внимание исходные пропорции. При дополнительно включеном свойстве Proportional картинка будет вписана в TImage но уже без искажений. Выложите скриншот до и скриншот после - может так понятнее будет.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 22.10.2009, 21:05
RayOfLight RayOfLight вне форума
Прохожий
 
Регистрация: 27.09.2009
Сообщения: 11
Репутация: 10
По умолчанию

У меня не картинка В TImage я рисую клетки и в них закрашиваю фишки (игра Дж. Конвея "Жизнь").
Ответить с цитированием
  #8  
Старый 23.10.2009, 11:32
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ага. А вы отрисовку в OnPaint для TImage передаете?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 27.10.2009, 19:42
RayOfLight RayOfLight вне форума
Прохожий
 
Регистрация: 27.09.2009
Сообщения: 11
Репутация: 10
По умолчанию

Код:
{Задаем цвет поля}
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;

Вот так выглядит процедура увеличения размера клеток.
Вот еще скрины самого поля, до и после:
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:01.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025