У всех компонентов, порожденных от TCustomControl, имеется свойство Canvas типа TCanvas.
Грубо говоря, это аналог TDC из OWL. Те операции, которые нельзя выполнить с помощью методов TCanvas, можно выполнить с помощью WinAPI. Для этого у обьектов класса TCanvas имеется свойство Handle - это и есть Хэндл Дисплейного Контекста ОС Windows (HDC), который необходим графическим функциям WinAPI.
Если свойство Canvas недоступно, Вы можете достучаться до него созданием потомка и переносом этого свойства в раздел Public.
{ Example. We recommend You to create this component
through Component Wizard.
In Delphi 1 it can be found as 'File|New Component...', and
can be found
as 'Component|New Component...' in Delphi 2 or above. }
type
TcPanel = class(TPanel)
public
property Canvas;
end;
Akzhan Abdulin
У меня есть маленькое замечание.
Если у объекта нет свойства Canvas (у TDBEdit вpоде-бы нет), то, по кpайней меpе в D3, можно использовать класс TControlCanvas. Пpимеpное использование:
var
cc: TControlCanvas;
...
cc := TControlCanvas.Create;
cc.Control := yourControl;
...
и далее как обычно можно использовать методы Canvas.
Andrew Velikoredchanin
(2:5026/29.3)