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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? unitasdbgrids.pas

?? 仿速達(dá)界面控件
?? PAS
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
{*******************************************************
仿速達(dá)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;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三区视频在线观看 | 国产精品欧美一级免费| 日韩欧美激情一区| 欧美精品日韩精品| 欧美日韩成人综合天天影院 | 欧美videos中文字幕| 日韩欧美二区三区| 精品国产伦一区二区三区观看体验 | 国内精品免费**视频| 久久精工是国产品牌吗| 久88久久88久久久| 激情亚洲综合在线| 国产成人自拍在线| www.亚洲在线| 色婷婷综合激情| 欧美日韩三级一区二区| 日韩一级黄色片| 欧美精品一区二| 中文字幕一区二区在线观看| 亚洲免费在线视频一区 二区| 亚洲综合丝袜美腿| 日韩国产精品大片| 国产在线视频不卡二| 国产成人午夜精品5599| 972aa.com艺术欧美| 欧美喷潮久久久xxxxx| 欧美成人a视频| 国产日产亚洲精品系列| 亚洲少妇中出一区| 午夜精品123| 国产一区激情在线| 91网站黄www| 日韩视频一区二区三区在线播放 | 成人欧美一区二区三区1314| 伊人色综合久久天天人手人婷| 天天综合日日夜夜精品| 久草热8精品视频在线观看| 风间由美一区二区av101| 色婷婷综合五月| 欧美成人a∨高清免费观看| 中文字幕在线不卡| 五月激情六月综合| 丰满少妇久久久久久久 | 夜夜操天天操亚洲| 久久精品国产99国产精品| av一区二区三区| 欧美高清视频一二三区| 国产精品无遮挡| 日韩二区三区在线观看| 成人国产在线观看| 3d成人动漫网站| 国产精品久久久一本精品| 日本不卡123| 99精品视频在线观看免费| 91精品国产91热久久久做人人| 国产欧美视频在线观看| 午夜av一区二区| 国产91对白在线观看九色| 欧美麻豆精品久久久久久| 欧美国产日韩亚洲一区| 日本大胆欧美人术艺术动态| 成人精品小蝌蚪| 欧美大片顶级少妇| 午夜影院在线观看欧美| 成人高清在线视频| 精品久久五月天| 性做久久久久久免费观看| 99久久久久免费精品国产| 精品粉嫩超白一线天av| 午夜久久久久久电影| 成人激情综合网站| 欧美大尺度电影在线| 亚洲高清免费在线| 成人av网站在线观看| 精品国产成人系列| 日韩av不卡一区二区| 日本乱人伦aⅴ精品| 欧美国产精品一区二区| 久草中文综合在线| 欧美一级精品在线| 亚洲bt欧美bt精品777| 色综合视频一区二区三区高清| 国产欧美一区二区精品秋霞影院| 久久精品国产99久久6| 欧美精品123区| 亚洲第一福利一区| 在线亚洲+欧美+日本专区| 亚洲国产精品成人综合| 国产精品1区2区| 欧美成人一区二区三区在线观看| 丝袜国产日韩另类美女| 欧美色图天堂网| 曰韩精品一区二区| 在线国产亚洲欧美| 一个色妞综合视频在线观看| 色综合久久中文综合久久97| 国产精品久久久久久久第一福利| 国产一区二区三区国产| 欧美大胆人体bbbb| 久久超级碰视频| 精品久久久网站| 国产在线不卡一卡二卡三卡四卡| 欧美大片一区二区三区| 激情久久五月天| 久久久av毛片精品| 国产二区国产一区在线观看| 欧美国产在线观看| 99视频在线精品| 亚洲欧美成人一区二区三区| 色综合久久中文综合久久97| 亚洲精品国产无天堂网2021 | 亚洲精品视频免费看| 91麻豆免费观看| 一区二区三区高清不卡| 欧美日韩综合在线免费观看| 日日夜夜精品视频免费| 欧美成人一区二区三区在线观看| 国产一区二区三区在线观看免费| 国产女人aaa级久久久级| 成人午夜电影小说| 亚洲柠檬福利资源导航| 欧美日韩中文国产| 久久精品国产久精国产| 国产三区在线成人av| 成人av免费在线| 一区二区三区小说| 3d成人h动漫网站入口| 国产一二精品视频| 国产精品久久一级| 欧美日韩国产影片| 久久99最新地址| 中文字幕在线观看不卡| 在线观看视频一区| 麻豆专区一区二区三区四区五区| 久久人人超碰精品| 99久久免费国产| 日本视频一区二区| 中文字幕久久午夜不卡| 欧洲精品视频在线观看| 免费精品视频最新在线| 亚洲国产精品成人综合| 欧美日韩精品福利| 国产乱人伦偷精品视频不卡 | 国产麻豆精品在线观看| 国产精品激情偷乱一区二区∴| 欧美日韩精品一区二区三区四区| 国产一区二区导航在线播放| 亚洲欧美日韩中文播放 | 91精品国产综合久久久久久久久久| 精品一区二区在线观看| 18欧美乱大交hd1984| 777亚洲妇女| 成人做爰69片免费看网站| 婷婷久久综合九色国产成人 | 国产精品99久久久久久久vr| 亚洲麻豆国产自偷在线| 精品久久久久久久久久久院品网| 91社区在线播放| 精品伊人久久久久7777人| 亚洲日本电影在线| 精品美女一区二区| 欧美午夜精品久久久久久超碰 | 久久这里都是精品| 欧美三级韩国三级日本一级| 国产成人aaa| 日本视频中文字幕一区二区三区| 综合久久国产九一剧情麻豆| 日韩精品一区二区三区中文精品| 91激情在线视频| 丰满白嫩尤物一区二区| 蜜臀av国产精品久久久久| 日韩美女视频19| 久久久蜜桃精品| 7777精品伊人久久久大香线蕉完整版| 成人av电影免费在线播放| 久久国产精品无码网站| 亚洲国产wwwccc36天堂| 中文字幕中文乱码欧美一区二区| 欧美成人精品3d动漫h| 欧美日韩免费一区二区三区视频| 不卡av在线免费观看| 韩日精品视频一区| 蜜臂av日日欢夜夜爽一区| 亚洲国产乱码最新视频| 亚洲欧洲精品一区二区精品久久久 | 久久精品日韩一区二区三区| 91精品国产免费| 在线免费观看日韩欧美| 91在线你懂得| 波多野洁衣一区| 国产精品一二三区在线| 久久99深爱久久99精品| 麻豆久久一区二区| 亚洲国产精品久久人人爱蜜臀| 亚洲视频免费看| 国产精品麻豆网站| 中文字幕在线免费不卡| 国产精品无遮挡| 国产精品美女久久久久aⅴ国产馆| 久久只精品国产|