说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

制作用于日期时间型字段的DELPHI数据感知控件

HTML文档下载 WORD文档下载 PDF文档下载
制作用于日期时间型字段的DELPHI数据感知控件

用DELPHI开发C/S应用方便而快速,因为它拥有大量易于使用的数据访问和数据感知控件。然而万事总是难以完美,DELPHI的DBEdit控件用于输入日期时间型字段却很不方便,为了改善这一缺点,笔者开发了一个DBDateTime数据感知控件,大大方便了时间和日期的输入。

创建一个构件时,最重要的一步是选择正确的父类,这样可以减少代码的编写。DELPHI的构件库中已有一个TDateTimePicker构件,可以以下拉日历或利用SpinButton递增、递减的方式方便地输入和改变日期、时间,但它没有数据感知的能力。因此,我们可以以它为父类,派生出一个新的控件,加上能与数据集通信的数据感知功能。

数据感知控件通过DataLink对象与DataSource进行交互,所以为控件增加数据感知能力需要创建一个TDataLink(或其派生类)对象作为控件的成员,并为控件创建公开的DataField和DataSource属性;然后需响应TDataLink对象的OnDataChange和OnUpdateData事件。下面是控件的主要源代码,并带有相应的注释:

{定义从TDateTimePicker派生的TDBDateTime类。注意,在单元接口的Uses中应加入DB,DBCTRLS引用}type

TDBDateTime=class(TDateTimePicker)

private

FDataLink:TFieldDataLink;

//TFieldDataLink是TDataLink的派生类,处理单个字段与DataSource的交互

procedureDataChange(sender:Tobject);

//当DataSet的记录改变(如浏览记录)时触发OnDataChange事件,DataChange将作为该事件的事件处理句柄

procedureUpdateData(sender:Tobject);

//更新DataSet前触发OnUpdateData事件,UpdateData将作为该事件的事件处理句柄

functionGetDataSource:TDataSource;

procedureSetdataSource(value:TDataSource);

FunctionGetDataField:String;

procedureSetdataField(Value:String);

procedureCMexit(varMessage:TCMExit);message CM_EXIT;//当控件失去焦点时触发CM_EXIT消息

protected

procedureChange;override;//控件中日期、时间改变时触发OnChange事件

procedureNotification(AComponent:TComponent;

Operation:Toperation);override;

//当某一控件从FORM上移走时DELPHI的IDE调用该方法通知其它控件

public

constructorCreate(AOwner:Tcomponent);override;

destructorDestroy;override;

published

propertyDataSource:TDataSourcereadGetDataSource

writeSetDataSource;//为控件增加DataSource属性,使它能与DataSource构件连接

propertyDataField:StringreadGetDataField

writeSetDataField;

end;//为控件增加DataField属性,

使它指向代表某一字段的TField对象

procedureRegister;//注册构件

implementation

procedureTDBDateTime.CMExit;

begin

try

FDataLink.UpdateRecord;

//控件失去焦点时更新DataSet,这将触发OnUpdateData事件

except

Setfocus;

raise;

end;

DoExit;

end;

constructorTDBDateTime.Create(Aowner:Tcomponent);

begin

inheritedCreate(Aowner);

//创建DataLink对象,挂接OnDataChange、

OnUpdateData事件处理句柄

FDataLink:=TFieldDataLInk.Create;

FDataLink.OnDataChange:=DataChange;

FDataLink.OnUpdateData:=Updatedata;

end;

DestructorTDBDateTime.Destroy;

begin

FDataLink.OnDataChange:=nil;

FDataLink.OnUpdateData:=nil;

FDataLink.Free;

inheritedDestroy;

end;

functionTDBDateTime.GetdataSource:TdataSource;

begin

result:=FDataLink.DataSource;

end;

ProcedureTDBDateTime.SetDataSource(Value:TDataSource);

begin

FDataLink.DataSource:=Value;

end;

functionTDBDateTime.GetDatafield:String;

begin

result:=FDataLink.FieldName;

end;

procedureTDBDateTime.SetDataField(value:String);

begin

FdataLink.FieldName:=value;

end;

procedureTDBDateTime.DataChange(Sender:Tobject);

begin

DateTime:=now;

//若控件连了活动的DataSet则数据集变动时

控件显示当前记录的相应字段值

ifFDataLink.Field nilthen

ifFDataLink.Field.Text ''then

DateTime:=FDatalink.Field.AsDateTime;

end;

ProcedureTDBDateTime.UpdateData(sender:Tobject);

begin

FDatalink.Field.AsDateTime:=DateTime;

//用控件中的日期、时间更新相应字段

end;

procedureTDBDateTime.Change;

begin

//当用户改变了控件中的内容时将DataSet置为编辑状态

FDataLink.Modified;

ifnotFDataLink.Editingthen

FdataLink.Edit;

inheritedChange;

end;

procedureTDBDateTime.Notification(AComponent:

TComponent;Operation:TOperation);

begin

inheritedNotification(Acomponent

Operation);

//当与控件相连的TdataSource

被删除时将控件的DataSource属性置为空

if(Operation=opRemove)and(FDataLink nil)

and(AComponent=Datasource)then

DataSource:=nil;

end;

procedureRegister;

begin

RegisterComponents('DataControls'

[TDBDateTime]);//控件注册后安装于DataControls页

end;

end.

本控件安装后能以下拉日历和递 增递减方式改变数据库的日期时间型字段,并能以长、短两种格式显示日期,方便实用。控件在DELPHI3、DELPHI4中使用安全可靠。

ConditionVariable Android线程同步 Android软件开发方向指导 ArrayList LinkedList Set HashMap介绍 PermissionInfo Android权限枚举方法 Android上HTTP协议通讯状态获取 Android开发需要自己完善的类库总结 Android的ListView控件滚动时背景问题 GestureDetector手势识别类 - 进阶篇 MenuInflater Android菜单从xml创建方法 EditText输入提示你知道吗? Android布局Java代码构造法 Android全屏设置代码 测试Android软件性能主要方法 自定义Android标题栏TitleBar布局 获取Android屏幕方向及键盘状态 Android平台XML解析库功能不完整 GestureDetector手势识别类 - 入门篇 不会Java或C,Android123告诉你还有选择 Splash Screen开场屏在Android中的实现 Android游戏开发性能改进要点 Android的Activity你知多少呢? JSONObject在Android上的应用 Android高性能文件类MemoryFile 判断Android文件名是否安全技巧 让你的Android程序兼容多种分辨率 Android Button按钮控件美化方法 Android堆内存也可自己定义大小 TextUtils类-Android字符串处理类 InputSream输入流转String字符串,Android开发工具类 Android中的正则表达式Regex使用 优化Dalvik虚拟机的堆内存分配 websphere怎么啦? 救急:query回写 想学C#,有啥好书?? 如何动态地获得一个组件的属性、方法并调用? 请帮我看看这个小的asp程序为什么不能被网页调用?IE说这个网页不能显示 失业,散分!!! c++ builder 如何引用access数据据库的图片字段(ole对象),我用TDBimage控件不能看 CSS滤镜的使用!! 共同关注 失业了,散分!!! 大家有没有看网络小说啊!能提供几个经典些给小弟参考参考么? 失败!!失败!!! 失业了,散分!!! 怎样在java的桌面程序里打开浏览器呢 DataGrid如何实现鼠标放上去改变颜色? Foxpro数据库中,可否导出oracle可以操作的表呢?大虾指点啊! 请问调用存储过程中一个输入参数为nvarchar(24)的时侯,我在asp中的输入怎么会报错? 失业了,散分!!! 华工科技开目软件集成公司怎么样? 失业了,散分!!! 失业了,散分!!! 失业了,散分!!! 我用update更新互联网上的数据库,总数大约有700多条,在更新过程中程序窗口没响应了,无法最大化,最小化,关闭,但进度条仍然在走,更 水园公务帖[2003.03.11——2003.03.17] 无人回答的帖子,再发一次。up有分 快去微软件聊天室了,开聊了。 from表单中的参数无法传递? 急!急!急!急!急!我安装Visual studio 6.0中文版不能够成功,是什么原因?? 关于Oracle的数据类型问题? 请问在vc中怎样创建Outlook对象 关于Cable Modem,高手指点。 毕业论文怎么作??????????? 新手送分(解决即给分) 天生爱吃冰激凌! 江湖告急!!!!! 整理 FAQ 的时候 为什么 总是出现 贴子内没有这个人的回复!!!:xxxxx 如何删除一段时间的记录?????(兄弟们帮帮我) 关于 Treeview控件,请高手指教。 推荐好书 Borland Delphi 6 中文企业版哪里有免费下载????????????????????500分 ADO中同一个Connection打开的RecordSet个数有没有限制? 我请教一个关于恢复数据库的问题!!!急急 关于特殊字符的问题!!!!!!!!! 要同时以cascade风格显示10个MessageBox对话框,请问有无可能? 如何用windows2000收发传真? yangjf接分 ASP.NET如何调用mschart asp.net中利用owc10生成了一个EXECL文件,但是不知道如何控制字体大小,及单元格的边框 数据库问题,请高手指点。 本人基础较差,刚刚学习c++,请教一个简单问题!!!! 为什么从左侧树状菜单进入论坛显示时 所有的 情形都是2月28时的贴子状况 地卫一当作卫星也太大了把?地卫一质量足够大,就能摆脱地球的束缚? 匀速直线运动能从位移时间图像上看出来吗?位移时间图像是一个不过原点的正比例函数,那么这个物体就一定做匀速直线运动吗?为什么不可能做匀速曲线运动? 居民小区内的汽车噪声影响居民生活应该怎么办? 用初二以下的科学知识解释,世博会各馆的成果字数越少越好 越简洁越好.至少10点成果啊. 计算 r1 和 r2 的功率 今天又是艳阳天作文怎么写啊?希望又高人写篇范文给我谢谢我都读不懂意思 两超市销售去年150万,今年170万,A超市销售今年比去年增15%,B超市销售今年比去年增10%,求A,B今销售 一汽车以20米\秒的速度向一山崖开进,途中鸣了一声笛,2秒后听到山崖传来回声.当司机听到回声时,汽车离山崖还有多远?初二物理,谢谢物理二 为什地势海拔越高天气越冷,低地反而热?比如云南西藏那些高地更接近太阳却最多20多度... 信天游除了是歌曲名之外,我对陕西的民族文化不是太了解, 一辆汽车以36km/h的速度向着山崖匀速行驶,途中鸣了一声笛,4秒钟后听到山崖传来回声,当司机听到回声时则司机听到回声时离山还有多少m? 离太阳越近不是越热吗?那为什么越高的地方却越冷?.我要一些实例. 麻烦你们请例举3例. 谢. 信天游的意思回答要求长篇大论 《诫子书》的:“读书好,好读书, 植物在白天表现为吸收二氧化碳,释放氧,晚上则相反这是因为 诸葛亮《诫子书》中的那句:年与时驰,“意与日去”还是“意与岁去”哪个对? 告诉我诫子书的主要意思 一块周长是32米的正方形花园,它的面积是多少 诸葛亮之《诫子书》的意思夫君子之行:静以修身,俭以养德.非淡泊无以明志,非宁静无以致远.夫学须静也,才须学也.非学无以广才,非静无以成学.慢则不能研精,险躁则不能理性.年与时驰,意 露排比公式的两个展开式具体用途吗?有没有小题拿来试试具体的公式非常不熟悉,不知道有没有必要那一些来练一练 一个正方形花园,周长是44米,如果每平方米种8棵月季花,需要种多少棵月季花. 《诫子书》表达中心意思的关键句是?《诫子书》表达中心意思的关键句是哪句?文章见下[b]“夫君子之行:静以修身,俭以养德.非淡泊无以明志,非宁静无以致远.夫学须静也,才须学也.非学无 原电池中,为什么电子不和OH-反应,而是和O2、水反应生成OH-呢? 关公赴会.打一歇后语 电脑中的G、MB、KB怎么读和怎么换算的 求物体漂浮中的露排比公式的得出过程我知道了漂浮情况下F浮=G物,可以得出ρ液gV排=ρ物gV物.可是露排比拓展公式怎么得出的1.(ρ液-ρ物)∶ρ液=V露∶V物   2. ρ物∶(ρ液-ρ物)=V排∶ 某雪山海拔900米处气温为20℃,海拔5895米气温为多少度?怎么算的? 诫子书的历史意义是什么有谁知道呀? 什么是露排比公式?与物体露出水面的部分有什么关系?有关于这的基础一点的题吗? 为什么海拔越高的地方,太阳越强烈反而有雪山. 下列实验设计和结论相符的是:A:将碘水倒入分液漏斗,加适量乙醇,振荡后静置,可将碘萃取到乙醇中 B:只要告诉我c项为什么错误就好B某气体能使湿润的红色石蕊试纸变蓝,该气体水溶液 谁给些露排比公式的相关题目啊!跪谢!尽量多点,最好是具有代表性的...... 计算:(b²/a)^-2=________ 计算:1÷(1/R1+1/R2)=____ 火车开越快空气阻力就越大吗? 一汽车以20m/s的速度向一山崖开进,途中鸣了一声笛,2s后听到从山崖传来回声,当司机听到回声时,汽车离山崖还有多远? 利用分解因式进行计算:mR1²+mR2²+mR3²,其中R1=20,R2=16,R3=12,m=3.14 跪求初中数学关于vod系统的课题研究内容!急需初中数学关于vod系统的课题研究的内容,头大了也想不出来, 一汽车以20m/秒的速度驶向一座山崖开进,途中鸣了一声笛 R1 R2分别表示了哪个部分的电阻. 已知公式:p=m/v,那么m=?,v=? 匀速直线运动的位移——时间图像的特点是 一滴水中有几个H2O? 2.一汽车以20米/ 秒的速度向一山崖开进,途中鸣了一声笛,2 秒钟后听到山崖传来回声,当司机听到回声时 父亲是秃头儿子就一定会是秃头吗? 计算H2O在水中的摩尔浓度计算汞原子在单质汞的摩尔浓度计算CO2在纯CO2中的摩尔浓度(假设是理想的气体)当一个液体转换为气体的时候 它将会膨胀多少? 一辆汽车匀速直线运动,在离山崖780米处鸣了一声笛,4秒后听到回声, 初中语文课文中适用于微型课堂的课有哪些呢?给些建议, 水芝澳水中美白系列中洁面后是先用美白紧致啫喱还是先用水中美白月见草精华露 消失怎么造句 父亲秃头儿子一定秃头吗? 两大超市销售150万美元,去年170万元,一家超市今年的销售额比去年同期增长15%,B超市今年的销售额比去年同期增长,同比增长10%,分别获得两个超市销售吗?(使用在一个未知的方程) 用出现和消失造句 爷爷秃头,爸爸秃头,儿子会吗 将r1和r2串联,接在36v的电源上时,电路中的电流为4a,将r1和r2并联,接在36v电源上时将R1和R2串联,接在36V的电源上时,电路中的电流为4A,将R1和R2并联,接在36V电源上时,干路中的电流为18A,且R1>R2,求R1 毁灭造句 U=I*(R1+R2/2)=0.3*(10+R2/2) U=i*(R1+R2)=0.2*(10+R2)计算U与R2值 R1和R2并联接入电路,两端所加电压时36V,如果R2是80Ω,R1是100Ω,求电路的总电流? 只知道一个行星的质量M,求卫星脱离它束缚的最大速度 x-t图是倾斜直线的一定是匀速直线运动吗 x是位移 t是时间.可不可以控制品均速率使匀速曲线运也是倾斜直线 关于居民住宅区噪声污染的指标?白天多少晚上多少?1.这个分贝值是多少?2.关于这个分贝值是如何测量,是在小区门口测量?还是在具体小区哪个方位测量? 浙江一对夫妻无证倒卖香烟 涉案283浙江党员教育云平台开通 党员教育冲上监察部通报10起破坏生态环境责任追究美国疑监听默克尔电话 德国外长召见美也门石油收入锐减经济堪忧欧洲政治联盟计划受挫俄总理七小时安徽行:听民乐品徽茶 在俄罗斯总理梅德韦杰夫访问安徽包公祠(俄总理参观包公祠 向俄国推介包公(图也门一男子烧死15岁女儿 只因其与未美一公司将开发氦气球太空游 游客可观美观测到迄今最古老星系 距地球131澳琴师自称造出完美小提琴 可与世界名德防长批评美国监控传闻 称欧美关系将泰国一巴士坠山沟致21死 司机驾驶俄公交炸弹袭击或引发连环恐袭 索契冬挪威销毁叙化武受美国热捧 坦言国内压也门一男子烧死15岁女儿 只因其与未日本6名女性涉嫌在网络上上传猥亵视频澳洲一名男子涉嫌逼迫未婚妻致其死亡接美观测到迄今最古老星系 距地球131《熊出没》打造亲子卡通陈一冰晒富二代女友比伯 赛琳娜第N次旧情复燃中奖啦!有木有!韩现逆天“后脑勺整形”扁头“修理”变头奖7注奖金7万安全岛有了,安全岛法案呢?雅安灾区,寒冬中需要更多温暖剪不断理还乱周慧敏倪震婚姻告急?盲人上大学,梦想何时照进现实2013中国公益关键词之一:透明美翘臀辣妹引百万粉丝追捧公益力量1.36亿新年迎来亿元奖池中奖啦!有木有!分类信息1708项关爱活动温暖鹏城“深大甜美校花”温心演绎韩式纯爱马年生肖邮票首发 价格就地涨10倍(第30届中国·哈尔滨国际冰雪节5日开人民日报:美国该醒醒了 应自问还能管
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘