有TDateTimePicker,如何做一个TDBDateTimePicker啊?就像TEdit和TDBEdit一样 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以参考DBEdit是如何实现的? 才发布的:http://www.2ccc.com/article.asp?articleid=3399 我在大富翁上拷了一个:来自:GZCYP, 时间:2001-11-13 11:14:00, ID:726872 DBDateTimePicker的源代码,安装就行了。别忘记给分。Ha!Ha!/////////////////////////////////////////////////unit DBDateTimePicker;{TDBDateTimePicker - v1.0}interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, DB, DBCtrls;type TDBDateTimePicker = class(TDateTimePicker) private { Private declarations } FAllowChange: Boolean; FDataLink: TFieldDataLink; function GetDataField: string; function GetDataSource: TDataSource; procedure SetDataField(const Value: string); procedure SetDataSource(Value: TDataSource); procedure DataChange(Sender: TObject); procedure Change(Sender: TObject); procedure CMExit(var Message: TWMNoParams); message CM_EXIT; protected { Protected declarations } public { Public declarations } constructor Create(Aowner: TComponent); override; destructor Destroy; override; published { Published declarations } property DataField: string read GetDataField write SetDataField; property DataSource: TDataSource read GetDataSource write SetDataSource; end;procedure Register;implementationconstructor TDBDateTimePicker.Create(AOwner: TComponent);begin inherited Create(AOwner); FDataLink:=TFieldDataLink.Create; FDataLink.OnDataChange:=DataChange; OnChange:=Change; FAllowChange:=True;end;destructor TDBDateTimePicker.Destroy;begin FDataLink.OnDataChange:=nil; FDataLink.Free; inherited Destroy;end;procedure TDBDateTimePicker.DataChange(Sender: TObject);begin if FDataLink.Field=nil then Self.Date:=0 else if FAllowChange then Self.Date:=FDataLink.Field.AsDateTime;end;procedure TDBDateTimePicker.Change(Sender: TObject);begin with FDataLink do begin FAllowChange:=False; if not editing then Edit; end; FDatalink.Field.AsDateTime:=self.Date; FAllowChange:=True;end;procedure TDBDateTimePicker.CMExit(var Message: TWMNoParams);begin try FDataLink.UpdateRecord; except on Exception do SetFocus; end; inherited;end;function TDBDateTimePicker.GetDataField: string;begin Result:=FDataLink.FieldName;end;function TDBDateTimePicker.GetDataSource: TDataSource;begin Result:=FDataLink.DataSource;end;procedure TDBDateTimePicker.SetDataField(const Value: string);begin FDataLink.FieldName:=Value;end;procedure TDBDateTimePicker.SetDataSource(Value: TDataSource);begin FDataLink.DataSource:=Value;end;procedure Register;begin RegisterComponents('Data Controls', [TDBDateTimePicker]);end;end. 我的Delphi已经入门了,刚刚看完了《Delphi完美经典》,下一步应该看什么书? 寻QQ群发高手合作,日赚万元 一个读写表格宽度的奇怪问题: Socket编程,在运行过程,会出现Asynchronous Socket Error 10053?错误怎么处理 关于在窗体内拖动控件控件的问题。 我老师的一道delphi数学题,高分请高人解答!谢谢! delphi 怎么用com+的技术? 怎样建立和调用资源文件 Delphi中的相对路径 关于注册表的一点问题。 有没有人知道SCPanels头文件TSCAdvPanel类属于哪个控件? 读取和设置文件属性中Custom页
http://www.2ccc.com/article.asp?articleid=3399
来自:GZCYP, 时间:2001-11-13 11:14:00, ID:726872
DBDateTimePicker的源代码,安装就行了。别忘记给分。Ha!Ha!
/////////////////////////////////////////////////
unit DBDateTimePicker;{TDBDateTimePicker - v1.0}
interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, DB, DBCtrls;type
TDBDateTimePicker = class(TDateTimePicker)
private
{ Private declarations }
FAllowChange: Boolean;
FDataLink: TFieldDataLink;
function GetDataField: string;
function GetDataSource: TDataSource;
procedure SetDataField(const Value: string);
procedure SetDataSource(Value: TDataSource);
procedure DataChange(Sender: TObject);
procedure Change(Sender: TObject);
procedure CMExit(var Message: TWMNoParams); message CM_EXIT;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(Aowner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property DataField: string read GetDataField write SetDataField;
property DataSource: TDataSource read GetDataSource write SetDataSource;
end;procedure Register;implementationconstructor TDBDateTimePicker.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FDataLink:=TFieldDataLink.Create;
FDataLink.OnDataChange:=DataChange;
OnChange:=Change;
FAllowChange:=True;
end;destructor TDBDateTimePicker.Destroy;
begin
FDataLink.OnDataChange:=nil;
FDataLink.Free;
inherited Destroy;
end;procedure TDBDateTimePicker.DataChange(Sender: TObject);
begin
if FDataLink.Field=nil then Self.Date:=0
else
if FAllowChange then Self.Date:=FDataLink.Field.AsDateTime;
end;procedure TDBDateTimePicker.Change(Sender: TObject);
begin
with FDataLink do begin
FAllowChange:=False;
if not editing then Edit;
end;
FDatalink.Field.AsDateTime:=self.Date;
FAllowChange:=True;
end;procedure TDBDateTimePicker.CMExit(var Message: TWMNoParams);
begin
try
FDataLink.UpdateRecord;
except
on Exception do SetFocus;
end;
inherited;
end;function TDBDateTimePicker.GetDataField: string;
begin
Result:=FDataLink.FieldName;
end;function TDBDateTimePicker.GetDataSource: TDataSource;
begin
Result:=FDataLink.DataSource;
end;procedure TDBDateTimePicker.SetDataField(const Value: string);
begin
FDataLink.FieldName:=Value;
end;procedure TDBDateTimePicker.SetDataSource(Value: TDataSource);
begin
FDataLink.DataSource:=Value;
end;procedure Register;
begin
RegisterComponents('Data Controls', [TDBDateTimePicker]);
end;end.