![]() |
|
|
#6
|
||||
|
||||
![]() в данном случае не совсем так, что TImage это не картинка. если она не содержит никакого графического объекта (Picture.Graphic), т.е. была только что создана, как в данном примере, то при обращении к ее Canvas создается Bitmap, который становится ее графическим объектом Picture.Graphic. и вся дальнейшая отрисовка через Canvas идет на этом Bitmap. когда Bitmap создается, то его размеры берутся равными размеру самого TImage. но если меняются размеры TImage, то размеры уже существующего Bitmap не меняются. и если рисовать на Canvas такого TImage, то даже при сворачивании или перемещении по нему другого окна картинка остается нормальной - Bitmap благополучно отрисовывается. чтобы после изменения размера TImage все было в порядке, нужно Picture.Graphic:=nil; таким образом создастся новый Bitmap с новыми размерами, но, естественно, со значениями по умолчанию для карандашей и кистей и.т.д.
разобраться в этом поможет исходник TImage: Код:
Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 13.01.2011 в 09:34. |