63 lines
1.3 KiB
ObjectPascal
63 lines
1.3 KiB
ObjectPascal
|
unit CustomDrawControl;
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
Classes, Controls, Messages, Windows, Graphics;
|
||
|
|
||
|
type
|
||
|
TCustomDrawControl = class(TCustomControl)
|
||
|
private
|
||
|
FOnPaint: TNotifyEvent;
|
||
|
|
||
|
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
|
||
|
// procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
|
||
|
// procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
|
||
|
protected
|
||
|
|
||
|
public
|
||
|
procedure Paint; override;
|
||
|
|
||
|
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
|
||
|
property Canvas;
|
||
|
|
||
|
property OnDblClick;
|
||
|
property OnKeyDown;
|
||
|
// property OnKeyPress;
|
||
|
// property OnKeyUp;
|
||
|
property OnMouseDown;
|
||
|
property OnMouseMove;
|
||
|
property OnMouseUp;
|
||
|
property OnMouseWheel;
|
||
|
// property OnMouseWheelDown;
|
||
|
// property OnMouseWheelUp;
|
||
|
property OnEnter;
|
||
|
property OnExit;
|
||
|
end;
|
||
|
|
||
|
implementation
|
||
|
|
||
|
procedure TCustomDrawControl.WMEraseBkgnd(var Message: TWMEraseBkgnd);
|
||
|
begin
|
||
|
Message.Result := 1;
|
||
|
end;
|
||
|
|
||
|
{
|
||
|
procedure TCustomDrawControl.WMSetFocus(var Message: TWMSetFocus);
|
||
|
begin
|
||
|
Invalidate;
|
||
|
end;
|
||
|
|
||
|
procedure TCustomDrawControl.WMKillFocus(var Message: TWMKillFocus);
|
||
|
begin
|
||
|
Invalidate;
|
||
|
end;
|
||
|
}
|
||
|
|
||
|
procedure TCustomDrawControl.Paint;
|
||
|
begin
|
||
|
if Assigned(FOnPaint) then FOnPaint(Self);
|
||
|
end;
|
||
|
|
||
|
end.
|