How to use a TControlCanvas in a component (Views: 706)
Problem/Question/Abstract: How to use a TControlCanvas in a component Answer: TScrollingPaintBox = class(TScrollingWinControl) private FCanvas: TCanvas; public constructor Create(aOwner: TComponent); override; destructor Destroy; override; property Canvas: TCanvas read FCanvas; end; constructor TScrollingPaintBox.Create(AOwner: TComponent); begin inherited Create(AOwner); FCanvas := TControlCanvas.Create; TControlCanvas(FCanvas).Control := Self; end; destructor TScrollingPaintBox.Destroy; begin FCanvas.Free; inherited Destroy; end; A TControlCanvas is important because it creates a DC that belongs to the HWND of the control. Also, override is important on your constructor and destructor to ensure that they are actually called. |