程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi的編碼規范

Delphi的編碼規范

編輯:Delphi

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved