程序设计规范Delphi.docx

上传人:b****6 文档编号:15731473 上传时间:2023-07-07 格式:DOCX 页数:29 大小:28.73KB
下载 相关 举报
程序设计规范Delphi.docx_第1页
第1页 / 共29页
程序设计规范Delphi.docx_第2页
第2页 / 共29页
程序设计规范Delphi.docx_第3页
第3页 / 共29页
程序设计规范Delphi.docx_第4页
第4页 / 共29页
程序设计规范Delphi.docx_第5页
第5页 / 共29页
程序设计规范Delphi.docx_第6页
第6页 / 共29页
程序设计规范Delphi.docx_第7页
第7页 / 共29页
程序设计规范Delphi.docx_第8页
第8页 / 共29页
程序设计规范Delphi.docx_第9页
第9页 / 共29页
程序设计规范Delphi.docx_第10页
第10页 / 共29页
程序设计规范Delphi.docx_第11页
第11页 / 共29页
程序设计规范Delphi.docx_第12页
第12页 / 共29页
程序设计规范Delphi.docx_第13页
第13页 / 共29页
程序设计规范Delphi.docx_第14页
第14页 / 共29页
程序设计规范Delphi.docx_第15页
第15页 / 共29页
程序设计规范Delphi.docx_第16页
第16页 / 共29页
程序设计规范Delphi.docx_第17页
第17页 / 共29页
程序设计规范Delphi.docx_第18页
第18页 / 共29页
程序设计规范Delphi.docx_第19页
第19页 / 共29页
程序设计规范Delphi.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序设计规范Delphi.docx

《程序设计规范Delphi.docx》由会员分享,可在线阅读,更多相关《程序设计规范Delphi.docx(29页珍藏版)》请在冰点文库上搜索。

程序设计规范Delphi.docx

程序设计规范Delphi

程序设计规范(Delphi)

1.概述:

1.1.编写目的

本规范规定了YUNTONG-TECH程序在编写过程中涉及到的程序文件和编码风格。

本规范以Delphi语言为标准制定,使用其它编程语言的编码风格和规范在相关的文档中规定。

1.2.参考资料

(1)程序员指南,MicrosoftPress

(2)Windows界面应用程序设计指南,MicrosoftPress

(3)Delphi5开发人员指南,机械工业出版社

(4)程序设计规范VB,聂俊华,北航十四系

2.程序文件

1.1.项目文件的组织

在Delphi中,按照项目为单位来组织程序文件。

在一个典型的项目中包括:

(1)项目文件(.DRP文件)含有工程主程序的Pascal源代码;

(2)单元文件(.PAS文件)项目中每个窗体的Pascal源文件,包含该窗体的所有声明和过程(包括时间处理过程);

(3)窗体文件(.DFM文件)含有一个窗体的设计属性的二进制文件,每个窗体的.DFM文件与.PAS文件相互对应;

(4)资源文件(.RES文件)编译的二进制资源文件,被链接到应用程序的可执行文件中;

(5)项目选项文件(.DOF文件)存储了Project|Options菜单命令所设置的项目选项;

(6)桌面设置文件(.DSK文件)存储了Tools|Options菜单命令所设置的桌面选项;

(7)包文件(.DPK/.BPL文件)用于共享组件、类、数据和代码的文件。

源文件为.DPK文件,编译后为.BPL文件;每个软件项目应使用独立的目录,软件项目下的不同类别文件、不同模块分设子目录。

以下给出软件项目及软件模块中,设置子目录名称的规范:

子目录说明

\Bin建立产品的工作目录,存放项目中所有可执行文件的当前版本。

\Lib与项目有关的库文件。

\Man包括项目的所有外部文档。

包括手册、帮助文件、其他在线文档、README文件以及其他将和产品一起发放到用户手中的文档。

\SQL存放数据库的SQL文件(只针对数据库程序的开发)。

\Res包括应用程序的所有共享资源,如ICON(图表)、资源文件、Bitmap等。

\Include公用的窗体或Unit。

\Control存放项目内用的自编或第三方提供的控件。

\Source程序源代码\Public可以公用的模块或程序。

本规范在以下的各小节中具体说明Delphi两种文件类型.PAS和.DFM在程序文件中的相关内容要求。

1.2.常量定义

内容:

l逻辑值的定义;

l常数值的定义;

l错误码的定义;

格式:

一个定义占一行。

如下:

Const<常量>:

类型=值;//注释

说明:

使用Const语句来声明用于代替文字值的常数。

示例:

ConstC_SQL:

string='selectCH_USERER_IDfromT_CD_USER';//查询用户ID

ConstC_PI:

real=3.1415926;//圆周率

1.3.结构类型定义

内容:

结构类型定义

格式:

Type

<类型名>//结构说明注释

<变量名1>:

变量类型;//变量说明注释

<变量名2>:

变量类型;//变量说明注释

End;

说明:

<类型名>是以大写字母开头的字符串。

结构定义中定义变量类型的语句从第二行第五列开始。

示例:

type

TableList=record//系统树单元类型定义

InID:

integer;//单元编号

Name:

string;//单元名称

PID:

string;//上一级单元名称

PT:

PTableList;//指向下一单元类型的指针

end;

3.程序风格

程序风格规定了每个语句的定位规则及程序中的注释。

1.1.函数(Function)/过程(Procedure)风格

Name(变量:

变量类型[,…]);//函数/过程说明

Var

变量1:

变量类型;//变量说明

变量2:

变量类型;//变量说明

Begin

语句;

语句;

End;

注:

变量声明、语句均从第三列写起,如有缩进,每次缩进两列,并与相对应语句对齐。

1.2.语句风格

说明:

l在程序体中通常最多每十行有一个段落功能说明;

l规范使用各种语句;

l语句中有缩进是以二列为单位。

1.2.1.变量定义语句

Var

var_name:

<数据类型>;

1.2.2.赋值语句

var_name:

=<表达式>;

1.2.3.条件语句

If条件Then//注释

Begin

语句;

End;

ElseIf条件Then//注释

Begin

语句;

...

End

Else//注释

语句;

注:

如果执行语句只有一句,可省略Begin、End语句。

1.2.4.循环语句

l//循环功能注释

Forcounter:

=startToendDo

Begin

[语句];

End;

l//循环功能注释

While[condition]Do

Begin

[语句];

End;

l//循环功能注释

Repeat

[语句];

….

Until[condition]

1.2.5.开关语句

//开关功能说明

Case<表达示>Of

<值1>:

[语句1];

<值2>:

[语句2];

<值n>:

[语句n]

End;

1.3.注释行

在程序代码单元文件顶端必须拥有本单元文件“模块说明”及“单元说明”注释。

对于常量、结构类型、函数/过程、自定义变量、代码段功能块、关键语句等有含义的代码部分,必须有注释行进行详细说明。

注释行可在需说明部分行后以“//XXXXXXXX”方式添加,也可在需说明部分行上以“{XXXXXXXXXX}”方式添加多行或以“//XXXXXX”方式添加一行。

4.变量名命名规则

命名包括对程序中文件、变量(包括控件等对象)、常量、过程和函数等程序对象的命名。

本公司命名以匈牙利规则为参考,采用“限制+类型+名称”的命名方式。

l限制是指变量与常量的区分和对作用域的确定,默认为变量和局部对象。

对于常量要特

指出,对于非局部变量,要表明其使用范围,如全局或模块级。

l类型以缩写表明该程序对象的类型,如32位有符号整数类型和列表框控件类型。

l名称为对象的具体含义,要准确表达其用途,而不要使用与变量所代表的实体没有任何

系的名字,以英文、英文缩写组合给出;名称的书写采用大小写结合的方式,如CaseCount表示事件计数、DeleteUser表示删除人员等。

命名不宜过短,也不宜过长,除去限制和类型外,以8~15为好。

过短的命名往往不能准确描述用意,如nCount命名含义太不明确,可以是雇员的计数,也可以是找到的文件的计数,而命名为nEmployeeCount和nFileCount将更有助于记忆和理解;过长的命名如recLoginUserInformation又显得冗长,改为recLoginUserInfor或recLoginUserInfo则会在不损失含义的情况下减少输入量,换言之,改动后的命名更合适。

命名中恰当使用反意词,可以提高可读性,下面是一些常用的容易理解的词对:

Add/RemoveBegin/EndCreate/Destroy

Insert/DeleteFirst/LastGet/Release

Get/SetGet/PutIncrement/Decrement

Lock/UnlockMin/MaxNext/Previous

Next/PriorOld/NewOpen/Close

Show/HideSource/DestinationSource/Target

Start/StopWrite/Read

记住一些常见布尔型变量的命名,对规范化的实施也会有不少帮助,如Done、Error、Found、Success、Ready等

命名中的特例之一是单层循环的循环变量,使用i、j、k、l、m命名,简捷明快;当循环为多层时,各层的循环变量应尽可能命以有意义的名称,以避免使用时由于输入而产生的逻辑错误,尤其是在访问多维数组变量时,这种作法可以大大减少因数组下标指定失误引发的程序逻辑失败的机率,如将Cells[i,j]误作Cells[j,i],而Cells[nRow,nCol]就不易误为Cells[nCol,nRow]。

以下定义Delphi中的变量命名规则:

1.1.变量命名

1.1.1.简单变量命名

类型缩写含义

BooleanbBoolean变量

ByteBoolbbBooleanByte变量

WordBoolbwBooleanWord变量

LongBoolblBooleanLong变量

IntegernNumber变量

ShortIntntNumberTiny变量

SmallIntnsNumberShort变量

LongIntnlNumberLong变量

Int64neNumberExtended变量

CompneNumberExtended变量

ByteuntUnsignedNumberTiny变量

WordunsUnsignedNumberShort变量

LongWordunlUnsignedNumberLong变量

RealfFloat变量

SinglefsFloatSingle变量

DoublefdFloatDouble变量

ExtendedfeFloatExtended变量

CharcChar变量

AnsiCharcaCharAnsi变量

WideCharcwCharWide变量

StringsString变量

ShortStringssStringShort变量

AnsiStringsaStringAnsi变量

WideStringswStringWide变量

VariantvVariant变量

EnumerateeEnumerate变量

PointerpPointer变量

1.1.2.结构型变量命名

类型缩写含义

ArrayaArray

SetmMass

RecordrRecord

ClassoObject

1.1.3.复合变量命名

命名中有些缩写词是基础类型缩写,而另有一些是类型限定词,如u代表Unsigned和a代表Array。

整体缩写采用从右至左的分析方式,举例如下:

lBoolean数组命名为abXXXX

l单精度附点数数组命名为afsXXXX

l结构数组命名为arXXXX

l枚举数组命名为aeXXXX

l指针数组命名为apXXXX

l字符集合命名为mcXXXX

l32位整数集合数组命名为amnXXXX

l结构指针命名为prXXXX

lPChar命名为pszXXXX

lPChar数组命名为apszXXXX

1.1.4.命名中限制的法则

l全局冠以g_

l模块级冠以m_

l常量以C_开始

l全局常量以gC_开头,模块级常量则mC_

1.1.5.其它命名

l类型的命名采用Delphi通用的TXxxxYyyyZzzz形式

l枚举型变量的元素命名为以小写的类型英文名字母缩写开始,如TFontStyle=(fsBold,fsItalic,...)

l类型常量命名为C_类型缩写_XxxxYyyy形式,无类型常量命名为C_含义或分组名_XxxxYyyy。

其中XxxxYyyy要描述常量含义,可以归为一类的常量;有时Xxxx说明分组含义,而Yyyy为常量含义,如C_FontSizeBig=20,C_FontSizeNormal=12,C_FontSizeSmall=8。

举例:

C_as_FileNames:

array[0..2]ofstring=(‘C:

\AUTOEXEC.BAT’,‘C:

\CONFIG.SYS’,‘C:

\IO.SYS)和gC_MaxUsers=500分别定义了“局部一维字符串数组常量”和“全局常数”。

1.2.文件及窗体命名

含义类名命名格式

工程文件Program(.DPR)XXXX_P

单元Unit(PAS)XXXX_U

窗体Form.Name(.DFM)XXXX_F

数据模块DataModuleXXXX_DM

1.3.控件命名

1.3.1.Standard页控件

类名命名格式

TMainMenummnuXXXX

TPopupMenupmnuXXXX

TLabellblXXXX

TEditedtXXXX

TMemommoXXXX

TButtonbtnXXXX

TCheckBoxchkXXXX

TRadioButtonrdbtXXXX

TListBoxlbxXXXX

TComboBoxcbxXXXX

TScrollBarscbrXXXX

TGroupBoxgbxXXXX

TRadioGrouprgpXXXX

TPanelpnlXXXX

TActionListactsXXXX

1.3.2.Additional页控件

类名命名格式

TBitBtnbtbtXXXX

TSpeedButtonspbtXXXX

TMaskEditmedtXXXX

TStringGridsgrdXXXX

TDrawGriddgrdXXXX

TImageimgsXXXX

TShapeshpXXXX

TBevelbvlXXXX

TScrollBoxscbxXXXX

TCheckListBoxchksXXXX

TSplitterspltXXXX

TStaticTextstxtXXXX

TControlBarctbrXXXX

TChartchtXXXX

1.3.3.Win32页控件

类名命名格式

TTabControltctlXXXX

TPageControlpctlXXXX

TImageListimgsXXXX

TRichEditredtXXXX

TTrackBartkbrXXXX

TProgressBarpgbrXXXX

TUpDownupdnXXXX

THotKeyhtkXXXX

TAnimateanmtXXXX

TDateTimePickerdtpXXXX

TMonthCalendarmcldXXXX

TTreeViewtvwXXXX

TListViewlvwXXXX

THeaderControlhctlXXXXTStatusBarstbrXXXX

TToolBartlbrXXXX

TCoolBarclbrXXXX

TPageScrollerpsclXXXX

1.3.4.System页控件

类名命名格式

TTimertmrXXXX

TPaintBoxptbxXXXX

TMediaPlayermplrXXXX

TOLEContainerolectXXXX

TDDEClientConvddeccXXXX

TDDEClientItemddeciXXXX

TDDEServerConvddescXXXX

TDDEServerItemddesiXXXX

1.3.5.Internet页控件

类名命名格式

TClientSocketXxxxClientSocket

TServerSocketXxxxServerSocket

TWebDispatcherXxxxWebDispatcher

TPageProducerXxxxPageProducer

TQueryTableProducerXxxxQTProducer

TDataSetTableProceducerXxxxDSTProducer

TDataSetPageProceducerXxxxDSPProducer

TNMDayTimeXxxxNMDayTime

TNMEchoXxxxNMEcho

TNMFingerXxxxNMFinger

TNMFTPXxxxNMFTP

TNMHTTPXxxxNMHTTP

TNMMsgXxxxNMMsg

TNMMSGServXxxxNMMsgServ

TNMNNTPXxxxNMNNTP

TNMPOP3XxxxNMPOP3

TNMUUProcessorXxxxNMUUProcessor

TNMSMTPXxxxNMSMTP

TNMStrmXxxxNMStrm

TNMStrmServXxxxNMStrmServ

TNMTimeXxxxNMTime

TNMUDPXxxxNMUDP

TPowerSockXxxxPowerSock

TNMGeneralServerXxxxNMGeneralServer

THTMLXxxxHTML

TNMURLXxxxNMURL

1.3.6.DataAccess页控件

类名命名格式

TDataSourcedsXXXX

TTabletblXXXX

TQueryqryXXXX

TStoredProcsprcXXXX

TDatabasedbXXXX

TSessionssnXXXX

TBatchMovebmvXXXX

TUpdateSQLupdtXXXX

TNestedTablentblXXXX

1.3.7.DataControls页控件

类名命名格式

TDBGriddbgrdXXXX

TDBNavegatordbnvXXXX

TDBTextdbtxtXXXX

TDBEditdbedtXXXX

TDBMemodbmmoXXXX

TDBImagedbimgXXXX

TDBListBoxdblbxXXXX

TDBComboBoxdbcbxXXXX

TDBCheckBoxdbchkXXXX

TDBRadioGroupdbrgpXXXX

TDBLookupListBoxdbllbXXXX

TDBLookupComboBoxdblcbXXXX

TDBRichEditdbredXXXX

TDBCtrlGriddbcgdXXXX

TDBChartdbchtXXXX

1.3.8.Midas页控件

类名命名格式

TClientDataSetcltdsXXXX

TDCOMConnectiondcmcnXXXX

TCorbaConnectioncrbcnXXXX

TSocketConnectionsktcnXXXX

TOLEnterpriseConnectionolecnXXXX

TDataSetProviderdsprdXXXX

TProviderprvdrXXXX

TSimpleObjectBrokersobkrXXXX

TRemoteServerrmtsvXXXX

TMidasConnectionmdscnXXXX

1.3.9.DecisionCube页控件

类名命名格式

TDecisionCubedccbXXXX

TDecisionQuerydcqryXXXX

TDecisionSourcedcsrXXXX

TDecisionPivotdcpvtXXXX

TDecisionGriddcgrdXXXX

TDecisionGraphdcchtXXXX

1.3.10.QReport页控件

类名命名格式

TQuickRepqrptXXXX

TQRSubDetailqrsdtXXXX

TQRStringsBandqrsbdXXXX

TQRBandqrbdXXXX

TQRChildBandqrcbdXXXX

TQRGroupqrgrpXXXX

TQRLabelqrlblXXXX

TQRDBTextqrdbtXXXX

TQRExprqrxprXXXX

TQRSysDataqrsysXXXX

TQRMemoqrmmoXXXX

TQRExprMemoqrxpmXXXX

TQRRichEditqrredXXXX

TQRDBRichEditqrdbrXXXX

TQRShapeqrshpXXXX

TQRImageqrimgXXXX

TQRDBImageqrdbiXXXX

TQRCompositeReportqrcrpXXXX

TQRPreviewqrprvXXXX

TQRTextFilterqrtflXXXX

TQRCSVFilterqrcsvXXXX

TQRHTMLFilterqrhtfXXXX

TQRChartqrchtXXXX

1.3.11.Dialogs页控件

类名命名格式

TOpenDialogopdgXXXX

TSaveDialogsvdgXXXX

TOpenPictureDialogoppdgXXXX

TSavePictureDialogsvpdgXXXX

TFontDialogftdgXXXX

TColorDialogcldgXXXX

TPrintDialogprdgXXXX

TPrinterSetupDialogpsdgXXXX

TFindDialogfndgXXXX

TReplaceDialogrpdgXXXX

1.3.12.Win3.1页控件

类名命名格式

TDBLookupListdbllsXXXX

TDBLookupCombodblcbXXXX

TTabSettbstXXXX

TOutLineotlnXXXX

TTabbedNoteBooktnbkXXXX

TNoteBookntbkXXXX

THeaderhdrXXXX

TFileListBoxflbxXXXX

TDirectoryListBoxdlbxXXXX

TDriveComboBoxdcbxXXXX

TFilterComboBoxfcbxXXXX

1.3.13.Samples页控件

类名命名格式

TGaugeggeXXXX

TColorGridclgrdXXXX

TSpinButtonspnbtXXXX

TSpinEditspedtXXXX

TDirectoryOutlinedirolXXXX

TCalendarcldrXXXX

TIBEventAlerteribaltXXXX

1.3.14.ActiveX页控件

类名命名格式

TChartFXchtfxXXXX

TVSSpellvssplXXXX

TF1Bookbkf1XXXX

TVtChartvtchtXXXX

TGraphgrphXXXX

注:

1.可只对进行编码的控件命名,如果某控件只用做显示,如TLabel,则可采用Delphi自动生成的名字Lable1;

2.若使用第三方控件或自定义类型控件,命名规则应以以上规则为参考。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2