亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++ Builder開發(fā)經(jīng)驗(yàn)幾則 

2019-09-06 23:34:02
字體:
供稿:網(wǎng)友

                        Borland C++ Builder 是Inprise公司繼Delphi之后推出的又一激情之作,它使得C++的可視化編程真正成為了可能,這就為那些既不忍心放棄自己心愛的C++語言,又十分向往Windows平臺下RAD編程的程序員們提供了一個(gè)近乎于完美的解決方案。其中堅(jiān)版本Borland C++ Builder 3.0更是一優(yōu)秀的全能型的開發(fā)工具。從開發(fā)功能上來說,其功能和現(xiàn)在如日中天的Microsoft的Visual C++相比不相上下,而從易用性方面來說,其易用性則要大大優(yōu)于前者,正因?yàn)槿绱?,所以Borland C++ Builder3.0在國內(nèi)也逐漸得到了一些程序員的認(rèn)同。但是Borland C++ Builder在國內(nèi)的應(yīng)用情況還遠(yuǎn)不及它的同門師兄Delphi一樣普及,所以相對來說Borland C++ Builder3.0的參考資料也比較少。在這里筆者把自己這一年來使用Borland C++ Builder 3.0所總結(jié)出來的經(jīng)驗(yàn)?zāi)贸鰩讞l來與大家共饗,只希望能對你在編程時(shí)有一定的幫助,讓你少走一些彎路。

  1.全局變量的定義

  這個(gè)問題在標(biāo)準(zhǔn)的C/C++編程領(lǐng)域可以說根本不能算是一個(gè)問題,但是在Borland C++Builder3.0中卻有些不同。當(dāng)一個(gè)程序包含一個(gè)定義在獨(dú)立頭文件中的全局變量時(shí),程序編譯將會(huì)很順利地通過,但是在程序鏈接時(shí)則會(huì)出現(xiàn)找不到全局變量目標(biāo)模塊的錯(cuò)誤。這個(gè)問題曾令包括筆者在內(nèi)的很多Borland C++ Builder 程序員感到困惑。直到前不久,我才找到了問題出現(xiàn)的原因和解決問題的方法。
  在Borland C++ Builder 3.0中對全局變量的定義采用了定義函數(shù)一樣的方式,即全局變量不僅要有聲明部分,還要有實(shí)例定義部分。只有這樣定義過的全局變量在使用時(shí)才不會(huì)出錯(cuò)。
  以下舉例說明,在程序中要定義一個(gè)全局整型變量i,它的聲明部分寫在Struct.H頭文件中,如下所示:
 ?。fndef StructH
  #define StructH
  #include //此行必須加上
  //------------------
  extern int i;//此處為全局變量i的聲明
  //-------------------
 ?。ndif
  而它的實(shí)例定義部分則應(yīng)該寫在Struct.cpp文件中,具體如下:
  //------------------
 ?。nclude “struct.h”
 ?。ragma package(smart_init)//此行必須加上。
  //------------------
  int i;//此處為全局變量i的實(shí)例定義
  //-------------------
  只有經(jīng)過以上處理后,在程序中使用自定義全局變量時(shí)才不會(huì)出錯(cuò)。

  2.使同一個(gè)元件的Hint在StatusBar中與動(dòng)態(tài)提示時(shí)有不同的顯示內(nèi)容

  這是我在閱讀VCL源碼時(shí)無意中發(fā)現(xiàn)的。雖然是一個(gè)小技巧,但是卻很是實(shí)用,以下具體舉例說明:
 ?、牛涸贐orland C++ Builder 3.0中新建一個(gè)項(xiàng)目,然后在窗口中加入一個(gè)Button元件和一個(gè)StatusBar元件,并在對象檢器中將Button元件的ShowHint屬性和StatusBar元件的SimplePanel屬性值都置為true。
 ?、疲簩utton元件的Hint屬性置為“這是一個(gè)按鈕的提示信息|這是在提示行上顯示的信息”。
 ?、牵涸诖翱陬^文件的窗口類中定義一個(gè)函數(shù)原型如下:
  void __fastcall DisplayHint(TObject *Sender);
  然后在CPP文件中編寫這個(gè)函數(shù)的代碼如下:
  void __fastcall TForm1::DisplayHint(TObject *Sender)
  {
   StatusBar1->SimpleText=GetLongHint(Application->Hint);
   //應(yīng)用程序在顯示動(dòng)態(tài)提示信息時(shí),只會(huì)顯示“|"以前的部分,而想要顯示“|"以后的部分就只有通過調(diào)用GetLongHint函數(shù)來實(shí)現(xiàn)了。
  }
 ?、龋鹤詈笤僭诖翱诘臉?gòu)造函數(shù)中加入以下一行代碼:
   Application->OnHint=DisplayHint;
  ⑸:保存并編譯項(xiàng)目后運(yùn)行程序。
  這時(shí)你會(huì)發(fā)現(xiàn),當(dāng)你把鼠標(biāo)移到Button上時(shí),Button上所顯示的動(dòng)態(tài)提示信息和StatusBar上所顯示的提示信息是不同的。
  下面附送一個(gè)為整個(gè)應(yīng)用程序安裝動(dòng)態(tài)提示的程序段。它摘自我正在開發(fā)的一個(gè)應(yīng)用程序:
  void __fastcall TForm1::DisplayHint(TObject *Sender)
  {
   // 先對已經(jīng)存在窗口的Tag屬性賦值,然后再通過判斷當(dāng)前窗口的方法來進(jìn)行動(dòng)態(tài)提示。
   //如果將建的窗口也需要?jiǎng)討B(tài)提示的話,那么可先給窗口的Tag屬性賦值,然后再將判斷這個(gè)Tag屬性的代碼加入到下面的switch語句中。
   switch(Screen->ActiveForm->Tag)
   {
   case 1 :DFSStatusBar1->Panels->Items[1]->Text=GetLongHint(Application->Hint);break;
   case 5 :Form5->StatusBar1->SimpleText=GetLongHint(Application->Hint);break;
   case 8 :Form8->StatusBar1->SimpleText=GetLongHint(Application->Hint);break;
   case 11:Form11->StatusBar1->SimpleText=GetLongHint(Application->Hint);break;
   }
  }

  3.如何使DateToStr函數(shù)轉(zhuǎn)換后的結(jié)果為長格式的日期字符串

  這是我在實(shí)際開發(fā)過程中遇到的一個(gè)問題。當(dāng)我把TDateTimePicker元件的Date屬性通過DateToStr函數(shù)轉(zhuǎn)換后賦給一個(gè)Edit元件的Text屬性時(shí),Text得到的日期字符串?dāng)?shù)據(jù)只是以yy-mm-dd格式表示的短格式日期字符串?dāng)?shù)據(jù)。千年蟲!眼看就要到二千年了,這怎么能行。本來我想用判斷字符串的辦法來解決這個(gè)問題,但是后來經(jīng)過深入思考后發(fā)現(xiàn)該方法有很多的弊端。所以只有用一種通用的方法來解決問題了。在這種情況下,我查找了很多的資料,但是很不幸的是,我所查找的資料中沒有一個(gè)提到解決這個(gè)問題的方法。無奈之下我打開了Borland C++ Builder 3.0的幫助文件,查看了所有關(guān)于日期的幫助信息。此招果然有效,在幫助文件中我找到了一組用于日期顯示的外部變量,其中有兩個(gè)AnsiString型變量,它們分別是ShortDateFormat和LongDateFormat。從它們的名稱就可以看出,它們是用來存儲短日期格式和長日期格式的。當(dāng)時(shí)靈機(jī)一動(dòng),想通過修改這兩個(gè)變量值的方法來解決問題,于是當(dāng)即寫了一段代碼并運(yùn)行之,才發(fā)現(xiàn)我的想法是可行的。具體代碼段如下:
  void __fastcall TForm7::WriteLongDate(void)
  {
   AnsiString temp=ShortDateFormat;
   ShortDateFormat=LongDateFormat;
   Edit1->Text=DateToStr(DateTimePicker1->Date);
   ShortDateFormat=temp;
  }
  該程序段先保存短日期格式變量,然后將長日期格式變量賦給短日期格式變量,這樣做后就使得當(dāng)前的短日期格式和長日期格式的表示方式相同了。接下來使用日期轉(zhuǎn)字符串函數(shù)DataToStr來將日期數(shù)據(jù)轉(zhuǎn)換為AnsiString型數(shù)據(jù),轉(zhuǎn)換后的AnsiString就已經(jīng)變成了長格式的日期數(shù)據(jù)。最后將先前保存的短日期格式變量恢復(fù)一下即可。就這樣,問題被很好地解決了。同理,如果將長格式日期字符串轉(zhuǎn)換為短格式日期數(shù)據(jù),也可以使用上述方法,只不過要將上面賦值的順序反過來即可。

  4.程序在編譯鏈接時(shí)提示找不到某某文件應(yīng)該怎么辦?

  這是一個(gè)實(shí)際編程工作中經(jīng)常遇到的問題。造成這個(gè)問題的原因很多,很難一一介紹,所以我在這里只向大家介紹幾個(gè)造成這個(gè)問題的典型原因,以及其解決方法。希望能對你在解決這個(gè)問題時(shí)起到拋磚引玉的作用。
  ⑴:編譯器找不到存在的文件。
  這個(gè)問題經(jīng)常出現(xiàn)在編譯添加新元件的應(yīng)用程序時(shí)。其原因在于項(xiàng)目文件的搜索路徑中并沒有這個(gè)新元件所在路徑的信息。這個(gè)問題解決起來比較簡單,只需打開Project/Options菜單,在彈出的“選擇”窗口中選擇“Directories/Conditionals"標(biāo)簽頁,然后將新元件的路徑信息添加到包含路徑(Include Path)和庫文件路徑(Library Path)中即可。
  ⑵:編譯器要找不存在的文件情況之一
  也許你在編程中有過這樣的遭遇,當(dāng)你編譯并鏈接一個(gè)新的程序時(shí),編譯程序竟然會(huì)告訴你,需要你已經(jīng)卸載了的元件參加編譯。不知道你當(dāng)時(shí)的感覺怎么樣,反正,當(dāng)我還不知道這個(gè)問題解決辦法的時(shí)候,它總給我一種死去的元件陰魂不散的感覺。其實(shí)造成這個(gè)問題的原因是由于新元件在安裝時(shí)要將其庫文件的信息添加到缺省項(xiàng)目文件中的“編譯鏈接所需庫文件”部分,而元件在卸載時(shí)又不能自動(dòng)將其刪除。這就使得以后所有新建的項(xiàng)目在編譯鏈接時(shí)都需要使用這些庫文件。為了解決這個(gè)問題,我們就只有對缺省項(xiàng)目文件進(jìn)行編輯了。進(jìn)入Borland C++ Builder 3.0的BIN目錄下,你可以找到一個(gè)叫做DEFAULT.BPR的項(xiàng)目文件,這個(gè)文件就是缺省項(xiàng)目文件,即所有新建項(xiàng)目文件的父本。打開這個(gè)文件后,找到SPARELIBS段,將“死去元件”的“陰魂”Kill掉,即可永絕后患了。
 ?、牵壕幾g器要找不存在的文件情況之二
  這種情況的出現(xiàn)還是與新元件的安裝有關(guān)。當(dāng)你在安裝一些有源碼的Delphi元件時(shí),有可能遇到這樣的情況:編譯器告訴你找不到某某文件,使得挺好的一個(gè)元件就是無法使用。其實(shí)這個(gè)問題的出現(xiàn)多半是由于元件源碼中的一些判斷Delphi版本的預(yù)編譯信息所造成的。由于Delphi的不同版本之間都有著一定的差異,所以很多Delphi元件為了增強(qiáng)自己的可移植性都在元件的源碼中加入了判斷Delphi版本的預(yù)編譯信息。然而Borland C++ Builder 3.0的Delphi編譯器對這些Delphi版本的信息支持并不是很好,這就造成了Borland C++ Builder 3.0在編譯這些元件時(shí)通常是“胡子眉毛一把抓”,自然會(huì)出錯(cuò)(值得注意的是,在編譯Delphi元件時(shí)的很多其它編譯錯(cuò)誤也是由于這個(gè)原因所造成的)。這時(shí)我們就只有使用手工刪除這些不需要的預(yù)編譯信息(一般為{$IFDEF中的內(nèi)容)的方法來解決這個(gè)問題了。
 ?、龋壕幾g器要找不存在的文件情況之三
  有一次一個(gè)從BC++轉(zhuǎn)到Borland C++ Builder 3.0的朋友給我打電話問我,說他一時(shí)間動(dòng)了懷舊的情緒,使用Borland C++ Builder 3.0編譯了一個(gè)OWL程序。但是在編譯時(shí)編譯器卻提示找不到OWL所需要的類庫文件,問我這是為什么。當(dāng)即我便回答了他,告訴他Borland C++ Builder 3.0的默認(rèn)安裝將不安裝對OWL和MFC的支持庫(這在Borland C++ Builder 3.0安裝程序的安裝類型界面中已經(jīng)寫得很明白了,只不過是英文的,他沒有注意看罷了。)。如果需要這些東西的話,就只有在安裝時(shí)選擇定制安裝或完全安裝來安裝對其的支持了。如果你也遇到了以上的問題,那么請你照我上面所說的話去做吧。

   5 動(dòng)態(tài)調(diào)用窗體Form

   在缺省情況下,由File/NewForm生成添加入項(xiàng)目文件中的窗體都具有"AutoCreate"(自動(dòng)創(chuàng)建)的特性。即只要程序運(yùn)行,該窗體就存在于內(nèi)存中了,不管當(dāng)前它是否被調(diào)用。具有這種特性的窗體一般適用于窗體屬性比較固定、經(jīng)常被調(diào)用的情況。其優(yōu)點(diǎn)是速度快,缺點(diǎn)是占用內(nèi)存。在實(shí)際程序設(shè)計(jì)中,會(huì)遇見大量類似對話框功能的窗體,它們用于顯示狀態(tài)或輸入信息,僅須在程序中調(diào)用一下,完成其功能就行了,無需常駐內(nèi)存。這時(shí)可以通過選擇Project/Options/Forms,將"Auto--Createforms"欄中相應(yīng)的窗體,如Form1,用">"鍵移動(dòng)到"Availableforms"欄中,并在程序需調(diào)用該窗體處,加入下列語句:
TForm1 *myform=newTForm1(this);
myform->ShowModal();
deletemyform;
 
  6 用Enter鍵控制焦點(diǎn)切換的方法

   在Windows環(huán)境下,要使一個(gè)控件取得焦點(diǎn),可在該控件上用鼠標(biāo)單擊一下,或按Tab鍵將焦點(diǎn)移至該控件上。這種控制焦點(diǎn)切換的方法有時(shí)不符合用戶的習(xí)慣。就圖一而言,用戶就希望用Enter鍵,控制焦點(diǎn)由Edit1切換到Edit2。要實(shí)現(xiàn)這樣的功能需借助WinAPI函數(shù)SendMessage來完成。方法是:先設(shè)Form1的KeyPreview屬性為true,然后在Form1的OnKeyPress事件中加入如下的代碼。這樣,用戶就可以通過按Enter,鍵控制焦點(diǎn)按定義好的Taborder順序來移動(dòng)了!

void__fastcallTForm1::

FormKeyPress(TObject*Sender,char&Key)
{
if(Key==VK_RETURN)
  {
  SendMessage(this->Handle,WM_NEXTDLGCTL,0,0);
  Key=0;
  }
}


  7 為TStringGrid的文字加上顏色

TStringGrid是C++Builder提供給用戶的一種字符網(wǎng)格控件。美中不足的是,它沒有提供分別修改各單元字體顏色、大小的方法。其實(shí)要為TStringGrid實(shí)現(xiàn)這樣功能,只需在程序中稍加處理就行了。方法是自定義一個(gè)二維數(shù)組cellbuf,它的下標(biāo)與網(wǎng)格單元列行一一對應(yīng),用于存放各網(wǎng)格單元的顏色、文字等信息。

structCellStru

{

AnsiStringmsg; //文字信息

TColorcolor; //文字顏色

};

CellStrucellbuf[MAXCOL][MAXROW];


----初始化cellbuf后,再在字符網(wǎng)格控件StringGrid1的OnDrawCell響應(yīng)事件中,加入如下的代碼即可。

void__fastcallTForm1::StringGrid1DrawCell

(TObject*Sender,intCol,

intRow,TRect&Rect,TGridDrawStateState)

{

StringGrid1->Canvas->Font->

Color=cellbuf[Col][Row].color;

StringGrid1->Canvas->TextOut(Rect.Left+3,

Rect.Top+3,cellbuf[Col][Row].msg);

}


 8 軟件封面的實(shí)現(xiàn)

----現(xiàn)代軟件設(shè)計(jì)的流行做法是,在程序運(yùn)行完成初始化之前,先調(diào)用一幅畫面做為封面,通常是1/4屏幕大小,顯示一下軟件的名稱、作者、版本等信息。要用C++Builder實(shí)現(xiàn)這樣的功能,方法很簡單:①自定義一窗體類TSplashForm,將其設(shè)置成"透明窗口",即BorderIcons下的所有選項(xiàng)均置成false,BorderStyle=bsNone,F(xiàn)ormStyle=fsStayOnTop,Position=poScreenCenter;②在TSplashForm窗體上放置一TPanel(相當(dāng)于圖形的鏡框);③在TPanel上放置一TImage控件,調(diào)入所需要的圖形;④對WinMain函數(shù)稍加修改,加入如下所示代碼即可。需要指出的是,這段代碼通過函數(shù)FindWindow,搜索內(nèi)存中是否有窗口標(biāo)題為"Demo"應(yīng)用程序存在,若存在,則退出程序的運(yùn)行。該功能可防止程序的再次運(yùn)行。在某些場合這樣設(shè)計(jì)是必須的。

WINAPIWinMain(HINSTANCE,HINSTANCE,LPSTR,int)

{

try

{

if(FindWindow(NULL,"Demo")!=0)

{

Application->MessageBox

("程序已經(jīng)運(yùn)行!","警告",MB_ICONSTOP);

return0;

}



TSplashForm*splash=newTSplashForm(Application);

splash->Show();

splash->Update();



Application->Initialize();

Application->CreateForm(__classid(TForm1),&Form1);



splash->Close();

deletesplash;



Application->Run();

}

catch(Exception&exception)

{

Application->ShowException(&exception);

}

return0;

}


9 如何永久清除DBF中的已被刪除的記錄

----用table->Delete()刪除的DBF記錄,并沒有真正從DBF數(shù)據(jù)庫中被刪除,而僅僅是做上了一個(gè)刪除標(biāo)記。如何實(shí)現(xiàn)類似dBase中的Pack命令的功能呢?請看下面的代碼。

table->Close();

for(;;)

try

{

table->Exclusive=true;

table->Open();

break;

}

catch(...)

{

}



if(DbiPackTable(table->DBHandle,table->Handle,NULL,szDBASE,true)!=DBIERR_NONE)

Application->MessageBox("不能刪除記錄","錯(cuò)誤",MB_ICONSTOP);

  最后再說一種最糟的情況。由于你的某種誤操作,造成了某些編譯器在編譯時(shí)所需要文件被誤刪除。這時(shí)你唯一的解決方法就只有從Borland C++ Builder 3.0的光盤上將你所需要的文件直接拷貝過來。如果你的Borland C++ Builder 3.0只是一個(gè)安裝版的話,那么你也就只好準(zhǔn)備一杯清茶或一杯咖啡,在重新安裝Borland C++ Builder 3.0時(shí)慢慢品味了。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

欧美日韩午夜在线| 又黄又爽的视频在线观看| 亚洲成色最大综合在线| 国产精品成人免费精品自在线观看| 一级黄色毛毛片| 成人乱人伦精品视频在线观看| 色婷婷久久99综合精品jk白丝| 欧美一区=区| 一本大道av一区二区在线播放| 人妖欧美一区二区| 日本女优北野望在线电影| 国产成人精品免费视频大全最热| 亚洲欧美视频| 日韩高清av一区二区三区| 国产成人久久精品77777最新版本| 久久精品人人做人人爽97| 欧美日韩国产成人在线观看| 日韩午夜激情视频| 亚洲人成在线播放网站岛国| 久久久久久久久久久妇女| 国产麻豆午夜三级精品| 国产校园另类小说区| 亚洲欧美日韩一区二区三区在线| 国产不卡一区二区三区在线观看| 亚洲综合国产激情另类一区| 91性高潮久久久久久久| 亚洲香蕉在线视频| 九色porny自拍视频在线播放| 亚洲欧美日韩一区二区三区在线| 国产中文字幕一区| 师生出轨h灌满了1v1| 91久久久精品| 国产精品影院在线| 在线天堂中文www视软件| 肥臀熟女一区二区三区| 顶级嫩模精品视频在线看| 性欧美一区二区| 性色视频在线| 视频二区一区| 福利精品一区| 日韩精品一区二区三区外面| 91久久久久久久| 两个人看的免费完整在线观看| 最近中文字幕日韩精品| 国产精品久久久久婷婷| 蜜臀av在线观看| 欧美野外性xxxxfeexxxx| 姝姝窝人体www聚色窝| 极品白嫩的小少妇| 一级片视频免费看| 一本—道久久a久久精品蜜桃| 欧洲视频一区二区三区| 欧美性xxxx极品hd满灌| 成年人免费在线观看网站| 免费成人av网站| 韩剧1988免费观看全集| 国产自产2019最新不卡| 国产精品毛片无遮挡高清| 国产精品亚洲美女av网站| a视频免费看| 日韩有码一区二区三区| 日韩欧美黄色片| 欧美久久精品午夜青青大伊人| 青娱乐国产在线视频| 国产精品一区二区久久精品爱涩| 国产欧美日韩在线观看| 日韩在线中文视频| 国产香蕉精品视频| 亚洲欧美中文日韩v在线观看| 国产精品丝袜白浆摸在线| 五月天国产一区| 蜜桃av一区二区三区电影| 国产亚洲一区二区三区不卡| 欧美一区二区三区免费| 青青久久av北条麻妃海外网| 一本大道亚洲视频| 国产v综合v亚洲欧美久久| 日韩—二三区免费观看av| 最近中文字幕免费在线观看| f2c人成在线观看免费视频| 国产视频精品视频| 激情成人亚洲| 亚洲激情电影中文字幕| 女~淫辱の触手3d动漫| 亚洲精品中文字幕在线观看| 国产精品国产三级国产普通话三级| 久久久久久久久久成人| 欧美人xxxxx| 国产一区二区三区观看| 欧美日韩国产高清一区| 在线精品视频免费观看| 黄网在线免费| 青草热久免费精品视频| 亚洲曰韩产成在线| 中文字幕一区二区三区在线观看| 免费看黄色网| 国产丝袜视频一区| 麻豆传媒视频在线| 日韩欧美亚洲一区二区| 欧美在线短视频| 国产一级片中文字幕| 欧美大片黄色| 中文在线观看免费网站| 蜜桃麻豆影像在线观看| 欧美性xxxx18| 欧美搞黄网站| 成人午夜在线影院| 三区在线视频| 久久一区二区三区视频| 国产欧美一区二区三区另类精品| jizz免费一区二区三区| 玖玖精品国产| 中文字幕欧美国内| 久久99精品久久久久| 中文字幕无线精品亚洲乱码一区| 伊人伊成久久人综合网小说| 欧美国产精品va在线观看| 在线播放免费视频| 外国一级黄色片| 久久精品久久久久久国产 免费| 国模视频一区二区三区| 日本在线播放不卡| 成人自拍视频在线观看| 亚洲二区自拍| 美女日批视频在线观看| 91麻豆成人久久精品二区三区| 熟妇人妻一区二区三区四区| 欧美xxxxx在线视频| 欧美视频在线观看| 韩国视频一区| 午夜精品久久久久久久99水蜜桃| 91精品国产综合久久久久久蜜臀| 亚洲精品乱码久久久久久蜜桃麻豆| 精品久久中文字幕| 免费欧美网站| 日韩欧美综合在线视频| 99在线精品一区二区三区| 国产欧美精品一区二区色综合朱莉| 成人激情视频在线播放| 日韩欧美亚洲一区二区三区| 成人免费视频97| 日韩美女av在线免费观看| 国产精品一区二区99| 高清电影在线观看免费| 少妇被狂c下部羞羞漫画| 欧美激情网友自拍| 欧美日韩性生活视频| 黄色一级视频免费看| 国产成人精品一区二区三区四区| av女优在线播放| 偷偷要91色婷婷| 制服.丝袜.亚洲.另类.中文| 欧美欧美全黄| 一本一道久久a久久精品综合| 免费观看一二区视频网站| 在线亚洲精品| 久久天天躁狠狠躁夜夜躁| 51ⅴ精品国产91久久久久久| 日韩av观看网址| 精品中文字幕不卡在线视频| 日韩av免费在线观看| 欧美日韩在线观看成人| 30一40一50老女人毛片| 国产精品久久视频| 一区二区在线观| 51国偷自产一区二区三区| 国产人与禽zoz0性伦| 亚洲色图35p| 日本一区二区免费电影| 国产后入清纯学生妹| 丰满少妇高潮在线观看| 久久精品国产99| 久久精品国产亚洲av香蕉| 91欧美激情一区二区三区成人| 国产精品免费一区二区三区都可以| 青青青在线免费观看| 国产一区二区三区精品在线| 中文字幕福利片| 欧美激情国产精品免费| 亚洲aⅴ优女av综合久久久| 国产精品久久久久久久久久小说| 日本视频一区二区| 国产精品视频导航| 欧美成人观看免费全部完小说| 肥熟一91porny丨九色丨| 欧美成人video| 91成人天堂久久成人| 精品少妇一区二区三区在线| 亚洲国产成人精品久久久国产成人一区| а√中文在线天堂精品| 国产xxx免费观看| 色哟哟一区二区| 午夜av区久久| 五月天亚洲色图| 欧美性极品xxxx娇小| 亚洲人成人77777线观看| 伊人久久大香线蕉无限次| 色婷婷综合久久久久中文一区二区| 香蕉视频xxx| 日韩午夜av| 成年在线观看视频| 国产成人毛片| 国产 福利 在线| 日韩精品视频久久| 日韩a一区二区| 亚洲欧洲二区| 一色屋色费精品视频在线观看| 国自产拍偷拍福利精品免费一| 日韩欧美视频网站| 免费国产麻豆传| 国产视频第一页| 国内精品国产三级国产a久久| 九九热国产在线| 欧美成人精品影院| 久久韩国免费视频| 亚洲а∨精品天堂在线| 在线免费av网址| 久久影视电视剧免费网站| 日韩成人av网| 91精品韩国| 888av在线视频| 国产主播一区二区三区四区| 无码无套少妇毛多18pxxxx| 午夜福利理论片在线观看| 在线看的黄色网址| 国产精品久久久久久久免费软件| 麻豆精品一二三| 在线观看中文字幕网站| 久草视频这里只有精品| 欧美做a欧美| 午夜精品久久久久久久久久蜜桃| 91丨九色丨蝌蚪丨少妇在线观看| a天堂中文在线| 国产福利资源| 日韩在线中文字幕| 狠狠人妻久久久久久综合| 精品久久91| 女生裸体免费视频| 久久久久影视| 天天av天天翘天天综合网| 免费看欧美一级片| 久久久国产精品无码| 美女在线观看www| 99久久99久久久精品棕色圆| 国产一区二区av| 欧洲精品码一区二区三区免费看| 在线麻豆国产传媒1国产免费| 蜜臀久久99精品久久久久宅男| 一区二区三区视频在线免费观看| 一本色道久久99精品综合| 欧美少妇在线观看| 九七电影院97理论片久久tvb| 国内视频一区二区| 亚洲精品国产精品国| 国产免费高清一区| 在线观看麻豆视频| 中文字幕在线三区| 免费在线看污| 色婷婷综合久久久久中文字幕1| 欧美色倩网站大全免费| 日产精品久久久一区二区| 国产亚洲一卡2卡3卡4卡新区| 久久精品国语| 日韩人妻精品一区二区三区| 18岁成人毛片| 免费在线观看污视频| 国产国产精品人在线视| 91亚洲国产高清| 视频欧美精品| 综合激情婷婷| 400部精品国偷自产在线观看| 日日爱66.cn| 日韩在线你懂的| 九九热精品视频| 精品人伦一区二区色婷婷| 精品视频免费在线观看| 色哟哟入口国产精品| 无码一区二区三区视频| 亚洲黄网站在线观看| 一区二区不卡免费视频| 国产无遮挡裸体视频在线观看| 日本1区2区3区视频| 91精彩视频在线播放| 久久中文字幕一区二区三区| 欧美成人精品网站| 日韩美女中文字幕| 一区二区三区精品| 亚洲一区二区免费| 老司机一区二区三区| 欧美极品欧美精品欧美图片| 国产欧美一区二区三区沐欲| 国产精品视频免费观看| 青青草激情视频| 日本道在线视频| 日本午夜一区| 欧美国产日韩在线观看成人| 欧美日韩在线播放一区二区| 精品人妻二区中文字幕| 第九区2中文字幕| 黄色成人在线观看| 国产suv一区二区| 在线视频观看你懂的| 国产精品乱码久久久久久| 26uuu亚洲电影| 成人看片app| a级国产乱理论片在线观看99| 影音先锋男人每日资源站| 91青青国产在线观看精品| 夜夜操 天天摸| ...中文天堂在线一区| 国产精品视频区| 在线日韩av| 日韩精品一区二区三区免费视频| 蜜臀av性久久久久蜜臀av麻豆| 成人黄色免费观看| 蜜桃色一区二区三区| 日韩欧美三级在线观看| 日韩黄色动漫| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 日本最新高清不卡中文字幕| 国产精品伦理| 破处女黄色一级片| 成人手机在线播放| 国产精品一国产精品| 日本一级片在线播放| 天天干天天插天天操| 春暖花开成人亚洲区| 在线中文字幕第一区|