日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

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

C++Builder代碼片斷

2019-09-06 23:33:51
字體:
來源:轉載
供稿:網友

                    本文中包含了一些常用的代碼片斷,看看想想或許有他山之石可以攻玉的可能。

刪除別名中所有的表、純虛函數、虛函數、啟動頁面、指針、為指針解除引用、表的For循環
變量與常量的聲明、檢查表是否存在、組件的類名、剪貼板中的文字、字符流、檢查表是否已打開
表的狀態操作、改變PageControl的標簽、向Query傳遞參數 日期屬性 繪制狀態條

刪除別名中所有的表
void TData::CleanTemp()
{
 TStringList *myTables = new TStringList();
 TTable *Table = new TTable(this);
 try
 {
   Session->GetTableNames("Temp", "", True, False, myTables);
 }
 catch (...) {}
 // AnsiString str = myTables->GetText();
 // ShowMessage(str);
 for(int count=0; count < myTables->Count; count++)
 {
   Table->DatabaseName = "Temp";
   Table->TableName = myTables->Strings[count];
   Table->Close();
   Table->DeleteTable();
 }
 delete myTables;
 delete Table;
}

純虛函數
//純虛函數只在基類中出現,而在子類中必須有
//與其匹配的成員函數。程序中申明的子類的實例
//必須為基類中的每一個純虛函數提供一個重載的成員函數。
class TBaseClass
{
 public:
 virtual void Display() = 0;
};
class TDerivedClass : public TBaseClass
{
 public:
 void Display() { ShowMessage("From Derived"); }
};
 
class TSecondDerivedClass : public TDerivedClass
{
 public:
 void Display() { ShowMessage("From Second Derived"); }
};
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 TDerivedClass dc; dc.Display();// "From Derived"
 TSecondDerivedClass sc; TBaseClass* bc = ≻
 bc->Display(); // "From Second Derived"
}

虛函數
//虛函數作為其他類的父類的成員函數。
//如果繼承子類成員函數中存在與父類成員函數完全相同的函數,
//子類中的成員函數永遠有效。
class Base
{
public:
 virtual void Display() { ShowMessage("Base Class"); }
};
 
class DerivedOne : public Base
{
 public:
 void Display() { ShowMessage("DerivedOne"); }
};
 
class DerivedTwo : public Base
{
 public:
 void Display() { ShowMessage("DerivedTwo"); }
};
 
Base* pBases[10];
int count = 0;
DerivedOne aDerOne;
DerivedTwo aDerTwo;
pBases[count++] = &aDerOne;
pBases[count++] = &aDerTwo;
for( int i=0; i < count; i++ )
pBases->Display();


啟動頁面
USEDATAMODULE("Datamod.cpp", DataModule);
USEFORM("about.cpp", AboutBox);
USEFORM("main.cpp", MainForm);
USEFORM("splash.cpp", SplashForm);
//---------------------------------------------------------------------------
#include "splash.h"
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
 try
 {
   SplashForm = new TSplashForm(Application);
   SplashForm->Show();
   SplashForm->Update();
   Application->Initialize();
   Application->Title = "Example of Loading Splash Form";
   Application->HelpFile = "SplashHelp.hlp";
   Application->CreateForm(__classid(TMainForm), &MainForm);
   Application->CreateForm(__classid(TDataModule), &DataModule);
   Application->CreateForm(__classid(TAboutBox), &AboutBox);
   SplashForm->Hide();
   SplashForm->Close();
   Application->Run();
 }
 catch (Exception &exception)
 {
   Application->ShowException(&exception);
 }
 return 0;
}


指針
int array[] = { 2, 4, 6, 8, 10}
int myInteger = array[3]; // 值為 8
 
// ----使用指針可以實現同樣的功能 -----
int array[] = { 2, 4, 6, 8, 10}
int* myPtr = array;
int myInteger = myPtr[3]; // 值為8


為指針解除引用
int x = 32;
int* ptr = &x;
//解除指針的引用
//以獲得內存位置的內容
int y = *ptr; // y = 32


表的For循環
void TDataModuleEmployee::ListNames( TStrings *Items )
{
 try
 {
   for ( TableAll->First(); !TableAll->Eof; TableAll->Next() )
   if ( TableAll->FieldByName("Deleted")->AsBoolean == false )
   Items->AddObject( TableAll->FieldByName("Name")->AsString, (TObject *)TableAll->FieldByName("Refnum")->AsInteger );
 }
 catch (Exception &e)
 {
   Application->ShowException(&e);
 };
}


變量與常量的聲明
char ch;
int count = 1;
char* name = "csdn.net";
struct complex { float my, his;};
float real(complex* p) {return p->my};
const double pi = 3.1415926535897932385;
templetate abc(T a) { return a < 0 ? -a : a; };
enum WebSite { one, two, three, four};
int* a; // * 指針
char* p[20]; // [ ] 數組
void myFunction(int); // ( )函數
struct str { short length; char* p; };
char ch1 = 'a';
char* p = &ch1; // &引用 ,p保持著ch1的地址
char ch2 = *p; // ch2 = 'a'


檢查表是否存在
#include "io.h"
if (access(Table1->TableName.c_str(),0)) //檢查表是否存在
{ // 若不存在就創建 ...
 Table1->Active = false;
 Table1->TableType = ttParadox;
 Table1->FieldDefs->Clear();
 Table1->FieldDefs->Add("Myfield", ftString, 15, false);
 Table1->IndexDefs->Clear();
 Table1->CreateTable();
 Table1->Active = true;
}
else
 Table1->Active = true;


組件的類名
//找出丟失的組件類名
for(int i=0; i < ComponentCount; i++)
{
 if(String(dynamic_cast<TComponent&>(*Components).Name) == "")
 {
   ShowMessage(Components->ClassName());
 }
}


剪貼板中的文字
#include "memory.h" // 包含 auto_ptr<>
#include "clipbrd.hpp" //包含 TClipboard & Clipboard()
// 范例程序,包含了一個memo控件
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{ //創建 TStringList對象
 auto_ptr ClipText(new TStringList); //得到剪貼板中的文字的拷貝
 ClipText->Text = Clipboard()->AsText; //然后加工一下...
 Memo1->Lines->AddStrings(ClipText.get());
}


字符流
//范例一
#include "sstream"
const char *name = "cker";
const char *email = "cker@sina.com";
// 生成 "cker"[SMTP:cker@sina.com]
 
ostringstream ost;
ost << """ << name << ""[SMTP:" << email << "]";
Edit1->Text = ost.str().c_str();
 
//范例二
void TDataModuleEmployee::FullReport(const char *title)
{
 Report.header(title);
 Report << sformat( "Employee #%2d: %s%s", TableAllRefnum->Value, TableAllName->Text.c_str(),
 TableAllManagerFlag->Value ?"(Manager)" : "" ) << " Address: " <<
 TableAllAddress->Text.c_str() << endl << " " << TableAllCityProvZip->Text.c_str() <<
 endl << " " << NameCountry(TableAllCanada->Value) << endl;
 Report.footer();
}


檢查表是否已打開
void TData::CheckEdit()
{
 for(int i=0; i < ComponentCount; i++)
 {
   if(dynamic_cast(Components))
   {
     if(((TTable*)Components)->State == dsEdit)
     {
/tString s = "Table " + Components->Name + " is in edit mode" "Would you like to post it before entering new task?";
/tif(MessageBox(NULL,s.c_str(),"Table in Edit Mode",MB_YESNO | MB_ICONINFORMATION) == IDYES)
/t  ((TTable*)Components)->Post();
/telse
/t  ((TTable*)Components)->Cancel();
     }
   }
 }
}


表的狀態操作
//關閉已打開的表并將他們恢復成初始狀態。
void TData::MyTables(TForm * sender)
{
 int i;
 TTable * Table;
 bool *active = new bool[MyClass->ComponentCount];//在動態數組中存放每個表的初始狀態,然后關閉所有的表
 for(i = 0; i < MyClass->ComponentCount; i++)
 {
   try
   {
     if((Table = dynamic_cast(MyClass->Components)) != NULL)
     {
/tactive = Table->Active;
/tTable->Active = false;
     }
   }
   catch(...) {}; //異常應該只來自于dynamic cast...
 }
 for(i = 0; i < MyClass->ComponentCount; i++)
 {
   try
   {
     if((Table = dynamic_cast(MyClass->Components)) != NULL)
     {
/tif(Table->DatabaseName != OPTARDatabase->DatabaseName)
/t  continue;
/tDBIResult result = DBIERR_NONE + 1;
/twhile(result != DBIERR_NONE) //若希望的話,這樣允許用戶重試!
/t{
/t  result = DbiPackTable (OPTARDatabase->Handle,NULL,Table->TableName.c_str(),NULL, true);
/t  if(result != DBIERR_NONE)
/t  {
/t    AnsiString rsltText = "Unable to pack " + Table->TableName + "." ;
/t    char rslt[DBIMAXMSGLEN + 1];
/t    DbiGetErrorString(result, rslt) rsltText += ". Try again?";
/t    if(Application->MessageBox(rsltText.c_str(), "Error!",MB_YESNO) != IDYES)
/t      break;
/t  }
/t}
     }
   }
   catch (...) {}; //異常應該只來自于dynamic cast...
 }
 // 將所有的表設回初始狀態。
 for(i = 0; i < MyClass->ComponentCount; i++)
 {
   try
   {
     if((Table = dynamic_cast(MyClass->Components)) != NULL)
/tTable->Active = active;
   }
   catch(...) {};
 }
 delete []active;
}


改變PageControl的標簽
void __fastcall TfmMainForm::Cancel1Click(TObject *Sender)
{
 int i;
 switch (PageControl1->ActivePage->Tag))
 {
   case 1:
     for (i=0; i < ComponentCount; i++)
     {
/tif (dynamic_cast(Components))
/t  dynamic_cast(Components)->Enabled = false;
     }
     Data->tbDetail->Cancel();
     break;
   case 2:
     for (i=0; i < ComponentCount; i++)
     {
/tif (dynamic_cast(Components))
/t  dynamic_cast(Components)->Enabled = false;
     }
     Data->tbDetail->Cancel();
     break;
   case 3:
     for (i=0; i < ComponentCount; i++)
     {
/tif (dynamic_cast(Components))
/t  dynamic_cast(Components)->Text = "";
     }
   default:
     break;
 }
}


向Query傳遞參數
// 直接從表向Query傳遞參數的一種方法
TQuery *Query = new TQuery(this);
Query->DatabaseName = "dbServer";
Query->SQL->Clear();
Query->SQL->Add("DELETE FROM 'Events.DB' WHERE (TicketNo = " + Data->tbProblem->FieldByName("TicketNo")->AsString + ")" );
Query->ExecSQL();
Query->Close();
delete Query;


日期屬性
TMaskEdit *meOpen;
TLabel *lbCount1;
TDateTime Date2;
void __fastcall TfmMainForm::CountOpen(TObject *Sender)
{
 switch(dynamic_cast<TComponent&>(*Sender).Tag)
 {
   case 1:
     count1 = StrToInt(lbCount1->Caption);
     count1 += 1;
     Date2 = Now() + count1;
     meOpen->Text = Date2.DateString();
     lbCount1->Caption = IntToStr(count1);
     break;
  case 2:
    count1 = StrToInt(lbCount1->Caption);
    count1 -= 1;
    Date2 = Now() + count1;
    meOpen->Text = Date2.DateString();
    lbCount1->Caption = IntToStr(count1);
    break;
 }
}


繪制狀態條
void __fastcall TForm1::StatusBar1DrawPanel(TStatusBar *StatusBar, TStatusPanel *Panel, const TRect &Rect)
{
 TCanvas& c = *StatusBar->Canvas;
 switch (Panel->Index)
 {
   case 0 :
   {
     StatusBar1->Panels->Items[0]->Text = "Hello C++";
     c.Brush->Style = bsClear;
     TRect temp = Rect;
     temp.Top += 1;
     temp.Left += 1;
     c.Font->Color = clWhite;
     DrawText(c.Handle,Panel->Text.c_str(),-1,(RECT*)&temp,DT_SINGLELINE|DT_CENTER);
     c.Font->Color = clBlack;
     DrawText(c.Handle,Panel->Text.c_str(),-1,(RECT*)&Rect,DT_SINGLELINE|DT_CENTER);
     break;
   }
   case 1:
   {
     c.Brush->Color = clYellow;
     c.FillRect(Rect);
     c.Font->Color = clRed;
     DrawText(c.Handle,"clYellow Color", -1, (RECT*)&Rect, DT_SINGLELINE | DT_CENTER);
     break;
   }
   case 2:
   {
     Graphics::TBitmap* bm = new Graphics::TBitmap;
     bm->Handle = LoadBitmap(NULL, MAKEINTRESOURCE(32760));
     c.Draw(Rect.Left, Rect.Top, bm);
     delete bm;
     break;
   }
 }
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
中文字幕亚洲一区在线观看| 亚洲久草视频| 中文在线不卡| 日韩av一区二| 一本久久a久久精品亚洲| 国产欧美日韩亚洲| 日韩欧美中文在线| 在线免费播放av| 欧美中文字幕视频在线观看| 精品人妻一区二区免费视频| 欧美专区中文字幕| 精品调教chinesegay| 日韩精品一页| 在线免费91| 国产极品嫩模在线视频一区| wwwwww在线观看| 日韩欧美成人一区二区三区| 在线国产99| 中文天堂资源在线| 91精品国产色综合久久久蜜香臀| 欧美在线视频一区二区| 久久精品www| 亚洲国产专区| 日韩午夜一区| 亚洲福利一区| 欧美日韩精品高清| 日韩中文字幕综合| 99视频一区| 日韩精品久久久| 日韩欧美资源站| 一区二区不卡在线| 国产一卡2卡3卡四卡网站| 91精品久久久久久久久| 亚洲国产综合久久| 在线中文字幕视频观看| 日韩三级视频在线看| 欧美日韩成人综合| 国产欧美日韩精品综合| 亚洲高清中文字幕| 精品视频1区2区3区| 亚洲制服丝袜一区| 亚洲视频 中文字幕| 色综合天天综合网国产成人综合天| 不卡中文一二三区| www.老鸭窝.com| 国产亚洲一区字幕| 中文字幕第一页在线播放| 91精品网站| 精品在线91| 亚洲国产午夜精品| 日韩视频在线一区| 亚洲成av人片| 日韩欧美国产一二三区| 国产成人精品综合久久久| 91精品久久久久久久久| 日韩精品中文在线观看| 国产视频一区三区| 一区二区三区在线|网站| 欧美一级一级性生活免费录像| 九一精品国产| 国产日韩中文字幕| 亚洲欧美999| 国产欧美日韩不卡| 一区二区三区免费看视频| 九七久久人人| 国产裸体歌舞团一区二区| 先锋男人资源站| 91精品啪在线观看国产60岁| 中文字幕在线中文字幕二区| 国产永久免费高清在线观看| 一区二区中文视频| av亚洲免费| 日本精品在线播放| 91精品日本| 欧美日韩国产区| 日韩视频一区二区在线观看| 国产农村妇女精品一二区| 中文在线视频| 一区二区三区高清在线| 国产午夜精品视频免费不卡69堂| 精品国产乱码久久久久久牛牛| 精品999视频| 国产一级免费看| 亚洲黄页一区| 黄色在线播放网站| 欧美日韩午夜在线| 久久永久免费视频| 中文字幕日韩欧美在线视频| 久久久久久91| 亚洲第一中文字幕| 久久久精品99| 亚洲一区日韩精品中文字幕| av首页在线| 欧美日韩国产91| 国产真实乱子伦精品视频| 国产一级片在线| www日韩欧美| 不卡在线视频| 黄色在线资源| 91精品网站| 亚欧成人精品| 在线中文免费视频| 欧美国产综合在线V| 中文字幕亚洲一区在线观看| 亚洲一区二区三区精品中文字幕| 欧美日韩国产高清一区| 精品在线91| 欧美xxxx中国| 最近中文字幕在线中文视频| 亚洲热在线观看| 亚洲 欧美 日韩系列| 一区二区在线看| 日韩视频在线一区二区三区| 欧美在线视频第一页| 欧美日韩在线网站| aaa大片在线观看| 又黄又www的网站| 中文字幕亚洲视频| 欧美日韩国产一中文字不卡| 欧美日韩一二三四| 午夜国产视频| 日本不卡免费高清视频| 一级片在线免费看| 欧美 日韩 综合| 欧美日韩在线视频首页| 日韩欧美在线第一页| 国产免费久久| 成人无遮挡免费网站视频在线观看 | 香蕉视频亚洲一级| 91精品国产色综合久久不卡蜜臀 | 精品午夜av| 国产欧美日韩精品在线观看| 国产美女主播视频一区| 国产黄在线看| 欧美亚洲国产日韩2020| 亚洲素人一区二区| 日韩国产一区三区| 欧美日韩性视频一区二区三区| 午夜av一区二区| 国产欧美日产一区| 国产一二三精品| 久久精品在线观看| 91精品免费观看| 亚洲大片精品永久免费| 亚欧成人精品| 日韩欧美一级精品久久| 日韩你懂的电影在线观看| 精品一区二区三区中文字幕| 国产不卡一区| 亚洲精华国产欧美| 欧美黄页在线免费观看| 亚洲第一网中文字幕| 久久精品欧美日韩精品| 伊人网站在线| 久久91精品久久久久久秒播| av中文天堂在线| 欧美日韩综合在线观看| 欧美熟妇乱码在线一区| 亚洲理论中文字幕| 欧美日韩视频免费播放| 一区二区三区精品在线| 中文字幕在线导航| 不卡专区在线| 国产一级久久久| 日韩欧美国产成人精品免费| 91精品国产调教在线观看| 色国产在线视频| 精品久久久网| 国产欧美三级| 欧美日韩国产不卡| 久草亚洲一区| 国产日韩亚洲欧美| 日韩 欧美 亚洲| 国产91一区| 精品日韩av一区二区| 亚洲免费福利视频| 一级日本免费的| 欧美中日韩在线| 欧美一级免费在线观看| 日韩精品视频在线观看免费| 日韩欧美久久| 亚洲久草视频| 一区二区视频免费看| 色综合影院在线| 欧美日韩一二三四| 在线观看免费国产成人软件| 欧美日韩尤物久久| 一区二区不卡视频在线观看| 中文字幕在线观看精品| 91精品综合久久久久久| 欧美另类久久久品| 欧美性极品xxxx做受| 国产成人一二三区| 亚洲一区视频在线观看视频| 天堂在线视频中文网| 欧美婷婷久久| 欧美日韩国产系列| 国产欧美自拍一区| 国产三级做爰在线观看| 精品福利二区三区| 国产色在线 com| 日韩三级高清在线| 日韩在线小视频| 亚洲一区在线观看免费| 91欧美在线视频| 国产成人精品免费网站| 色综合天天性综合| 国产日韩精品久久久| 国产综合成人久久大片91| 日韩欧美久久| 久久久另类综合| aaa欧美日韩| 精人妻一区二区三区| 天堂在线www天堂中文在线| 91av久久久| 久久精品欧美日韩精品| 日韩欧美一级在线| 欧美国产综合视频| 亚洲欧美99| 日韩免费精品| 日韩免费视频一区二区视频在线观看 | 日韩欧美在线1卡| 欧美午夜精品在线| 久久久久黄色| 国产成人精品亚洲| 欧美日韩国产页| eeuss一区| 国产香蕉精品视频| 久久久精品99| 99久久久精品免费观看国产| 日韩免费电影网站| 在线免费播放av| 一区二区三区精品在线| 色综合影院在线| 国产日韩综合| 91精品国产丝袜白色高跟鞋| 国内精品露脸在线视频播放| 欧美熟妇乱码在线一区| 中文字幕日韩视频| 国产嫩草影院久久久久| 99久热re在线精彩视频| 一区二区三区免费看视频| 人成在线免费视频| 中文字幕在线视频精品| 久久夜色精品国产欧美乱极品| 高清中文字幕在线| 欧美三级中文字幕| 日韩精品视频在线播放| 天天在线视频色| 久久91精品视频| 日韩av一区二| 1区2区在线| 91精品在线国产| 日韩1区在线| 91精品久久久久| 不卡福利视频| 欧美日韩精品在线视频| 久久精品黄色片| 91精品国产亚洲| 一本一道综合狠狠老| 亚洲人线精品午夜| 精品国产91乱高清在线观看| 国产欧美亚洲一区| 国产一区久久| 国产一二三精品| 日韩欧美中文视频| 欧美在线视频第一页| 深夜福利一区二区| 中文字幕日韩国产| 国精品产品一区| 国产欧美日韩久久| 日韩中文字幕二区| 欧美不卡视频一区发布| 日韩精品欧美在线| 国产资源在线观看| 免费看黄资源大全高清| 国产 日韩 欧美 综合| 天堂中文在线视频| 国产成人精品免费网站| 国产在线拍揄自揄拍| 国产蜜臀在线| 国产亚洲人成a一在线v站| 国产亚洲二区| 免费在线观看国产黄| 欧美不卡123| 成人精品视频一区| 日韩欧美综合在线| 日韩欧美在线综合| 欧美一级久久久久久久久大| 欧美日韩综合色| 日韩免费视频一区| 精品在线一区二区三区| 一区二区中文视频| 日韩中文在线中文网三级| 亚洲成a人片在线www| 伊人精品视频| 亚洲九九精品| 亚洲国产欧美日韩精品| 欧美日韩国产一级片| 一区二区三区视频网站| 91精品国产综合久久蜜臀| 中文字幕精品在线| 欧美国产小视频| 一区视频在线播放| 日韩精品在线视频观看| 亚洲欧洲三级| 欧美日韩国产中文精品字幕自在自线| 国产在线拍揄自揄拍| 欧美久久久久久蜜桃| 亚洲人成欧美中文字幕| 国产xxx在线| 7799精品视频天天看| 亚洲美女视频一区| 精品精品久久| 99精品视频国产| 日韩中文字幕第一页| 欧美在线日韩在线| 日本精品在线播放| 国产欧美久久久| 国产95在线|亚洲| 日韩在线视频观看正片免费网站| 久久久99免费| 天堂在线一区二区三区| 欧美日韩国产一级片| 黄色资源在线观看| 国产一区精品在线| 日韩 欧美 中文| 999视频精品| 国产网站欧美日韩免费精品在线观看| 国产乱码在线| 欧美三级日韩三级| 欧美婷婷久久| 中文字幕欧美日韩va免费视频| 综合激情一区| 国产一级片在线| 久久韩国免费视频| 亚洲.国产.中文慕字在线| 亚洲深夜福利| 伊人精品视频| 成人禁用看黄a在线| www.eeuss影院| 国产伦精品免费视频| www.精品av.com| 亚洲欧美中文在线视频| 国产日韩精品久久久| 久久精品网站免费观看| 日韩欧美中文字幕在线视频| 欧美婷婷久久| 欧美久久在线| av午夜在线| 精品视频1区2区3区| 欧美日韩国产在线看| 日韩国产在线观看一区| 中文字幕精品在线| 亚洲美女视频一区| 99久久精品国产成人一区二区| 亚洲免费看av| 午夜精品一区二区三区免费视频| 欧美日韩人人澡狠狠躁视频| 久久99精品久久久久久青青日本| 国产福利免费观看| 国产高潮久久久| 日韩www在线| 欧美国产亚洲一区| 激情婷婷亚洲| 亚州福利视频| 在线精品视频免费播放| 欧美 日韩 国产 在线观看| 国产乱国产乱老熟300部视频| 日韩欧美中文字幕一区| 欧美日韩精品区| 国产精久久久久| 九一精品国产| 日韩欧美在线精品| 国产中文伊人| 久久久另类综合| 亚洲视频在线观看三级| 国产91久久久久蜜臀青青天草二| 欧美日韩国产专区| 最近中文av字幕在线中文| 一区二区高清在线| 日韩中文字幕第一页| 久久精品在线免费观看| 久久久99久久| 日韩精品―中文字幕| 亚洲尤物av| 中文字幕 欧美日韩| 日韩三级高清在线| 久本草在线中文字幕亚洲欧美| 亚洲成av人片| av三级在线观看| 亚洲中文字幕在线一区| www.中文字幕在线| 天天摸日日摸狠狠添| 欧美在线日韩| 欧美日韩国产在线| 日韩色在线观看| 国内精品露脸在线视频播放| 阿v免费在线观看| 韩国v欧美v日本v亚洲|