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

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

?? dbgrideh.pas

?? 一個功能強大的DBGRID控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    procedure SetState(NewState: TDBGridColumnsState);
  protected
    function GetUpdateCount: Integer;
  protected
    function GetOwner: TPersistent; override;
    procedure Update(Item: TCollectionItem); override;
    property UpdateCount: Integer read GetUpdateCount;
  public
    constructor Create(Grid: TCustomDBGridEh; ColumnClass: TColumnEhClass);
    function Add: TColumnEh;
    function ExistFooterValueType(AFooterValueType: TFooterValueType): Boolean;
    procedure AddAllColumns(DeleteExisting: Boolean);
    procedure ActiveChanged;
    procedure LoadFromFile(const Filename: string);
    procedure LoadFromStream(S: TStream);
    procedure RebuildColumns;
    procedure RestoreDefaults;
    procedure SaveToFile(const Filename: string);
    procedure SaveToStream(S: TStream);
    property Grid: TCustomDBGridEh read FGrid;
    property Items[Index: Integer]: TColumnEh read GetColumn write SetColumn; default;
    property State: TDBGridColumnsState read GetState write SetState;
  end;

{ TColumnsEhList }

  TColumnsEhList = class(TObjectList)
  private
    function GetColumn(Index: Integer): TColumnEh;
    procedure SetColumn(Index: Integer; const Value: TColumnEh);
  public
    constructor Create; overload;
    property Items[Index: Integer]: TColumnEh read GetColumn write SetColumn; default;
  end;

{ TGridDataLinkEh }

  TGridDataLinkEh = class(TDataLink)
  private
    FFieldCount: Integer;
    FFieldMap: array of Integer;
    FFieldMapSize: Integer;
    FGrid: TCustomDBGridEh;
    FInUpdateData: Boolean;
    FModified: Boolean;
    FSparseMap: Boolean;
    function GetDefaultFields: Boolean;
    function GetFields(I: Integer): TField;
  protected
    function GetMappedIndex(ColIndex: Integer): Integer;
    function MoveBy(Distance: Integer): Integer; override;
    procedure ActiveChanged; override;
{$IFDEF CIL}
    procedure DataEvent(Event: TDataEvent; Info: TObject); override;
{$ELSE}
    procedure DataEvent(Event: TDataEvent; Info: Integer); override;
{$ENDIF}
    procedure DataSetChanged; override;
    procedure DataSetScrolled(Distance: Integer); override;
    procedure EditingChanged; override;
{$IFDEF CIL}
    procedure FocusControl(const Field: TField); override;
{$ELSE}
    procedure FocusControl(Field: TFieldRef); override;
{$ENDIF}
    procedure LayoutChanged; override;
    procedure RecordChanged(Field: TField); override;
    procedure UpdateData; override;
  public
    constructor Create(AGrid: TCustomDBGridEh);
    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;
  end;

{ TBookmarkListEh }

  TBookmarkListEh = class(TBMListEh)
  private
    FGrid: TCustomDBGridEh;
  protected
    function GetDataSet: TDataSet; override;
    procedure Invalidate; override;
    procedure SetCurrentRowSelected(Value: Boolean); override;
    procedure UpdateState; override;
  public
    constructor Create(AGrid: TCustomDBGridEh);
    function SelectionToGridRect: TGridRect;
    procedure Clear; override;
  end;

{ THeadTreeNode }

  THeadTreeNode = class;
  TDBGridEh = class;

  LeafCol = record
    FLeaf: THeadTreeNode;
    FColumn: TColumnEh;
  end;

  PLeafCol = ^LeafCol;
  TLeafCol = array[0..MaxListSize - 1] of LeafCol;
//  PTLeafCol = ^TLeafCol;
  PTLeafCol = array of LeafCol;

  THeadTreeProc = procedure(node: THeadTreeNode) of object;

  THeadTreeNode = class(TObject)
  public
    Child: THeadTreeNode;
    Column: TColumnEh;
    Drawed: Boolean;
    Height: Integer;
    HeightPrn: Integer;
    Host: THeadTreeNode;
    Next: THeadTreeNode;
    Text: String;
    VLineWidth: Integer;
    Width: Integer;
    WidthPrn: Integer;
    WIndent: Integer;
    constructor Create;
    constructor CreateText(AText: String; AHeight, AWidth: Integer);
    destructor Destroy; override;
    function Add(AAfter: THeadTreeNode; AText: String; AHeight, AWidth: Integer): THeadTreeNode;
    function AddChild(ANode: THeadTreeNode; AText: String; AHeight, AWidth: Integer): THeadTreeNode;
    function Find(ANode: THeadTreeNode): Boolean;
    function GetLevel: Integer;
    procedure CreateFieldTree(AGrid: TCustomDBGridEh);
    procedure DoForAllNode(proc: THeadTreeProc);
    procedure FreeAllChild;
    procedure Union(AFrom, ATo: THeadTreeNode; AText: String; AHeight: Integer);

  end;

{ TDBGridEhSumList }

  TDBGridEhSumList = class(TDBSumListProducer)
  private
    function GetActive: Boolean;
    procedure SetActive(const Value: Boolean);
  protected
    procedure ReturnEvents; override;
  public
    constructor Create(AOwner: TComponent);
    procedure SetDataSetEvents; override;
  published
    property Active: Boolean read GetActive write SetActive default False;
    property ExternalRecalc default False;
    property OnRecalcAll;
    property OnAfterRecalcAll;
    property SumListChanged;
    property VirtualRecords default False;
  end;

  {TDBGridEhScrollBar}

  TScrollBarVisibleModeEh = (sbAlwaysShowEh, sbNeverShowEh, sbAutoShowEh);

  TDBGridEhScrollBar = class(TPersistent)
  private
    FDBGridEh: TCustomDBGridEh;
    FExtScrollBar: TScrollBar;
    FKind: TScrollBarKind;
    FTracking: Boolean;
    FVisibleMode: TScrollBarVisibleModeEh;
    function GetVisible: Boolean;
    procedure ExtScrollWindowProc(var Message: TMessage);
    procedure SetExtScrollBar(const Value: TScrollBar);
    procedure SetVisible(Value: Boolean);
    procedure SetVisibleMode(const Value: TScrollBarVisibleModeEh);
  public
    constructor Create(AGrid: TCustomDBGridEh; AKind: TScrollBarKind);
    destructor Destroy; override;
    function GetScrollInfo(var ScrollInfo: TScrollInfo): Boolean;
    function IsScrollBarVisible: Boolean;
    procedure Assign(Source: TPersistent); override;
    procedure UpdateExtScrollBar;
    property Kind: TScrollBarKind read FKind;
    property VisibleMode: TScrollBarVisibleModeEh read FVisibleMode write SetVisibleMode default sbAutoShowEh;
  published
    property ExtScrollBar: TScrollBar read FExtScrollBar write SetExtScrollBar;
    property Tracking: Boolean read FTracking write FTracking default False;
    property Visible: Boolean read GetVisible write SetVisible default True;
  end;

  TVertDBGridEhScrollBar = class(TDBGridEhScrollBar)
  published
    property Visible stored False;
    property VisibleMode;
  end;

  TDBGridEhSelectionType = (gstNon, gstRecordBookmarks, gstRectangle, gstColumns, gstAll);
  TDBGridEhAllowedSelection = gstRecordBookmarks..gstAll;
  TDBGridEhAllowedSelections = set of TDBGridEhAllowedSelection;

  TDBCell = record
    Col: Longint;
    Row: TBookmarkStr;
  end;

{ TDBGridEhIndicatorTitle }

  TDBGridEhIndicatorTitle = class(TPersistent)
  private
    FDown: Boolean;
    FDropdownMenu: TPopupMenu;
    FShowDropDownSign: Boolean;
    FTitleButton: Boolean;
    FUseGlobalMenu: Boolean;
    FGrid: TCustomDBGridEh;
    procedure SetShowDropDownSign(const Value: Boolean);
  public
    property Down: Boolean read FDown;
    constructor Create(AGrid: TCustomDBGridEh);
  published
    property DropdownMenu: TPopupMenu read FDropdownMenu write FDropdownMenu;
    property ShowDropDownSign: Boolean read FShowDropDownSign write SetShowDropDownSign default False;
    property TitleButton: Boolean read FTitleButton write FTitleButton default False;
    property UseGlobalMenu: Boolean read FUseGlobalMenu write FUseGlobalMenu default True;
  end;

{ TDBGridEhSelectionRect }

  TDBGridEhSelectionRect = class(TObject)
  private
    FAnchor: TDBCell;
    FGrid: TCustomDBGridEh;
    FShiftCell: TDBCell;
    function BoxRect(ALeft: Longint; ATop: TBookmarkStr; ARight: Longint; ABottom: TBookmarkStr): TRect;
    function CheckState: Boolean;
    function GetBottomRow: TBookmarkStr;
    function GetLeftCol: Longint;
    function GetRightCol: Longint;
    function GetTopRow: TBookmarkStr;
  public
    constructor Create(AGrid: TCustomDBGridEh);
    function DataCellSelected(DataCol: Longint; DataRow: TBookmarkStr): Boolean;
    function SelectionToGridRect: TGridRect;
    procedure Clear;
    procedure Select(ACol: Longint; ARow: TBookmarkStr; AddSel: Boolean);
    property BottomRow: TBookmarkStr read GetBottomRow;
    property LeftCol: Longint read GetLeftCol;
    property RightCol: Longint read GetRightCol;
    property TopRow: TBookmarkStr read GetTopRow;
  end;

{ TDBGridEhSelectionCols }

  TDBGridEhSelectionCols = class(TColumnsEhList)
  private
    FAnchor: TColumnEh;
    FGrid: TCustomDBGridEh;
    FShiftCol: TColumnEh;
    FShiftSelectedCols: TColumnsEhList;
    procedure Add(ACol: TColumnEh);
  public
    constructor Create(AGrid: TCustomDBGridEh);
    destructor Destroy; override;
    function SelectionToGridRect: TGridRect;
    procedure Clear; override;
    procedure InvertSelect(ACol: TColumnEh);
    procedure Refresh;
    procedure Select(ACol: TColumnEh; AddSel: Boolean);
    procedure SelectShift(ACol: TColumnEh {; Clear:Boolean});
  end;

{ TDBGridEhSelection }

  TDBGridEhSelection = class
  private
    FColumns: TDBGridEhSelectionCols;
    FGrid: TCustomDBGridEh;
    FRect: TDBGridEhSelectionRect;
    FSelectionType: TDBGridEhSelectionType;
    function GetRows: TBookmarkListEh;
    procedure LinkActive(Value: Boolean);
    procedure SetSelectionType(ASelType: TDBGridEhSelectionType);
  protected
    procedure SelectionChanged; virtual;
  public
    constructor Create(AGrid: TCustomDBGridEh);
    destructor Destroy; override;
    function DataCellSelected(DataCol: Longint; DataRow: TBookmarkStr): Boolean;
    function SelectionToGridRect: TGridRect;
    procedure Clear;
    procedure Refresh;
    procedure SelectAll;
    procedure UpdateState;
    property Columns: TDBGridEhSelectionCols read FColumns;
    property Rect: TDBGridEhSelectionRect read FRect;
    property Rows: TBookmarkListEh read GetRows;
    property SelectionType: TDBGridEhSelectionType read FSelectionType;
  end;

{ TSTDBGridEhFilter }

  TSTDBGridEhFilter = class(TPersistent)
  private
    FGrid: TCustomDBGridEh;
    FLocal: Boolean;
    FUpateCount: Integer;
    FVisible: Boolean;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99这里只有精品| 久久精品欧美一区二区三区不卡| 欧美一级黄色片| 国产精品青草久久| 国产尤物一区二区| 欧美日本在线看| 中文字幕一区二区在线观看 | 欧美丰满高潮xxxx喷水动漫| 久久久久国产精品人| 午夜久久久久久| 色综合一个色综合亚洲| 国产午夜一区二区三区| 日韩高清电影一区| 欧美在线小视频| 综合av第一页| 成人性生交大合| 精品美女被调教视频大全网站| 亚洲国产成人porn| 91日韩在线专区| 国产精品久久久久影视| 国产一区二区精品在线观看| 日韩免费高清电影| 石原莉奈在线亚洲二区| 欧美日韩在线观看一区二区| 亚洲精品一二三| 色综合久久综合| 一区二区中文视频| 91女人视频在线观看| 中文字幕不卡在线观看| 波多野洁衣一区| 亚洲色图一区二区三区| 色综合一区二区| 亚洲亚洲人成综合网络| 在线亚洲高清视频| 亚洲线精品一区二区三区八戒| 日本久久一区二区| 亚洲成av人在线观看| 欧美精品自拍偷拍| 蜜臀av性久久久久蜜臀aⅴ| 日韩欧美电影在线| 国产一区二区三区免费看 | 777奇米成人网| 蜜臀av性久久久久蜜臀aⅴ流畅| 91精品国产一区二区三区蜜臀| 麻豆91在线看| 中文字幕av在线一区二区三区| 99久久er热在这里只有精品15| 亚洲激情欧美激情| 91精品麻豆日日躁夜夜躁| 麻豆成人久久精品二区三区红| 久久久99精品免费观看不卡| eeuss鲁片一区二区三区在线观看| 亚洲少妇30p| 91麻豆精品国产91久久久久久| 经典三级视频一区| 国产精品你懂的| 精品视频一区三区九区| 美日韩一区二区| 国产精品每日更新| 欧美性色aⅴ视频一区日韩精品| 日韩精品视频网| 久久精品一区八戒影视| 91麻豆精东视频| 日韩电影在线免费| 中文字幕av一区二区三区免费看 | 欧美日韩一区小说| 美腿丝袜亚洲三区| 亚洲人成人一区二区在线观看 | 日本精品一级二级| 水蜜桃久久夜色精品一区的特点 | 欧美一区二区精品久久911| 国内成人自拍视频| 一区二区三区四区av| 精品国产不卡一区二区三区| 成人蜜臀av电影| 捆绑变态av一区二区三区| 亚洲欧洲av另类| 欧美xxxxxxxx| 在线观看一区二区精品视频| 国产乱一区二区| 偷偷要91色婷婷| 综合久久久久久| 久久久国产精品不卡| 欧美人xxxx| 色婷婷久久综合| 国产高清不卡一区| 裸体歌舞表演一区二区| 亚洲自拍偷拍九九九| 中文字幕一区二区三区不卡 | 欧美三级韩国三级日本一级| 国产一区二区剧情av在线| 亚洲123区在线观看| 亚洲特级片在线| 欧美激情在线一区二区三区| 91精品国产乱码| 在线免费不卡电影| 成人av免费观看| 国产成人午夜99999| 极品尤物av久久免费看| 日韩国产欧美一区二区三区| 亚洲福中文字幕伊人影院| 亚洲欧美另类久久久精品| 国产精品乱码人人做人人爱| 精品国产成人在线影院| 日韩精品一区二区三区在线观看| 欧美日韩国产美| 欧美性极品少妇| 欧美在线观看一区| 91官网在线观看| 在线一区二区三区四区五区 | 欧美精品一区二区在线播放| 欧美一区二区三区在线看| 欧美视频中文一区二区三区在线观看| 91影视在线播放| 色香蕉久久蜜桃| 在线观看三级视频欧美| 欧美中文一区二区三区| 欧美色区777第一页| 欧美日韩一区二区三区高清 | 欧美国产日韩一二三区| 国产欧美综合在线观看第十页| 国产欧美日韩三区| 中文字幕一区二| 亚洲黄色尤物视频| 亚洲成av人在线观看| 日韩精品成人一区二区三区| 男男gaygay亚洲| 国产精品一二三| zzijzzij亚洲日本少妇熟睡| 99精品视频一区| 欧美亚洲一区三区| 欧美日韩国产高清一区二区三区 | 九九国产精品视频| 国产不卡一区视频| 色综合天天综合狠狠| 91成人国产精品| 91精品国产aⅴ一区二区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 精品国免费一区二区三区| 久久伊人中文字幕| 国产精品天美传媒| 亚洲综合免费观看高清完整版 | 欧美性感一区二区三区| 日韩欧美自拍偷拍| 中文字幕免费观看一区| 一区二区三区四区激情| 美女尤物国产一区| 国产不卡视频一区二区三区| 欧美亚洲动漫精品| 久久毛片高清国产| 亚洲自拍偷拍麻豆| 国产一区二区三区蝌蚪| 91搞黄在线观看| 国产日韩欧美高清在线| 亚洲国产视频在线| 丁香一区二区三区| 欧美福利视频导航| 国产拍欧美日韩视频二区| 五月激情丁香一区二区三区| 国产.欧美.日韩| 日韩精品影音先锋| 亚洲午夜精品在线| 成人国产电影网| 日韩亚洲欧美一区| 亚洲乱码国产乱码精品精小说 | 午夜欧美电影在线观看| 国产69精品久久久久毛片| 91麻豆精品国产综合久久久久久 | 色av综合在线| 国产日韩欧美高清在线| 久久国产精品99久久久久久老狼 | 99视频精品在线| 精品人在线二区三区| 亚洲国产aⅴ天堂久久| 成人黄色小视频| 欧美成人在线直播| 日本欧美肥老太交大片| 欧美亚洲国产bt| 亚洲欧美国产三级| 暴力调教一区二区三区| 久久久久久毛片| 国内精品久久久久影院薰衣草| 91精品国产综合久久久久久漫画| 亚洲激情五月婷婷| 色欧美乱欧美15图片| ㊣最新国产の精品bt伙计久久| 国产精品亚洲а∨天堂免在线| 欧美一区二区视频观看视频| 亚洲成av人片在线观看| 欧美亚洲综合一区| 亚洲欧美成人一区二区三区| 岛国精品在线观看| 久久久久久久久久久久电影| 久久国内精品视频| 欧美一区二区三区不卡| 日本aⅴ精品一区二区三区| 制服丝袜亚洲播放| 视频一区二区不卡| 51精品久久久久久久蜜臀| 亚洲成人激情自拍|