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

Delphi代碼創建形式規范

編輯:Delphi
本規范的目的:給自己的代碼一個統一而標准的外觀,增強
                可讀性,可理解性,可維護性
  本規范的原則:名稱反映含義,形式反映結構
  
  
1、單元風格
  2、各區風格
  3、語句風格
  4、命名規則
  
  參考:Borland官方Object Pascal風格指南
        Delphi5程序員指南編碼標准
     

1、單元風格

  {*******************************************************}
  {                                                       }
  {                     項目名稱                          }
  {                                                       }
  {            版權所有 (C) 2000,2001 公司名稱            }
  {                                                       }
  {*******************************************************}
  
  
  unit UnitName;
  {*******************************************************
  項目:
  模塊:
  描述:
  版本:
  日期:
  作者:
  更新:
  TODO:
  *******************************************************}
  
  interface
  
  uses
     ----,----,----,----,----,----,----,----,----,----,----, 
     ----,----, ----,----,----,----;
  
  const
     --------------------;
     --------------------;
     --------------------;
   
  type
     --------------------;
     --------------------;
     --------------------;
      --------------------;
     --------------------;
     --------------------;
  
  var
     --------------------;
     --------------------;
     --------------------;
  
  implementation
  
  uses
     ----,----,----,----;
  
  {$R *.RES}
  {$R *.DFM}
  
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  --------------------------------;
  
  end.
返回

2、各區風格

0、注釋與空白

   用{ } 不用 //
     主題注釋,函數過程目的說明,語句注釋
     空行 :版權塊,類之間,方法之間--(兩行) 方法內部塊(一行)
     空格 :用以增強清晰度                        
     縮進 :兩個空格 

1、常量區

基本: Const
    -----    = ----;
    -----    = ----;
    -----    = ----;
    -----    = ----;
擴展
  前綴:  少則C_---;多則可以每個主題有一個前綴
  Const
  
    { 主題1 }
    C_---    = ----;  { 含義 }
    C_---    = ----;  { 含義 }
    C_---    = ----;  { 含義 }
    C_---    = ----;  { 含義 }
    { 主題2 }
    -----    = ----;
    -----    = ----;
    -----    = ----;
    -----    = ----;
資源字符串,放在變量區後面
  
  resourcestring
  
  const
    S_---    = '----';
    S_---    = '----';
    S_---    = '----';
  
  例子:
   CM_BASE                 = $B000;
     CM_ACTIVATE             = CM_BASE + 0;
     CM_DEACTIVATE           = CM_BASE + 1;
     CM_GOTFOCUS             = CM_BASE + 2;
     CM_LOSTFOCUS            = CM_BASE + 3;
      NumPaletteEntrIEs = 20;
      BoxPoints : array[0..5, 0..2] of GLfloat =
                (  (-1,  0,  0),
                    ( 0,  1,  0),
                    ( 1,  0,  0),
                    ( 0, -1,  0),
                    ( 0,  0,  1),
                    ( 0,  0, -1)  );
  
     { Variant type codes (wtypes.h) }
  
      varEmpty       = $0000; { vt_empty   }
      varNull        = $0001; { vt_null        }
      varSmallint    = $0002; { vt_i2          }
     GIFVersions : array[gv87a..gv89a] of TGIFVersionRec = ('87a', '89a');

2、類型區

   數據類型-->不提供服務的數據類型
     T---- = ---------
     對象類型-->有狀態並提供服務的實體
     T---- = class(----)
     private
       --------
       --------
     protected
       --------
       --------
     public
         --------
         --------
     published
         --------
        --------
     end;
   按字母排序 Private
     1、所有數據放在Private 區,以F打頭
     2、所有事件屬性對應的方法指針放在Private 區,以F打頭
     3、屬性的Get與Set方法放在Private 區-->不准備被繼承
     4、響應消息的方法放在Private 區
  protected
     1、被子類調用的但不能被外界調用的方法與屬性
     2、供子類重載的方法 virsual;      virsual;  abstract
  public
     1、構建析構方法
     2、供外界調用的方法
     3、供外界調用的屬性
  published
     1、出現在Object Inspector裡供設計時用的屬性
     2、出現在Object Inspector裡供設計時用的事件響應 
例子:   TGIFVersion = (gvUnknown, gv87a, gv89a);
    TGIFVersionRec = array[0..2] of char;
    PInterfaceTable = ^TInterfaceTable;
    TInterfaceTable = packed record
    EntryCount: Integer;
    EntrIEs: array[0..9999] of TInterfaceEntry;
  
    { forWord declairation } 
   TGIFImage = class;
    TGIFSubImage = class;
    {---------------------------
             TGIFItem
     ---------------------------}
    TGIFItem = class(TPersistent)
    private
      FGIFImage: TGIFImage;
    .............
    end; 

3、變量區

 定義全局變量
   注意不要有缺省的類對象變量,在調用者中聲明!
   var
   -----------: -------;
   -----------: -------;
   例子:
   GIFDelayExp: integer = 10;          { Delay multiplIEr in mS.}
   GIFDelayExp: integer = 12; 

4、實現區

{---------------------------------------------------------
                          主題
  ----------------------------------------------------------}
  
  { 方法的目的 }
  procedure  ----------------------------
  begin
    --------;
    --------;
  end;
  
  { 方法的目的 }
  function  -----------------------------
  begin
    --------;
    --------;
  end;

5、過程與函數

   命名
     格式
  返回

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