Delphi的编码规范

2016-02-19 12:49 14 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享Delphi的编码规范的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

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 ( ab )and( a错误的用法
    if (a   b)  and  (a    c) then //正确的用法

2.1.4 变量

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

         尽量不用缩写,尽量用名词,如有多个单词则每个单词的第一个字符一定要大写;见名知意

   所有模块内全局变量必须用‘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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

Samples Tab
  gg?? TGauge
  cg?? TColorGrid
  spb?
  spe?
  dol? TDirectoryOutline
  cal? TCalendar
  ibea? TIBEventAlerter

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

ActiveX Tab
  cfx? TChartFX
  vsp?? TVSSpell
  f1b?? TF1Book
  vtc?? TVTChart
  grp?? TGraph

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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’。

来源:https://www.tulaoshi.com/n/20160219/1602082.html

延伸阅读
标签: PHP
9.1 常量 位于for循环中作为计数器值的数字常量,除了-1,0和1之外,不应被直接写入代码。 9.2 变量赋值 避免在一个语句中给多个变量赋相同的值。它很难读懂。例如: $fooBar.fChar = $barFoo.lchar = 'c'; // 错误 不要将赋值运算符用在容易与相等关系运算符混淆的地方。例如: if ($c++ = $d++) { // 错误 ... ...
标签: PHP
/* * @(#)Cngift.php 1.82 03/06/25 * * 开花石头编写的示例文档 * 将对编码规范做简单的示范 * */ require( db.php ); /** * 示范用类 * * @version 1.82 03.06.25 * @author 开花石头 */ class Blah extends SomeClass { /* 这个类运行时的注释写在这里 */ /** 关于变量的注释写在这里 */ ...
标签: Web开发
对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript 的编码规范也往往被轻视,开发过程中修修补补,最终也就演变成为后续维护人员的恶梦。软件存在的长期价值直接与编码的质量成比例。编码规范能帮助我们降低编程中...
标签: PHP
2 文件名 文件夹命名一般采用英文,长度一般不超过20个字符,命名采用小写字母。除特殊情况才使用中文拼音,一些常见的文件夹命名如:images(存放图形文件),flash(存放Flash文件),style(存放CSS文件),scripts(存放Javascript脚本),inc(存放include文件),link(存放友情链接),media(存放多媒体文件)等。文件名称统一...
对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript 的编码规范也往往被轻视,开发过程中修修补补,最终也就演变成为后续维护人员的恶梦。软件存在的长期价值直接与编码的质量成比例。编码规范能帮助我们降低编程中不必要的...

经验教程

993

收藏

89
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部