分享
 
 
 

Delphi的编码规范

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1.规范简介

本规范主要规定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 TGroupBox

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?? TOleEnterpriseConnection

sck?? TSocketConnection

rms?? TRemoteServer

mid?? TmidasConnection

Internet Tab

csk ?TClientSocket

ssk ?TServerSocket

wbd ?TWebDispatcher

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

dbcb? ?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.修改的要求

4.1修改历史记录

对源文件进行经过批准的修改时,修改者应在程序文件头加入修改历史项。在以后的每一次修改时,修改者都必须在该项目中填写下列信息:

Modifier:

DateTime:

Cause:

Comment:

4.2新增代码行

新增代码行的前后应有注释行说明。

// ab 修改人; 修改时间; 修改说明。

新增代码行

// ae

4.3删除代码行

删除代码行的前后用注释行说明。

//db 修改人,修改时间,修改说明。

//要删除的代码行(将要删除的语句进行注释)

//de

4.4修改代码行

修改代码行以删除代码行后在新增代码行的方式进行。

//mb 修改人,修改时间,修改说明。

//pre 修改前的代码行

修改后的代码行

//me

5.文件的命名

项目文件必须使用一个有意义的名字。例如: Delphi中系统信息的项目文件被命名为 SysInfo.dpr。

3.7.2 Form 文件

同Form的名称相一致:例如:Form的名称为frrmMain则Form文件的名称就为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’。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有