亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unitasdbgrids.pas

?? 仿速達界面控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{*******************************************************
仿速達DBGrid制作的DBGrid
By wr960204 王銳

2004/8/8
*******************************************************}
unit UnitASDBGrids;

{$R-}

interface

uses
  ExtCtrls, UnitASUtils,
  Variants, Windows, SysUtils, Messages, Classes, Controls, Forms, StdCtrls,
  Graphics, UnitASGrids, DBCtrls, Db, Menus, ImgList;

type
  TColumnValue = (cvColor, cvWidth, cvFont, cvAlignment, cvReadOnly,
    cvTitleColor,
    cvTitleCaption, cvTitleAlignment, cvTitleFont, cvImeMode, cvImeName);
  TColumnValues = set of TColumnValue;

const
  FloatMaxLength    = 18;
  BorderStyles      : array[TBorderStyle] of DWORD = (0, WS_BORDER);
  ColumnTitleValues = [cvTitleColor..cvTitleFont];
  cm_DeferLayout    = WM_USER + 100;
  //Type

type
  TColumn = class;
  TCustomASDBGrid = class;

  TColumnButtonClick = procedure(Sender: TObject; Column: TColumn) of object;

  TColumnTitle = class(TPersistent)
  private
    FColumn: TColumn;
    FLayerCaption: TStrings;
    FCaption: string;
    FFont: TFont;
    FColor: TColor;
    FAlignment: TAlignment;
    procedure FontChanged(Sender: TObject);
    function GetAlignment: TAlignment;
    function GetColor: TColor;
    function GetCaption: string;
    function GetFont: TFont;
    function IsAlignmentStored: Boolean;
    function IsColorStored: Boolean;
    function IsFontStored: Boolean;
    function IsCaptionStored: Boolean;
    procedure SetAlignment(Value: TAlignment);
    procedure SetColor(Value: TColor);
    procedure SetFont(Value: TFont);
    procedure SetCaption(const Value: string); virtual;
  protected
    procedure RefreshDefaultFont;
  public
    constructor Create(Column: TColumn);
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
    function DefaultAlignment: TAlignment;
    function DefaultColor: TColor;
    function DefaultFont: TFont;
    function DefaultCaption: string;
    procedure RestoreDefaults; virtual;
    property Column: TColumn read FColumn;
  published
    property Alignment: TAlignment read GetAlignment write SetAlignment
      stored IsAlignmentStored;
    property Caption: string read GetCaption write SetCaption stored
      IsCaptionStored;
    property Color: TColor read GetColor write SetColor stored IsColorStored;
    property Font: TFont read GetFont write SetFont stored IsFontStored;
  end;

  TColumnButtonStyle = (cbsAuto, cbsEllipsis, cbsNone);

  TColumn = class(TCollectionItem)
  private
    FField: TField;
    FFieldName: string;
    FColor: TColor;
    FChineseCurrencyStyle: Boolean;
    FWidth: Integer;
    FWidthFixed: Boolean;
    FTitle: TColumnTitle;
    FFont: TFont;
    FImeMode: TImeMode;
    FImeName: TImeName;
    FPickList: TStrings;
    FonButtonClick: TColumnButtonClick;
    FPopupMenu: TPopupMenu;
    FDropDownRows: Cardinal;
    FButtonStyle: TColumnButtonStyle;
    FAlignment: TAlignment;
    FReadonly: Boolean;
    FAssignedValues: TColumnValues;
    FVisible: Boolean;
    FExpanded: Boolean;
    FRowNumber: Boolean;
    FRowNumberFrom: Integer;
    FStored: Boolean;
    FCurrencySymbol: WideChar;
    procedure FontChanged(Sender: TObject);
    function GetAlignment: TAlignment;
    function GetColor: TColor;
    function GetExpanded: Boolean;
    function GetField: TField;
    function GetFont: TFont;
    function GetImeMode: TImeMode;
    function GetImeName: TImeName;
    function GetParentColumn: TColumn;
    function GetPickList: TStrings;
    function GetReadOnly: Boolean;
    function GetShowing: Boolean;
    function GetWidth: Integer;
    function GetVisible: Boolean;
    function IsAlignmentStored: Boolean;
    function IsColorStored: Boolean;
    function IsFontStored: Boolean;
    function IsImeModeStored: Boolean;
    function IsImeNameStored: Boolean;
    function IsReadOnlyStored: Boolean;
    function IsWidthStored: Boolean;
    procedure SetAlignment(Value: TAlignment); virtual;
    procedure SetButtonStyle(Value: TColumnButtonStyle);
    procedure SetColor(Value: TColor);
    procedure SetExpanded(Value: Boolean);
    procedure SetField(Value: TField); virtual;
    procedure SetFieldName(const Value: string);
    procedure SetFont(Value: TFont);
    procedure SetImeMode(Value: TImeMode); virtual;
    procedure SetImeName(Value: TImeName); virtual;
    procedure SetPickList(Value: TStrings);
    procedure SetPopupMenu(Value: TPopupMenu);
    procedure SetReadOnly(Value: Boolean); virtual;
    procedure SetTitle(Value: TColumnTitle);
    procedure SetWidth(Value: Integer); virtual;
    procedure SetVisible(Value: Boolean);
    function GetExpandable: Boolean;
    procedure SetChineseCurrencyStyle(const Value: Boolean);
    function GetCurrencySymbol: WideString;
    procedure SetCurrencySymbol(const Value: WideString);
    procedure SetRowNumber(const Value: Boolean);
    procedure SetRowNumberFrom(const Value: Integer);
    function GetButtonStyle: TColumnButtonStyle;
  protected
    function CreateTitle: TColumnTitle; virtual;
    function GetGrid: TCustomASDBGrid;
    function GetDisplayName: string; override;
    procedure RefreshDefaultFont;
    procedure SetIndex(Value: Integer); override;
    property IsStored: Boolean read FStored write FStored default True;
  public
    constructor Create(Collection: TCollection); override;
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
    function DefaultAlignment: TAlignment;
    function DefaultColor: TColor;
    function DefaultFont: TFont;
    function DefaultImeMode: TImeMode;
    function DefaultImeName: TImeName;
    function DefaultReadOnly: Boolean;
    function DefaultWidth: Integer;
    function Depth: Integer;
    procedure RestoreDefaults; virtual;
    property Grid: TCustomASDBGrid read GetGrid;
    property AssignedValues: TColumnValues read FAssignedValues;
    property Expandable: Boolean read GetExpandable;
    property Field: TField read GetField write SetField;
    property ParentColumn: TColumn read GetParentColumn;
    property Showing: Boolean read GetShowing;
  published
    property Alignment: TAlignment read GetAlignment write SetAlignment
      stored IsAlignmentStored;
    property ButtonStyle: TColumnButtonStyle read GetButtonStyle write
      SetButtonStyle
      default cbsAuto;
    property OnButtonClick: TColumnButtonClick read FOnButtonClick write
      FOnButtonClick;
    property ChineseCurrencyStyle: Boolean read FChineseCurrencyStyle write
      SetChineseCurrencyStyle;
    property Color: TColor read GetColor write SetColor stored IsColorStored;
    property CurrencySymbol: WideString read GetCurrencySymbol write
      SetCurrencySymbol;
    property DropDownRows: Cardinal read FDropDownRows write FDropDownRows
      default 7;
    property Expanded: Boolean read GetExpanded write SetExpanded default True;
    property FieldName: string read FFieldName write SetFieldName;
    property Font: TFont read GetFont write SetFont stored IsFontStored;
    property ImeMode: TImeMode read GetImeMode write SetImeMode stored
      IsImeModeStored;
    property ImeName: TImeName read GetImeName write SetImeName stored
      IsImeNameStored;
    property PickList: TStrings read GetPickList write SetPickList;
    property PopupMenu: TPopupMenu read FPopupMenu write SetPopupMenu;
    property ReadOnly: Boolean read GetReadOnly write SetReadOnly
      stored IsReadOnlyStored;
    property RowNumber: Boolean read FRowNumber write SetRowNumber;
    property RowNumberFrom: Integer read FRowNumberFrom write SetRowNumberFrom;
    property Title: TColumnTitle read FTitle write SetTitle;
    property Width: Integer read GetWidth write SetWidth stored IsWidthStored;
    property WidthFixed: Boolean read FWidthFixed write FWidthFixed;
    property Visible: Boolean read GetVisible write SetVisible;
  end;

  TColumnClass = class of TColumn;

  TASDBGridColumnsState = (csDefault, csCustomized);

  TASDBGridColumns = class(TCollection)
  private
    FGrid: TCustomASDBGrid;
    function GetColumn(Index: Integer): TColumn;
    function InternalAdd: TColumn;
    procedure SetColumn(Index: Integer; Value: TColumn);
    procedure SetState(NewState: TASDBGridColumnsState);
    function GetState: TASDBGridColumnsState;
  protected
    function GetOwner: TPersistent; override;
    procedure Update(Item: TCollectionItem); override;
  public
    constructor Create(Grid: TCustomASDBGrid; ColumnClass: TColumnClass);
    function Add: TColumn;
    procedure LoadFromFile(const Filename: string);
    procedure LoadFromStream(S: TStream);
    procedure RestoreDefaults;
    procedure RebuildColumns;
    procedure SaveToFile(const Filename: string);
    procedure SaveToStream(S: TStream);
    property State: TASDBGridColumnsState read GetState write SetState;
    property Grid: TCustomASDBGrid read FGrid;
    property Items[Index: Integer]: TColumn read GetColumn write SetColumn;
    default;
  end;

  TGridDataLink = class(TDataLink)
  private
    FGrid: TCustomASDBGrid;
    FFieldCount: Integer;
    FFieldMap: array of Integer;
    FModified: Boolean;
    FInUpdateData: Boolean;
    FSparseMap: Boolean;
    function GetDefaultFields: Boolean;
    function GetFields(I: Integer): TField;
  protected
    procedure ActiveChanged; override;
    procedure BuildAggMap;
    procedure DataSetChanged; override;
    procedure DataSetScrolled(Distance: Integer); override;
    procedure FocusControl(Field: TFieldRef); override;
    procedure EditingChanged; override;
    function IsAggRow(Value: Integer): Boolean; virtual;
    procedure LayoutChanged; override;
    procedure RecordChanged(Field: TField); override;
    procedure UpdateData; override;
    function GetMappedIndex(ColIndex: Integer): Integer;
  public
    constructor Create(AGrid: TCustomASDBGrid);
    destructor Destroy; override;
    function AddMapping(const FieldName: string): Boolean;
    procedure ClearMapping;
    procedure Modified;
    procedure Reset;
    property DefaultFields: Boolean read GetDefaultFields;
    property FieldCount: Integer read FFieldCount;
    property Fields[I: Integer]: TField read GetFields;
    property SparseMap: Boolean read FSparseMap write FSparseMap;
    property Grid: TCustomASDBGrid read FGrid;
  end;

  TBookmarkList = class
  private
    FList: TStringList;
    FGrid: TCustomASDBGrid;
    FCache: TBookmarkStr;
    FCacheIndex: Integer;
    FCacheFind: Boolean;
    FLinkActive: Boolean;
    function GetCount: Integer;
    function GetCurrentRowSelected: Boolean;
    function GetItem(Index: Integer): TBookmarkStr;
    procedure SetCurrentRowSelected(Value: Boolean);
    procedure StringsChanged(Sender: TObject);
  protected
    function CurrentRow: TBookmarkStr;
    function Compare(const Item1, Item2: TBookmarkStr): Integer;
    procedure LinkActive(Value: Boolean);
  public
    constructor Create(AGrid: TCustomASDBGrid);
    destructor Destroy; override;
    procedure Clear;                    // free all bookmarks
    procedure Delete;                   // delete all selected rows from dataset
    function Find(const Item: TBookmarkStr; var Index: Integer): Boolean;
    function IndexOf(const Item: TBookmarkStr): Integer;
    function Refresh: Boolean; // drop orphaned bookmarks; True = orphans found
    property Count: Integer read GetCount;
    property CurrentRowSelected: Boolean read GetCurrentRowSelected
      write SetCurrentRowSelected;
    property Items[Index: Integer]: TBookmarkStr read GetItem; default;
  end;

  TASDBGridOption = (dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator,
    dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect,
    dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiSelect);
  TASDBGridOptions = set of TASDBGridOption;

  { The DBGrid's DrawDataCell virtual method and OnDrawDataCell event are only
    called when the grid's Columns.State is csDefault.  This is for compatibility
    with existing code. These routines don't provide sufficient information to
    determine which column is being drawn, so the column attributes aren't
    easily accessible in these routines.  Column attributes also introduce the
    possibility that a column's field may be nil, which would break existing
    DrawDataCell code.   DrawDataCell, OnDrawDataCell, and DefaultDrawDataCell
    are obsolete, retained for compatibility purposes. }
  TDrawDataCellEvent = procedure(Sender: TObject; const Rect: TRect; Field:
    TField;
    State: TGridDrawState) of object;

  { The DBGrid's DrawColumnCell virtual method and OnDrawColumnCell event are
    always called, when the grid has defined column attributes as well as when
    it is in default mode.  These new routines provide the additional
    information needed to access the column attributes for the cell being
    drawn, and must support nil fields.  }

  TDrawColumnCellEvent = procedure(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState) of object;
  TASDBGridClickEvent = procedure(Column: TColumn) of object;

  TCustomASDBGrid = class(TCustomASGrid)
  private
    FFixed3D: Boolean;
    FIndicators: TImageList;
    FTitleFont: TFont;
    FReadOnly: Boolean;
    FOriginalImeName: TImeName;
    FOriginalImeMode: TImeMode;
    FUserChange: Boolean;
    FIsESCKey: Boolean;
    FMultiTitile: Boolean;
    FLayoutFromDataset: Boolean;
    FOptions: TASDBGridOptions;
    FTitleOffset, FIndicatorOffset: Byte;
    FUpdateLock: Byte;
    FLayoutLock: Byte;
    FInColExit: Boolean;
    FDefaultDrawing: Boolean;
    FSelfChangingTitleFont: Boolean;
    FSelecting: Boolean;
    FSelRow: Integer;
    FDataLink: TGridDataLink;
    FOnColEnter: TNotifyEvent;
    FOnColExit: TNotifyEvent;
    FOnDrawDataCell: TDrawDataCellEvent;
    FOnDrawColumnCell: TDrawColumnCellEvent;
    FEditText: string;
    FColumns: TASDBGridColumns;
    FVisibleColumns: TList;
    FBookmarks: TBookmarkList;
    FSelectionAnchor: TBookmarkStr;
    FOnEditButtonClick: TColumnButtonClick;
    FOnColumnMoved: TMovedEvent;
    FOnCellClick: TASDBGridClickEvent;
    FOnTitleClick: TASDBGridClickEvent;
    FDragCol: TColumn;
    function AcquireFocus: Boolean;
    procedure DataChanged;
    procedure EditingChanged;
    function GetDataSource: TDataSource;
    function GetFieldCount: Integer;
    function GetFields(FieldIndex: Integer): TField;
    function GetSelectedField: TField;
    function GetSelectedIndex: Integer;
    procedure InternalLayout;
    procedure MoveCol(RawCol, Direction: Integer);
    function PtInExpandButton(X, Y: Integer; var MasterCol: TColumn): Boolean;
    procedure ReadColumns(Reader: TReader);
    procedure RecordChanged(Field: TField);
    procedure SetIme;
    procedure SetColumns(Value: TASDBGridColumns);
    procedure SetDataSource(Value: TDataSource);
    procedure SetOptions(Value: TASDBGridOptions);
    procedure SetSelectedField(Value: TField);
    procedure SetSelectedIndex(Value: Integer);
    procedure SetTitleFont(Value: TFont);
    procedure TitleFontChanged(Sender: TObject);
    //procedure UpdateEdit; override;
    procedure UpdateData;
    procedure UpdateActive;
    procedure UpdateIme;
    procedure UpdateScrollBar;
    procedure UpdateRowCount;
    procedure WriteColumns(Writer: TWriter);
    procedure CMBiDiModeChanged(var Message: TMessage); message
      CM_BIDIMODECHANGED;
    procedure CMExit(var Message: TMessage); message CM_EXIT;
    procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
    procedure CMParentFontChanged(var Message: TMessage); message
      CM_PARENTFONTCHANGED;
    procedure CMDeferLayout(var Message); message cm_DeferLayout;
    procedure CMDesignHitTest(var Msg: TCMDesignHitTest); message
      CM_DESIGNHITTEST;
    procedure WMSetCursor(var Msg: TWMSetCursor); message WM_SETCURSOR;
    procedure WMSize(var Message: TWMSize); message WM_SIZE;
    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
    procedure WMIMEStartComp(var Message: TMessage); message
      WM_IME_STARTCOMPOSITION;
    procedure WMSetFocus(var Message: TWMSetFocus); message WM_SetFOCUS;
    procedure WMKillFocus(var Message: TMessage); message WM_KillFocus;
    procedure SetFixed3D(const Value: Boolean);
    procedure SetMultiTitile(const Value: Boolean);
  protected

    FUpdateFields: Boolean;
    FAcquireFocus: Boolean;
    function RawToDataColumn(ACol: Integer): Integer;
    function DataToRawColumn(ACol: Integer): Integer;
    function AcquireLayoutLock: Boolean;
    procedure BeginLayout;
    procedure BeginUpdate;
    procedure CalcSizingState(X, Y: Integer; var State: TGridState;
      var Index: Longint; var SizingPos, SizingOfs: Integer;
      var FixedInfo: TGridDrawInfo); override;
    procedure CancelLayout;
    function CanEditAcceptKey(Key: Char): Boolean; override;
    function CanEditModify: Boolean; override;
    function CanEditShow: Boolean; override;
    procedure CellClick(Column: TColumn); dynamic;
    procedure ColumnMoved(FromIndex, ToIndex: Longint); override;
    function CalcTitleRect(Col: TColumn; ARow: Integer;
      var MasterCol: TColumn): TRect;
    function CalcMultiTitleRect(Col: TColumn; ARow: Integer;
      var MasterCol: TColumn; ALayer: Integer): TRect;
    function ColumnAtDepth(Col: TColumn; ADepth: Integer): TColumn;
    procedure ColEnter; dynamic;
    procedure ColExit; dynamic;
    procedure ColWidthsChanged; override;
    function CreateColumns: TASDBGridColumns; dynamic;
    function CreateEditor: TInplaceEdit; override;
    function CreateDataLink: TGridDataLink; dynamic;
    procedure CreateWnd; override;
    procedure DeferLayout;
    procedure DefineFieldMap; virtual;
    procedure DefineProperties(Filer: TFiler); override;
    procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState:
      TGridDrawState); override;
    procedure DrawDataCell(const Rect: TRect; Field: TField;
      State: TGridDrawState); dynamic;  { obsolete }
    procedure DrawColumnCell(const Rect: TRect; DataCol: Integer;
      Column: TColumn; State: TGridDrawState); dynamic;
    procedure EditButtonClick; dynamic;
    procedure EndLayout;
    procedure EndUpdate;
    function GetColField(DataCol: Integer): TField;
    function GetEditLimit: Integer; override;
    function GetEditMask(ACol, ARow: Longint): string; override;
    function GetEditStyle(ACol, ARow: Longint): TEditStyle; override;
    function GetEditText(ACol, ARow: Longint): string; override;
    function GetFieldValue(ACol: Integer): string;
    function HighlightCell(DataCol, DataRow: Integer; const Value: string;
      AState: TGridDrawState): Boolean; virtual;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
    procedure KeyPress(var Key: Char); override;
    procedure InvalidateTitles;
    procedure LayoutChanged; virtual;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色在线视频| 日韩高清不卡一区二区三区| 欧美最猛性xxxxx直播| 日本sm残虐另类| 国产精品久久久久桃色tv| 91精品国模一区二区三区| 国产盗摄女厕一区二区三区| 亚洲午夜久久久久久久久久久| 欧美成人video| 91碰在线视频| 亚洲精品videosex极品| 日韩三级电影网址| 91免费版pro下载短视频| 亚洲午夜激情av| 久久精品水蜜桃av综合天堂| 在线观看国产日韩| 国产大陆亚洲精品国产| 性做久久久久久久久| 久久综合色8888| 在线观看亚洲精品| 国产精品 欧美精品| 亚洲成人精品影院| 中文字幕视频一区二区三区久| 欧美午夜片在线看| 成人看片黄a免费看在线| 亚洲超碰97人人做人人爱| 国产精品拍天天在线| 91.成人天堂一区| 99久久综合99久久综合网站| 久久99在线观看| 亚洲一区二区三区四区在线观看 | 欧美成人激情免费网| 91毛片在线观看| 国产成人精品影视| 美女视频免费一区| 亚洲午夜久久久久久久久电影网| 亚洲国产成人一区二区三区| 91精品国产免费| 欧美最猛性xxxxx直播| 播五月开心婷婷综合| 久久99精品久久久久久国产越南 | 欧美一区二区视频网站| 91色porny| 国产99久久久国产精品潘金网站| 蜜桃视频一区二区三区| 亚洲视频精选在线| 国产精品你懂的在线欣赏| 日韩精品中文字幕一区| 欧美日韩午夜在线| 91豆麻精品91久久久久久| 成av人片一区二区| 国产黄人亚洲片| 精品一区二区三区久久久| 五月婷婷久久丁香| 亚洲成人av电影在线| 一区二区三区国产豹纹内裤在线 | 久久这里只精品最新地址| 欧美精选午夜久久久乱码6080| 色噜噜狠狠成人网p站| 福利91精品一区二区三区| www.成人在线| jizz一区二区| 久久不见久久见免费视频7| 日韩一区精品视频| 亚洲国产精品一区二区久久| 日韩av网站免费在线| 日韩不卡一区二区| 韩国v欧美v亚洲v日本v| 国产在线精品一区在线观看麻豆| 国产成人综合在线播放| 懂色av一区二区夜夜嗨| aa级大片欧美| 在线成人免费视频| 欧美一区二区三区成人| 日本一区二区高清| 中文字幕欧美一| 亚洲国产一区在线观看| 日韩专区一卡二卡| 亚洲欧美另类图片小说| 日韩精品久久理论片| 国产精品自拍在线| 成人动漫一区二区| 91黄色免费版| 精品久久久久一区二区国产| 久久久精品综合| 91影院在线免费观看| 日韩一区二区中文字幕| 精品99999| 亚洲午夜日本在线观看| 蜜臀av亚洲一区中文字幕| 不卡的av在线| 欧美日韩国产综合视频在线观看| 欧美电影影音先锋| 综合分类小说区另类春色亚洲小说欧美 | 国产精品99久久久久久久女警| 波多野结衣91| 欧美日本在线播放| 国产精品盗摄一区二区三区| 亚洲一区二区三区不卡国产欧美| 韩国av一区二区三区在线观看| proumb性欧美在线观看| 欧美日韩国产bt| 久久亚洲精品小早川怜子| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美裸体一区二区三区| 欧美福利视频导航| 亚洲欧洲av在线| 免费成人结看片| 欧美日韩一区在线| 国产欧美日韩中文久久| 美国av一区二区| 91麻豆免费在线观看| 国产亚洲福利社区一区| 亚洲尤物在线视频观看| 成人动漫一区二区| 精品久久久久久久久久久久包黑料 | 日韩在线一区二区| 99久久综合99久久综合网站| 久久久久久久久久久久久女国产乱| 一区二区在线免费| av日韩在线网站| 欧美精品一区二区三区很污很色的| 天堂久久一区二区三区| 91在线码无精品| 欧美三级电影网| 国产精品拍天天在线| 久久99精品国产麻豆不卡| 欧美偷拍一区二区| 精品国产伦一区二区三区免费 | 欧美日韩在线亚洲一区蜜芽| 国产亚洲女人久久久久毛片| 日韩av成人高清| 欧美视频一区二区三区| 日韩精品自拍偷拍| 国产成人鲁色资源国产91色综| 欧美日韩夫妻久久| 一区二区三区日韩精品| 久久国产视频网| 欧美日韩国产系列| 一区二区三区中文字幕在线观看| 国产成人啪午夜精品网站男同| 91精品国产色综合久久ai换脸 | 日韩国产欧美在线观看| 91成人免费在线| 亚洲日本在线视频观看| 成人视屏免费看| 国产色综合一区| 国产乱码精品一区二区三 | 精品成人一区二区| 久久精品国产第一区二区三区| 69p69国产精品| 亚洲福利一二三区| 一本到高清视频免费精品| 久久久综合激的五月天| 婷婷丁香久久五月婷婷| 日韩免费观看高清完整版在线观看| 五月婷婷色综合| 91精品国产综合久久久久久| 午夜av一区二区三区| 717成人午夜免费福利电影| 亚洲一区二区精品久久av| 色屁屁一区二区| 中文字幕不卡在线播放| 成人网在线免费视频| 国产精品视频九色porn| 成人禁用看黄a在线| 国产精品国产三级国产普通话蜜臀| 成人免费视频视频| 亚洲免费看黄网站| 欧美在线免费观看视频| 亚洲成人精品一区| 欧美一级日韩一级| 免费在线观看视频一区| 日韩一区二区在线看片| 韩国av一区二区三区在线观看| 久久久亚洲精华液精华液精华液| 国产剧情av麻豆香蕉精品| 国产欧美在线观看一区| 成人av集中营| 亚洲国产精品综合小说图片区| 91精品国产综合久久久久久久 | 欧美体内she精高潮| 亚洲成av人综合在线观看| 欧美一区二区三区视频在线| 久久99国产精品久久99| 国产精品色噜噜| 成人影视亚洲图片在线| 国产精品国产三级国产a| 91欧美激情一区二区三区成人| 亚洲狠狠爱一区二区三区| 日韩精品中文字幕在线一区| 国产成人av影院| 一区二区三区美女视频| 欧美一级xxx| 成人黄色小视频| 亚洲成人av一区二区三区| 久久美女高清视频| 色乱码一区二区三区88| 日韩av不卡一区二区| 亚洲色图在线看|