Вывод текста на родительском элементе управления



Свойство 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;


Далее: Затенить компонент »»