Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.28;
Скачать: CL | DM;

Вниз

Вопрос по Image   Найти похожие ветки 

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

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


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

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


 
Ega23 ©   (2010-09-07 10:20) [2]

OnPaint + F1


 
Anatoly Podgoretsky ©   (2010-09-07 10:33) [3]

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


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

> OnPaint + F1

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


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

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

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


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

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


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

> А в 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);


 
Ega23 ©   (2010-09-07 10:59) [8]


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


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


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

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


 
PonosetcDM ©   (2010-09-07 11:37) [10]

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


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

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


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

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


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

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


 
brother ©   (2010-09-07 12:29) [14]

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


 
Anatoly Podgoretsky ©   (2010-09-07 12:52) [15]

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

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


 
Anatoly Podgoretsky ©   (2010-09-07 12:52) [16]


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

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



Страницы: 1 вся ветка

Текущий архив: 2010.11.28;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.009 c
2-1284058496
set
2010-09-09 22:54
2010.11.28
клякса


2-1284022386
6ruse
2010-09-09 12:53
2010.11.28
вместо ID его значение


2-1283756939
03111978
2010-09-06 11:08
2010.11.28
2 таблички нужно свести в одну


15-1282508985
Юрий
2010-08-23 00:29
2010.11.28
С днем рождения ! 23 августа 2010 понедельник


2-1283771755
rnts
2010-09-06 15:15
2010.11.28
Ошибка в запросе