Как рисовать на компоненте, если свойство Canvas недоступно?

Материал из DRKB


У всех компонентов, порожденных от TCustomControl, имеется свойство Canvas типа TCanvas. Если свойство 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;


Author: Akzhan Abdulin (2:5040/55)



Если у объекта нет свойства Canvas (у TDBEdit, вpоде-бы нет), по кpайней меpе в D3 можно использовать класс TControlCanvas. Пpимеpное использование:

var
  cc: TControlCanvas;
begin
  cc := TControlCanvas.Create;
  cc.Control := youControl;
end;


и далее как обычно можно использовать методы Canvas.

Author: Andrew Velikoredchanin (2:5026/29.3)
ID: 03742