日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delphi编码规范

發(fā)布時(shí)間:2025/3/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi编码规范 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ?以下是在之前的公司與別人共同參與制定的Delphi開發(fā)規(guī)范(5年前了,那時(shí)用的還是Delphi7,部分規(guī)則可能有些過時(shí),但不整理了,覺得有用的人,自己整理成適合自己的開發(fā)規(guī)范吧),

目 ? ?錄
一、序言
二、通用源代碼格式規(guī)則
2.1 縮格
2.2 頁邊空格
2.3 Begin…End 配對(duì)
2.4代碼文件中通用符號(hào)含義
2.5注釋寫法
三、Object Pascal
3.1 括號(hào)
3.2 保留字和關(guān)鍵字
3.3 過程和函數(shù)(例程)
3.3.1 命名/格式化/聲明
3.3.2 形式參數(shù)
3.3.2.1 格式化
3.3.2.2 命名
3.3.2.3 參數(shù)的排序
3.3.2.4 常量參數(shù)
3.3.2.5 名稱的沖突
3.4 變量
3.4.1 變量的命名和格式
3.4.2 局部變量
3.4.3 全局變量的使用
3.5 類型
3.5.1 大寫約定
3.5.1.1 浮點(diǎn)指針類型
3.5.1.2 枚舉類型
3.5.1.3 變數(shù)和ole變數(shù)類型
3.5.2 結(jié)構(gòu)類型
3.5.2.1 數(shù)組類型
3.5.2.2 記錄類型
3.6 語句
3.6.1 if 語句
3.6.2 case 語句
3.6.2.1 一般性話題
3.6.2.2 格式
3.6.3 while 語句
3.6.4 for 語句
3.6.5 repeat 語句
3.6.6 with ?語句
3.6.6.1 一般話題
3.6.6.2 格式
3.7 結(jié)構(gòu)異常處理
3.7.1 一般話題
3.7.2 try…finally的使用
3.7.3 try…except的使用
3.7.4 try…except…else的使用
3.7.5 異常處理
3.8 類類型
3.8.1 命名和格式
3.8.2 域
3.8.2.1 命名/格式
3.8.2.2 可視化
3.8.3 方法
3.8.3.1 命名/格式
3.8.3.2 使用靜態(tài)的方法
3.8.3.3 使用虛擬/動(dòng)態(tài)的方法
3.8.3.4 使用抽象的方法
3.8.3.5 屬性存取方法
3.8.4 屬性
3.8.4.1 命名/格式
3.8.4.2 使用存取的方法
四、文件
4.1 工程文件
4.2 窗體文件
4.3 數(shù)據(jù)模板文件
4.4 遠(yuǎn)端數(shù)據(jù)模板文件
4.5含報(bào)表構(gòu)件窗體
4.6只存放代碼的“.PAS”
五、包
5.1 使用運(yùn)行包和設(shè)計(jì)包的比較
5.2 文件命名標(biāo)準(zhǔn)
六、構(gòu)件
6.1 用戶自定義構(gòu)件
6.2 構(gòu)件單元
6.3 使用注冊(cè)單元
6.4 構(gòu)件實(shí)例命名約定
6.5 構(gòu)件的前綴


一、序言
? ? 本文檔詳述了使用Delphi 6進(jìn)行編程的代碼編寫標(biāo)準(zhǔn)。本文檔的目的在于闡述一種方法,通過該方法,開發(fā)小組可以在他們所編寫的代碼中保持一貫的風(fēng)格。這樣做的目的是使在開發(fā)小組中的每一個(gè)程序員都可以明白其他程序員的代碼。這有助于提高代碼編寫的可讀性和使用的一貫性。
? ? 本文檔并不意味著包含了所有存在于代碼中的標(biāo)準(zhǔn)。但是,它的內(nèi)容已足夠幫你起個(gè)好頭。你可以自由的增加修改這些標(biāo)準(zhǔn)來滿足你的需要。我們嚴(yán)禁你偏離這些由Borland開發(fā)人員所使用的標(biāo)準(zhǔn)。我們推薦這么做是因?yàn)橐坏┯行碌某绦騿T加入到你的開發(fā)小組中,而他們最喜歡和最熟悉的是Delphi的標(biāo)準(zhǔn)。
二、通用源代碼格式規(guī)則
2.1 縮格
縮格是指在每一級(jí)有兩個(gè)空格。不要在源代碼中保留tab字符,這是因?yàn)閠ab字符會(huì)隨著不同用戶的不同設(shè)置和不同的資源管理工具(打印、文檔、版本控制等)而代表不同的寬度。
? ? 你可以通過關(guān)閉Environment選項(xiàng)對(duì)話框中Editor頁上的“Use tab character”和“Optimal fill”檢查框(通過Tools|Environment)來禁止保存tab字符;通常這是默認(rèn)的配置,可以不用去管它。
2.2 頁邊空格
? ? 頁邊空格會(huì)被設(shè)置成80字符寬。通常,源碼不會(huì)超出這個(gè)邊界,但這個(gè)方針會(huì)有一些彈性。不管是否有可能,那些超出到另一行的語句會(huì)在一個(gè)逗號(hào)或其他操作符之后與前面的語句相連。當(dāng)一個(gè)語句被打斷相連時(shí),它應(yīng)比原來的那一行語句縮進(jìn)兩個(gè)字符。?
2.3 Begin…End 配對(duì)
?Begin 子句應(yīng)寫在獨(dú)立的一行。例如,下面第一行是錯(cuò)誤的寫法而第二行是正確的。
for I := 0 to 10 do begin ?//錯(cuò)誤,begin同for在同一行
for I := 0 to 10 do ? ? ? ?//正確,begin出現(xiàn)在獨(dú)立的一行
begin
?這個(gè)規(guī)則的例外是當(dāng)begin子句的出現(xiàn)是作為一個(gè)else子句的一部分-參考例子:
if some statement then
begin
? …
end
else begin
? ? ?someOtherStatement;
end;
?end 語句永遠(yuǎn)出現(xiàn)在獨(dú)立的一行。
當(dāng)begin語句不是一個(gè)else子句的一部分時(shí),相應(yīng)的end語句永遠(yuǎn)縮進(jìn)到與begin部分相對(duì)應(yīng)的位置。
2.4代碼文件中通用符號(hào)含義
? 四個(gè)斜杠代表當(dāng)前有未實(shí)現(xiàn)的內(nèi)容,相當(dāng)于占位符
2.5注釋寫法
a.單行代碼注釋://注釋語句(注釋人 日期)
b.函數(shù)注釋:
在函數(shù)提前需加注釋
//
//函數(shù)功能說明:
//參數(shù)說明:
//返回值說明:
//作者:
//日期:
//
c.文件注釋
在文件頭部需加注釋
//
//文件內(nèi)容說明:
//作者:
//日期:
//
三、Object Pascal
3.1 括號(hào)
永遠(yuǎn)不要在一個(gè)語句中使用不必要的括號(hào)。括號(hào)只應(yīng)在源代碼中需要的地方使用。以下的例子示范了錯(cuò)誤和正確的使用:
if (I = 42) then ? ? ? ? ? ? ? ? ? ?//錯(cuò)誤 - 多余的括號(hào)
if (I = 42) or (J = 42) then ? ? ? ?//正確 - 需要括號(hào)
3.2 保留字和關(guān)鍵字
Object Pascal 保留字和關(guān)鍵字永遠(yuǎn)是全部小寫。
3.3 過程和函數(shù)(例程)
3.3.1 命名/格式化/聲明
?為使程序閱讀清晰,每一個(gè)過程、函數(shù)代碼通常不超過50行,否則分解為子函數(shù)。
?自定義過程、函數(shù)聲明,如果不被外部調(diào)用則放在Form的private部分。
?自定義過程、函數(shù)聲明,如果被外部調(diào)用則放在Form的public部分。
?自定義過程、函數(shù)實(shí)現(xiàn)部分,放在implementation的起始部分,Delphi自動(dòng)聲明的過程、函數(shù)之前。
?動(dòng)態(tài)連接庫的聲明部分,可根據(jù)情況放在Form的private部分或public部分。
?程序中,過程及函數(shù)必須添加注釋,詳見2.5。
?命名規(guī)則:
例程的名字永遠(yuǎn)應(yīng)該以大寫的字母開頭并且中間錯(cuò)落分明以便于可讀性。下面是一個(gè)不正確格式的過程名稱:
? ? ? ? ?procedure thisisapoorlyformattedroutinename;
下面是一個(gè)合適的大小寫例程名稱的例子:
? ? ? ? ?procedure ThisIsMuchMoreReadableRoutineName;
例程的名稱應(yīng)該同它的內(nèi)容相符。一個(gè)會(huì)導(dǎo)致某個(gè)行為的例程應(yīng)以動(dòng)詞開頭。例如:
? ? ? ? ?procedure FormatHardDrive;
一個(gè)用于設(shè)置輸入?yún)?shù)的例程應(yīng)以單詞set作為前綴,例如:
? ? ? ? ?procedure SetUserName;
一個(gè)用來接收某個(gè)值的例程應(yīng)以單詞get作為前綴,例如:
? ? ? ? ?function GetUserName : string;
3.3.2 形式參數(shù)
3.3.2.1 格式化
?如果有的話,相同類型的形參應(yīng)合并在一個(gè)語句中:
? procedure Foo(Param1, Param2, Param3 : Integer; Param4 : string);
?3.3.2.2 命名
? ? ?所有形參的名字應(yīng)是十分符合它們所代表的意義,特別是應(yīng)該以傳送到例程中的標(biāo)志符的名稱為基礎(chǔ)。一個(gè)好的參數(shù)名稱應(yīng)以字符a為前綴 - 例如:
? procedure SomeProc(aUserName : string; aUserAge : integer);
?“a”前綴按約定表示該參數(shù)的名稱是與類類型中的一個(gè)屬性或域的名稱相對(duì)應(yīng)的。
?3.3.2.3 參數(shù)的排序
?下面的形參的順序重點(diǎn)說明了注冊(cè)者調(diào)用約定調(diào)用的好處。
- 最常用的參數(shù)應(yīng)放在第一位,其它的參數(shù)應(yīng)按從左到右的順序排列。
- 輸入?yún)?shù)列表應(yīng)放在輸出參數(shù)列表的左邊。
- 將通用的參數(shù)放在特殊參數(shù)的左邊,例如:
? ? ? procedure SomeProc(aPlanet, aContinent, aCountry, aState, aCity)
- 排序有可能有些例外,比如事件的處理。類型為TObject的Sender參數(shù)經(jīng)常放在第一位。
?3.3.2.4 常量參數(shù)
? ? ?當(dāng)一個(gè)參數(shù)為記錄型、數(shù)組類型、ShortString、或接口類型并且在例程中不被改變時(shí),這些參數(shù)應(yīng)做上常量標(biāo)記。這樣做會(huì)讓編譯器更加有效率的產(chǎn)生有關(guān)這些不改變的參數(shù)的代碼。而例程中另外一些非變參數(shù)也可常量來傳送。盡管這樣做沒有產(chǎn)生任何效果和提高效率,這將會(huì)給調(diào)用例程的使用者提供更多的信息。
?3.3.2.5 名稱的沖突
? ? ?當(dāng)使用擁有兩個(gè)名稱相同的例程的兩個(gè)單元時(shí),如果你調(diào)用該例程時(shí),在uses子句中排在后面的單元中的例程將會(huì)被調(diào)用。為了解決這種“在uses子句上的模糊”沖突,要在調(diào)用該例程時(shí)寫上相關(guān)的單元的前綴,例如:
? ? ? ? SysUtils.FindClose(SR);

? ? ? ? Windows.FindClose(Handle);
3.4 變量
3.4.1 變量的命名和格式
變量的命名應(yīng)以使用它們的目的相符,循環(huán)控制變量應(yīng)采用一個(gè)單獨(dú)的字符作為名字,比如 I,J,或K,也可以采用更加有意義的名字,比如 UserIndex。
邏輯變量的名字應(yīng)能充分表達(dá)準(zhǔn)確的真或假的意思。
變量命名以簡明、清晰為準(zhǔn),采用匈牙利命名法,前綴小寫字母表示變量數(shù)據(jù)類型,后跟簡短英文說明含義。
數(shù) ?據(jù) ?類 ?型 縮寫
Array Arr
Boolean Is
Char C
Class T
Float F
Integer I
Record R
Set Set
String S
?3.4.2 局部變量
一個(gè)過程中的局部變量應(yīng)遵循所有其它變量的使用和命名約定。臨時(shí)變量的取名應(yīng)合理。
如果必須的話,在一進(jìn)入例程就應(yīng)初始化局部變量。局部的AnsiString變量會(huì)自動(dòng)初始化為一個(gè)空的字符串。局部接口和派分接口類型變量將會(huì)自動(dòng)初始化為nil,并且局部變數(shù)和ole變數(shù)類型變量會(huì)自動(dòng)初始化為Unassigned。
?3.4.3 全局變量的使用
? ? 使用全局變量是不推薦的。但是,在某些時(shí)候還是必須使用,而且它們也只應(yīng)在必須使用的時(shí)候才使用。在這種時(shí)候,你應(yīng)努力只在一段上下文范圍內(nèi)使用全局變量。例如,一個(gè)全局變量只應(yīng)在一個(gè)單元的implemntation部分內(nèi)是全局的。如果打算在多個(gè)單元類使用全局?jǐn)?shù)據(jù),你應(yīng)將它們移到一個(gè)公共的單元中然后被其它所有單元使用。
? ? 全局變量可以在var子句中直接初始化為一個(gè)值。記住,所有的全局?jǐn)?shù)據(jù)會(huì)自動(dòng)初始化為0,因此不要將全局變量初始化為一個(gè)“空”值比如 0、nil、’’、Unassigned、等等。這樣做的一個(gè)理由是因?yàn)榱?#xff0d;初始化的全局?jǐn)?shù)據(jù)在exe文件中不會(huì)占據(jù)任何空間。零-初始化數(shù)據(jù)被存儲(chǔ)在一個(gè)虛擬的數(shù)據(jù)段,它在應(yīng)用程序啟動(dòng)后被分配在一段內(nèi)存中。非零-初始化的全局?jǐn)?shù)據(jù)在硬盤的exe文件占用空間。
? ? 全局變量命名應(yīng)加上前綴glb,如glbUserName。
3.5 類型
3.5.1 大寫約定
如果類型的名字是保留字,那么它應(yīng)全部小寫。
Win32 API類型通常全部大寫,并且你必須遵循在Windows.pas或其他API單元中的詳細(xì)類型名稱的約定。
常量應(yīng)全部大寫;
對(duì)于其他變量名字,第一個(gè)字母應(yīng)為大寫,而其他字母應(yīng)錯(cuò)落有致。下面是一些例子:
? ? ? var
? ? ? ? MyString : string; ? ? ? ? ?//保留字
? ? ? ? WindowHandle : HWND; ? ? ? ?//Win32 API 類型
? ? ? ? I : Integer; ? ? ? ? ? ? ? ?//在System單元中引進(jìn)的類型標(biāo)識(shí)符
3.5.1.1 浮點(diǎn)指針類型
不推薦使用Real類型,因?yàn)樗拇嬖谥皇菫榱讼蚯凹嫒菰缙诘腜ascal代碼。在通常情況下用Double來實(shí)現(xiàn)浮點(diǎn)指針的需要。并且,Double對(duì)處理器和總線而言是做了最優(yōu)化處理的,它也是IEEE中定義的標(biāo)準(zhǔn)數(shù)據(jù)格式。只有當(dāng)需要的范圍超出Double所定義的范圍時(shí)才使用Extended。Extended是intel定義的類型且在Java中不支持。只有當(dāng)浮點(diǎn)指針變量的實(shí)際字節(jié)大小有其意義時(shí)才使用Single。(比如當(dāng)使用另一種語言的DLLs時(shí))。
3.5.1.2 枚舉類型
枚舉類型的名字需符合使用該類型的目的。該類型的名字需以字符T為前綴,以表明這是一個(gè)類型。枚舉類型中的標(biāo)識(shí)符列表必須包含兩個(gè)或三個(gè)字符的前綴來對(duì)應(yīng)于該枚舉類型的名字 -例如:
? TSongType = (stRock, stClassical, stCountry, stAlternative, stHeavyMetal, stRB);
一個(gè)枚舉類型的實(shí)例的名字應(yīng)與不要前綴的枚舉類型(SongType)相同,除非有更好的原因來賦予該變量更特殊的名字,比如:FavoriteSongType1,FavoriteSongType2 等等。
3.5.1.3 變數(shù)和ole變數(shù)類型
通常不建議使用變數(shù)和Ole變數(shù)類型。但在只有運(yùn)行時(shí)刻才能知道數(shù)據(jù)類型的程序中必須使用該類型,這種情形多出現(xiàn)在COM和數(shù)據(jù)庫開發(fā)中。Ole變數(shù)使用在以COM為基礎(chǔ)的編程中例如自動(dòng)化和ActiveX控制,而變數(shù)使用在非COM的編程中,這是因?yàn)樽償?shù)可以十分有效地存儲(chǔ)本地Delphi字符串(同一個(gè)字符串變量一樣),但Ole變數(shù)會(huì)將所有的字符串轉(zhuǎn)換為Ole字符串(WideChar 字符串)并且并不實(shí)例運(yùn)算 - 它們永遠(yuǎn)拷貝。
3.5.2 結(jié)構(gòu)類型
3.5.2.1 數(shù)組類型
數(shù)組類型的名字需符合它們使用的目的。該類型的名字必須加以前綴T。如果須聲明該數(shù)組類型的指針,那么該指針需加以前綴P而且應(yīng)立即聲明在該數(shù)組聲明的前面。例如:
? ? ? ? type
? ? ? ? ? PCycleArray = ^TCycleArray;
? ? ? ? ? TCycleArray = array[1…100] of integer;
在實(shí)際應(yīng)用中,數(shù)組的變量實(shí)例的名稱應(yīng)是其類型的名字去掉前綴T。
3.5.2.2 記錄類型
記錄類型的名字應(yīng)符合使用它們的目的。其類型的聲明應(yīng)加以前綴T。如果要聲明該記錄類型的指針,就應(yīng)加以前綴P并且應(yīng)緊靠在類型聲明的前面聲明。例如:
? ? ? type
? ? ? ? ? PEmployee = ^TEmployee;
? ? ? ? ? TEmployee = record
? ? ? ? ? ? EmployeeName : string;
? ? ? ? ? ? EmployeeRate : Double;
? ? ? ? ? end;
3.6 語句
?3.6.1 if 語句
在if/then/else語句中最常發(fā)生的行為應(yīng)放在then子句中,而其它發(fā)生可能性較小的行為應(yīng)放在else子句中。盡量避免使用嵌套的if語句,在這種情形下應(yīng)用多個(gè)if語句來判斷各種可能。
不要使用if嵌套超過五級(jí)深度。應(yīng)使代碼編寫得更加清晰、明了。
不要在if語句中使用不必要的圓括號(hào)。
如果在if語句中有多個(gè)條件需測試,這些條件應(yīng)按計(jì)算強(qiáng)度由少到多的順序從左到右排列。這樣做能使編譯器在編譯代碼時(shí)獲得布爾估算邏輯的捷徑,從而使你的代碼獲得最佳的優(yōu)化。舉例來說,如果條件1快過條件2,而條件2快過條件3,那么在if語句中的排列應(yīng)是:
? ? ? ? ?if 條件1 and 條件2 and 條件3 then
3.6.2 case 語句
3.6.2.1 一般性話題
?在一個(gè)case語句中的各個(gè)獨(dú)立的單元應(yīng)以數(shù)字或字母順序排列。
? ? 每一個(gè)case單元的動(dòng)作行為應(yīng)保持簡單而不應(yīng)該超過四到五行代碼。如果所要執(zhí)行的動(dòng)作過于復(fù)雜應(yīng)采用獨(dú)立的過程或函數(shù)。
Case語句中的else子句只有當(dāng)需要缺省行為或處理錯(cuò)誤時(shí)才使用。
3.6.2.2 格式
?case語句應(yīng)遵循其它結(jié)構(gòu)的縮格和命名約定。
3.6.3 while 語句
在一個(gè)while語句中不建議使用Exit過程來跳出循環(huán),盡量僅使用循環(huán)條件來跳出循環(huán)。在一個(gè)while循環(huán)中所用的初始化代碼應(yīng)緊靠在進(jìn)入while循環(huán)前面出現(xiàn)而不要被其它不相關(guān)的語句隔開。任何結(jié)束后的處理應(yīng)在循環(huán)之后立即進(jìn)行。
3.6.4 for 語句
?for語句只有當(dāng)循環(huán)次數(shù)已知的情況下才能取代while語句使用。
3.6.5 repeat 語句
?repeat語句的使用同while語句一樣,并且遵循同樣的通用方針。
3.6.6 with ?語句
?3.6.6.1 一般話題
? ? ?with語句應(yīng)節(jié)省使用,并且?guī)в写罅康木妗1苊膺^度使用with語句并且在with語句中小心使用多個(gè)對(duì)象、記錄等等。例如:
? ? ? ? ?with Record1, Record2 do
這些事情會(huì)使程序員感到困惑并難以發(fā)現(xiàn)問題所在。
3.6.6.2 格式
?with 語句遵循本文檔所說明的命名約定和縮格的格式規(guī)則。
3.7 結(jié)構(gòu)異常處理
?3.7.1 一般話題
? ? ?異常的處理大量地使用在錯(cuò)誤糾正和資源保護(hù)方面。這就是說一旦資源被分配,一個(gè)try…finally必需加以使用來保證該資源被正確的釋放。這種異常的保護(hù)也是指在一個(gè)單元的initializition/finalization或一個(gè)對(duì)象的constructor/destructor中進(jìn)行資源的分配和釋放。
設(shè)計(jì)過程中應(yīng)盡量減少通過返回值判斷結(jié)果,應(yīng)通過觸發(fā)異常模式處理錯(cuò)誤。
3.7.2 try…finally的使用
? ? ?任何情形下,每一次的分配都應(yīng)跟隨一個(gè)try…finally。舉例來說,下面的代碼會(huì)造成可能的錯(cuò)誤:
? ? ?SomeClass1 := TSomeClass.Create;
? ? ?SomeClass2 := TSomeClass.Create;
? ? ?try
? ? ? ?{ do some code }
? ? ?finally
? ? ? ?SomeClass1.Free;
? ? ? ?SomeClass2.Free;
? ? ?end;
一個(gè)更安全更合適的分配過程應(yīng)是:
? ? ?SomeClass1 := TSomeClass.Create;
? ? ?try
? ? ? ?SomeClass2 := TsomeClass.Create;
? ? ? ?try
? ? ? ? ?{ do some code }
? ? ? ?finally
? ? ? ? ?SomeClass2.Free;
? ? ? ?end;
? ? ?finally
? ? ? ?SomeClass1.Free;
? ? ?end;
3.7.3 try…except的使用
只有當(dāng)在異常被觸發(fā)而你想執(zhí)行一些任務(wù)時(shí)才使用try…except。通常,你沒有必要為了只是簡單地在屏幕上顯示一個(gè)錯(cuò)誤信息而使用try…except語句,因?yàn)檫@會(huì)被Application對(duì)象自動(dòng)執(zhí)行。如果你想在except子句中執(zhí)行完一些任務(wù)之后調(diào)用缺省的異常處理,使用raise來重新觸發(fā)異常到下一個(gè)句柄。
3.7.4 try…except…else的使用
? ? ?try…except中的else子句不建議使用,因?yàn)樗鼤?huì)打斷所有的異常包括那些你沒有準(zhǔn)備的異常。
3.7.5異常處理


3.8 類類型
3.8.1 命名和格式
類類型的名稱應(yīng)符合使用它們的目的。類型名字應(yīng)加以前綴T以表明這是一個(gè)類型的定義 - 例如:
type
? TCustomer = class(TObject)
類型的實(shí)例通常是沒有前綴T的類型的名字 - 例如:
var
? Customer :TCustomer;
注意:查閱“構(gòu)件類型的命名標(biāo)準(zhǔn)”來獲得更多有關(guān)構(gòu)件命名的信息。
3.8.2 域
3.8.2.1 命名/格式
類的域名遵循與變量標(biāo)識(shí)符同樣的約定除了它們應(yīng)以F為前綴,來表明這是一個(gè)域的名稱。
3.8.2.2 可視化
所有的域都必需是私有的。想在類的范圍之外存取域得通過屬性來使用。
3.8.3 方法
3.8.3.1 命名/格式
方法的命名應(yīng)遵循本文檔中有關(guān)過程和函數(shù)的約定敘述。
3.8.3.2 使用靜態(tài)的方法
如果使用一個(gè)靜態(tài)的方法,那么該方法就不能被該類的后代類所繼承。
3.8.3.3 使用虛擬/動(dòng)態(tài)的方法
如果你打算該類的方法能被后代的類所繼承就得使用虛擬的方法。只有在該方法有多個(gè)繼承時(shí)(直接的或間接的)才使用動(dòng)態(tài)的方法。例如,一個(gè)類類型包含一個(gè)可繼承的方法,而100個(gè)后代類要繼承這種方法,那么這個(gè)方法就會(huì)動(dòng)態(tài)地產(chǎn)生為100個(gè)后代類使用的內(nèi)存。
3.8.3.4 使用抽象的方法
如果在一個(gè)類中使用抽象的方法,該類就不能被創(chuàng)建。只有在那些永遠(yuǎn)不會(huì)被創(chuàng)建的類中使用抽象的方法。
3.8.3.5 屬性存取方法
所有存取類的方法都只能出現(xiàn)在類的private或protected部分。屬性存取方法的命名應(yīng)遵循過程和函數(shù)的約定規(guī)則。讀取存取方法(方法讀取器)必需以單詞Get為前綴。寫入存取方法(方法寫入器)必需以單詞Set為前綴。方法寫入器的參數(shù)的名字應(yīng)為Value,并且它的類型應(yīng)是它所操作的屬性的類型。例如:
?TSomeClass = class(TObject)
?private
? ? FsomeField: Integer;
?protected
? ? function GetSomeField: Integer;
? ? procedure SetSomeField(Value : Integer);
?public
? ?property SomeField : Integer read GetSomeField write SetSomeField;
?end;
3.8.4 屬性
3.8.4.1 命名/格式
屬性如果是表示為一個(gè)私有域的存取器的話,那么它的名字應(yīng)是它們所操作的域的名字除去解釋符F。
屬性的名字應(yīng)是名詞,不是動(dòng)詞。屬性表示的是數(shù)據(jù),而方法表示的是行為。數(shù)組類型的名稱應(yīng)為復(fù)數(shù)。一般情況下屬性的名稱應(yīng)為單數(shù)。
3.8.4.2 使用存取的方法
盡管沒有要求,但還是建議盡量少地為一個(gè)表示私有域的屬性而使用寫入存取方法。
四、文件
4.1 工程文件
工程文件應(yīng)取個(gè)描述性的名字。例如,錯(cuò)誤管理器的工程名字是:Bugs.dpr。一個(gè)有關(guān)系統(tǒng)信息的程序的名字就應(yīng)象 SysInfo.dpr。
4.2 窗體文件
含窗體構(gòu)件(Form)的“.PAS”,使用型如“wn……”的英文縮寫,“wn”表示W(wǎng)indow,“……”為窗口邏輯功能的簡述。Delphi會(huì)自動(dòng)給“*.DFM”文件起相同文件名。例如:“wnCard.PAS”,“wnCard.DFM”。
窗體文件使用型如“fm……”的英文縮寫,“fm”表示Form,“……”為窗口邏輯功能的簡述,應(yīng)與文件名對(duì)應(yīng)。
例如: “fmCard”與“wnCard.PAS”
4.3 數(shù)據(jù)模板文件
含數(shù)據(jù)模塊(Data Module)的“.PAS,使用型如“dn……”的英文縮寫,“dn”表示Data Module Unit,“……”為窗口邏輯功能的簡述。例如:“dnMain.PAS”。
數(shù)據(jù)模板窗體文件使用型如“dm……”的英文縮寫,“dm”表示Data Module Form,“……”為窗口邏輯功能的簡述,應(yīng)與文件名對(duì)應(yīng)。例如:“dmMain” 與“dnMain.PAS”
4.4 遠(yuǎn)端數(shù)據(jù)模板文件
含遠(yuǎn)端數(shù)據(jù)模塊(Remote Data Module)的“.PAS,使用型如“rdn……”的英文縮寫,“rdn”表示Remote Data Module Unit,“……”為窗口邏輯功能的簡述。例如:“rdnMain.PAS”。
遠(yuǎn)端數(shù)據(jù)模板窗體文件使用型如“rdm……”的英文縮寫,“rdm”表示Remote ?Data Module Form,“……”為窗口邏輯功能的簡述,應(yīng)與文件名對(duì)應(yīng)。例如:“rdmMain” 與“rdnMain.PAS”
4.5含報(bào)表構(gòu)件窗體
含報(bào)表構(gòu)件(Quick Report)的“.PAS”使用型如“pn……”的英文縮寫,“pn”表示Print Unit,“……”為窗口邏輯功能的簡述。例如:“pnCard.PAS”。
含報(bào)表構(gòu)件的窗體文件使用型如“pm……”的英文縮寫,“pm”表示Print Form,“……”為窗口邏輯功能的簡述,應(yīng)與文件名對(duì)應(yīng)。例如:“pmCard” 與“pnCard.PAS”
4.6只存放代碼的“.PAS”
使用型如“un……”的英文縮寫,“un”表示Unit,“……”為窗口邏輯功能的簡述。
例如:“unDlgShell.PAS”。
五、包
5.1 使用運(yùn)行包和設(shè)計(jì)包的比較
運(yùn)行時(shí)刻的包應(yīng)只包含其它構(gòu)件包所要求的單元或構(gòu)件。另外,包含屬性/構(gòu)件編輯器和其它只為設(shè)計(jì)的代碼應(yīng)放入到設(shè)計(jì)時(shí)刻包中。注冊(cè)單元應(yīng)放在設(shè)計(jì)包中。
5.2 文件命名標(biāo)準(zhǔn)
包的名稱應(yīng)依照下面的例子:
“iiilibvv.pkg” - 設(shè)計(jì)時(shí)刻包
“iiistdvv.pkg” - 運(yùn)行時(shí)刻包
字符“iii”表示一個(gè)3字符標(biāo)識(shí)前綴。這個(gè)前綴用來表明公司、個(gè)人或其它有標(biāo)識(shí)意義的實(shí)體。如jm0字符“vv”表示為該包想要對(duì)應(yīng)Delphi某個(gè)版本的包的版本號(hào)。
注意,包的名字中包含“l(fā)ib”或“std”的意思是表明這是一個(gè)設(shè)計(jì)時(shí)刻包還是一個(gè)運(yùn)行時(shí)刻包。如果既是設(shè)計(jì)時(shí)刻包又是運(yùn)行時(shí)刻包,該文件的命名是同上面一樣的,例如,名稱應(yīng)為:
jm0Lib40.pkg – 設(shè)計(jì)時(shí)刻包
jm0Std40.pkg – 運(yùn)行時(shí)刻包
六、構(gòu)件
6.1 用戶自定義構(gòu)件
在標(biāo)準(zhǔn)構(gòu)件中命名出來的構(gòu)件的名稱同在“類類型”部分定義中的一樣定義成一個(gè)類類型,不同的是它們有一個(gè)3字符的指示前綴,這個(gè)前綴可以表示公司、個(gè)人或其它實(shí)體。例如,一個(gè)時(shí)鐘構(gòu)件的名稱定義為:
? ? ? Tjm0Clock = class(TComponent)
注意,那三個(gè)前綴字符是小寫的。
6.2 構(gòu)件單元
構(gòu)件單元應(yīng)只包含一個(gè)主要的構(gòu)件,一個(gè)主要的構(gòu)件是指出現(xiàn)在構(gòu)件欄中的構(gòu)件。主要構(gòu)件的輔助構(gòu)件/對(duì)象應(yīng)放入到同一個(gè)單元中。
6.3 使用注冊(cè)單元
構(gòu)件的注冊(cè)過程應(yīng)從構(gòu)件本身的單元中剔除,并放入到一個(gè)獨(dú)立的單元中。這個(gè)注冊(cè)單元可以用來注冊(cè)任何構(gòu)件、屬性編輯器、構(gòu)件編輯器、專家器等。
構(gòu)件的注冊(cè)只應(yīng)在設(shè)計(jì)時(shí)刻包中進(jìn)行,注冊(cè)單元應(yīng)包含在設(shè)計(jì)時(shí)刻包中而不應(yīng)放在運(yùn)行時(shí)刻包中。
推薦使用的注冊(cè)單元的名稱是:
XxxReg.pas
上面的3個(gè)前綴字符“Xxx”用來表示一個(gè)公司、個(gè)人或任何其它的實(shí)體。例如,注冊(cè)單元的名稱應(yīng)為 jm0Reg.pas。?
6.4 構(gòu)件實(shí)例命名約定
所有的構(gòu)件都應(yīng)取個(gè)描述性的名稱。由Delphi創(chuàng)建的缺省名的構(gòu)件不會(huì)被遺棄。在設(shè)計(jì)構(gòu)件類型時(shí)應(yīng)設(shè)計(jì)一個(gè)小寫的前綴。使用前綴而不使用后綴的原因是在搜尋時(shí),在對(duì)象檢查器和代碼探索器中搜尋構(gòu)件的名字比搜尋構(gòu)件的類型更容易實(shí)現(xiàn)。
6.5 構(gòu)件的前綴
以下構(gòu)件的前綴可以用來設(shè)計(jì)Delphi 6中的標(biāo)準(zhǔn)構(gòu)件。在此列表中加入了第三方構(gòu)件的前綴。由于這些前綴不好記,所以也可采用比較長的構(gòu)件命名方法,而忽略一下內(nèi)容,如OkButton、CancelButton、StartDateTimePicker,即后面是構(gòu)件的類型,前面是構(gòu)件的名稱,這種命名方法也是Borland的標(biāo)準(zhǔn)命名方法;對(duì)于同一類型的構(gòu)件,如TButton、TSpeedButton、TBitBtn可以用同樣的后綴Button;除了在代碼中不會(huì)設(shè)計(jì)的界面構(gòu)面,如Label、Panel等,永遠(yuǎn)不要用一大堆的Button1、Button2等Delphi默認(rèn)的名稱。
6.6 Standard頁
前綴 ? ? ?構(gòu)件
fm ? ? ? ?TFrame
mm ? ? ? ?TMainMenu
pm ? ? ? ?TPopupMenu
mmi ? ? ? TMainMenuItem
pmi ? ? ? TPopupMenuItem
lbl ? ? ? TLabel
edt ? ? ? TEdit
mem ? ? ? TMemo
btn ? ? ? TButton
cb ? ? ? ?TCheckBox
rb ? ? ? ?TRadioBox
lb ? ? ? ?TListBox
cb ? ? ? ?TComboBox
scb ? ? ? TScrollBar
gb ? ? ? ?TGroupBox
rg ? ? ? ?TRadioGroup
pnl ? ? ? TPanel
al ? ? ? ?TActionList
6.7 Additional頁
bbtn ? ? ?TBitBtn
sb ? ? ? ?TSpeedButton
me ? ? ? ?TMaskEdit
sg ? ? ? ?TStringGrid
dg ? ? ? ?TDrawGrid
img ? ? ? TImage
shp ? ? ? TShape
bvl ? ? ? TBevel
sbx ? ? ? TScrollBox
clb ? ? ? TCheckListbox
spl ? ? ? TSplitter
stx ? ? ? TstaticText
cb ? ? ? ?TcontrolBar
ae ? ? ? ?TApplicationEvents
cht ? ? ? TChart
6.8 Win32頁
tbc ? ? ? TTabControl
pgc ? ? ? TPageControl
il ? ? ? ?TImageList
bm ? ? ? ?TBatchMove
usql ? ? ?TUpdateSQL
ntbl ? ? ?TnestedTable
re ? ? ? ?TRichEdit
thr ? ? ? TTrackBar
prb ? ? ? TProgressBar
ud ? ? ? ?TUpDown
hk ? ? ? ?THotKey
ani ? ? ? TAnimate
dtp ? ? ? TDateTimePicker
tv ? ? ? ?TTreeView
lv ? ? ? ?TListView
hdr ? ? ? TheaderControl
stb ? ? ? TStatusBar
tlb ? ? ? TToolBar
clb ? ? ? TcoolBar
ps ? ? ? ?TpageScroller
6.9 System頁
tm ? ? ? ?TTimer
pb ? ? ? ?TPaintBox
mp ? ? ? ?TMediaPlayer
olec ? ? ?TOleContainer
ddcc ? ? ?TDDEClientItem
ddci ? ? ?TDDEClientItem
ddsc ? ? ?TDDEServerConv
ddsi ? ? ?TDDEServerItem
6.10 Internet頁
csk ? ? ? TClientSocket
ssk ? ? ? TServerSocket
wbd ? ? ? TWebDispatcher
pp ? ? ? ?TPageProducer
tp ? ? ? ?TQueryTableProducer
dstp ? ? ?TDataSetTableProducer
dspp ? ? ?TDataSetPageProducer
wb ? ? ? ?TWebBrowser
6.11 Data Access頁
前綴 ? ? ?構(gòu)件
ds ? ? ? ?TDataSource
tbl ? ? ? TTable
qry ? ? ? TQuery
sp ? ? ? ?TStoredProc
db ? ? ? ?TDataBase
ssn ? ? ? TSession
ol ? ? ? ?TOutline
tnb ? ? ? TTabbedNoteBook
nb ? ? ? ?TNoteBook
hdr ? ? ? THeader
flb ? ? ? TFileListBox
dlb ? ? ? TDirectoryListBox
dcb ? ? ? TDriveComboBox
fcb ? ? ? TfliterComboBox
dbll ? ? ?TDBLookupList
dblc ? ? ?TDBLookupCombo
6.12 Data Controls頁
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
6.13 Decision Cube頁
dcb ? ? ? TDecisionCube
dcq ? ? ? TDecisionQuery
dcs ? ? ? TDecisionSource
dcp ? ? ? TDecisionPivot
dcg ? ? ? TDecisionGrid
dcgr ? ? ?TDecisionGraph
6.14 QReport頁
注:建議不要使用。報(bào)表用reportbuilder
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
qrtf ? ? ?TQRTextFilter
qrcsvf ? ?TQRCSVFilter
qrhtmlf ? TQRHTMLFilter
qrch ? ? ?TQRChart
6.15 Dialogs頁
對(duì)話框構(gòu)件是由構(gòu)件封裝的真正的窗體,因此,它們應(yīng)遵循窗體的命名約定。類型已由構(gòu)件的名稱定義。它的實(shí)例的名稱是Delphi自動(dòng)生成的類型實(shí)例名字去掉數(shù)字后綴。舉例如下:
? ? ? 類型 ? ? ? ? ? ? ? ? ? ?實(shí)例名字
? ? TOpenDialog ? ? ? ? ? ? OpenDialog
? ? TSaveDialog ? ? ? ? ? ? SaveDialog
? ? TOpenPictureDialog ? ? OpenPictureDialog
? ? TSavePictureDialog ? ? SavePictureDialog
? ? TFontDialog ? ? ? ? ? ? FontDialog
? ? TColorDialog ? ? ? ? ? ?ColorDialog
? ? TPrintSetupDialog ? ? ?PrintSetupDialog
? ? TFindDialog ? ? ? ? ? ? FindDialog
? ? TReplaceDialog ? ? ? ? ReplaceDialog
6.16 Win3.1頁
ts ? ? ? ?TTabSet
npop ? ? ?TNMPop3
smtp ? ? ?TNMSMTP
ntm ? ? ? TNMTime
nudp ? ? ?TNMUdp
?6.17 Samples頁
gg ? ? ? ?TGauge
cg ? ? ? ?TColorGrid
spb ? ? ? TSpinButton
spe ? ? ? TSpinEdit
dol ? ? ? TDirectoryOutline
cal ? ? ? TCalendar
ibea ? ? ?TIBEventAlerter
6.18 ActiveX頁
cfx ? ? ? TChartFX
vsp ? ? ? TVSSpell
f1b ? ? ? TF1Book
vtc ? ? ? TVTChart
6.19 Midas頁
cds ? ? ? TClientDataSet
dcom ? ? ?TDCOMConnection
sck ? ? ? TSocketConnection
dsp ? ? ? TdataSetProvider
sob ? ? ? TsimpleObjectBroker
wc ? ? ? ?TwebConnection
cc ? ? ? ?TcorbaConnection
6.20 ADO頁
注:不建議使用
adoc ? ? TADOConnection
adocd ? ?TADOCommand
adods ? ?TADODataSet
adot ? ? TADOTable
adoq ? ? TADOQuery
adosp ? ?TADOStoredProc
rdsc ? ? TRDSConnection
6.21 InterBase頁
ibt ? ? ? TIBTable
ibq ? ? ? TIBQuery
ibsp ? ? ?TIBStoredProc
ibd ? ? ? TIBDatabase
ibtc ? ? ?TIBTransaction
ibus ? ? ?TIBUpdateSql
ibds ? ? ?TIBDataset
ibs ? ? ? TIBSql
ibdi ? ? ?TIBDatabaseInfo
ibsm ? ? ?TIBSqlMonitor
ibe ? ? ? TIBEvents
6.22 InternetExpress頁
xmlb ? ? ?TXMLBroker
mpp ? ? ? TMidasPageProducer
6.23 FastNet頁
nmdt ? ? ?TNMDayTime
nMsg ? ? ?TNMMsg
nmsg ? ? ?TNMMSGServ
nec ? ? ? TNMEcho
nftp ? ? ?TNMFtp
nhttp ? ? TNMHttp
nntp ? ? ?TNMNNTP
nst ? ? ? TNMStrm
nsts ? ? ?TNMStrmServ
url ? ? ? TNMUrl
nuup ? ? ?TNMUUProcessor
psk ? ? ? TPowerSock
ngs ? ? ? TNMGeneralServer
nf ? ? ? ?TNMFinger
Tedit控件可以命名為:edt+代表的字段名稱。
? ? TLabelEdit控件可以命名為:Ledt+代表的字段名稱。
? 用于查詢的Query控件命名為:qry+主表名;
? ? ? 用于更新的Query控件命名為:upd+主表名;
? ? ? 用于刪除的Query控件命名為:del+主表名;
保存數(shù)據(jù)的函數(shù)可以命名為:SaveData;
? ? ? 更新數(shù)據(jù)的函數(shù)可以命名為:UpDateData;
? ? ? 刪除數(shù)據(jù)的函數(shù)可以命名為:DeleteData;
進(jìn)行判斷的函數(shù)可以命名為:checkData; ?

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Delphi编码规范的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

成人免费视频在线观看 | 久久黄色免费 | 亚洲精品在线电影 | 国产在线一区二区三区播放 | 人人爽人人看 | 免费看麻豆 | 亚洲人成人在线 | 在线国产视频观看 | 国产理论免费 | 国产91学生粉嫩喷水 | 亚洲热视频 | 在线免费观看黄色小说 | 国产成人精品一区二区三区福利 | 久久婷婷网| 青青草华人在线视频 | av在线播放中文字幕 | av免费电影在线观看 | 99热99 | 欧亚久久 | 精品国产乱码久久久久久久 | 五月天精品视频 | 九七人人干 | 五月天国产 | 天天射天天 | 视频二区在线视频 | 国产一级二级在线观看 | 精品主播网红福利资源观看 | 蜜臀av网址 | av免费电影在线观看 | 亚洲精品ww | 九九热只有精品 | 深爱激情五月综合 | 欧美日韩免费一区 | 久草在线视频网 | 99视频久久 | 蜜臀av麻豆| 国产成人精品一区二区在线 | 激情综合色播五月 | 欧美一级在线 | 在线观看视频一区二区三区 | 中文字幕日韩在线播放 | 久久999精品 | 日韩免费久久 | 国产成人精品999 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 国产91在线 | 美洲 | 亚洲成年人在线播放 | 午夜视频免费 | 成人午夜电影在线观看 | 久久久福利 | 日韩激情精品 | 在线中文字幕观看 | 久久久久久久久久久久国产精品 | 九色91av| 一区二区中文字幕在线观看 | 黄色成人免费电影 | 久草在线视频国产 | 国产乱对白刺激视频在线观看女王 | 婷婷综合电影 | 五月婷婷六月丁香在线观看 | 五月婷婷中文字幕 | 国产精品视频永久免费播放 | 久久精品直播 | 中文字幕永久免费 | 97超碰人人澡人人 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 美女精品| 91视频在线观看大全 | 久久女教师 | 国产一级在线免费观看 | 亚洲成av人片在线观看www | 看片的网址 | 成人网在线免费视频 | 伊人天天色 | 久久综合久久鬼 | 精品福利在线 | 精品国产一区二区久久 | 亚洲精品国产精品国自产观看浪潮 | 99视频+国产日韩欧美 | 亚洲a在线观看 | 97电影在线| 亚洲国产丝袜在线观看 | 成人在线一区二区三区 | 美女视频一区 | 视频一区二区免费 | 日本黄色免费大片 | 五月婷婷伊人网 | 亚洲va欧美va人人爽 | 国产热re99久久6国产精品 | 91成版人在线观看入口 | 激情开心色 | 国产精品观看在线亚洲人成网 | 日韩网站免费观看 | 亚洲日本va在线观看 | 亚洲精品国产精品乱码在线观看 | 久久精品国产一区二区三 | 91精品国产91热久久久做人人 | 91av在线播放 | 999ZYZ玖玖资源站永久 | 国产精品乱码久久久久久1区2区 | 免费观看高清 | 久久久久免费观看 | 国产一区二区在线免费播放 | 蜜桃av观看 | 国产精品久久久久久久久久久不卡 | 亚洲精品短视频 | 国产精品一区专区欧美日韩 | 精品久久久久久国产偷窥 | 91高清在线看 | 久久国产欧美日韩精品 | 色爱成人网 | 国产精品久久久久久久7电影 | 亚洲精品777 | 免费在线观看a v | 毛片网站观看 | 国产91免费在线观看 | 成年人在线免费看 | 久久成人综合 | 日韩av成人在线 | 一级理论片在线观看 | 久久精品网站视频 | 久久艹综合 | 91大神dom调教在线观看 | 亚洲理论电影网 | 狠狠色狠狠色综合日日小说 | 亚洲免费在线观看视频 | 国产视频一区二区三区在线 | 久久综合狠狠综合 | 亚州欧美精品 | 亚洲日本va午夜在线影院 | 免费一区在线 | 久久综合视频网 | 999久久久久久久久6666 | 麻豆视传媒官网免费观看 | 婷婷久操 | 天天曰天天 | 久久国产精品一区二区三区 | 久久免费黄色 | 日日干,天天干 | 国产99精品 | 91久久精品日日躁夜夜躁国产 | a级国产片| 波多野结衣精品在线 | www.久久色| 精品视频免费在线 | 手机成人av在线 | 日韩中文字幕视频在线观看 | 99久久夜色精品国产亚洲 | 国产伦理精品一区二区 | 在线激情小视频 | 午夜精品一区二区三区在线 | 伊人色综合久久天天 | 欧美日韩精品网站 | 欧美日韩成人一区 | 欧美日韩精品网站 | 99久久99久久精品免费 | 国产精品一区二区三区在线播放 | 中文字幕欧美日韩va免费视频 | 亚洲精品国产欧美在线观看 | 97香蕉视频| 免费观看成人网 | 中文字幕中文字幕在线中文字幕三区 | 亚洲精品乱码久久久一二三 | 综合激情网 | 日韩黄色一区 | av中文字幕在线免费观看 | 国产精品对白一区二区三区 | 性色va | 91私密视频 | caobi视频| 成人wwwxxx视频 | 日韩国产欧美在线视频 | 国产精品69av | 97福利社 | 日韩天天操 | 99国产在线视频 | 91色一区二区三区 | 国产在线黄色 | 国产精品成人自拍 | 久久久网站 | 中国一级片免费看 | 国产一级黄色片免费看 | 999视频在线播放 | 在线观看亚洲成人 | 天天干,夜夜爽 | 二区视频在线观看 | 五月在线视频 | 欧美国产日韩一区 | 日p在线观看 | 最近中文字幕视频完整版 | 国产午夜在线观看 | 精品麻豆入口免费 | 天天干天天做天天操 | 国产传媒一区在线 | 9999精品免费视频 | 久久夜色电影 | 黄色大片免费网站 | 国产精品入口传媒 | 成人黄色免费观看 | 在线免费观看亚洲视频 | 国产精美视频 | 免费h在线观看 | 久久久国产精品久久久 | 片黄色毛片黄色毛片 | 一区二区不卡高清 | 国产一线二线三线性视频 | 五月婷婷视频在线 | 日批视频在线观看免费 | 日狠狠 | 亚洲婷婷免费 | 中文字幕在线有码 | 99精品视频免费观看视频 | 99精品福利 | 91最新网址在线观看 | 91精品亚洲影视在线观看 | av福利网址导航大全 | 亚洲丝袜一区二区 | 99热这里只有精品1 av中文字幕日韩 | 免费观看的av | 国产精品粉嫩 | 亚洲3级| 亚洲在线激情 | 亚洲 欧美 日韩 综合 | 亚洲国产成人精品电影在线观看 | 天天久久夜夜 | 久草在线高清视频 | 深夜国产福利 | 成年人免费在线播放 | 岛国av在线免费 | 亚洲手机av | 国产精品久久久久永久免费看 | 欧美 亚洲 另类 激情 另类 | 国产精品视频 | 国产一二三区在线观看 | 天天操夜夜干 | 中文字幕在线看视频国产中文版 | 91精品国产乱码久久桃 | 丁香激情婷婷 | 午夜黄色大片 | 久久国产剧场电影 | 国产一级片在线播放 | 国产亚洲欧洲 | 亚洲va欧美va人人爽春色影视 | 狠狠躁18三区二区一区ai明星 | 久久精品视频免费 | 日韩免费二区 | 久久九精品 | 色婷婷 亚洲 | 99国产一区二区三精品乱码 | 外国av网| 久草视频视频在线播放 | 操操操人人人 | 四虎国产视频 | 99视频在线免费 | 久久精品美女视频 | 成人免费视频播放 | 天天摸夜夜操 | 国产在线毛片 | 97韩国电影 | 欧亚日韩精品一区二区在线 | 亚洲欧美视频一区二区三区 | 91亚色免费视频 | 亚洲做受高潮欧美裸体 | 亚州精品天堂中文字幕 | av不卡免费看 | 亚洲精品视频网址 | 91精品办公室少妇高潮对白 | 中文字幕人成一区 | 992tv在线观看网站 | 成人午夜黄色影院 | 亚洲精品美女在线 | 一级黄色片网站 | 江苏妇搡bbbb搡bbbb | 91精品免费在线观看 | 久久精品视频国产 | www.888av| 国产婷婷视频在线 | 国产精品v欧美精品 | 97av在线视频 | 337p日本大胆噜噜噜噜 | 91精品区 | 免费福利片2019潦草影视午夜 | 成人免费在线网 | 91色一区二区三区 | 国内精品久久久久久久久久久 | 天天操天天操天天操天天操 | 成人影音av| 97国产 | 99综合电影在线视频 | 黄a网| 极品中文字幕 | 久久69av| 操操操影院 | 色是在线视频 | 91在线播放国产 | 久久久久久久久久久免费av | 成年人免费在线播放 | 91精品国产自产在线观看永久 | 激情久久综合网 | 在线观看你懂的网站 | 97免费在线观看 | 伊人久久电影网 | 日韩欧美一区二区三区在线 | 亚州激情视频 | 99亚洲精品 | 91av视频 | av一区二区三区在线 | 久久色在线播放 | 日本中文字幕网 | 国产在线精品视频 | 91在线一区 | 中国一级片在线播放 | 国产精品第二十页 | 亚洲国产精品va在线看黑人动漫 | 999精品视频| 免费福利视频网站 | 日韩啪啪小视频 | 天天干天天干天天干天天干天天干天天干 | 国产99精品| 碰天天操天天 | 亚洲精品综合一区二区 | 噜噜色官网 | 国产精品免费久久 | 日韩激情影院 | 国产日产亚洲精华av | 九热精品 | 国产精品涩涩屋www在线观看 | 二区三区在线视频 | 国产精品久99 | 欧美黄网站 | 亚洲精品毛片一级91精品 | 99国产精品 | 国产成人一区二区三区久久精品 | 一级黄色片网站 | 五月天久久婷婷 | 亚洲深爱激情 | 日韩欧美99 | 日本精品xxxx| 99精品欧美一区二区三区 | 日韩高清在线看 | 国产精品video爽爽爽爽 | 亚州av一区 | 亚洲精品国产自产拍在线观看 | 正在播放亚洲精品 | 91精品啪啪 | 国产理论片在线观看 | 亚洲精品福利在线观看 | 91视频3p | 91c网站色版视频 | 亚洲理论影院 | 一区二区成人国产精品 | 亚洲理论影院 | 97在线视 | 久久精品网址 | 欧美日韩一级在线 | 国产一级在线看 | 九九视频精品免费 | 二区视频在线 | 国产99视频在线观看 | 国产日韩精品欧美 | 成人免费观看大片 | av中文字幕在线播放 | 插综合网| 天天射天天艹 | 狠狠网亚洲精品 | 成人久久久精品国产乱码一区二区 | 亚洲综合五月天 | 日韩欧美在线高清 | 日韩特黄一级欧美毛片特黄 | 久久久久美女 | 日韩午夜电影院 | 久久久久久久久久电影 | 免费视频99 | 98涩涩国产露脸精品国产网 | 久久综合之合合综合久久 | 91精品在线视频观看 | 超碰97人人在线 | 六月丁香社区 | 精品亚洲欧美一区 | 蜜臀一区二区三区精品免费视频 | 激情六月婷婷久久 | 韩国在线视频一区 | 欧美日韩亚洲第一 | 久久黄色免费 | 干综合网 | 亚洲精品大全 | 欧美日高清视频 | 久久久久久久久久久电影 | 欧美大片aaa | 国产亚洲婷婷 | 中文字幕在线播放日韩 | 婷婷在线网 | 夜夜躁日日躁狠狠久久88av | av网站免费线看精品 | 狠狠躁日日躁夜夜躁av | 亚洲欧洲av在线 | 成人一级黄色片 | 狠狠干狠狠艹 | 国产精品岛国久久久久久久久红粉 | 日韩av成人在线观看 | 狠狠操狠狠| 久久久久二区 | 午夜免费电影院 | 一区二区三区视频在线 | 新版资源中文在线观看 | 国产高清久久久久 | 美女久久视频 | 国产精品观看在线亚洲人成网 | av大全免费在线观看 | 亚洲人成在线观看 | 黄色av三级在线 | 日日夜夜网 | 日本精品久久久一区二区三区 | av成人黄色 | 免费看的黄色录像 | 亚洲欧美偷拍另类 | 天天干夜夜夜 | 免费在线电影网址大全 | 免费看麻豆 | 国内小视频在线观看 | 欧美日韩不卡在线观看 | 久草av在线播放 | 亚洲国产精品人久久电影 | 免费的黄色的网站 | 亚洲少妇自拍 | 最近最新最好看中文视频 | 欧美亚洲成人免费 | 国产成人三级在线 | 久久综合电影 | 欧美精品在线免费 | 91色综合| 在线精品播放 | 免费av网址在线观看 | 成人xxxx | 久久久九色精品国产一区二区三区 | 久久免费国产精品 | 在线播放国产精品 | 午夜少妇| 国产精品黄色 | 亚洲婷婷伊人 | 又黄又爽又湿又无遮挡的在线视频 | 国产精品一区二区免费看 | 日韩成人免费在线 | 久久免费视频1 | 国产色婷婷 | 黄色影院在线播放 | 天天射天天拍 | 国产成人免费观看 | 精品久久久久久久久久 | 五月婷婷电影网 | 99精品国产一区二区三区麻豆 | 成人黄色大片网站 | 色婷婷国产精品一区在线观看 | 日韩电影一区二区三区在线观看 | 精品中文字幕在线观看 | 国产一区二区三区四区大秀 | 日韩av不卡在线播放 | 99久久这里只有精品 | 五月天激情综合 | 三级a视频 | 美女网站视频免费都是黄 | 国产精品99久久99久久久二8 | 婷婷午夜 | 99精品在线播放 | 亚洲欧洲视频 | av电影一区二区三区 | 久久久久五月天 | 青青河边草免费观看完整版高清 | 蜜臀久久99精品久久久久久网站 | 97国产超碰 | 日韩字幕 | 成人午夜电影在线播放 | 国产精品久久久久一区二区 | 日本在线免费看 | av高清一区 | 国产精品美女久久久久久 | 久久亚洲电影 | 99综合电影在线视频 | 日韩视频精品在线 | av成人在线网站 | 三级a视频 | 国产原创中文在线 | 99精品视频中文字幕 | 伊人永久| 国产原创在线视频 | 久久成人国产精品 | 热re99久久精品国产66热 | 在线观看国产中文字幕 | 在线播放 一区 | 伊人六月 | 亚洲国产日韩一区 | 亚洲国产人午在线一二区 | 99精品在线直播 | 欧美在线观看视频免费 | 国产精品久久久久9999吃药 | 一区二区三区播放 | 天天爽人人爽 | 黄色成品视频 | 在线观看视频免费播放 | 久草在线视频免赞 | 在线观看免费黄视频 | 夜色资源站国产www在线视频 | 91av在线免费看 | 日韩在线播放av | wwwwwww色| 亚洲天堂精品视频在线观看 | 激情五月婷婷综合 | www.久久91| 久久视频精品在线观看 | 91麻豆精品一区二区三区 | 西西4444www大胆无视频 | 欧美aa在线| 久久精品99国产国产 | 国产在线精品一区二区三区 | 男女啪啪视屏 | 久久国产精品免费一区 | 亚州av成人 | 99精品99| 日本美女xx| 麻豆免费视频网站 | 国产成人免费精品 | 亚洲播播 | 久久中文精品视频 | 欧美成人性网 | 五月婷丁香 | 免费观看第二部31集 | 国产资源站| 最近日本字幕mv免费观看在线 | 天天干天天插伊人网 | 国内三级在线 | a黄色一级片 | 91视频电影 | 午夜在线免费视频 | 久久精品久久国产 | 国产精品久久久久久久久毛片 | 免费成人短视频 | 日韩簧片在线观看 | 婷婷综合成人 | 91视频在线免费看 | 亚洲粉嫩av| 欧美日韩精品国产 | 欧洲亚洲国产视频 | 国产九色在线播放九色 | 在线观看视频在线 | 天天综合久久 | 日日日爽爽爽 | 久久久久成人精品亚洲国产 | 天天干,天天射,天天操,天天摸 | 欧美成人精品三级在线观看播放 | 国产99久久久精品 | 成人黄色在线看 | 波多野结衣一区二区 | 制服丝袜在线91 | 麻豆精品91 | 国产成人一级 | 丁香六月婷 | 亚洲一区二区三区在线看 | 天天干夜夜夜 | 国产色在线 | 日韩极品在线 | 国产美腿白丝袜足在线av | 亚洲精品乱码久久久久久蜜桃91 | 日韩av偷拍| 日韩中文在线电影 | 欧美另类xxxxx | 91在线视频在线观看 | 日韩欧美在线综合网 | 国产精品自在线 | 国产日产精品一区二区三区四区的观看方式 | 91高清视频 | 久久免费播放视频 | 国内外成人在线视频 | 在线视频日韩欧美 | 免费日韩av片 | 国产色视频网站2 | 三级av免费观看 | 97涩涩视频| 久久国产精品99久久人人澡 | 亚洲免费av在线播放 | 激情黄色一级片 | 狠狠躁日日躁狂躁夜夜躁av | 婷婷色资源 | 色老板在线视频 | 97免费在线视频 | 国产不卡av在线播放 | 国产精品久久久久久爽爽爽 | 亚洲aⅴ一区二区三区 | 在线看成人av | 亚洲午夜久久久综合37日本 | 日韩视频图片 | 国产精品永久在线 | 国产91全国探花系列在线播放 | 国产精品久久久久一区二区三区共 | 91av原创| 精品国产自 | 97电影手机 | 91视频啪| 久草在线视频精品 | av大全在线 | 麻豆果冻剧传媒在线播放 | 2020天天干天天操 | 97精品国产97久久久久久久久久久久 | 国产精品美女久久久久aⅴ 干干夜夜 | 国产福利在线 | 久久精品牌麻豆国产大山 | 国产一区在线观看免费 | 99色视频在线| 91av观看 | 特级a毛片 | 国产精品日韩欧美一区二区 | 久久久久久久看片 | 国产成人a亚洲精品 | 综合网在线视频 | 欧美日韩成人一区 | 爱干视频 | 男女啪啪视屏 | 免费亚洲视频在线观看 | 天天天天爱天天躁 | 黄色软件大全网站 | 久久久久观看 | 奇米网在线观看 | 久久高清毛片 | 国产精品久久久久一区二区国产 | 久久久国产电影 | 一区二区三区四区五区在线 | 97超碰成人在线 | 手机av在线不卡 | 日本中文字幕在线一区 | av中文字幕免费在线观看 | 天天操夜夜想 | 欧美一区成人 | 午夜影院一级片 | 超碰在线cao | 色综合久久五月 | 91成熟丰满女人少妇 | 麻豆激情电影 | 九九热国产视频 | 亚洲国产日韩一区 | 伊人网综合在线观看 | 国产视频在线播放 | 中文字幕在线免费看 | 激情久久久久 | 香蕉色综合 | 国产精品毛片久久久 | 最近中文字幕视频网 | 99视频这里有精品 | 玖玖999| 久久久在线免费观看 | 天天操天天曰 | 999热线在线观看 | 激情欧美丁香 | 亚洲精品国偷拍自产在线观看 | 欧美亚洲一级片 | av黄色影院 | 亚洲三级黄色 | 欧美日韩高清在线一区 | 日韩中出在线 | 中文字幕人成乱码在线观看 | 精品久久久久久久久久岛国gif | 综合视频在线 | 精品一区电影国产 | www.天天操 | 粉嫩av一区二区三区入口 | 97av视频 | 久久综合久久久 | 色av婷婷 | 激情综合六月 | 国产一级在线播放 | 日韩久久精品一区二区 | 国产美女搞久久 | 欧美性护士 | 欧美日韩中文在线 | 成人午夜影院在线观看 | 国产在线日韩 | 亚洲 欧美变态 另类 综合 | a v在线观看 | 免费看v片| 久久三级毛片 | 精久久久久 | 一级理论片在线观看 | 日本狠狠干 | 日本黄色免费看 | a久久久久久 | 国产精品久久久久一区二区国产 | 国产精品一区二区三区电影 | 国产精品一区二区久久精品爱微奶 | 一级片免费视频 | 美女免费黄网站 | www.成人精品| 日本黄区免费视频观看 | 黄色软件视频网站 | 成人av片在线观看 | 日韩大片在线看 | 国产成人精品日本亚洲999 | 国产精品手机视频 | 免费看v片| 欧美在线观看视频 | 日韩精品一区二区在线视频 | 五月天丁香亚洲 | 色婷婷视频在线 | 操操操日日日 | 国产1区在线 | 在线视频中文字幕一区 | 国产精品国产三级国产aⅴ9色 | 丁香六月久久综合狠狠色 | 亚洲精品综合久久 | 亚洲精选视频在线 | 深夜免费福利视频 | 在线观看一区 | 亚洲国产高清在线观看视频 | 免费福利片2019潦草影视午夜 | 蜜桃av人人夜夜澡人人爽 | 日韩av网站在线播放 | 伊人狠狠色丁香婷婷综合 | 久久久国产一区二区三区四区小说 | 久久精品视频在线看 | 夜色资源站国产www在线视频 | 操处女逼 | 亚洲 欧美 国产 va在线影院 | 国产成人精品一区二 | 国产免费黄视频在线观看 | 亚洲欧美视频一区二区三区 | 国产xxxx做受性欧美88 | 国产在线精品视频 | 国产精品嫩草55av | 91传媒免费在线观看 | 激情狠狠干 | 九九热在线免费观看 | 69精品视频| 五月婷婷国产 | 五月天婷婷在线视频 | 日韩最新中文字幕 | 成 人 免费 黄 色 视频 | 婷婷色在线 | 中文字幕精品www乱入免费视频 | 三级视频国产 | 日韩精选在线观看 | 亚洲精品免费在线 | 99久久久成人国产精品 | 91精品国产麻豆国产自产影视 | 欧美亚洲xxx | 欧美三人交 | 成人免费在线观看电影 | 久久亚洲免费视频 | 国产亚洲在 | 91在线永久| 99国产精品视频免费观看一公开 | 免费麻豆 | 狂野欧美激情性xxxx | 中文字幕在线播放视频 | 欧美成人影音 | 五月综合激情 | 久久久黄色 | 国产91学生粉嫩喷水 | 国产91免费观看 | 中文字幕在线久一本久 | 6080yy午夜一二三区久久 | 91色偷偷| 成人va天堂| 免费亚洲精品视频 | 黄色片亚洲 | 日韩动态视频 | 天天草天天摸 | 四虎影视成人精品国库在线观看 | 日韩在线电影一区二区 | 国产在线视频一区二区三区 | 精品国产乱码久久久久 | 国内成人精品2018免费看 | 黄色高清视频在线观看 | 国产不卡在线看 | 色多视频在线观看 | 欧美激情第十页 | 久久人网 | 尤物97国产精品久久精品国产 | av无限看 | 婷婷丁香六月 | 狂野欧美激情性xxxx欧美 | 91在线资源 | 91香蕉视频720p | 人人揉人人揉人人揉人人揉97 | 欧美一区三区四区 | 亚洲国产久 | 片网站 | 久久成人18免费网站 | 男女激情免费网站 | 91手机视频在线 | 亚洲成a人片77777潘金莲 | 特级西西444www大精品视频免费看 | 久久久www成人免费毛片麻豆 | 日日夜夜骑 | 久久成人精品视频 | 久久99婷婷 | 麻豆影视在线观看 | 国产亚洲精品成人 | 成人在线免费视频观看 | 欧美a√在线 | 九九热精品国产 | 亚洲男人天堂2018 | 九九九九精品九九九九 | 国产精品久久久久久久久久直播 | 久久精品9 | 欧美在线视频a | 国内久久 | 五月婷久 | 99久久er热在这里只有精品66 | 丁香九月婷婷 | 一级a性色生活片久久毛片波多野 | 麻豆免费看片 | 一级黄色片毛片 | 久久久国产精品视频 | 欧美天堂久久 | 天天爱天天操 | 久久不射电影网 | 久久美女视频 | 亚洲精选视频在线 | 一区二区精品在线 | 国产99一区视频免费 | a视频免费看 | 欧美精品在线观看一区 | 日韩中文字幕第一页 | 欧美日韩一二三四区 | 久久免费精品国产 | 丁香婷婷激情网 | 探花视频网站 | av短片在线观看 | 人人干,人人爽 | 欧美一区二区免费在线观看 | 中文字幕在线观看视频一区二区三区 | 欧美日韩免费一区 | 久久艹国产视频 | 亚洲精品mv在线观看 | 精品在线二区 | 一级欧美日韩 | 国产精品一区一区三区 | 久久激情电影 | 国产在线视频导航 | 999日韩 | 成人午夜片av在线看 | 美女在线国产 | 日韩高清三区 | 日韩精品一区在线播放 | av成人免费| 国产自在线 | 97成人在线观看 | 久久伦理视频 | 国产精品孕妇 | 综合激情av | 精品国产一区二区久久 | av色综合网 | 在线v| 欧美久久久久久久久中文字幕 | 中文字幕一区二区三区四区 | 中文字幕欧美三区 | 久草在线资源视频 | 91成人精品一区在线播放69 | 午夜123| 久久久国产一区二区三区四区小说 | 免费在线观看成人 | 精品久操 | 午夜在线免费观看视频 | 国产精品久久久久aaaa | 婷婷在线色 | 在线免费视频你懂的 | 中文字幕一区二区三区久久 | 香蕉网在线 | 波多野结衣在线观看一区 | av免费看网站| 99热在线观看 | 国产一区二区不卡视频 | 91精品久久久久久综合乱菊 | 91在线观看高清 | 久久久久久久久久久久国产精品 | 亚洲自拍偷拍色图 | 超碰成人免费电影 | 日本激情视频中文字幕 | 日本中文字幕久久 | 国产亚洲精品美女久久 | av观看免费在线 | 久久a级片 | 国内外激情视频 | 狠狠gao | 国产精品九九九九九九 | 91网免费观看 | 免费av在线网 | 在线观看视频91 | 婷婷日 | 91成人精品国产刺激国语对白 | 99免费在线观看 | 在线看片日韩 | 手机成人免费视频 | 日韩av在线免费看 | 婷婷色中文网 | 国产丝袜在线 | 国产韩国日本高清视频 | 人人爱天天操 | 婷婷网在线| 国产精品九色 | 久久久精品 一区二区三区 国产99视频在线观看 | 国产精品免费在线 | 中文字幕免费看 | 天天射天天 | 日韩精品一区二区三区在线视频 | 久久精品视频99 | 免费黄色在线 | 欧美一区二区精美视频 | 国产成人精品免高潮在线观看 | 人人爽人人搞 | 特级毛片在线 | 特级西西444www大胆高清无视频 | 欧美黑人xxxx猛性大交 | 国产精品美女免费视频 | 国色综合 | 麻豆传媒视频在线免费观看 | 免费看一级黄色大全 | 久久91久久久久麻豆精品 | 一区二区视频免费在线观看 | 911av视频| 成人免费观看网站 | 日本论理电影 | 久久成人综合视频 | 精久久久久 | 西西大胆啪啪 | 韩日av在线 | 日韩色在线观看 | av激情五月| 婷婷国产一区二区三区 | 精品一区二区日韩 | 日日夜夜天天 | 欧美在线观看视频 | 亚洲精品国产精品国自 | 久久久免费av | 高清在线一区二区 | 最新av免费 | 婷婷精品在线视频 | 婷婷伊人综合亚洲综合网 | 91chinesexxx | 国产 日韩 中文字幕 | 久久久久久久久电影 | 中文字幕在线专区 | 视频在线观看91 | 精品久久免费 | 国产视频一区在线 | 久久久午夜剧场 | 夜夜婷婷| 色婷婷综合久久久中文字幕 | 91传媒在线看 | 精品女同一区二区三区在线观看 | 亚洲欧美日韩精品久久奇米一区 | 久久精品视频免费播放 | 国产成人av片 | 日韩网 | 久久成电影 | 欧美日韩视频免费 | 国产欧美高清 | 亚洲最新av在线 | 深夜免费小视频 | 免费国产在线精品 | 91香蕉久久 | 中文视频在线播放 | av线上看 | 亚洲黄污| 在线免费中文字幕 | 日韩午夜电影 | 国产福利一区在线观看 | 精品久久久久一区二区国产 | 99九九99九九九视频精品 | 一本大道久久精品懂色aⅴ 五月婷社区 | 欧美日韩精品免费观看视频 | www.夜色321.com | 91最新在线 | 国产精品久久久 | 午夜在线观看 | 国产在线欧美日韩 | 热久久电影 | 99人成在线观看视频 | 亚洲国产免费看 | 国产精品96久久久久久吹潮 | 亚洲国产999| 久久论理 | 色婷婷久久久综合中文字幕 | 国产专区视频 | 黄色一级免费电影 | 精品久久网 | 粉嫩av一区二区三区四区 | 日韩三级免费观看 | 国产成人精品一区二区三区免费 | 日韩欧美在线国产 | 在线观看国产 | 久久毛片视频 | 中文字幕 国产视频 | 亚洲综合小说电影qvod | 国产精品免费久久久久久久久久中文 | 免费国产黄线在线观看视频 | 日本黄色免费播放 | ww亚洲ww亚在线观看 | 久久久综合精品 | 国产麻豆视频网站 | 三级黄色在线观看 |