1.規(guī)范簡介
本規(guī)范主要規(guī)定Delphi源程序在書寫過程中所應(yīng)遵循的規(guī)則及注意事項。編寫該規(guī)范的目的是使公司軟件開發(fā)人員的源代碼書寫習(xí)慣保持一致。這樣做可以使每一個組員都可以理解其它組員的代碼,以便于源代碼的二次開發(fā)記憶系統(tǒng)的維護(hù)。
2.單元的格式
2.1 基本要求
2.1.1 縮進(jìn)
縮進(jìn)就是在當(dāng)源程序的級改變時為增加可讀性而露出的兩個空格。縮進(jìn)的規(guī)則為每一級縮進(jìn)兩個空格。不準(zhǔn)許使用Tab。因為Tab會因為用戶所作的設(shè)置不同而產(chǎn)生不同的效果。當(dāng)遇到begin 或進(jìn)入判斷、循環(huán)、異常處理、with語句、記錄類型聲明、類聲明等的時侯增加一級, 當(dāng)遇到end或退出判斷、循環(huán)、異常處理、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 變量
盡量不用縮寫,盡量用名詞,如有多個單詞則每個單詞的第一個字符一定要大寫;見名知意
所有模塊內(nèi)全局變量必須用‘F’為前綴。如果幾個模塊之間需要進(jìn)行資料交換,則需要通過聲明屬性的方法來實現(xiàn)。
2.2單元說明
新建每一個新單元文件時,請先按如下格式定制單元說明
{*******************************************************
Copyright?(c)?2000-2004?*********公司技術(shù)開發(fā)部
PRoject:---該單元所屬的項目
Module:---該單元所屬的功能模塊
Describe:---該單元的功能
Author:---創(chuàng)建人
Date:---創(chuàng)建日期
Version版本號:
History`s Modification:---修改歷史區(qū)域
{*************************
Modify No:---修改編號
Modifier:---修改人
DateTime:---修改時間
Cause:---修改原因
Modify No:---修改編號
Modifier:---修改人
DateTime:---修改時間
Cause:---修改原因
*************************}
*******************************************************}
2.3 過程與函數(shù)的說明
{*******************************************************
PrcedureeName/FunctionName:
Input: a---輸入?yún)?shù)說明,b---輸入?yún)?shù)說明,c---輸入?yún)?shù)說明
Output: x---輸出參數(shù)說明
Const: s---常量說明,t---常量說明
var: x---變量說明, j---變量說明
Describe:----功能描述
若該過程或函數(shù)不是該單元創(chuàng)建人所撰寫請在此后再加上以下幾項內(nèi)容:
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修改歷史記錄
對源文件進(jìn)行經(jīng)過批準(zhǔn)的修改時,修改者應(yīng)在程序文件頭加入修改歷史項。在以后的每一次修改時,修改者都必須在該項目中填寫下列信息:
Modifier:
DateTime:
Cause:
Comment:
4.2新增代碼行
新增代碼行的前后應(yīng)有注釋行說明。
// ab 修改人; 修改時間; 修改說明。
新增代碼行
// ae
4.3刪除代碼行
刪除代碼行的前后用注釋行說明。
//db 修改人,修改時間,修改說明。
//要刪除的代碼行(將要刪除的語句進(jìn)行注釋)
//de
4.4修改代碼行
修改代碼行以刪除代碼行后在新增代碼行的方式進(jìn)行。
//mb 修改人,修改時間,修改說明。
//pre 修改前的代碼行
修改后的代碼行
//me
5.文件的命名
項目文件必須使用一個有意義的名字。例如: Delphi中系統(tǒng)信息的項目文件被命名為 SysInfo.dpr。
3.7.2 Form 文件
同Form的名稱相一致:例如:Form的名稱為frrmMain則Form文件的名稱就為frmMain.dfm。對應(yīng)的Unit文件就是frmMain.pas
3.7.3 Data Module 文件
data module文件的命名應(yīng)該有意義,并且使用‘DM’作為前綴。例如: 用戶data module 被命名為‘dmCustomers.dfm’。 對應(yīng)的Unit文件就是rdmCustomers.pas
3.7.4 Remote Data Module 文件
remote data module文件的命名應(yīng)該有意義,并且使用‘RDM’作為前綴。例如:用戶remote data module 被命名為‘rdmCustomers.dfm’。 對應(yīng)的Unit文件就是rdmCustomers.pas
3.7.5普通 Unit文件
unit文件的命名應(yīng)該有意義,并且使用‘u’作為前綴。例如: 通用unit 被命名為‘uGeneral.pas’。
新聞熱點
疑難解答
圖片精選