📄 sdbedit.pas
字号:
unit sDBEdit;
{$I sDefs.inc}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, sConst, sStyleEdits;
type
TsDBEdit = class(TDBEdit)
private
procedure WMNCCalcSize (var Message: TWMNCCalcSize); message WM_NCCALCSIZE;
procedure WMNCPaint (var Message: TMessage); message WM_NCPAINT;
protected
FsStyle : TsStyle;
procedure WndProc (var Message: TMessage); override;
procedure CreateWnd; override;
public
constructor Create(AOwner:TComponent); override;
destructor Destroy; override;
procedure Invalidate; override;
published
property sStyle: TsStyle read FsStyle write FsStyle;
end;
implementation
{ TsDBEdit }
constructor TsDBEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
sStyle := TsStyle.Create(Self);
sStyle.COC := COC_TsDBEdit;
BorderStyle := bsNone;
ParentFont := True;
AutoSize := False;
Ctl3D := False;
Height := 21;
OnKeyDown := sStyle.onKeyDown;
end;
procedure TsDBEdit.CreateWnd;
begin
inherited;
end;
destructor TsDBEdit.Destroy;
begin
FreeAndNil(FsStyle);
OnKeyDown := nil;
inherited Destroy;
end;
procedure TsDBEdit.Invalidate;
begin
BorderStyle := bsNone;
Color := sStyle.GetActiveColor;
if (csDesigning in ComponentState) and Assigned(FsStyle) then begin
FsStyle.BGChanged := True;
end;
if Assigned(Parent) then sStyle.redrawBorder;
inherited;
end;
procedure TsDBEdit.WMNCCalcSize(var Message: TWMNCCalcSize);
begin
inherited;
InflateRect(Message.CalcSize_Params^.rgrc[0], -3, -3);
end;
procedure TsDBEdit.WMNCPaint(var Message: TMessage);
begin
if (csDestroying in ComponentState) or (csLoading in ComponentState) then Exit;
Color := sStyle.GetActiveColor;
inherited;
sStyle.RedrawBorder;
end;
procedure TsDBEdit.WndProc(var Message: TMessage);
begin
if Assigned(FsStyle) then FsStyle.WndProc(Message);
if Message.Result <> 1 then inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -