[Lazarus] A bitmap strange issue
Giuliano Colla
giuliano.colla at fastwebnet.it
Sun Apr 22 17:36:19 CEST 2018
Il 22/04/2018 13:22, Michael Van Canneyt via Lazarus ha scritto:
> This is how all properties that are TPersistent descendents work, so
> this
> behaviour should not come as a surprise.
I wouldn't say so.
E.g. TCanvas is a TPersistent descendent, but the Canvas property of a
TCustomControl is declared like that:
> property Canvas: TCanvas read FCanvas write FCanvas;
This means that after a
SomeControl.Canvas := MyCanvas;
or
MyCanvas := SomeControl.Canvas;
SomeControl.Canvas and MyCanvas will be the same object. Only a pointer
is copied.
On the contrary, the property Bitmap of a TPicture is declare like that:
> property Bitmap: TBitmap read GetBitmap write SetBitmap;
where GetBitmap actually returns the TPicture.Bitmap Object, while
SetBitmap creates a different Bitmap Object, and assigns it the content
of the supplied bitmap (see TPicture.SetGraphic, called by
TPicture.SetBitmap).
This means that after a
MyBitmap := SomePicture.Bitmap;
MyBitmap and SomePicture.Bitmap will represent the same Object, while
after a
SomePicture.Bitmap := MyBitmap;
MyBitmap and SomePicture.Bitmap will represent different Objects.
This is IMHO a TPicture specific inconsistency.
Giuliano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20180422/3ce63141/attachment.html>
More information about the Lazarus
mailing list