Delphi 常用文档资料之一.doc_第1页
Delphi 常用文档资料之一.doc_第2页
Delphi 常用文档资料之一.doc_第3页
Delphi 常用文档资料之一.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Delphi 常用文档资料之一 Paradox数据类型和长度表符号大小类型说明A(Alpha)1255字符通常用于表示文本和数字N(Number)数字表示浮点数$(Money)货币用货币的格式来表示数字S(Short)短整型用2个字节表示整数(-32768+32767)I(Long_integer)长整型用四个字节来表示整数#(BCD)032BCD用2进制编码表示十进制D(Date)日期用形式表示年、月、日T(Time)时间用来表示时间(Timestamp)时间标记表示时间和日期M(Memo)!240备注用来表示长文本F(Formatted memo)0240格式化文本用来表示格式化文本G(Grophic)0240图形用来表示图片O(OLE)0240OLE用来表示OLE对象L逻辑用来表示TRUE和FALSE(真和假)B(Binary)二进制存于.Mb文件的BOLOBS+自动增量常整数自动增加Y(Bytes)1255字节存于.db文件的二进制数有关开发习惯的一些想法,如鲠在喉,不吐不快。究其发贴动机,当然不排除有骗取参与分的可能,但另一方面,也希望能给同行(念Xing)者提供一些建议,或者参考(希望不是误人子弟)。同时,也希望各位能够就我的这些陋习,发表一点看法,给出批评和指正的意见。谢谢。 一建立工程目录首先,第一步要做的,当然是给新项目建一个单独的目录(别笑)。目录名称与项目名称同名,或者另取一个也可,只要清楚、简练。然后,在此目录中创建以下各个目录:用来存放该项目相关的开发文档(需求说明,概要设计,详细设计等等等等);:用来存放Delphi源程序中的”.Dpr”,”.Pas”,”.Dfm”等文件;:该目录中存放”.Dcu”文件,将.Pas与.Dcu文件分开存放只是为了让Source目录的内容更加清楚一些;:存放工程的输出文件,比如”.Exe”,”.Dll”或者”.Ocx”等等;:用来存放日志文件;通常在这个目录中我会放一个”程序员日志.Txt”文件。:当然是存放工程中用到的图片的目录了。一般情况下,这个目录是少不了的。假如还用到其他资源,那么也一样建立各自的目录,比如Wav,比如Avi等等。二设置工程选项在Delphi中创建一个新的工程,将此工程保存到Source目录中,同时:a. 选一个耐看的,与项目有些联系的图标作为这个工程的图标。当然,这个图标可能只是临时用用的,但是总要比Delphi默认的那个难看的要好才行,要不然,怎么对得起自己?b. 将Project Options - Directories/Conditionals页面中的Output Directory设置为Bin目录;c. 将Unit output Directory设置为Dcu目录。三添加常量单元添加一个新的Unit,另存为“unt Consts.Pas”,用来保存工程中用到的常量。四有关窗体(Form)及单元(Unit) 按照匈牙利命名法则给Form命名,则一个用来登录的窗体可以命名为FrmLogin,而其单元名可以为untLogin。通常,两个对应的Form和Unit的名称在除去Frm或unt的缩写后应当保持一致。在Unit的头部添加本单元的注释,注释的格式可以参照Delphi的源码,但是至少应当包含以下几项:功能描述;作者;版权;创建时间;最后修改时间;修改历史等等。将新创建好的Form的Caption设置为该Form类的名称,而不是使用Delphi默认的。比如,将Form1更名为FrmLogin后,此时我们获得了TFrmLogin这个新的窗体类,并且Delphi自动将窗体的Caption更新为FrmLogin。依我看,该Caption应当为TFrmLogin才是,因为我们在设计的是一个窗体类TFrmLogin,而不是仅仅对FrmLogin进行操作。向TFrmLogin这样功能明确的窗体类,许多人都有在设计期就将其Caption设置为诸如“操作员登录”这种名称的习惯。我的习惯是,象“操作员登录”这样的常量,通常存放在untConsts.Pas中,用ResourceString来定义,或者用Const来定义。至于窗体的Caption的命名,应当属于运行期的工作。所以,我往往在TForm.OnCreate事件触发之时才对Caption进行操作,比如:procedure TFrmLogin.FormCreate(Sender: TObject);beginCaption := csLoginTitle;.end;五关于Format函数的使用有iYear,iMonth,iDay三个数据,要显示诸如“生日:1976/3/18”这样的信息,你通常怎么做?使用s := 生日:+IntToStr(iYear)+.+IntToStr(iMonth)+.+IntToStr(iDay); 吗?这样实在是太累了。我的习惯是,在untConsts.Pas中增加一个常量csBirthDayFormat = 生日:%d/%d/%d来保存显示格式,然后使用s := Format(csBirthDayFormat, iYear, iMonth, iDay);这样的语句完成数据的拼装。这么做的好处显而易见,那就是你只需在一个地方维护数据的显示格式。Format函数功能强大,我对它很是推崇,你呢?六关于注册表或者Ini文件的存储原先访问注册表我通常使用TRegistry,而访问Ini文件通常使用TIniFile。这两个类的使用方法各不相同,因此想要使用相同的代码既能访问注册表又能访问Ini文件几乎是不可能的。真头疼啊!终于我发现了救星!那就是TRegistryIniFile类。查看Registry单元,我们发现,TRegistryIniFile继承自TCusomIniFile。而TIniFile也是继承于TCusomIniFile。因此,使用抽象类TCusomIniFile来实现对注册表或者Ini文件的访问便是一举两得了。比如:var csmIniFile: TCusomIniFile;begin if blUseIniFile then/如果使用Ini文件 csmIniFile:= TIniFile.Create(csRootKey) else csmIniFile:= TRegistryIniFile.Create(csRootKey); /接着就可以使用csmIniFile对Ini文件进行访问,/或者用类似访问Ini文件的方式访问注册表。七关于TStream流以及TFileStream,TMemoryStream等等TFileStream和TMemoryStream都继承自抽象类TStream,这意味着我们可以使用一套代码完成对文件和内存的存取操作。因此,定义一些接口的时候,我往往倾向于将参数的类型定义为抽象类,而不是具体类。比如,要完成保存功能的一个函数,定义成function Save(AStream: TStream): Boolean;就比定义成function Save(AStream: TFileStream): Boolean;要灵活的多。前一个定义是具有前瞻性的,因为它可以适用于以后可能出现的新型态的流。而后一个定义只适用于TFileStream这种流(当然包

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论