2005-09-15 10:23:32 -04:00
|
|
|
unit CustomDrawControl;
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
|
|
|
Classes, Controls, Messages, Windows, Graphics;
|
|
|
|
|
|
|
|
type
|
|
|
|
TCustomDrawControl = class(TCustomControl)
|
|
|
|
private
|
|
|
|
FOnPaint: TNotifyEvent;
|
2005-09-25 12:16:44 -04:00
|
|
|
FOnLeave: TNotifyEvent;
|
2005-09-15 10:23:32 -04:00
|
|
|
|
|
|
|
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;
|
2005-09-21 09:42:24 -04:00
|
|
|
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
|
|
|
|
procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
|
2005-09-18 09:26:14 -04:00
|
|
|
procedure WMGetDlgCode(var Message: TMessage); message WM_GETDLGCODE;
|
2005-09-25 12:16:44 -04:00
|
|
|
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
|
2005-09-15 10:23:32 -04:00
|
|
|
protected
|
|
|
|
|
|
|
|
public
|
|
|
|
procedure Paint; override;
|
|
|
|
|
|
|
|
property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
|
|
|
|
property Canvas;
|
|
|
|
|
|
|
|
property OnDblClick;
|
|
|
|
property OnKeyDown;
|
|
|
|
// property OnKeyPress;
|
2005-09-21 09:42:24 -04:00
|
|
|
property OnKeyUp;
|
2005-09-15 10:23:32 -04:00
|
|
|
property OnMouseDown;
|
|
|
|
property OnMouseMove;
|
|
|
|
property OnMouseUp;
|
|
|
|
property OnMouseWheel;
|
|
|
|
// property OnMouseWheelDown;
|
|
|
|
// property OnMouseWheelUp;
|
|
|
|
property OnEnter;
|
|
|
|
property OnExit;
|
2005-09-25 12:16:44 -04:00
|
|
|
property OnMouseLeave: TNotifyEvent read FOnLeave write FOnLeave;
|
2005-09-15 10:23:32 -04:00
|
|
|
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
|
2005-09-21 09:42:24 -04:00
|
|
|
if assigned(OnExit) then OnExit(self);
|
2005-09-15 10:23:32 -04:00
|
|
|
Invalidate;
|
|
|
|
end;
|
|
|
|
|
2005-09-18 09:26:14 -04:00
|
|
|
procedure TCustomDrawControl.WMGetDlgCode(var Message: TMessage);
|
|
|
|
begin
|
|
|
|
inherited;
|
|
|
|
Message.Result := Message.Result or DLGC_WANTARROWS;
|
|
|
|
end;
|
|
|
|
|
2005-09-25 12:16:44 -04:00
|
|
|
procedure TCustomDrawControl.CMMouseLeave(var Message: TMessage);
|
|
|
|
begin
|
|
|
|
if Assigned(FOnLeave) then FOnLeave(Self);
|
|
|
|
end;
|
|
|
|
|
2005-09-15 10:23:32 -04:00
|
|
|
procedure TCustomDrawControl.Paint;
|
|
|
|
begin
|
|
|
|
if Assigned(FOnPaint) then FOnPaint(Self);
|
|
|
|
end;
|
|
|
|
|
|
|
|
end.
|