http://www.xapware.com/ddg/Coding_standards/coding_standards.html

解决方案 »

  1.   

    语句与begin是习惯齐头写还是空两格
    if some statement = then
    begin
    ...
    end
    else begin
    SomeOtherStatement;
    end; 你们会写成
    if some statement = then
    begin
      ...
    end
    else 
    begin
      SomeOtherStatement;
    end; 
    吗?变量的前缀你们怎么加?
      

  2.   

    代码输写我是直接参考vcl的源码,我想这应该是最标准吧。
      

  3.   

    那篇文档里面不都统统写了吗?这个几乎就是Borland的标准啊。按照那个习惯写,读VCL的源码都比较习惯。
      

  4.   

    你只要看一下 DELPHI 的VCL库就明白了(查找关键字 VCL 即可找到);那可是最标准的呀!
      

  5.   

    最好按照自己的习惯再结合VCL库,就够了;不过一定要开始养成好习惯.
      

  6.   

    我们的代码书写规范是按照delphi的源程序书写规范来的。我们公司定的就是这种格式
    如文件头{*******************************************************}
    {                                                       }
    {       Borland Delphi Runtime Library                  }
    {       System Utilities Unit                           }
    {                                                       }
    {       Copyright (C) 1995,99 Inprise Corporation       }
    {                                                       }
    {*******************************************************}unit SysUtils;变量及类型定义
    type{ Standard Character set type }  TSysCharSet = set of Char;{ Set access to an integer }  TIntegerSet = set of 0..SizeOf(Integer) * 8 - 1;
    。。
    类的定义,注释在前面
    { TControlActionLink }  TControlActionLink = class(TActionLink)
      protected当然细微的地方有些调整
      

  7.   

    chechy老兄,我当然知道那是标准了,但不是每个公司都会照着这个写,我是刚才在
    http://www.csdn.net/expert/Topic/228/228820.shtm
    中别人给我指出我的问题后才意识到这可能不是我一个人的习惯,故来调查一下,望大家
    讨论讨论,你老兄不要把人都赶出去了!
      

  8.   

    我是把begin齐头,
    变量我一般不加前缀。只加后缀,如 temp_str
    局部用于循环的变量我一般用i,j,m,n等一个字母的变量名。   
      

  9.   

    VCL中的类型以T开头,私有变量以F开头以事件相关的方法都是on什么的
    我们基本上都是照这个标准来做
      

  10.   

    应该照BORLAND的标准写,不过,说是说,不知道大家怎么样,我现在可不能严格按照它做的写,不过,努力
      

  11.   

    {Delphi中关于if then 的一段格式}
        with TDragDockObject(ADragObject), FDockRect do
        begin
          if Right - Left > 0 then
            FMouseDeltaX :=  (DragPos.x - Left) / (Right - Left) else
            FMouseDeltaX := 0;
          if Bottom - Top > 0 then
            FMouseDeltaY :=  (DragPos.y - Top) / (Bottom - Top) else
            FMouseDeltaY := 0;
          if Immediate then
          begin
            ActiveDrag := dopDock;
            DrawDragDockImage;
          end
          else ActiveDrag := dopNone;
        end;
      

  12.   

    chechy不要多心,我其实挺感谢你的,看看你在专家榜上的位置就知道你为本版做了多少贡献,
    我也在CSDN上学到很多。我也非常讨厌面条式的程序,特别是改这样的程序(我一般要骂两句)。
      

  13.   

    我有DELHPI编程规范文档,你要看看吗?是标准规范。
      

  14.   

    7.6 Standard页
    前缀      构件
    mm        TMainMenu
    pm        TPopupMenu
    mmi       TMainMenuItem
    pmi       TPopupMenuItem
    前缀      构件
    lbl       TLabel
    edit       TEdit
    memo       TMemo
    btn       TButton
    chkBox    TCheckBox
    rdoBox    TRadioBox
    lstBox    TListBox
    cmbBox    TComboBox
    sclBar     TScrollBar
    grpBox    TGroupBox
    rdoGrp    TRadioGroup
    pnl       TPanel
    cmdLst    TCommandList
    7.7 Additional页
    bitBtn      TBitBtn
    spdBtn      TSpeedButton
    mskEdit     TMaskEdit
    strGrid     TStringGrid
    drawGrid   TDrawGrid
    img         TImage
    shp         TShape
    bvl         TBevel
    sclBox       TScrollBox
    chkLstBox  TCheckListbox
    spl         TSplitter
    stText     TStaticText
    chart       TChart
    7.8 Win32页
    tabCtrl      TTabControl
    pageCtrl     TPageControl
    imgLst     TImageList
    RiEdit     TRichEdit
    trkBar    TTrackBar
    progBar   TProgressBar
    UpDown    TUpDown
    hotKey    THotKey
    ani       TAnimate
    dtp       TDateTimePicker
    tv        TTreeView
    lv        TListView
    hdCtrl   THeaderControl
    前缀      构件
    stbar       TStatusBar
    tlbar       TToolBar
    clbar       TCoolBar
    7.9 System页
    timer    TTimer
    ptbBox      TPaintBox
    mplayer     TMediaPlayer
    olec      TOleContainer
    ddcc      TDDEClientItem
    ddci      TDDEClientItem
    ddsc      TDDEServerConv
    ddsi      TDDEServerItem
    7.10 Internet页
    clsock     TClientSocket
    svrsock     TServerSocket
    webdisp    TWebDispatcher
    pgprod      TPageProducer
    tqtp       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
    7.11 Data Access页
    前缀      构件
    ds        TDataSource
    tbl       TTable
    qry       TQuery
    sproc     TStoredProc
    db        TDataBase
    ssn       TSession
    batMove  TBatchMove
    usql      TUpdateSQL
    7.12 Data Controls页
    dbGrid   TDBGrid
    dbNav    TDBNavigator
    dbTxt   TDBText
    dbEdit   TDBEdit
    dbMemo   TDBMemo
    dbImg     TDBImage
    dbLstBox  TDBListBox
    dbcmbBox  TDBComboBox
    dbchkBox  TDBCheckBox
    dbrdoGrp  TDBRadioGroup
    dbLLstBox TDBLookupListBox
    dblCmbBOx  TDBLookupComboBox
    dbRiEdit   TDBRichEdit
    dbctrlGrid TDBCtrlGrid
    dbchart      TDBChart
    7.13 Decision Cube页
    dcube       TDecisionCube
    dQry       TDecisionQuery
    dsource    TDecisionSource
    dcPivot   TDecisionPivot
    dcGrid    TDecisionGrid
    dcGraph      TDecisionGraph
    7.14 QReport页
    qrep        TQuickReport
    qrsd      TQRSubDetail
    qrband   TQRBand
    qrcband  TQRChildBand
    qrgrp     TQRGroup
    qrlbl       TQRLabel
    前缀      构件
    qrtxt    TQRText
    qrExpr    TQRExpr
    qrsd      TQRSysData
    qrmemo    TQRMemo
    qrRiTxt   TQRRichText
    qrdbRiTxt TQRDBRichText
    qrshp     TQRShape
    qrImg     TQRImage
    qrDBImg   TQRDBMImage
    qrcRep     TQRCompositeReport
    qrPrev     TQRPreview
    qrChart      TQRChart
    7.15 Dialogs页
    对话框构件是由构件封装的真正的窗体,因此,它们应遵循窗体的命名约定。类型已由构件的名称定义。它的实例的名称是Delphi自动生成的类型实例名字去掉数字后缀。举例如下:
    类型                    实例名字
    TOpenDialog             OpenDialog
    TSaveDialog             SaveDialog
    TOpenPictureDialog     OpenPictureDialog
    TSavePictureDialog     SavePictureDialog
    TFontDialog             FontDialog
    TColorDialog            ColorDialog
    TPrintSetupDialog      PrintSetupDialog
    TFindDialog             FindDialog
    TReplaceDialog         ReplaceDialog
    7.16 Win3.1页
    dbLLst      TDBLookupList
    dbLCmbBox  TDBLookupCombox
    tabSet        TTabSet
    oline     TOutline
    tabNB    TTabbedNoteBook
    nb        TNoteBook
    hdr       THeader
    flstBox  TFileListBox
    dLstBox  TDirectoryListBox
    dCmbBox  TDriveComboBox
    fCmbBox  TFliterComboBox
    7.17 Samples页
    前缀      构件
    gauge       TGauge
    cGrid       TColorGrid
    spinEdit    TSpinEdit
    dOLine      TDirectoryOutline
    cal          TCalendar
    ibEAlerter TIBEventAlerter
    7.18 ActiveX页
    cfx       TChartFX
    vsp       TVSSpell
    f1b        TF1Book
    vtChart   TVTChart
    graph       TGraph
    7.19 Midas页
    prv       TProvider
    cds       TClientDataSet
    qcds      TQueryClientDataSet
    dcom      TDCOMConnection
    olee      TOleEnterpriseConnection
    sockConn TSocketConnection
    rms       TRemoteServer
    midConn  TMidasConnection
      

  15.   

    wby:好东西要大家分享,不过你要是粘到这可能会把大家吓死,估计不算太少,能贴个文档最好,我会给你投上十票
      

  16.   

    我在用DELPHI前用过近两年的Turbo Pascal,
    现在一直在用那时候形成的习惯。不规范,但很习惯:if xxx then
      begin
      xxx......
      end
    else
      begin
      xxx......
      end;我觉得这样层次很分明。标准的好像是这样写:if xxx then
    begin
      xxx.....
    end else
    begin
      xxx....
    end if yyy then
      begin....呵呵,弄错了。
      

  17.   

    我一般是使用tab键智能缩进,这一点可能是受TP影响。比如
    procedure myproc(var i:integer)
              begin
                   if i = 3 then
                      begin
                           xxxxxxxxx;
                      end
                   else
                       begin
                            xxxxxxxxxxxx;
                       end;
                   xxxxxxxxxxxx;
              end;
    变量名尽可能使用前缀,不过我知道的前缀不多。
    这只是我个人的习惯。我还没有接触过使用Delphi的公司,所以不知道公司的规矩。
      

  18.   

    我也用tab缩进,我的缩进与Delphi一样是2格
      

  19.   

    我们公司是按照《Delphi 5 开发人员指南》第六章建议的标准来写的。这本书还建议不要使用Tab缩进,因为在不同的平台下Tab缩进的程度也不同。
      

  20.   

    同意楼上,我也是参考《Delphi 5 开发人员指南》第六章建议的标准来写的。不过有些控件的命名就没有象它一样,因为有时比较懒
      

  21.   

    世上本无规范,喜欢这样用的人多了也就成了规范
    HeHe
      

  22.   

    千万别用拼音,我就见过,
    TBzzzz的!
    呵呵!当时我就想ZZz!
      

  23.   

    2个月以前就讨论过这个问题,当时有VC,Delphi的代码规范,好象在软件工程讨论区
      

  24.   

    代码大全里面的规范也好但是它的begin end位置与Delphi的标准不一样
    代码大全建议的
    if * then
      begin
      ...;
      end;Delphi的标准
    if * then
    begin
      ...;
    end;