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; |
TControlCanvas важен, поскольку он создает DC, который принадлежит HWND элементу управления. Также, важно перекрытие вашего конструктора и деструктора, чтобы убедиться в том, что они действительно вызываются. [001634]