Re: [Lazarus] Owner of a TCanvas

2015-07-27 Thread Flávio Etrusco
On Mon, Jul 27, 2015 at 6:31 AM, Xiangrong Fang xrf...@gmail.com wrote:

 Hi There,

 Can I somehow get the object which owns a Canvas? e.g.:

 function GetCanvasOwner(ACanvas: TCanvas): TObject;
 begin
Result := ACanvas.Owner;
 end;
 pb := TPaintBox(GetCanvasOwner(pb.Canvas);

 Thanks!
 Xiangrong


You can if the canvas is a TControlCanvas. Luckly TGraphicControl.Canvas is
a TControlCanvas, thus one can do e.g.:

function GetCanvasOwner(ACanvas: TCanvas): TControl;
begin
   Result := (ACanvas as TControlCanvas).Control;
end;

Regards,
Flávio
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


Re: [Lazarus] Owner of a TCanvas

2015-07-27 Thread Howard Page-Clark

On 27/07/2015 10:31, Xiangrong Fang wrote:

Hi There,

Can I somehow get the object which owns a Canvas? e.g.:

function GetCanvasOwner(ACanvas: TCanvas): TObject;
begin
Result := ACanvas.Owner;
end;
pb := TPaintBox(GetCanvasOwner(pb.Canvas);


A TCanvas does not have a built-in Owner property. It descends from 
TPersistent, but not from TComponent, the class that introduces Owner 
and ownership.



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus


[Lazarus] Owner of a TCanvas

2015-07-27 Thread Xiangrong Fang
Hi There,

Can I somehow get the object which owns a Canvas? e.g.:

function GetCanvasOwner(ACanvas: TCanvas): TObject;
begin
   Result := ACanvas.Owner;
end;
pb := TPaintBox(GetCanvasOwner(pb.Canvas);

Thanks!
Xiangrong
--
___
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus