![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по 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]Наверное, придется канву пересоздавать (предварительно сохранив старую, чтобы потом ее скопировать). У меня была такая проблема - после того, как на канве что-то нарисовано, ее размеры изменить не получается. Я пересоздавал канву заново с новыми размерами.