青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Chip Studio

常用鏈接

統(tǒng)計

最新評論

StringGrid

Delphi StringGrid使用全書1


blueski推薦 [2006-12-9]
出處:Blog - 風之谷
作者:hottey
 

StringGrid行列的增加和刪除
type
TExCell = class(TStringGrid)

public
procedure DeleteRow(ARow: Longint);
procedure DeleteColumn(ACol: Longint);
procedure InsertRow(ARow: LongInt);
procedure InsertColumn(ACol: LongInt);
end;

procedure TExCell.InsertColumn(ACol: Integer);
begin
ColCount :=ColCount +1;
MoveColumn(ColCount-1, ACol);
end;

procedure TExCell.InsertRow(ARow: Integer);
begin
RowCount :=RowCount +1;
MoveRow(RowCount-1, ARow);
end;

procedure TExCell.DeleteColumn(ACol: Longint);
begin
MoveColumn(ACol, ColCount -1);
ColCount := ColCount - 1;
end;

procedure TExCell.DeleteRow(ARow: Longint);
begin
MoveRow(ARow, RowCount - 1);
RowCount := RowCount - 1;
end;


如何編寫使StringGrid中的一列具有Check功能,和CheckBox效果一樣
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids;

type
TForm1 = class(TForm)
grid: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure gridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure gridClick(Sender: TObject);

private
{ Private declarations }

public
{ Public declarations }

end;

var
Form1: TForm1;
fcheck,fnocheck:tbitmap;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
i:SmallInt;
bmp:TBitmap;
begin
FCheck:= TBitmap.Create;
FNoCheck:= TBitmap.Create;
bmp:= TBitmap.create;
try
  bmp.handle := LoadBitmap( 0, PChar(OBM_CHECKBOXES ));
  With FNoCheck Do Begin
   width := bmp.width div 4;
   height := bmp.height div 3;
   canvas.copyrect( canvas.cliprect, bmp.canvas, canvas.cliprect );
  End;
With FCheck Do Begin
  width := bmp.width div 4;
  height := bmp.height div 3;
  canvas.copyrect(canvas.cliprect, bmp.canvas, rect( width, 0, 2*width, height ));
End;
finally
  bmp.free
end;
end;

procedure TForm1.gridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if not (gdFixed in State) then
  with TStringGrid(Sender).Canvas do
begin
  brush.Color:=clWindow;
  FillRect(Rect);
  if Grid.Cells[ACol,ARow]='yes' then
   Draw( (rect.right + rect.left - FCheck.width) div 2, (rect.bottom + rect.top - FCheck.height) div 2, FCheck )
  else
   Draw( (rect.right + rect.left - FCheck.width) div 2, (rect.bottom + rect.top - FCheck.height) div 2, FNoCheck );
end;
end;

procedure TForm1.gridClick(Sender: TObject);
begin
if grid.Cells[grid.col,grid.row]='yes' then
  grid.Cells[grid.col,grid.row]:='no'
else
  grid.Cells[grid.col,grid.row]:='yes';
end;

end.

StringGrid組件Cells內容分行顯示在Tstringgrid.ondrawcell事件中

DrawText(StringGrid1.Canvas.Handle,pchar(StringGrid1.Cells[Acol,Arow]),Length(StringGrid1.Cells[Acol,Arow]),Rect,DT_WORDBREAK or DT_LEFT);

可以實現(xiàn)文字換行!

在StringGrid怎樣制作只讀的列在 OnSelectCell事件處理程序中,加入: (所有的列均設成可修改的)


if Col mod 2 = 0 then
  grd.Options := grd.Options + [goEditing]
else
  grd.Options := grd.Options - [goEditing];

stringgrid從文本讀入的問題(Save/Load a TStringGrid to/from a file?)stringgrid從文本讀入的問題

// Save a TStringGrid to a file
procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
i, k: Integer;
begin
AssignFile(f, FileName);
Rewrite(f);
with StringGrid do
begin
  // Write number of Columns/Rows
  Writeln(f, ColCount);
  Writeln(f, RowCount);
  // loop through cells
  for i := 0 to ColCount - 1 do
   for k := 0 to RowCount - 1 do
    Writeln(F, Cells[i, k]);
end;
CloseFile(F);
end;

// Load a TStringGrid from a file
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f: TextFile;
iTmp, i, k: Integer;
strTemp: String;
begin
AssignFile(f, FileName);
Reset(f);
with StringGrid do
begin
  // Get number of columns
  Readln(f, iTmp);
  ColCount := iTmp;
  // Get number of rows
  Readln(f, iTmp);
  RowCount := iTmp;
  // loop through cells & fill in values
  for i := 0 to ColCount - 1 do
   for k := 0 to RowCount - 1 do
   begin
    Readln(f, strTemp);
    Cells[i, k] := strTemp;
   end;
  end;
CloseFile(f);
end;

// Save StringGrid1 to 'c:.txt':
procedure TForm1.Button1Click(Sender: TObject);
begin
SaveStringGrid(StringGrid1, 'c:.txt');
end;

// Load StringGrid1 from 'c:.txt':
procedure TForm1.Button2Click(Sender: TObject);
begin
LoadStringGrid(StringGrid1, 'c:.txt');
end;

*******************************************

打開一個已有的文本文件,并將內容放到stringgrid中,文本行與stringgrid行一致;
在文本中遇到空格則放入下一cells.
搞定!注意,我只寫了一個空格間隔的,你自己修改一下splitstring可以用多個空格分隔!

procedure TForm1.Button1Click(Sender: TObject);
var
aa,bb:tstringlist;
i:integer;
begin
aa:=tstringlist.Create;
bb:=tstringlist.Create;
aa.LoadFromFile('c:.txt');
for i:=0 to aa.Count-1 do
begin
  bb:=SplitString(aa.Strings[i],' ');
  stringgrid1.Rows[i]:=bb;
end;
aa.Free;
bb.Free;
end;

其中splitstring為:

function SplitString(const source,ch:string):tstringlist;
var
temp:string;
i:integer;
begin
result:=tstringlist.Create;
temp:=source;
i:=pos(ch,source);
while i<>0 do
begin
  result.Add(copy(temp,0,i-1));
  delete(temp,1,i);
  i:=pos(ch,temp);
end;
result.Add(temp);
end;

StringGrid組件Cells內容對齊

在StringGrid的DrawCell事件中添加類似的代碼就可以了:

VAR
vCol, vRow : LongInt;
begin
vCol := ACol; vRow := ARow;
WITH Sender AS TStringGrid, Canvas DO
  IF vCol = 2 THEN BEGIN ///對于第2列設置為右對齊
   SetTextAlign(Handle, TA_RIGHT);
   FillRect(Rect);
   TextRect(Rect, Rect.RIGHT-2, Rect.Top+2, Cells[vCol, vRow]);
  END;
end;

當我將StringGird的options屬性中包含goRowSelect項時每當我選中StringGrid中一行, 則選中行用深藍色顯示,我想將深藍色改為其他顏色應怎樣該?當我將StringGird的options屬性中包含goRowSelect項時每當我選中 StringGrid中一行, 則選中行用深藍色顯示,我想將深藍色改為其他顏色應怎樣該?
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
With StringGrid1 do
begin
  If (ARow= Krow) and not (acol = 0) then
  begin
   Canvas.Brush.Color :=clYellow;// ClBlue;
   Canvas.FillRect(Rect);
   Canvas.font.color:=ClBlack;
   Canvas.TextOut(rect.left , rect.top, cells[acol, arow]);
  end;
end;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
krow := Arow; //*
kcol := Acol;
end; 

注意:必須把變量KROW的值初始為1或其他不為0的值,否則如果鎖定第一行的話,第一行的顏色將被自設顏色取代,而鎖定行不會被重畫。

怎么改變StringGrid控件某一列的背景和某一列的只讀屬性,StringGrid控件標題欄的對齊.怎么改變StringGrid控件某一列的背景和某一列的只讀屬性,StringGrid控件標題欄的對齊.
請參考以下代碼:
在OnDrawCell事件中處理背景色。程序如下:
//將第二列背景變?yōu)榧t色。
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if not((acol=1) and (arow>=stringgrid1.fixedrows)) then exit;
with stringgrid1 do
begin
  canvas.Brush.color:=clRed;
  canvas.FillRect(Rect);
  canvas.TextOut(rect.left+2,rect.top+2,cells[acol,arow])
end;
end;

//加入如下代碼,那么StringGrid的第四列就只讀了.其他列非只讀
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
with StringGrid1 do begin
  if ACol = 4 then
   Options := Options - [goEditing]
  else Options := Options + [goEditing];
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
dx,dy:byte;
begin
if (acol = 4) and not (arow = 0) then
  with stringgrid1 do
  begin
   canvas.Brush.color := clYellow;
   canvas.FillRect(Rect);
   canvas.font.color := clblue;
   dx:=2;//調整此值,控制字在網(wǎng)格中顯示的水平位置
   dy:=2;//調整此值,控制字在網(wǎng)格中顯示的垂直位置
   canvas.TextOut(rect.left+dx , rect.top+dy , cells[acol, arow]);
  end;
//控制標題欄的對齊
if (arow = 0) then
  with stringgrid1 do
  begin
   canvas.Brush.color := clbtnface;
   canvas.FillRect(Rect);
   dx := 12; //調整此值,控制字在網(wǎng)格中顯示的水平位置
   dy := 5; //調整此值,控制字在網(wǎng)格中顯示的垂直位置
   canvas.TextOut(rect.left + dx, rect.top + dy, cells[acol, arow]);
  end;
end; 

在stringGrid中使用回車鍵模擬TAB鍵切換單元格的功能實現(xiàn)......procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
label
nexttab;
begin
if key=#13 then
begin
  key:=#0;
  nexttab:
  if (stringgrid1.Col   begin
    stringgrid1.Col:=stringgrid1.Col+1;
   end
  else
  begin
   if stringgrid1.Row>=stringgrid1.RowCount-1 then
    stringgrid1.RowCount:=stringgrid1.rowCount+1;
   stringgrid1.Row:=stringgrid1.Row+1;
   stringgrid1.Col:=0;
   goto nexttab;
  end;
end;
end;
......... 

stringgrid如何清空
with StringGrid1 do for I := 0 to ColCount - 1 do Cols[I].Clear;

選中某單元格,然后在該單元格中修改-> 選中某單元格,然后在該單元格中修改設置屬性:
  StringGrid1.Options:=StringGrid1.Options+[goEditing];

讓記錄在StringGrid中分頁顯示在Uses中加入: ADOInt
//首先設定PageSize,取出PageCount
procedure TForm1.Button1Click(Sender: TObject);
begin
ADoquery1.Recordset.PageSize :=spinedit1.Value;
Edit1.Text := IntToStr(ADoquery1.Recordset.PageCount);
ShowData(spinedit2.Value);
end;

//然后將AbsolutePage的數(shù)據(jù)乾坤大挪移到StringGrid1中
procedure TForm1.ShowData(page:integer);
var
iRow, iCol, iCount : Integer;
rs : ADOInt.Recordset;
begin
ADoquery1.Recordset.AbsolutePage:=Page;
Currpage:=page; 
iRow := 0;
iCol := 1;
stringgrid1.Cells[iCol, iRow] := 'FixedCol1';
Inc(iCol);
stringgrid1.Cells[iCol, iRow] := 'FixedCol2';
Inc(iRow);
Dec(iCol);
rs := adoquery1.Recordset;
for iCount := 1 to SpinEdit1.Value do
begin
  stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item('FieldName1').Value;
  Inc(iCol);
  stringgrid1.Cells[iCol, iRow] := rs.Fields.Get_Item('FieldName1').Value;
  Inc(iRow);
  Dec(iCol);
  rs.MoveNext;
end;
 
//上一頁
procedure TForm1.Button2Click(Sender: TObject);
begin
If (CurrPage)<>1 then
  ShowData(CurrPage-1);
end;

//下一頁
procedure TForm1.Button3Click(Sender: TObject);
begin
If CurrPage<>ADoquery1.Recordset.PageCount then
  ShowData(CurrPage+1);
end;

打印StringGrid的程序源碼這段代碼沒有看懂,但是可能有的朋友需要,所以共享一下子 :)
procedure TForm1.SpeedButton11Click(Sender: TObject);
Var
Index_R ,ALeft: Integer;
Index : Integer;
begin
StringGrid_File('D:\AAA.TXT');
if Not LinkTextFile then
begin
  ShowMessage('失敗');
  Exit;
end;
//
QuickRep1.DataSet := ADOTable1;
Index_R := ReSize(StringGrid1.Width);
ALeft := 13;
Create_Title(TitleBand1,ALeft,24,HeaderControl1.Sections.Items[0].Width,20,
  HeaderControl1.Sections[0].Text,taLeftJustify);
with Create_QRDBText(DetailBand1,ALeft,8,StringGrid1.ColWidths[0],20,
    StringGrid1.Font,taLeftJustify) do
begin
  DataSet := ADOTable1;
  DataField := ADOTable1.Fields[0].DisplayName;
end;
ALeft := ALeft + StringGrid1.ColWidths[0] * Index_R + Index_R;
For Index := 1 to ADOTable1.FieldCount - 1 do
begin
  Create_VLine(TitleBand1,ALeft - 13,16,1,40);
  Create_Title(TitleBand1,ALeft,24,HeaderControl1.Sections.Items[Index].Width,20,
   HeaderControl1.Sections[Index].Text,taLeftJustify);
  Create_VLine(DetailBand1,ALeft - 13,-1,1,31);
  with Create_QRDBText(DetailBand1,ALeft ,8,StringGrid1.ColWidths[Index] * Index_R,20,
    StringGrid1.Font,taLeftJustify) do
  begin
   DataSet := ADOTable1;
   DataField := ADOTable1.Fields[Index].DisplayName;
  end;
  ALeft := ALeft + StringGrid1.ColWidths[Index] * Index_R + Index_R;
end;
QuickRep1.Preview;
end;

function TForm1.ReSize(AGridWidth: Integer): Integer;
begin
Result := Trunc(718 / AGridWidth);
end;

function TForm1.StringGrid_File(AFileName: String): Boolean;
var
StrValue : String;
Index : Integer;
ACol , ARow : Integer;
AFileValue : System.TextFile;
begin
StrValue := '';
Try
  AssignFile(AFileValue , AFileName);
  ReWrite(AFileValue);
  StrValue := HeaderControl1.Sections[0].Text;
  For Index := 1 to HeaderControl1.Sections.Count - 1 do
   StrValue := StrValue + ',' + HeaderControl1.Sections[Index].Text;
  Writeln(AFileValue,StrValue);
  StrValue := '';
  For ARow := 0 To StringGrid1.RowCount - 1 do
  begin
   StrValue := '';
   StrValue := StringGrid1.Cells[0,ARow];
   For ACol := 1 To StringGrid1.ColCount - 1 do
   begin
    StrValue := StrValue + ', ' + StringGrid1.Cells[ACol,ARow];
   end;
   Writeln(AFileValue,StrValue);
  end;
Finally
  CloseFile(AFileValue);
end;
end;

function TForm1.LinkTextfile: Boolean;
begin
Result := False;
with ADOTable1 do
begin
  {ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
            'Data Source= D:\;Extended Properties=Text;' +
            'Persist Security Info=False';
  TableName := 'AAA#TXT';
  Open;    }
  if Active then
   Result := True;
end;
end;

function TForm1.Create_QRDBText(Sender: TWinControl; ALeft, ATop, AWidth,
AHight: Integer; AFont: TFont; AAlignMent: TAlignment): TQRDBText;
var
AQRDBText : TQRDBText;
begin
AQRDBText := TQRDBText.Create(Nil);
with AQRDBText do
begin
  Parent := Sender;
  Left := ALeft;
  Top := ATop;
  Width := AWidth;
  Height := AHight;
  AlignMent := AAlignMent;
  Font.Assign(AFont);
end;
Result := AQRDBText;
end;

function TForm1.Create_VLine(Sender: TWinControl; ALeft, ATop, AWidth,
AHight: Integer): TQRShape;
var
AQRShapeV : TQRShape;
begin
AQRShapeV := TQRShape.Create(Nil);
with AQRShapeV do
begin
  Parent := Sender;
  Left := ALeft;
  Top := ATop;
  Width := AWidth;
  Height := AHight;
end;
Result := AQRShapeV;
end;

procedure TForm1.Create_Title(Sender: TWinControl; ALeft, ATop, AWidth,
AHight: Integer; ACaption: String; AAlignMent: TAlignment);
var
AQRLabel : TQRLabel;
begin
AQRLabel := TQRLabel.Create(Nil);
with AQRLabel do
begin
  Parent := Sender;
  Left := ALeft;
  Top := ATop;
  Width := AWidth;
  AlignMent := AAlignMent;
  Caption := ACaption;
end;
end;
-----------------------------
2004年7月28日 16:00


posted on 2008-02-15 08:58 MyChip 閱讀(350) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲制服av| 国产香蕉97碰碰久久人人| 欧美一级电影久久| 国产精品自拍小视频| 影音先锋亚洲一区| 欧美在线免费一级片| 久久一区二区三区四区| 亚洲精品一区二区三区不| 国产精品国产三级国产aⅴ无密码| 午夜性色一区二区三区免费视频| 欧美国产视频一区二区| 欧美a级片网站| 性久久久久久久久久久久| 欧美黑人一区二区三区| 欧美一区1区三区3区公司| 亚洲精品国产精品国自产观看| 国产欧美日韩视频| 亚洲一级在线观看| 国产精品成人一区二区网站软件| 久久视频国产精品免费视频在线| 亚洲欧美韩国| 在线亚洲精品| 亚洲小说春色综合另类电影| 亚洲丰满少妇videoshd| 国产日韩成人精品| 国产精品普通话对白| 欧美国产第二页| 久久综合婷婷| 久久成年人视频| 亚洲欧美一区二区激情| 亚洲视频每日更新| 1000部精品久久久久久久久| 国产精品老女人精品视频| 欧美精品福利视频| 免费观看在线综合色| 久久综合精品国产一区二区三区| 亚洲欧美日韩一区二区三区在线观看 | 夜夜嗨av一区二区三区网页 | 久久精品一区中文字幕| 亚洲欧美影院| 欧美影院久久久| 91久久国产综合久久蜜月精品| 午夜精品视频在线| 亚洲欧美日韩一区二区三区在线观看 | 久久精品毛片| 免费亚洲一区二区| 亚洲午夜久久久| 美日韩免费视频| 国产日韩欧美三区| 一区二区三区精品视频| 久久亚洲一区二区三区四区| 亚洲在线观看视频网站| 欧美日韩午夜在线| 亚洲国产欧美不卡在线观看| 久久久免费观看视频| 亚洲性感激情| 国产精品亚洲综合一区在线观看| 一区二区免费在线视频| 亚洲第一天堂av| 久久久久久高潮国产精品视| 国内精品久久久久影院色| 久久高清一区| 欧美在线视频导航| 国内一区二区三区| 久久精品在线观看| 欧美有码在线观看视频| 国产欧美日韩在线| 久久久久欧美| 久久免费视频这里只有精品| 极品中文字幕一区| 免费看av成人| 国产精品美女久久久浪潮软件 | 麻豆91精品| 欧美中在线观看| 精品不卡在线| 欧美电影免费观看网站| 欧美成人精品一区二区三区| 亚洲国产高清在线观看视频| 亚洲韩日在线| 欧美日韩国产123区| 中国成人亚色综合网站| 亚洲在线网站| 在线看一区二区| 亚洲精品在线视频| 欧美日韩一区二区三区| 亚洲午夜视频| 久久高清福利视频| 日韩午夜视频在线观看| 这里只有精品视频| 国内精品久久久久久久影视蜜臀| 欧美激情中文不卡| 国产精品日产欧美久久久久| 免费av成人在线| 欧美日韩八区| 久久国产色av| 欧美激情中文字幕在线| 午夜精品电影| 欧美不卡一卡二卡免费版| 亚洲欧美激情视频| 麻豆精品视频在线观看| 亚洲综合99| 久热精品视频| 篠田优中文在线播放第一区| 欧美va亚洲va香蕉在线| 欧美中文在线视频| 欧美日韩国产系列| 你懂的视频欧美| 亚洲一区二区三区视频| 久久精品国产免费看久久精品| 美女免费视频一区| 欧美一区二区视频97| 欧美伦理一区二区| 蘑菇福利视频一区播放| 国产欧美日韩视频一区二区三区| 亚洲蜜桃精久久久久久久| 在线成人h网| 羞羞漫画18久久大片| 一区二区欧美激情| 欧美成人性网| 欧美国产日本韩| 国产一区视频网站| 亚洲网站在线观看| 夜色激情一区二区| 欧美福利视频一区| 免费一级欧美在线大片| 国产亚洲人成网站在线观看| 亚洲主播在线观看| 亚洲欧美视频一区二区三区| 欧美三日本三级少妇三99 | 亚洲精品日韩欧美| 一区国产精品| 久久精品在线播放| 久久久亚洲精品一区二区三区| 国产精品爽黄69| 亚洲网站在线看| 国产精品激情| 中文亚洲免费| 亚洲尤物在线| 国产精品免费网站在线观看| 亚洲视频播放| 午夜欧美精品| 国产欧美视频在线观看| 翔田千里一区二区| 欧美一级播放| 国产欧美一区二区三区在线老狼 | 亚洲美女黄网| 欧美日韩高清在线观看| 99国内精品久久| 午夜国产欧美理论在线播放| 国产精品日韩在线观看| 亚洲欧美日韩精品一区二区| 欧美在线视频在线播放完整版免费观看| 国产精品视频99| 久久av一区二区| 欧美成人精品高清在线播放| 亚洲精品资源美女情侣酒店| 欧美体内she精视频在线观看| 亚洲免费视频网站| 老司机一区二区三区| 亚洲欧洲日本mm| 欧美日韩国产a| 亚洲一区二区欧美日韩| 欧美尤物一区| 亚洲国产日韩欧美综合久久| 欧美日韩精品三区| 久久精品最新地址| 午夜在线精品| 亚洲第一黄网| 欧美午夜性色大片在线观看| 欧美一区二区黄| 亚洲激情成人| 欧美一级电影久久| 亚洲国产成人久久| 欧美三级视频| 久久久欧美一区二区| 亚洲精品视频在线观看免费| 久久国产夜色精品鲁鲁99| 亚洲高清自拍| 国产精品一卡二| 欧美国产日韩视频| 性欧美超级视频| 日韩一级在线观看| 女同一区二区| 久久国产欧美| 亚洲伊人网站| 亚洲国产欧美另类丝袜| 国产精品视频自拍| 欧美日韩成人在线观看| 久久亚洲午夜电影| 欧美一区激情| 亚洲一级片在线观看| 亚洲欧洲精品一区二区| 久久久99免费视频| 亚洲男女自偷自拍图片另类| 亚洲精品乱码久久久久久黑人| 国产永久精品大片wwwapp| 国产精品大全| 欧美日韩精品伦理作品在线免费观看| 久久久久久伊人| 久久本道综合色狠狠五月|