Du machst einfach Dinge sichtbar die nicht sichtbar sind, oder implementiert neue Methoden ohne gleich eine Komponente schreiben zu müssen. Das Prinzip ist dasselbe. Ein Beispiel wäre hier ein Panel auf dessen Canvas man normalerweise nicht direkt zugreifen kann und welches kein OnPaintEvent hat.
Wenn man das ganze zwischendurch doch mal brauchen sollte kann man sowas machen:
Delphi-Quellcode:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TPanel =
Class(ExtCtrls.TPanel)
private
FPaint: TNotifyEvent;
protected
Procedure Paint;
override;
public
Property Canvas;
Property OnPaint: TNotifyEvent
read FPaint
Write FPaint;
End;
TForm6 =
class(TForm)
Panel1: TPanel;
procedure FormCreate(Sender: TObject);
private
procedure PanelPaint(Sender: TObject);
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
{ TPanel }
procedure TPanel.Paint;
begin
inherited;
if Assigned(FPaint)
then
FPaint(self);
end;
procedure TForm6.PanelPaint(Sender: TObject);
begin
TPanel(Sender).Canvas.Ellipse(0, 0, 100, 100);
end;
procedure TForm6.FormCreate(Sender: TObject);
begin
Panel1.OnPaint := PanelPaint;
end;
end.