版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、感謝 tianhaiyise 提供的cl 的譯木1 規(guī)范簡介木規(guī)范圭要規(guī)定delphi源程序在書寫過程屮所應(yīng)遵循的規(guī)則及注恵棗項(xiàng)。 編寫該規(guī)范的目的是使公司軟件開發(fā)人員的源代碼書寫習(xí)慣保持一致。這樣做可 以使每一個(gè)組員都可以理解英它組員的代碼,以便于源代碼的二次開發(fā)記憶系統(tǒng) 的維護(hù)。2 般格式規(guī)范2.1縮進(jìn)縮進(jìn)就是在當(dāng)源程序的級改變時(shí)為增加可讀性而露出的兩個(gè)空格??s進(jìn)的 規(guī)則為每一級縮進(jìn)兩個(gè)空格。不準(zhǔn)許使用tab。因?yàn)閠ab會因?yàn)橛脩羲鞯脑O(shè)置 不同而產(chǎn)生不同的效果。當(dāng)遇到begin或進(jìn)入判斷、循環(huán)、異常處理、with語句、記錄類型聲明、類聲明等的時(shí) 侯增加一級,當(dāng)遇到end或退出判斷、循環(huán)、
2、異常處理、with語句、記錄類型聲明、類 聲明等的時(shí)侯減少一級。例如:if tmplnt <> 100 thentmplnt 100;2.2 begin.endbegin語句和end語句在源程序中要獨(dú)占一行,例如:for i := 0 to 10 do begin 不正確的用法end;for i := 0 to 10 do 正確的用法beginend;2.3空格在操作符及邏輯判斷符號的兩端添加空格,例如:i:=i+1;, aandb等, 但添加括號時(shí)不需要空格。例如:if(a>b ) then 錯(cuò)誤的用法if (a > b) then 正確的用法又例女口: proced
3、ure test(paraml: integer; param3: string);3. object pascal語法書寫格式規(guī)范3保留字object pascal語言的保留字或關(guān)鍵詞應(yīng)全部使用小寫字母。3.2過程和函數(shù)3.2.1命名及格式過程和函數(shù)的名稱應(yīng)全部使用有意義的單詞組成,并且所有單詞的第一個(gè) 字母應(yīng)該使用大寫字母。例如:procedure formatharddisk;/不正確的命名procedure formatharddisk;/ 正確的命名設(shè)置變量內(nèi)容的過程和函數(shù),應(yīng)使用set作為前綴,例如:procedure setusername;讀取變量內(nèi)容的過程和函數(shù),應(yīng)使用get
4、作為前綴,例如:function getusername: string;3.2.2過程和函數(shù)的參數(shù) 命名統(tǒng)一類型的參數(shù)寫在同一句中:procedure foo(param 1, param2, param3: integer; param4: string); 命名所有參數(shù)必須是有意義的;并且當(dāng)參數(shù)名稱和其它屈性名稱重了的時(shí)候, 加一個(gè)前綴'a;例如:procedure someproc(ausername: string; auserage: integer);命名沖突當(dāng)使用的兩個(gè)unit屮包括一個(gè)重名的函數(shù)或過程時(shí),那幺當(dāng)你引用這一函 數(shù)
5、或過程時(shí),將執(zhí)行在use子句中后聲明的那個(gè)unit中的函數(shù)或過程。為了避免這種 uses-clause-dependenf需要在引用函數(shù)或過程吋,寫完整函數(shù)或過程的出處。例 如:sysutils.findclose(sr);windows.findclose(handle);3.3變量3.3.1變量命名及格式首先所冇變量必須起冇意義的名字,使其它組員可以很容易讀懂變量所代 表的意義,變量命名可以采用同義的英文命名,可使用幾個(gè)英文單詞,但每一單 詞的首字母必須大寫。例如:varwriteformat: string;同時(shí)對于一些特定類型可采用一定的簡寫如下:指針類型p紀(jì)錄類型rec數(shù)組類型arr
6、類class循環(huán)控制變量通常使用單一的字符如:ij,或k。另外使用一個(gè)有意義 的名字例如:userindex,也是準(zhǔn)許的。3.3.2局部變量在過程中使用局部變量遵循所有其它變量的命名規(guī)則。3.3.3全局變量盡量不使用全局變量,如必須使用全局變量則必須加前綴g,同吋應(yīng)在變量名稱中體現(xiàn)變量的類型。例如:gprecusercount: point;/名稱為usercount的全局變量,其類型為指向一結(jié) 構(gòu)的指針但是在模塊內(nèi)部可以使用全局變量。所有模塊內(nèi)全局變量必須用f為前綴。 如果兒個(gè)模塊之間需要進(jìn)行資料交換,則需要通過聲明屬性的方法來實(shí)現(xiàn)。例如:typetformoverdraftreturn =
7、 class(tform)private private declarations fusername: string;fusercount: integer;procedure setusername(value: string);function getusername: string;public public declarations property username: string read getusername write setusername;property usercount: integer read fusercount write fusercount;end;3
8、.4類型3.4.1大小寫協(xié)議保留字的類型名稱必須金部小寫。win32 api的類型通常金部大寫,對于 其它類型則首字母大寫,其余字母小寫,例如:varmystring: string; / reserved wordwindowhandle: hwnd; / win32 api typei: integer; / type identifier introduced in system unit3.4.2浮點(diǎn)類型盡量不使用real類型,他只是為了和舊的pascal代碼兼容,盡量使用double 類型。double類型是對處理器和數(shù)據(jù)總線做過最優(yōu)化的并口是ieee定義的標(biāo)準(zhǔn)數(shù)據(jù)結(jié) 構(gòu)。當(dāng)數(shù)值超出
9、double的范圍時(shí),使用extendedo但extended不被jave支持。但使用其它語言編寫的dll時(shí)可能會使用 single 類型。3.4.3枚舉類型枚舉類型的名字必須冇意義并月類型的名字z前要加前綴t。枚舉類型的 內(nèi)容的名字必須包含枚舉類型名稱的簡寫,例如:tsongtype = (strock, stclassical, stcountry, stalternative,stheavymetal, strb);3.4.4數(shù)組類型數(shù)組類型的名字必須冇意義并月類型的名字z前要加前綴t。如呆聲明一 個(gè)指向數(shù)組類型的指針必須在該類型的名字2前加前綴p,例如:typepcyclearray
10、= atcyclearray;tcyclearray = array1. 100 of integer;3.4.5記錄類型記錄類型的名字必須有意義并且類型的名字z前要加前綴t。如杲蘆明一 個(gè)指向數(shù)組類型的指針必須在該類型的名字之前加前綴p,例如:typepemployee = atemployee;temployee = recordemployeename: stringemployeerate: double;end;作者:索引越界2006-2-20 18:32 回復(fù)此發(fā)言2回復(fù):delphi源程序格式書寫規(guī)范3.5類3.5.1命名及格式類的名字必須有意義并口類型的名字之前要加前綴t。例如
11、:typetcustomer = class(tobject)類實(shí)例的名字通常是去掉t的類的名字。例如:varcustomer: tcustomer;3.5.2類中的變量命名及格式類的名字必須冇意義并11類型的名字之前要加前綴f。所冇的變量必須是 四有的。如果需要從外部訪問此變量則需要聲明一屬性3.5.3方法命名及格式同函數(shù)和過程的命名及格式。屬性訪問方法所有的屬性訪問方法必須出現(xiàn)在private或protected屮。屬性訪問方法 的命名同函數(shù)和過程的命名另外讀方法(readermethod)必須使用前綴'get:寫方法(writermeth
12、od)必須使用麗綴寫方法的參數(shù)必須命名為'value*,其類型同所 要寫的屬性相一致。例如:tsomeclass = class(tobject)privatefsomefield: integer;protectedfunction getsomefield: integer;procedure setsomefield( value: integer);publicproperty somefield: integer read getsomefield write setsomefield;end;3.6屬性3.6.1命名及格式同其用操作的,出去前綴f的類的變量的名稱相一致。3.
13、7文件3.7.1項(xiàng)目文件項(xiàng)目目錄結(jié)構(gòu)程序主口錄-bin (應(yīng)用程序所在路徑)-db (本地?cái)?shù)據(jù)庫所在路徑)-doc (文檔所在路徑)hip (幫助文件所在路徑)-backup (備份路徑)-tmp (臨吋文件路徑) 命名項(xiàng)目文件必須使用一個(gè)冇意義的名字。例如:delphi屮系統(tǒng)信息的項(xiàng)目 文件被命名為syslnfo.dpro3.7.2 form 文件 命名同form的名稱相一致:例如:form的名稱為formmain則form文件的 名稱就為 formmain.frmo3.7.3 data module 文件 命名data module文
14、件的命名應(yīng)該有意義,并且使用dm,作為前綴。例如:用戶 data module被命名為'dmcustomers.dfm1 o3.7.4 remote data module 文件 命名remote data module文件的命名應(yīng)該有意義,并1=1使用rdm作為前綴。例如: 用戶 remote data module被命名為'rdmcustomers.dfm* o3.7.5 unit 文件3.7.5普通unit3.7.5unit文件命名unit文件的命名應(yīng)該有意義,并月.使用'unif作為前綴。例如:通用unit被命名為'unitgenerafo
15、 form units.1 命名form unit文件的名字必須和form的名稱保持一致。例如:主窗體叫formmain.pas 則 formunit文件的名字為:unitformmain。 data module units.1 命名data module unit文件的名字必須和data module的名稱保持一致。例如: 主 datamodule 叫 dmmain.pas 貝ij data module unit 文件的名字為:unitdmmain。文件頭在所有文件的頭部應(yīng)寫上此文件的用途,作者,日期及輸入和輸出。例如
16、:修改日期:作者:用途:木模塊結(jié)構(gòu)組成:3.7.6 forms 和 data modules forms form 類1. form類命名標(biāo)準(zhǔn)forms類的命名應(yīng)該有意義,并且使用tform1為前綴。例如:aboutform類的名字為:taboutform = class(tform)主窗體的名字為tmainform 二 class(tform)2. form類實(shí)例的命名標(biāo)準(zhǔn)form的類實(shí)例的名字應(yīng)同期掉t的form類的名字相一致。例如:type nameinstance nametaboutformaboutformtmainformmainformtcustomerentry
17、formcustomerentryform data modules form.1. data module form 命名標(biāo)準(zhǔn)data modules forms類的命名應(yīng)該冇意義,并且使用tdm作為前綴。例 如:tdmcustomer = class(tdatamodule)tdmorders = class(tdatamodule).2. data module 實(shí)例命名標(biāo)準(zhǔn)data module form的類實(shí)例的名字應(yīng)同期扌卓t的data module form類的 名字相一致。例如:type name作者:索引越界2006-2-20 18:
18、33 冋復(fù)此發(fā)言3回復(fù):delphi源程序格式書寫規(guī)范instance nametcustomerdatamodulecustomerdatamodulet ordersdatamoduleordersdatamodule3.8控件3.8.1控件實(shí)例的命名控件的實(shí)例應(yīng)使用去掉t該控件類的名稱作為前綴,例如:輸入用戶姓名的tedit的名字為:editusernameo3.8.2控件的簡寫控件的名稱可使用以卜簡寫,但所用簡寫于控件名稱z間約添加j3.&2.1 standard tabmm tmainmenupm tpopupmenummi tmainmenuitempmi tpopupme
19、nuitemlbl tlabeledt teditmem tmemobtn tbuttoncb tcheckboxrb tradiobuttonlb tlistbox cb tcombobox scb tscrollbargb tgnmpboxrg tradiogrouppnl tpanelcl tcommandlist3.&2.2 additional tabbbtn tbitbtnsb tspeedbuttonme tmaskeditsg tstringgriddg tdrawgridimg timageshp tshapebvl tbevelsbx tscrollboxclb t
20、checklistboxspl tsplitterstx tstatictextcht tchart3&2.3 win32 tabtbc ttabcontrolpgc tpagecontrolil timagelistre trichedittbr ttrackbarprb tprogressbarud tupdownhk thotkeyani tanimate dtp tdatetimepickertv ttreeviewlv tlistviewhdr theadercontrolstb tstatusbartlb ttoolbarclb tcoolbar3.&2.4 sys
21、tem tabtm ttimerpb tpaintbox mp tmediaplayer olec tolecontainer ddcc tddeclientconv ddci tddeclientltem ddsc tddeserverconv ddsi tddeserverltem internet tabcsk tclientsocketssk tserversocket wbd twebdispatcherpp tpageproducer tp tquerytableproducer dstp tdatasett ableproducer nmdt tnmdaytimen
22、ec tnmecho nf tnmfinger nftp tnmftp nhttp tnmhttp nmsg tnmmsg nmsg tnmmsgserv nntp tnmnntpnpop tnmpop3nuup 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 tdatasourcet
23、bl ttable qry tquery sp tstoredproc db tdatabase ssn tsession bm tbatchmove usql tupdatesql data controls tab dbg tdbgriddbn tdbnavigator dbt tdbtext dbe tdbedit dbm tdbmemo dbi tdbimage dblb tdblistbox dbcb tdbcombobox dbch tdbcheckbox dbrg tdbradiogroup dbll tdblookuplistbox dblc tdblookupc
24、ombobox dbre tdbrichedit dbcg tdbctrlgrid dbch tdbchart decision cube tab deb tdecisioncubedeq tdecisionquery des tdecisionsource dep tdecisionpivot deg tdecisiongrid degr tdecisiongraph qreport tab qr tquickreport qrsd tqrsubdetail qrb tqrbandqrcb tqrchildband qrg tqrgroup qrl tqrlabe
25、l qrt tqrtext qre tqrexpr qrs tqrsysdata qrm tqrmemo qrrt tqrrichtext qrdr tqrdbrichtext qrsh tqrshape qri tqrimage qrdi tqrdbmimageqrcr tqrcompositereportqrp tqrpreviewqrch tqrchart0 dialogs tabopendialog topendialogsavedialog tsavedialogopenpicturedialog topenpicturedialog savepicturedialog tsavepicturedialog fontdialog tfontdialogcolordialog tcolordialogprintdialog tprintdialogprintersetupdialog tprintset叩dialog finddialog tfinddialog replacedialog treplacedialog1 win31 tab dbll tdblookuplist dblc tdblookupcombo ts ttabsetol toutlinetn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教職工勞動合同書
- 勞動合同履行中的非法招聘問題研究
- 辦公用品采購合同書2024年
- 員工宿舍出租合同
- 【初中地理】《世界人口數(shù)量的變化》作業(yè)練習(xí) 2024-2025學(xué)年人教版地理七年級上冊
- 家庭教師兼職合同范例
- 老年人租房免責(zé)協(xié)議書經(jīng)典版
- 房產(chǎn)保密協(xié)議2024年
- 國外銷售代理合同范例
- 2024版勞務(wù)派遣合同書范本大全
- 車間斷針記錄表
- 國家標(biāo)準(zhǔn)10346—2006-白酒檢驗(yàn)規(guī)則和標(biāo)志、包裝、運(yùn)輸、貯存
- 幼兒基礎(chǔ)筆畫描紅字帖
- 安全教育培訓(xùn)教育需求識別
- 人參系列國家標(biāo)準(zhǔn)及其相關(guān)術(shù)語
- 環(huán)保公司高溫凝結(jié)水除油除鐵的方案宣講ppt課件
- 先張法預(yù)應(yīng)力拱板原位現(xiàn)澆施工工法(修4)
- 股票分析入門整理-入眠
- 驗(yàn)收工作培訓(xùn)會PPT課件
- 功能性衛(wèi)生巾調(diào)研報(bào)告
- 拉彎矯培訓(xùn)ppt課件
評論
0/150
提交評論