Свойство Canvas в TCustomControl существует, но оно защищено.
Поскольку свойство canvas инкапсулирует windows HDC (Canvas.Handle),
вы можете создавать объект TCanvas и назначать через свойство Handle
контекст устройства элементу управления, на котором вы хотите
рисовать.
Для примера:
procedure AControl.DrawLabel(ACaption: TCaption);
var
ACanvas: TCanvas;
DC: HDC;
begin
ACanvas := TCanvas.Create;
try
WindowHandle := parent.Handle;
DC := GetDeviceContext(WindowHandle);
ACanvas.Handle := DC;
with ACanvas do
begin
end;
ACanvas.Handle := 0;
ReleaseDC(WindowHandle, DC);
finally
ACanvas.free;
end;
end;
|
|