Вот мой совет по использованию холста в компонентах собственного приготовления:
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 элементу
управления. Также, важно перекрытие вашего конструктора и деструктора, чтобы
убедиться в том, что они действительно вызываются.
|