delphi编码规范

1 .规范简介 XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />
本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源 代码 书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。
 
2 .单元的格式
2.1 基本要求
2.1.1 缩进
     缩进就是在当源程序的级改变时为增加可读性而露出的两个空格。缩进的规则为每一级缩进两个空格。不准许使用Tab。因为Tab会因为用户所作的设置不同而产生不同的效果。当遇到begin 或进入判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯增加一级,当遇到end或退出判断、循环、异常处理、with语句、记录类型声明、类声明等的时侯减少一级。
2.1.2  Begin…End
           begin语句和end语句在源 程序 中要独占一行,例如 :
for I := 0 to 10 do begin //
不正确的用法

end;
for I := 0 to 10 do //
正确的用法
begin
end;
2.1.3空格
在操作符及逻辑判断符号的两端添加空格,例如:I  := I + 1;a and b 等,
但添加括号时不需要空格。
例如: if ( a>b )and( a 错误的用法
  if (a  >  b)  and  (a  <  c) then //
正确的用法
2.1.4 变量
         尽量不用缩写,尽量用名词,如有多个单词则每个单词的第一个字符一定要大写;见名知意
   所有模块内全局变量必须用‘F’为前缀。如果几个模块之间需要进行资料交换,则需要通过声明属性的方法来实现。
2.2单元说明
  新建每一个新单元文件时,请先按如下格式定制单元说明
{*******************************************************
Copyright?(c)?2000-2004?*********公司技术 开发 部
Project:---该单元所属的项目
Module:---该单元所属的功能模块
Describe:---该单元的功能
Author:---创建人
Date:---创建日期
Version版本号:
History`s Modification:---修改历史区域
{*************************
                              Modify No:---修改编号
                        Modifier:---修改人
                        DateTime:---修改 时间
                        Cause:---
修改原因
                        Modify No:---修改编号
                        Modifier:---修改人
                        DateTime:---修改时间
                        Cause:---
修改原因
                       *************************}
*******************************************************}
 2.3 过程与函数的说明
 {*******************************************************
  PrcedureeName/FunctionName:
Input: a---
输入参数说明,b---输入参数说明,c---输入参数说明

Output: x---
输出参数说明
Const: s---常量说明,t---常量说明
var: x---变量说明, j---变量说明
Describe:----功能描述
若该过程或函数不是该单元创建人所撰写请在此后再加上以下几项 内容 :
     Author:
     Date:
*******************************************************}
3 .控件的命名
控件的名称可使用以下简写,但所用简写于控件名称之间药添加‘_’
Standard Tab
mm    TMainMenu
pm    TPopupMenu
mmi   TMainMenuItem
pmi   TPopupMenuItem
lbl     TLabel
edt    TEdit ; TSpinEdit ; TMaskEdit
mem TMemo
btn    TButton ; TBitBtn ; TSpeedButton ; TSpinButton
cb      TCheckBox
rb      TRadioButton
lb       TListBox
cb     TComboBox
scb   TScrollBar
gb    TGrou
PBox
rg     TRadioGroup
pnl   TPanel
cl     TCommandList

Additional Tab

sg      TStringGrid
dg      TDrawGrid
img    TImage
shp    TShape
bvl     TBevel
sbx     TScrollBox
clb      TCheckListbox
spl      TSplitter
stx      TStaticText
cht     TChart

Win32 Tab
tbc     TTabControl
pgc    TPageControl
il        TImageList
re       TRichEdit
tbr     TTrackBar
prb    TProgressBar
ud      TUpDown
hk      THotKey
ani     TAnimate
dtp    TDateTimePicker
tv      TTreeView
lv      TListView
hdr   THeaderControl
stb    TStatusBar
tlb    TToolBar
clb    TCoolBar

System Tab
tm ??TTimer
pb ??TPaintBox
mp ?TMediaPlayer
olec ?TOleContainer
ddcc ?TDDEClientConv
ddci ?TDDEClientItem
ddsc ?TDDEServerConv
ddsi ?TDDEServerItem
?
Samples Tab
gg?? TGauge
cg?? TColorGrid
spb?
spe?
dol? TDirectoryOutline
cal? TCalendar
ibea? TIBEventAlerter
?
ActiveX Tab
cfx? TChartFX
vsp?? TVSSpell
f1b?? TF1Book
vtc?? TVTChart
grp?? TGraph
?
Win31 Tab
dbll?? TDBLookupList
dblc?? TDBLookupCombo
ts???? TTabSet
ol???? TOutline
tnb??? TTabbedNoteBook
nb???? TNoteBook
hdr??? THeader
flb??? TFileListBox
dlb??? TDirectoryListBox
dcb?? TDriveComboBox
fcb?? TFilterComboBox

Midas Tab
prv?? TProvider
cds?? TClientDataSet
qcds?? TQueryClientDataSet
dcom? TDCOMConnection
olee?? TOleEnt
ERPriseConnection
sck?? TSocketConnection
rms?? TRemoteServer
mid?? TmidasConnection

Internet Tab
csk ?TClientSocket
ssk ?TServerSocket
wbd ?T
WebDispatcher
pp ???TPageProducer
tp ???TQueryTableProducer
dstp? ?TDataSetTableProducer
nmdt ??TNMDayTime
nec ???TNMEcho
nf ????TNMFinger
nftp ???TNMFtp
nhttp ??TNMHttp
nMsg ??TNMMsg
nmsg ??TNMMSGServ
nntp ???TNMNNTP
npop ???TNMPop3
nuup ???TNMUUProcessor
smtp ???TNMSMTP
nst ????TNMStrm
nsts ???TNMStrmServ
ntm ???TNMTime
nudp ??TNMUdp
psk ???TPowerSock
ngs ???TNMGeneralServer
html? ?THtml
url? ??TNMUrl
sml ??TSimpleMail

Data Access Tab
ds? ?TDataSource
tbl? ?TTable
qry? ?TQuery
sp ??TStoredProc
db ??TDataBase
ssn? ?TSession
bm ??TBatchMove
usql ??TUpdateSQL

Data Controls Tab
dbg? ?TDBGrid
dbn ??TDBNavigator
dbt ??TDBText
dbe ??TDBEdit
dbm? ?TDBMemo
dbi ??TDBImage
dblb ??TDBListBox
d
BCB? ?TDBComboBox
dbch? ?TDBCheckBox
dbrg ??TDBRadioGroup
dbll ??TDBLookupListBox
dblc ??TDBLookupComboBox
dbre ??TDBRichEdit
dbcg ??TDBCtrlGrid
dbch ??TDBChart

Decision Cube Tab
dcb ??TDecisionCube
dcq ??TDecisionQuery
dcs ??TDecisionSource
dcp ??TDecisionPivot
dcg ??TDecisionGrid
dcgr ?TDecisionGraph

QReport Tab
qr ??TQuickReport
qrsd ?TQRSubDetail
qrb ??TQRBand
qrcb ??TQRChildBand
qrg ??TQRGroup
qrl ??TQRLabel
qrt ??TQRText
qre ??TQRExpr
qrs? ?TQRSysData
qrm ??TQRMemo
qrrt ??TQRRichText
qrdr? ?TQRDBRichText
qrsh ??TQRShape
qri ???TQRImage
qrdi ??TQRDBMImage
qrcr? ?TQRCompositeReport
qrp ??TQRPreview
qrch TQRChart

Dialogs Tab
OpenDialog ???????TOpenDialog
SaveDialog ???????TSaveDialog
OpenPictureDialog ?TOpenPictureDialog
SavePictureDialog ??TSavePictureDialog
FontDialog ????????TFontDialog
ColorDialog ???????TColorDialog
PrintDialog ????????TPrintDialog
PrinterSetupDialog? ?TPrintSetupDialog
FindDialog ?????????TFindDialog
ReplaceDialog ??????TReplaceDialog

4 .修改的要求
41修改历史记录
对源文件进行经过批准的修改时,修改者应在程序文件头加入修改历史项。在以后的每一次修改时,修改者都必须在该 项目 中填写下列信息:
Modifier:
DateTime:
Cause:
Comment:
42新增代码行
新增代码行的前后应有注释行说明。
// ab 
修改人; 修改时间; 修改说明。
新增代码行
// ae
43删除代码行
删除代码行的前后用注释行说明。
//db
修改人,修改时间,修改说明。
//
要删除的代码行(将要删除的语句进行注释)
//de
44修改代码行
修改代码行以删除代码行后在新增代码行的方式进行。
//mb
修改人,修改时间,修改说明。
//pre 
修改前的代码行
修改后的代码行
//me
5 .文件的命名
 
   项目文件必须使用一个有意义的名字。例如: Delphi中系统信息的项目文件被命名为 SysInfo.dpr
3.7.2 Form
文件
     
Form的名称相一致:例如:Form的名称为frrmMainForm文件的名称就为frmMain.dfm。对应的Unit文件就是 frmMain.pas
3.7.3 Data Module
文件

     data module
文件的命名应该有意义,并且使用‘DM’作为前缀。例如:用户data module 被命名为‘dmCustomers.dfm’对应的Unit文件就是 rdmCustomers.pas
3.7.4 Remote Data Module
文件

     remote data module
文件的命名应该有意义,并且使用‘RDM’作为前缀。例如:用户remote data module 被命名为‘rdmCustomers.dfm’对应的Unit文件就是
rdmCustomers.pas
3.7.5
普通 Unit文件

    unit
文件的命名应该有意义,并且使用‘u’作为前缀。例如: 通用 unit 被命名为‘uGeneral.pas’
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值