CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

哪里有object pascal的代码规则?

楼主new_life(孙正方)2001-09-09 20:00:17 在 Delphi / 语言基础/算法/系统设计 提问

问题点数:20、回复次数:1Top

1 楼bitter()回复于 2001-09-09 21:19:21 得分 20

delphi5   源文件代码创建形式规范      
  laagee  
   
   
  摘 要:一种比较规范的编程风格。  
  关键字:delphi编程规范  
  类 别:Delphi   &   IDE  
     
     
  Delphi代码创建形式规范   1.0  
  Bear,   2000-5-1  
   
  本规范的目的:给自己的代码一个统一而标准的外观,增强  
                              可读性,可理解性,可维护性  
  本规范的原则:名称反映含义,形式反映结构  
   
   
   
  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、过程与函数  
        命名  
        格式  
      返回    
   
  3、语句风格  
  1、简单语句  
        -------;  
  2、复合语句  
        begin  
            -----;  
            -----;  
        end;    
   
  3、赋值语句  
        --   :=   -------;  
        --   :=   (--   +   --)*   (--   /   --);  
   
  4、局部变量  
  var  
      ---:   ---;  
      ---:   ---;  
  对于逻辑上并列的变量组:  
  var  
      ---,  
      ---,  
      ---:   ---;  
   
  5、数组声明  
      ---   =   array   [*..*]   of   ---;  
   
  6、if   语句  
      if   (--------)   then  
          -------------;  
      if   (--------)   then  
      begin  
          -------------;  
          -------------;  
          -------------;  
      end;  
      if   (--------)   then  
          -------------;  
      else  
          -------------;  
      if   (--------)   then  
      begin  
          -------------;  
          -------------;  
          -------------;  
      end   else  
          -------------;  
        if   (--------)   then  
      begin  
          -------------;  
          -------------;  
          -------------;  
      end   else  
      begin  
          -------------;  
          -------------;  
          -------------;  
      end;  
      if   (--------)   then  
          -------------  
      else   if   (--------)   then  
          -------------;    
   
  7、for   循环  
        for   I   :=   --------   to   --------   do  
            -------------;  
        for   I   :=   --------   to   --------   do  
      begin  
              -------------;  
              -------------;  
            -------------;  
        end;  
        for   I   :=   --------   to   --------   do  
              if   (--------)   then  
              begin  
                    -------------;  
                    -------------;  
                    -------------;  
                end;  
        for   I   :=   --------   to   --------   do  
            with   --------   then  
            begin  
                  -------------;  
                -------------;  
                -------------;  
            end;    
   
  8、while   循环  
      while   ------   do  
      begin  
          -------------;  
          -------------;  
          -------------;  
      end;    
   
  9、repeat   循环  
      repeat  
          -------------;  
          -------------;  
          -------------;  
      until   ------;    
   
  10、case   语句  
        case   --------   of  
            --------   :   -------------;  
            --------   :   -------------;  
            --------   :   -------------;  
                        else   -------------;  
        end;  
        case   --------   of  
              --------   :  
                  -----------------------------------------------------------------;  
              --------   :  
                  -----------------------------------------------------------------;  
              --------   :  
                  -----------------------------------------------------------------;  
                        else  
                  -----------------------------------------------------------------;  
          end;  
      case   --------   of  
            --------   :   begin  
                                                  --------------------------;  
                                                  --------------------------;  
                                                  --------------------------;  
                                          end;  
            --------   :   begin  
                                                  --------------------------;  
                                                  --------------------------;  
                                                  --------------------------;  
                                            end;  
            --------   :   begin  
                                                --------------------------;  
                                                --------------------------;  
                                                --------------------------;  
                                          end  
                        else   begin  
                                                -------------;  
                                                -------------;  
                                                -------------;  
                                          end;  
      end;    
   
  11、with   语句  
        with   --------   do  
              -------------;  
        with   --------   do  
        begin  
              -------------;  
              -------------;  
              -------------;  
        end;    
   
  12、try   语句  
            try  
                -------------;  
                -------------;  
                -------------;  
            finally  
                -------------;  
                -------------;  
                -------------;  
            end;  
            try  
                try  
                    -------------;  
                    -------------;  
                    -------------;  
                except  
                      -------------;  
                        -------------;  
                end;  
            finally  
                -------------;  
                -------------;  
                -------------;  
            end;    
   
  13、其它  
            运算:运算符前后要有空格  
            w1[n]   :=   ((i   +   1)   *   v0[n]   +   j   *   v1[n]   +   (k   -   1)   *   v2[n])   /   depth;  
            --   =   --  
            --   >=   --  
            --   <=   --  
            --   >   --  
            --   <   --  
            --   <>   --  
            --   :=   --;   赋值  
            --:   ----;   类型  
            同一类型且含义逻辑上不并列的变量   20个字符长的变量名  
            private  
                -------   :   -------;  
                -------   :   -------;  
                -------   :   -------;  
                -------   :   -------;  
                -------   :   -------;  
            var  
                -------   :   -------;  
                -------   :   -------;  
                -------   :   -------;  
                -------   :   -------;  
                -------   :   -------;  
            function   ---------------------(--:   ----;   --:   ----;   --:   ----):   ----;  
            同一类型且含义逻辑上并列的变量   如   Error0,Error1,Error2   ;   R,G,B  
            private  
                -------   ,  
                -------   ,  
                -------   ,  
                -------   ,  
                -------   :   -------  
            var  
                -------   ,  
                -------   ,  
                -------   ,  
                -------   ,  
                -------   :   -------  
            function   ---------------------(--,   --,   --:   ----;   var   --,   --,   --:   ----):   ----;  
            T-------   =   class(-------)  
            private  
                F-------:   -------;  
                F-------:   -------;  
                F-------:   -------;  
                function   --------------:   -------;  
                procedure   --------------;  
            protected  
                function   --------------:   -------;  
                procedure   --------------;  
                function   --------------:   -------;   virtual;   abstract;  
            public  
                constructor   Create(-------:   -------);   override;   {if   need   to   do   something   after   Create}  
                destructor   Destroy;   override;   {if   need   to   do   something   before   Destroy}  
                function   --------------:   -------;  
                procedure   --------------;  
                property   -------:   -------   read   F-------;  
            published  
            end;    
   
  14、形式反映结构  
      例子:  
      TetIndex   :   array[0..3]   of   TInteger3v   =  
                            (   (0,   1,   3),  
                                  (2,   1,   0),  
                                  (3,   2,   0),  
                                  (1,   2,   3)   );  
      Cursors:   array[0..4]   of   TIdentMapEntry   =   (  
          (Value:   crDefault;   Name:   'crDefault'),  
          (Value:   crArrow;   Name:   'crArrow'),  
          (Value:   crCross;   Name:   'crCross'),  
          (Value:   crIBeam;   Name:   'crIBeam')   );  
      if   (dwFlags   and   PFD_DRAW_TO_WINDOW)   =   0)  
              or(   (dwFlags   and   PFD_SUPPORT_OPENGL)   =   0)  
                        or(   (dwFlags   and   PFD_DOUBLEBUFFER)   =   0)  
                              or   (iPixelType   <>   PFD_TYPE_RGBA)  
                              or   (cColorBits   <   16)  
                              )  
                    )   then  
      raise   Exception.Create('Inappropriate   Pixel   Format   chosen.');  
      glBegin(shadeType);  
      glNormal3fv(@n0);  
      glVertex3fv(@dodec[a,   0]);  
      glVertex3fv(@dodec[b,   0]);  
      glVertex3fv(@dodec[c,   0]);  
      glVertex3fv(@dodec[d,   0]);  
      glVertex3fv(@dodec[e,   0]);  
      glEnd();  
      dodec[0,   0]   :=   -alpha;   dodec[0,   1]   :=   0;   dodec[0,   2]   :=   beta;  
      dodec[1,   0]   :=   alpha;   dodec[1,   1]   :=   0;   dodec[1,   2]   :=   beta;  
      dodec[2,   0]   :=   -1;   dodec[2,   1]   :=   -1;   dodec[2,   2]   :=   -1;  
   
  procedure   glutWireTorus(  
                                                  innerRadius   :   GLdouble;   //---------  
                                                  outerRadius   :   GLdouble;   //---------  
                                                  nsides   :   GLint;   //---------  
                                                  rings   :   GLint   );   //---------  
          case   FRunDirection   of  
              rdRightToLeft   :   begin  
                                                              StY:=CnY;  
                                                                        StX:=Width   -   CurrentStep;  
                                                              end;  
              rdLeftToRight   :   begin  
                                                                    StY:=CnY;  
                                                                    StX:=-CurrentStep;  
                                                              end;  
              rdBottomToTop   :   begin  
                                                                            StX:=CnX;  
                                                                            StY:=Height   -   CurrentStep;  
                                                                    end;  
              rdTopToBottom   :   begin  
                                                                            StX:=CnX;  
                                                                            StY:=CurrentStep   -   RTHeight;  
                                                                      end;  
                                                        else   begin  
                                                                            StX:=CnX;  
                                                                              StY:=CnY;  
                                                                      end;  
              end;  
            case   (DitherMode)   of  
                  dmNearest:  
                      Ditherer   :=   TDitherEngine.Create(Bitmap.Width,   ColorLookup);  
                  dmFloydSteinberg:  
                      Ditherer   :=   TFloydSteinbergDitherer.Create(Bitmap.Width,   ColorLookup);  
                  dmStucki:  
                      Ditherer   :=   TStuckiDitherer.Create(Bitmap.Width,   ColorLookup);  
                  dmSierra:  
                      Ditherer   :=   TSierraDitherer.Create(Bitmap.Width,   ColorLookup);  
                  dmJaJuNI:  
                      Ditherer   :=   TJaJuNIDitherer.Create(Bitmap.Width,   ColorLookup);  
                  dmSteveArche:  
                      Ditherer   :=   TSteveArcheDitherer.Create(Bitmap.Width,   ColorLookup);  
                  dmBurkes:  
                      Ditherer   :=   TBurkesDitherer.Create(Bitmap.Width,   ColorLookup);  
              else  
                  exit;  
  end;  
   
  返回    
   
  4、命名规则  
      1、文件名称:   u模块名称;见名知意  
      2、控件名称:   功能_控件缩写;见名知意  
      3、变量   :   尽量不用缩写,尽量用名词;见名知意  
      4、方法与过程:尽量不用缩写,尽量用动宾词组;见名知意  
    5、常见的惯例  
                          类名以T打头   (Type之意)  
                          类的私有数据域以F打头(Field之意)  
                          对数据的存取操作分别以Set,Get打头  
                          事件属性以On打头    
     
  Top

相关问题

  • 用OBJECT PASCAL实现VECTOR,谁有比较好的代码?
  • 什么是Pascal规则?
  • VB的代码则么转成pascal,一行代码
  • 100分急求,C语言代码转换为Pascal代码?
  • 求购病毒原代码(pascal)
  • 求矩阵特征值的pascal代码。
  • 有没有按位图画不规则窗口的代码?
  • 求用DELPHI不规则窗体的源代码
  • 哪儿有不规则button的代码?谢谢!
  • 急求!关联规则算法的源代码!!!

关键词

  • 语句
  • 代码
  • 主题
  • delphi
  • 变量
  • 含义
  • cm
  • 类型
  • 逻辑上
  • 风格

得分解答快速导航

  • 帖主:new_life
  • bitter

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo