• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

一名Delphi程序员的开发习惯(转)       有关开发习惯的 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  1. procedure TFrmLogin.FormCreate(Sender: TObject);<br/>begin<br/>Caption := csLoginTitle;<br/>....<br/>end;  

五.关于Format函数的使用
有iYear,iMonth,iDay三个数据,要显示诸如“生日:1976/3/18”这样的信息,你通常怎么做?使用

  1. s := ‘生日:’+IntToStr(iYear)+’.’+IntToStr(iMonth)+’.’+IntToStr(iDay);   

吗?这样实在是太累了。我的习惯是,在unt<工程名>Consts.Pas中增加一个常量

  1. csBirthDayFormat = ‘生日:%d/%d/%d’  

来保存显示格式,然后使用

  1. s := Format(csBirthDayFormat, [iYear, iMonth, iDay]);  

这样的语句完成数据的拼装。这么做的好处显而易见,那就是你只需在一个地方维护数据的显示格式。
Format函数功能强大,我对它很是推崇,你呢?
六.关于注册表或者Ini文件的存储
原先访问注册表我通常使用TRegistry,而访问Ini文件通常使用TIniFile。这两个类的使用方法各不相同,因此想要使用相同的代码既能访问注册表又能访问Ini文件几乎是不可能的。真头疼啊!
终于我发现了救星!那就是TRegistryIniFile类。查看Registry单元,我们发现,TRegistryIniFile继承自TCusomIniFile。而TIniFile也是继承于TCusomIniFile。因此,使用抽象类TCusomIniFile来实现对注册表或者Ini文件的访问便是一举两得了。比如:

  1. var<br/>csmInifile: TCusomIniFile;<br/>begin<br/>if blUseIniFile then//如果使用Ini文件<br/>csmInifile:= TIniFile.Create(csRootKey)<br/>else<br/>csmInifile:= TRegistryIniFile.Create(csRootKey);<br/&gt;//接着就可以使用csmIniFile对Ini文件进行访问,<br/>//或者用类似访问Ini文件的方式访问注册表。<br/>  


七.关于TStream流以及TFileStream,TMemoryStream等等
TFileStream和TMemoryStream都继承自抽象类TStream,这意味着我们可以使用一套代码完成对文件和内存的存取操作。因此,定义一些接口的时候,我往往倾向于将参数的类型定义为抽象类,而不是具体类。比如,要完成保存功能的一个函数,定义成

  1. function Save(AStream: TStream): Boolean;  


就比定义成

  1. function Save(AStream: TFileStream): Boolean;  


要灵活的多。
前一个定义是具有前瞻性的,因为它可以适用于以后可能出现的新型态的流。而后一个定义只适用于TFileStream这种流(当然包括TFileStream的子类),呆板多了。
我的习惯:如果存在抽象类,那么尽量将参数定义为抽象类的类型,毕竟,我们无法预见未来。
八.多使用TAction
Delphi 4以后引入了Action的概念,并且在Standard组件栏中增加TActionList组件。使用Action的好处是,控件状态同步的烦恼从此一扫而空!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi 7.0开发技巧集锦 (转)发布时间:2022-07-18
下一篇:
[转载]深入Delphi编程发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap