Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по Image [D7, XP]


Свободный художник ©   (2010-09-07 09:58:00) 

Размеры размещенного Image необходимо изменять после того как при работе с канвой там уже отображен рисунок. Однако, при увеличении размеров Image на куске канвы которая появилась(при увеличении) ничего не отображается. Т.е. Увеличиваем Image, перерисовываем картинку, а на появимшеся куске канвы ничего не рисуется...он остается прозрачным. А хотелось бы чтоб рисовалось.


Anatoly Podgoretsky   (2010-09-07 12:52:00) [1]

> Свободный художник  (07.09.2010 12:21:13)  [13]

Тебе же раньше писали, а ты что делал в тот момент?


Anatoly Podgoretsky   (2010-09-07 12:52:00) [2]


> по [13] в [3] тебе намекали ;)

Какое намекали, прямо писали.


brother   (2010-09-07 12:29:00) [3]

по [13] в [3] тебе намекали ;)


Свободный художник   (2010-09-07 12:21:00) [4]

Обана. [11] пост полностью решил то что мне нужно было. Буду читать литературу. Огромное спасибо icWasya


Свободный художник   (2010-09-07 12:18:00) [5]

Спасибо за [10] и [9], но при масштабировании рисунок искажается неизбежно. В условиях моей задачи это не подходит(например используется функция textout). Необходимо именно переисовывать. Видимо буду использовать Painbox.
Всем спасибо.


icWasya   (2010-09-07 11:52:00) [6]

....OnResize(Sender:TObject);
begin
 Image.Picture.Bitmap.Width:=Image.Width;
 Image.Picture.Bitmap.Height:=Image.Height;
end;


PonosetcDM   (2010-09-07 11:37:00) [7]

Установи сво-во Image1.stretch в true...


Юрий Зотов   (2010-09-07 11:35:00) [8]

Посмотрите свойства Image. Он сам умеет автоматически масштабировать рисунок под свой размер, надо только выставить соответствующее свойство в true.


Ega23   (2010-09-07 10:59:00) [9]


> Может действительно лучше использовать PaintBox?


Считай, что PaintBox - голая канва. А TImage - уже с наворотами.


И. Павел   (2010-09-07 10:57:00) [10]

> А в PaintBox такого эффекта не наблюдается?.

Вроде бы в PaintBox все работает (изначально Width и Height у PaintBox = 15):
 PaintBox1.Canvas.Rectangle(1, 1, 10, 10);
 PaintBox1.Canvas.Pen.Color := clRed;
 PaintBox1.Width := 200;
 PaintBox1.Height := 200;
 Application.ProcessMessages;
 PaintBox1.Canvas.Rectangle(1, 1, 100, 100);


Свободный художник   (2010-09-07 10:49:00) [11]

А в PaintBox такого эффекта не наблюдается?. И как я понимаю там такая же канва как и в Image? Может действительно лучше использовать PaintBox?


Свободный художник   (2010-09-07 10:47:00) [12]

В посте [4]точно описано именно то что мне нужно.
[3]- image привязан к форме...изменяем размер формы...изменяется размер image. Сделано с помощью свойства align:=client;

Неужели кроме как пересоздание канвы нет другого выхода...и что в принципе означает пересоздать канву...Создать новый объект и присвоить в Image?


И. Павел   (2010-09-07 10:38:00) [13]

> OnPaint + F1

Скорее всего речь идет о том, что не получается рисовать справа и снизу, после того, как размер Image увеличился. Как тут может помочь OnPaint? Если, конечно не имеете ввиду переход на PaintBox.


Anatoly Podgoretsky   (2010-09-07 10:33:00) [14]

Где код и почему ты меняешь размер TImage, а не TPicture, которое отвечает за рисование на канве?


Ega23   (2010-09-07 10:20:00) [15]

OnPaint + F1


И. Павел   (2010-09-07 10:02:00) [16]

Наверное, придется канву пересоздавать (предварительно сохранив старую, чтобы потом ее скопировать). У меня была такая проблема - после того, как на канве что-то нарисовано, ее размеры изменить не получается. Я пересоздавал канву заново с новыми размерами.


Наверх

Титульная страница Поиск, карта сайта Написать письмо