2011. március 27., vasárnap

How to use a TControlCanvas in a component


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.

Nincsenek megjegyzések:

Megjegyzés küldése