谁能讲一下,在DELPHI中各控件和变量的名命标准 谁能讲一下,在DELPHI中各控件和变量的名命标准 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 4、命名规则1、文件名称: u模块名称;见名知意2、控件名称: 功能_控件缩写;见名知意3、变量 : 尽量不用缩写,尽量用名词;见名知意4、方法与过程:尽量不用缩写,尽量用动宾词组;见名知意5、常见的惯例类名以t打头 (type之意)类的私有数据域以f打头(field之意)对数据的存取操作分别以set,get打头事件属性以on打头 6.6 Standard页前缀 构件mm TMainMenupm TPopupMenummi TMainMenuItempmi TPopupMenuItem前缀 构件lbl TLabeledt TEditmem TMemobtn TButtoncb TCheckBoxrb TRadioBoxlb TListBoxcb TComboBoxscb TScrollBargb TGroupBoxrg TRadioGrouppnl TPanelcl TCommandList6.7 Additional页bbtn TBitBtnsb TSpeedButtonme TMaskEditsg TStringGriddg TDrawGridimg TImageshp TShapebvl TBevelsbx TScrollBoxclb TCheckListboxspl TSplitterstx TStaticTextcht TChart6.8 Win32页tbc TTabControlpgc TPageControlil TImageListre TRichEditthr TTrackBarprb TProgressBarud TUpDownhk THotKeyani TAnimatedtp TDateTimePickertv TTreeViewlv TListViewhdr THeaderControl前缀 构件stb TStatusBartlb TToolBarclb TCoolBar6.9 System页tm TTimerpb TPaintBoxmp TMediaPlayerolec TOleContainerddcc TDDEClientItemddci TDDEClientItemddsc TDDEServerConvddsi TDDEServerItem6.10 Internet页csk TClientSocketssk TServerSocketwbd TWebDispatcherpp TPageProducertp TQueryTableProducerdstp TDataSetTableProducernmdt TNMDayTimenec TNMEchonf TNMFingernftp TNMFtpnhttp TNMHttpnMsg TNMMsgnmsg TNMMSGServnntp TNMNNTPnpop TNMPop3nuup TNMUUProcessorsmtp TNMSMTPnst TNMStrmnsts TNMStrmServntm TNMTimenudp TNMUdppsk TPowerSockngs TNMGeneralServerurl TNMUrlsml TSimpleMail6.11 Data Access页前缀 构件ds TDataSourcetbl TTableqry TQuerysp TStoredProcdb TDataBasessn TSessionbm TBatchMoveusql TUpdateSQL6.12 Data Controls页dbg TDBGriddbn TDBNavigatordbt TDBTextdbe TDBEditdbm TDBMemodbi TDBImagedblb TDBListBoxdbcb TDBComboBoxdbch TDBCheckBoxdbrg TDBRadioGroupdbll TDBLookupListBoxdblc TDBLookupComboBoxdbre TDBRichEditdbcg TDBCtrlGriddbch TDBChart6.13 Decision Cube页dcb TDecisionCubedcq TDecisionQuerydcs TDecisionSourcedcp TDecisionPivotdcg TDecisionGriddcgr TDecisionGraph6.14 QReport页qr TQuickReportqrsd TQRSubDetailqrb TQRBandqrcb TQRChildBandqrg TQRGroupqrl TQRLabel前缀 构件qrt TQRTextqre TQRExprqrs TQRSysDataqrm TQRMemoqrrt TQRRichTextqrdr TQRDBRichTextqrsh TQRShapeqri TQRImageqrdi TQRDBMImageqrcr TQRCompositeReportqrp TQRPreviewqrch TQRChart6.15 Dialogs页对话框构件是由构件封装的真正的窗体,因此,它们应遵循窗体的命名约定。类型已由构件的名称定义。它的实例的名称是Delphi自动生成的类型实例名字去掉数字后缀。举例如下: 类型 实例名字 TOpenDialog OpenDialog TSaveDialog SaveDialog TOpenPictureDialog OpenPictureDialog TSavePictureDialog SavePictureDialog TFontDialog FontDialog TColorDialog ColorDialog TPrintSetupDialog PrintSetupDialog TFindDialog FindDialog TReplaceDialog ReplaceDialog6.16 Win3.1页dbll TDBLookupListdblc TDBLookupCombots TTabSetol TOutlinetnb TTabbedNoteBooknb TNoteBookhdr THeaderflb TFileListBoxdlb TDirectoryListBoxdcb TDriveComboBoxfcb TFliterComboBox6.17 Samples页gg TGauge前缀 构件cg TColorGridspb TSpinEditspe TSpinEditdol TDirectoryOutlinecal TCalendaribea TIBEventAlerter6.18 ActiveX页cfx TChartFXvsp TVSSpellf1b TF1Bookvtc TVTChartgrp TGraph6.19 Midas页prv TProvidercds TClientDataSetqcds TQueryClientDataSetdcom TDCOMConnectionolee TOleEnterpriseConnectionsck TSocketConnectionrms TRemoteServermid TmidasConnection 编程规范1.基本要求1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过200行。1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。1.3 尽量使用标准库函数和公共函数。1.4 不要随意定义全局变量,尽量使用局部变量。1.5 使用括号以避免二义性。2.可读性要求2.1 可读性第一,效率第二。2.2 保持注释与代码完全一致。2.3 每个源程序文件,都有文件头说明,说明规格见规范。2.4 每个函数,都有函数头说明,说明规格见规范。2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。2.7 常量定义(DEFINE)有相应说明。2.8 处理过程的每个阶段都有相关注释说明。2.9 在典型算法前都有注释。2.10 循环、分支层次不要超过五层。2.11 注释可以与语句在同一行,也可以在上行。2.12 空行和空白字符也是一种特殊注释。2.13 注释的作用范围可以为:定义、引用、条件分支以及一段代码。注释的方法有//,(**)和{},尽可能用前两种2.14 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3 。3. 结构化要求3.1 禁止出现两条等价的支路。3.2 禁止GOTO语句。3.3 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RESLUT。3.4 用 CASE 实现多路分支。3.5 避免从循环引出多个出口。3.6 函数只有一个出口(强调效率的公共函数除外)。3.7 不使用条件赋值语句。3.8 避免不必要的分支。3.9 不要轻易用条件分支去替换逻辑表达式。4. 正确性与容错性要求4.1 程序首先是正确,其次是优美4.2 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。(代码编完马上模拟各种数据测试,记录测试数据与目的、结果)4.3 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。4.4 所有变量在调用前必须被初始化。4.5 对所有的用户输入,必须进行合法性检查。4.6 不要比较浮点数的相等,如: 10.0 * 0.1 = 1.0 , 不可靠(用Abs(10.0*0.1-1.0)<0.00001代替)4.7 程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。4.8 单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。5. 可重用性要求5.1 重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。5.2 公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。5.3 公共控件或类应建立使用模板。(使用简单例子)6.程序6.1.程序编码力求简洁,结构清晰,避免太多的分支结构及太过于技巧性的程序,尽量不采用递归模式。6.2.编写程序时,亦必须想好测试的方法,换句话说,”单元测试” 的测试方案应在程序编写时一并拟好。6.3.注释一定要与程序一致。6.4版本封存以后的修改一定要将老语句用(* *) 封闭,不能自行删除或修改,并要在文件及函数的修改记录中加以记录。6.5.程序中每个block 的开头 ”begin" 及 "end” 必须对齐,嵌套的block 每进一套, 6.6. 对于比较大的函数,每个block 和特殊的函数调用,都必须注明其功能 [语法问题]请问字符串数组如何公布成属性?谢谢! 难难啊,怎样处理这样的数组? 招程序员,在武汉工作,月薪1500~3000,要面向对象,delphi开发经验 关于制作安装程序打包的问题 急 哈哈哈,送分了!! 怎样在delphi里直接写sql语句插入一条带日期数据到数据库? 求高人修改生产管理系统 delphi中调用api函数问题(系统时间) 特急:如何找回Paradox数据库密码???? 修改资源文件得问题! 如何实现TTreeView内部的所有项目显示
前缀 构件
mm TMainMenu
pm TPopupMenu
mmi TMainMenuItem
pmi TPopupMenuItem
前缀 构件
lbl TLabel
edt TEdit
mem TMemo
btn TButton
cb TCheckBox
rb TRadioBox
lb TListBox
cb TComboBox
scb TScrollBar
gb TGroupBox
rg TRadioGroup
pnl TPanel
cl TCommandList
6.7 Additional页
bbtn TBitBtn
sb TSpeedButton
me TMaskEdit
sg TStringGrid
dg TDrawGrid
img TImage
shp TShape
bvl TBevel
sbx TScrollBox
clb TCheckListbox
spl TSplitter
stx TStaticText
cht TChart
6.8 Win32页
tbc TTabControl
pgc TPageControl
il TImageList
re TRichEdit
thr TTrackBar
prb TProgressBar
ud TUpDown
hk THotKey
ani TAnimate
dtp TDateTimePicker
tv TTreeView
lv TListView
hdr THeaderControl
前缀 构件
stb TStatusBar
tlb TToolBar
clb TCoolBar
6.9 System页
tm TTimer
pb TPaintBox
mp TMediaPlayer
olec TOleContainer
ddcc TDDEClientItem
ddci TDDEClientItem
ddsc TDDEServerConv
ddsi TDDEServerItem
6.10 Internet页
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
url TNMUrl
sml TSimpleMail
6.11 Data Access页
前缀 构件
ds TDataSource
tbl TTable
qry TQuery
sp TStoredProc
db TDataBase
ssn TSession
bm TBatchMove
usql TUpdateSQL
6.12 Data Controls页
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
6.13 Decision Cube页
dcb TDecisionCube
dcq TDecisionQuery
dcs TDecisionSource
dcp TDecisionPivot
dcg TDecisionGrid
dcgr TDecisionGraph
6.14 QReport页
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
6.15 Dialogs页
对话框构件是由构件封装的真正的窗体,因此,它们应遵循窗体的命名约定。类型已由构件的名称定义。它的实例的名称是Delphi自动生成的类型实例名字去掉数字后缀。举例如下:
类型 实例名字
TOpenDialog OpenDialog
TSaveDialog SaveDialog
TOpenPictureDialog OpenPictureDialog
TSavePictureDialog SavePictureDialog
TFontDialog FontDialog
TColorDialog ColorDialog
TPrintSetupDialog PrintSetupDialog
TFindDialog FindDialog
TReplaceDialog ReplaceDialog
6.16 Win3.1页
dbll TDBLookupList
dblc TDBLookupCombo
ts TTabSet
ol TOutline
tnb TTabbedNoteBook
nb TNoteBook
hdr THeader
flb TFileListBox
dlb TDirectoryListBox
dcb TDriveComboBox
fcb TFliterComboBox
6.17 Samples页
gg TGauge
前缀 构件
cg TColorGrid
spb TSpinEdit
spe TSpinEdit
dol TDirectoryOutline
cal TCalendar
ibea TIBEventAlerter
6.18 ActiveX页
cfx TChartFX
vsp TVSSpell
f1b TF1Book
vtc TVTChart
grp TGraph
6.19 Midas页
prv TProvider
cds TClientDataSet
qcds TQueryClientDataSet
dcom TDCOMConnection
olee TOleEnterpriseConnection
sck TSocketConnection
rms TRemoteServer
mid TmidasConnection
编程规范1.基本要求
1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过200行。
1.2 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。
1.3 尽量使用标准库函数和公共函数。
1.4 不要随意定义全局变量,尽量使用局部变量。
1.5 使用括号以避免二义性。2.可读性要求
2.1 可读性第一,效率第二。
2.2 保持注释与代码完全一致。
2.3 每个源程序文件,都有文件头说明,说明规格见规范。
2.4 每个函数,都有函数头说明,说明规格见规范。
2.5 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。
2.7 常量定义(DEFINE)有相应说明。
2.8 处理过程的每个阶段都有相关注释说明。
2.9 在典型算法前都有注释。
2.10 循环、分支层次不要超过五层。
2.11 注释可以与语句在同一行,也可以在上行。
2.12 空行和空白字符也是一种特殊注释。
2.13 注释的作用范围可以为:定义、引用、条件分支以及一段代码。
注释的方法有//,(**)和{},尽可能用前两种
2.14 注释行数(不包括程序头和函数头说明部份)应占总行数的 1/5 到 1/3 。
3. 结构化要求
3.1 禁止出现两条等价的支路。
3.2 禁止GOTO语句。
3.3 用 IF 语句来强调只执行两组语句中的一组。禁止 ELSE GOTO 和 ELSE RESLUT。
3.4 用 CASE 实现多路分支。
3.5 避免从循环引出多个出口。
3.6 函数只有一个出口(强调效率的公共函数除外)。
3.7 不使用条件赋值语句。
3.8 避免不必要的分支。
3.9 不要轻易用条件分支去替换逻辑表达式。
4. 正确性与容错性要求
4.1 程序首先是正确,其次是优美
4.2 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。(代码编完马上模拟各种数据测试,记录测试数据与目的、结果)
4.3 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。
4.4 所有变量在调用前必须被初始化。
4.5 对所有的用户输入,必须进行合法性检查。
4.6 不要比较浮点数的相等,
如: 10.0 * 0.1 = 1.0 , 不可靠(用Abs(10.0*0.1-1.0)<0.00001代替)
4.7 程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。
4.8 单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。
5. 可重用性要求
5.1 重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。
5.2 公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。
5.3 公共控件或类应建立使用模板。(使用简单例子)
6.程序
6.1.程序编码力求简洁,结构清晰,避免太多的分支结构及太过于技巧性的程序,
尽量不采用递归模式。
6.2.编写程序时,亦必须想好测试的方法,换句话说,”单元测试” 的测试方案应在程序编写时一并拟好。
6.3.注释一定要与程序一致。
6.4版本封存以后的修改一定要将老语句用(* *) 封闭,不能自行删除或修改,并要在文件及函数的修改记录中加以记录。
6.5.程序中每个block 的开头 ”begin" 及 "end” 必须对齐,嵌套的block 每进一套,
6.6. 对于比较大的函数,每个block 和特殊的函数调用,都必须注明其功能