📄 rsgdatetimepicker.pas
字号:
unit RsgDateTimePicker;
interface
uses
SysUtils, Classes, Controls, StdCtrls,Db,dbctrls,Graphics,comctrls;
type
TRsgDateTimePicker = class(TDateTimePicker)
private
FDbEdit:TDBEDit;
FDatasource:TDataSource;
FDataField:string;
{ Private declarations }
procedure setdatasource(value:TDataSource);
procedure setdatafield(value:string);
protected
procedure datasourcechange(sender:Tobject; Field: TField);
procedure pickerchange(sender:Tobject);
{ Protected declarations }
public
destructor Destroy; override;
constructor Create(AOwner: TComponent); override;
{ Public declarations }
published
property DataSource:TDataSource read FDataSource write setdatasource;
property DataField:string read FDataField write setdatafield;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('DbAnyWhere', [TRsgDateTimePicker]);
end;
destructor TrsgDateTimePicker.Destroy;
begin
inherited Destroy;
freeandnil(FdbEdit);
end;
constructor TrsgDateTimePicker.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FDbEdit:=TDbedit.Create(nil);
self.Color:=clSkyBlue;
end;
procedure TrsgDateTimePicker.setdatasource(value:TDataSource);
begin
FDataSource:=value;
FDbedit.DataSource:=value;
if Fdbedit.DataSource<>nil then
begin
fdbedit.DataSource.OnDataChange:=datasourcechange;
self.OnChange:=pickerchange;
end else
begin
fdbedit.DataSource.OnDataChange:=nil;
self.OnChange:=nil;
end;
end;
procedure TrsgDateTimePicker.setdatafield(value:string);
begin
FDataField:=value;
Fdbedit.DataField:=value;
end;
procedure TrsgDateTimePicker.datasourcechange(sender:Tobject; Field: TField);
begin
self.DateTime:=fdbedit.Field.AsDateTime;
end;
procedure TrsgDateTimePicker.pickerchange(sender:Tobject);
begin
fdbedit.Field.AsDateTime:=self.DateTime;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -