Delphi开发要求规范.docx
- 文档编号:30439238
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:12
- 大小:60.73KB
Delphi开发要求规范.docx
《Delphi开发要求规范.docx》由会员分享,可在线阅读,更多相关《Delphi开发要求规范.docx(12页珍藏版)》请在冰豆网上搜索。
Delphi开发要求规范
Delphi开发规
一、Delphi版本
统一使用Delphi2007进行项目开发、小部分模块(比如:
系统构子模块Dll、Delphi2007编译出问题的功能)可以使用Delphi7开发Dll文件,供Delphi2007编写的主程序调用。
当需要Delphi2007以上版本进行开发时,必须要满足使用Delphi新特性才能完成新功能的条件。
二、Delphi插件
统一使用以下2款Delphi第三方插件来提高工作效率。
1)CnWizards是一组集成在Delphi/C++Builder的IDE中,用于增强IDE功能、提高IDE的可用性及开发效率的免费、开放源码工具。
2)Delphi2007以下版本:
DelForExp是一款Delphi代码格式化工具。
该工具重点设置如下图:
缩进空格数必须为4。
三、一般格式规
1.缩进
统一使用4个空格缩进。
参照下图进行设置:
把Tab的空格数设置为4,以后一按tab键可以一次缩进4个空格。
2.Begin..End
begin语句和end语句在源程序中要独占一行,例如:
forI:
=0to10dobegin//不正确的用法
end;
forI:
=0to10do//正确的用法beginend;
3.空格
在操作符及逻辑判断符号的两端添加空格,例如:
I:
=I+1;,aandb等,但添加括号时不需要空格。
例如:
if(a>b)then//错误的用法
If(a>b)then//正确的用法
又例如:
procedureTest(Param1:
integer;Param3:
string);
4.过程和函数
1)命名及格式
过程和函数的名称应全部使用有意义的单词组成,并且所有单词的第一个字母应该使用大写字母。
例如:
procedureformatharddisk;//不正确的命名
procedureFormatHardDisk;//正确的命名
设置变量容的过程和函数,应使用Set作为前缀,例如:
ProcedureSetUserName;
读取变量容的过程和函数,应使用Get作为前缀,例如:
FunctionGetUserName:
string;
2)注释
1)、除控件产生的事件以外的自定义函数都必须加入以下格式的注释。
///
//过程名:
函数中文描述
//作者:
作者
//日期:
年-月-日
///
//
///
0-成功;1-失败
2)、所有定义的变量、常量、类都必须加入以下格式注释
///
///执行SQL
///
StrSQL:
string;
3)过程和函数的参数
A.格式
统一类型的参数写在同一句中:
ProcedureFoo(Param1,Param2:
Integer;Info:
String);
B.命名
所有参数必须是有意义的;并且当参数名称和其它属性名称或全局变量重了的时候,加一个前缀‘A’,例如:
procedureSomeProc(AUserName:
string;AUserAge:
integer);
C.命名冲突
当使用的两个unit中包括一个重名的函数或过程时,那幺当你引用这一函数或过程时,将执行在use子句中后声明的那个unit中的函数或过程。
为了避免这种‘uses-clause-dependent’需要在引用函数或过程时,写完整函数或过程的出处。
例如:
SysUtils.FindClose(SR);
Windows.FindClose(Handle);
5.变量
1)变量命名及格式
首先所有变量必须起有意义的名字,使其它组员可以很容易读懂变量所代表的意义,变量命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。
例如:
var
WriteFormat:
String;
同时对于一些特定类型可采用一定的简写如下:
指针类型P
纪录类型Rec
数组类型Arr
类Class
循环控制变量通常使用单一的字符如:
i,j,或k。
另外使用一个有意义的名字例如:
UserIndex,也是准许的。
2)局部变量
在过程中使用局部变量遵循变量的命名规则。
3)全局变量
尽量不使用全局变量,如必须使用全局变量则必须加前缀‘g_’,同时应在变量名称中体现变量的类型。
例如:
g_UserCount:
point;//名称为UserCount的全局变量,其类型为指向一结构的指针但是在模块部可以使用全局变量。
所有模块全局变量必须用‘F’为前缀。
如果几个模块之间需要进行资料交换,则需要通过声明属性的方法来实现。
例如:
Type
TFormOverdraftReturn=class(TForm)
private{Privatedeclarations}
FuserName:
string;
FuserCount:
Integer;
ProcedureSetUserName(Value:
string);
FunctionGetUserName:
string;
public{Publicdeclarations}
propertyUserName:
stringreadGetUserNamewriteSetUserName;propertyUserCount:
IntegerreadFuserCountwriteFuserCount;end;
6.类型
1)大小写协议
Win32API的类型通常全部大写,其他的数据类型则首字母大写,其余字母小写,例如:
var
MyString:
String;//除Win32API以外的数据类型
I:
Integer;//除Win32API以外的数据类型
WindowHandle:
HWND;//Win32API数据类型
2)浮点类型
尽量不使用Real类型,他只是为了和旧的Pascal代码兼容,尽量使用Double类型。
Double类型是对处理器和数据总线做过最优化的并且是IEEE定义的标准数据结构。
当数值超出Double的围时,使用Extended。
但Extended不被Jave支持。
但使用其它语言编写的DLL时可能会使用Single类型。
3)枚举类型
枚举类型的名字必须有意义并且类型的名字之前要加前缀‘T’。
枚举类型的容的名字必须包含枚举类型名称的简写,例如:
TSongType=(stRock,stClassical,stCountry,stAlternative,stHeavyMetal,stRB);
4)数组类型
数组类型的名字必须有意义并且类型的名字之前要加前缀‘T’。
如果声明一个指向数组类型的指针必须在该类型的名字之前加前缀‘P’,例如:
typePCycleArray=^TCycleArray;
TCycleArray=array[1..100]ofInteger;
5)记录类型
记录类型的名字必须有意义并且类型的名字之前要加前缀‘T’。
如果声明一个指向数组类型的指针必须在该类型的名字之前加前缀‘P’,例如:
Type
PEmployee=^TEmployee;
TEmployee=Record
EmployeeName:
String;
EmployeeRate:
Double;
end;
7.类
1)命名及格式
类的名字必须有意义并且类型的名字之前要加前缀‘T’。
例如:
Type
TCustomer=class(TObject)
类实例的名字通常是去掉‘T’的类的名字。
例如:
varCustomer:
TCustomer;
2)类中变量的命名及格式
类中变量的名字必须有意义并且类型的名字之前要加前缀‘F’。
所有的变量必须是要有的。
如果需要从外部访问此变量则需要声明该变量的属性。
3)类属性的访问方法
所有的属性访问方法必须出现在private或protected中。
属性访问方法的命名同函数和过程的命名另外读方法(readermethod)必须使用前缀‘Get’.写方法(writermethod)必须使用前缀‘Set’。
写方法的参数必须命名为‘Value’,其类型同所要写的属性相一致。
例如:
TSomeClass=class(TObject)
private
FSomeField:
Integer;
protected
functionGetSomeField:
Integer;
procedureSetSomeField(Value:
Integer);
public
propertySomeField:
IntegerreadGetSomeFieldwriteSetSomeField;
end;
4)属性的命名及格式
同其用操作的,出去前缀‘F’的类的变量的名称相一致。
8.项目
1)项目代码目录结构
程序主目录--Bin(应用程序所在路径)
-Db(本地数据库所在路径)
-Doc(文档所在路径)
-Hlp(帮助文件所在路径)
-Backup(备份路径)
-Tmp(临时文件路径)
2)项目的命名
项目文件必须使用一个有意义的名字,项目命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。
例如:
Delphi中系统信息的项目文件被命名为SysInfo.dpr。
3)普通Unit文件命名
unit文件的命名应该有意义,并且使用‘Unit_’作为前缀。
例如:
通用Unit被命名为‘Unit_PublicFunction.pas’。
4)FormUnits命名
FormUnit文件的名字必须和Form的名称保持一致。
例如:
主窗体叫MainForm则FormUnit文件的名字为:
Unit_FormMain.pas
5)DataModuleUnits命名
DataModuleunit文件的名字必须和DataModule的名称保持一致。
例如:
DataModule叫DMMain.pas主则DataModuleUnit文件的名字为:
Unit_DMMain。
9.Form类
1)Form类命名标准Forms类的命名应该有意义,命名可以采用同义的英文命名,可使用几个英文单词,但每一单词的首字母必须大写。
并且使用‘T’作为前缀。
Form类命名规则:
“T”+“窗体描述的单词组合”+”Form”。
例如:
AboutForm类的名字为:
TAboutForm=class(TForm)
主窗体的名字为
TMainForm=class(TForm)
2)Form类实例的命名标准Form的类实例的名字应同期掉‘T’的Form类的名字相一致。
Form实例命名规则:
“窗体描述的单词组合”+”Form”。
例如:
类名:
TAboutForm
Form类实例:
AboutForm
类名:
TCustomerEntryForm
Form类实例:
CustomerEntryForm
10.控件
1)控件的命名
控件的实例应使用去掉‘T’该控件类的名称作为前缀,所有控件的类名和实例名都必须使用相关的描述单词组合,不能使Delphi默认生成的控件类名和实例名。
控件类命名规则:
“T”+“控件名称/简称_”+“描述的单词组合”+序号。
例如:
TEdit控件的类名:
TEdit_UserName。
控件实例命名规则:
“控件名称/简称”+“窗体描述的单词组合”。
例如:
TEdit控件的实例名:
edt_UserName。
2)控件的简写
控件的名称可使用以下简写。
StandardTab:
mmTMainMenu
pmTPopupMenu
mmiTMainMenuItem
pmiTPopupMenuItem
lblTLabel
edtTEdit
memTMemo
btnTButton
chbTCheckBox
rbTRadioButton
lbTListBox
cbTComboBox
scbTScrollBar
gbTGroupBox
rgTRadioGroup
pnlTPanel
clTCommandList
AdditionalTab:
bbtnTBitBtn
sbTSpeedButton
meTMaskEdit
sgTStringGrid
dgTDrawGrid
imgTImage
shpTShape
bvlTBevel
sbxTScrollBox
clbTCheckListbox
splTSplitter
stxTStaticText
chtTChart
3.8.2.3Win32Tab:
tbcTTabControl
pgcTPageControl
ilTImageList
reTRichEdit
tbrTTrackBar
prbTProgressBar
udTUpDown
hkTHotKey
aniTAnimate
dtpTDateTimePicker
tvTTreeView
lvTListView
hdrTHeaderControl
stbTStatusBar
tlbTToolBar
clbTCoolBar
SystemTab:
tmTTimer
pbTPaintBox
mpTMediaPlayer
3.8.2.5InternetTab:
cskTClientSocket
sskTServerSocket
wbdTWebDispatcher
ppTPageProducer
tpTQueryTableProducer
dstpTDataSetTableProducer
DataAccessTab:
dsTDataSource
tblTTable
qryTQuery
spTStoredProc
dbTDataBase
ssnTSession
bmTBatchMove
usqlTUpdateSQL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Delphi 开发 要求 规范