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

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

?? dbgrideh.pas

?? Delphi控件源碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    procedure Assign(Source: TPersistent); override;
    function  CanModify(TryEdit:Boolean):Boolean;
    function  DefaultAlignment: TAlignment;
    function  DefaultColor: TColor;
    function  DefaultFont: TFont;
    function  DefaultImeMode: TImeMode;
    function  DefaultImeName: TImeName;
    function  DefaultReadOnly: Boolean;
    function  DefaultWidth: Integer;
    procedure RestoreDefaults; virtual;
    //ddd
    function  DisplayText: String;
    function  GetColumnType: TColumnEhType;
    function  UsedFooter(Index: Integer): TColumnFooterEh;
    //\\\
    property  Grid: TCustomDBGridEh read GetGrid;
    property  AssignedValues: TColumnEhValues read FAssignedValues;
    property  Field: TField read GetField write SetField;
    property  CheckboxState: TCheckBoxState read GetCheckboxState write SetCheckboxState;
  published
    property  Alignment: TAlignment read GetAlignment write SetAlignment stored IsAlignmentStored;
    property  ButtonStyle: TColumnButtonStyleEh read FButtonStyle write SetButtonStyle default cbsAuto;
    property  Color: TColor read GetColor write SetColor stored IsColorStored;
    property  DropDownRows: Cardinal read FDropDownRows write FDropDownRows default 7;
    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  Title: TColumnTitleEh read FTitle write SetTitle;
    property  Width: Integer read GetWidth write SetWidth stored IsWidthStored;
    //ddd
    property  AlwaysShowEditButton: Boolean read FAlwaysShowEditButton write SetAlwaysShowEditButton default False;
    property  AutoFitColWidth: Boolean read GetAutoFitColWidth write SetAutoFitColWidth default True;
    property  WordWrap: Boolean read GetWordWrap write SetWordWrap stored IsWordWrapStored;
    property  EndEllipsis: Boolean read FEndEllipsis write SetEndEllipsis default False;
    property  DropDownWidth: Integer read FDropDownWidth write SetDropDownWidth  default 0;
    property  LookupDisplayFields: String read GetLookupDisplayFields write SetLookupDisplayFields stored IsLookupDisplayFieldsStored;
    property  AutoDropDown: Boolean read FAutoDropDown write SetAutoDropDown  default False;
    property  Footer: TColumnFooterEh read FFooter write SetFooter;
    property  Visible: Boolean read FVisible write SetVisible default True;
    property  KeyList: TStrings read GetKeykList write SetKeykList;
    property  ImageList: {$IFDEF EH_LIB_4}TCustomImageList{$ELSE}TImageList{$ENDIF} read FImageList write SetImageList;
    property  NotInKeyListIndex: Integer read FNotInKeyListIndex write SetNotInKeyListIndex default -1;
    property  MinWidth: Integer read FMinWidth write SetMinWidth default 0;
    property  MaxWidth: Integer read FMaxWidth write SetMaxWidth default 0;
    property  DblClickNextVal: Boolean read FDblClickNextVal write FDblClickNextVal default False;
    property  Checkboxes: Boolean read GetCheckboxes write SetCheckboxes stored IsCheckboxesStored;
    property  Increment: Extended read FIncrement write FIncrement stored IsIncrementStored;
    property  ToolTips: Boolean read GetToolTips write SetToolTips default False;
    property  Footers:TColumnFootersEh read FFooters write SetFooters;
    //\\\
  end;

  TColumnEhClass = class of TColumnEh;


  TDBGridColumnsEh = class(TCollection)
  private
    FGrid: TCustomDBGridEh;
    function GetColumn(Index: Integer): TColumnEh;
    function GetState: TDBGridColumnsState;
    procedure SetColumn(Index: Integer; Value: TColumnEh);
    procedure SetState(NewState: TDBGridColumnsState);
  protected
    function GetOwner: TPersistent; override;
    procedure Update(Item: TCollectionItem); override;
  public
    constructor Create(Grid: TCustomDBGridEh; ColumnClass: TColumnEhClass);
    function  Add: TColumnEh;
    procedure LoadFromFile(const Filename: string);
    procedure LoadFromStream(S: TStream);
    procedure RestoreDefaults;
    procedure RebuildColumns;
    procedure SaveToFile(const Filename: string);
    procedure SaveToStream(S: TStream);
    property State: TDBGridColumnsState read GetState write SetState;
    property Grid: TCustomDBGridEh read FGrid;
    property Items[Index: Integer]: TColumnEh read GetColumn write SetColumn; default;
    //ddd
    function  ExistFooterValueType(AFooterValueType:TFooterValueType):Boolean;
    //\\\
  end;

  //ddd
  TColumnsEhList = class(TList)
  private
    function GetColumn(Index: Integer): TColumnEh;
    procedure SetColumn(Index: Integer; const Value: TColumnEh);
  public
    property Items[Index: Integer]: TColumnEh read GetColumn write SetColumn; default;
  end;
  //\\\

  TGridDataLinkEh = class(TDataLink)
  private
    FGrid: TCustomDBGridEh;
    FFieldCount: Integer;
    FFieldMapSize: Integer;
    FFieldMap: Pointer;
    FModified: Boolean;
    FInUpdateData: Boolean;
    FSparseMap: Boolean;
    function GetDefaultFields: Boolean;
    function GetFields(I: Integer): TField;
  protected
    procedure ActiveChanged; override;
    procedure DataSetChanged; override;
    procedure DataSetScrolled(Distance: Integer); override;
    procedure FocusControl(Field: TFieldRef); override;
    procedure EditingChanged; override;
    procedure LayoutChanged; override;
    procedure RecordChanged(Field: TField); override;
    procedure UpdateData; override;
    function  GetMappedIndex(ColIndex: Integer): Integer;
  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 = class
  private
    FList: TStringList;
    FGrid: TCustomDBGridEh;
    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: TCustomDBGridEh);
    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
    //d
    procedure SelectAll;
    //d\
    property Count: Integer read GetCount;
    property CurrentRowSelected: Boolean read GetCurrentRowSelected
      write SetCurrentRowSelected;
    property Items[Index: Integer]: TBookmarkStr read GetItem; default;
  end;


// For MultiTigtle

  THeadTreeNode = class;
  TDBGridEh = class;

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

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


{  THeadTreeNode }

  THeadTreeProc = procedure (node:THeadTreeNode) of object;
  THeadTreeNode = class(TObject)
  public
    Host:THeadTreeNode;
    Child:THeadTreeNode;
    Next:THeadTreeNode;
    Text:String;
    Height:Integer;
    Width:Integer;
    WIndent:Integer;
    VLineWidth:Integer;
    Drawed:Boolean;
    HeightPrn:Integer;
    WidthPrn:Integer;
    Column:TColumnEh;
    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;
    procedure Union(AFrom,ATo :THeadTreeNode; AText:String;AHeight:Integer);
    procedure FreeAllChild;
    procedure CreateFieldTree(AGrid:TCustomDBGridEh);
    procedure DoForAllNode(proc:THeadTreeProc);
  end;

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

  TDBGridEhScrollBar = class(TPersistent)
  private
    FDBGridEh: TCustomDBGridEh;
    FKind: TScrollBarKind;
    FVisible: Boolean;
    FTracking: Boolean;
    procedure SetVisible(Value: Boolean);
  public
    constructor Create(AGrid: TCustomDBGridEh; AKind: TScrollBarKind);
    procedure Assign(Source: TPersistent); override;
    property Kind: TScrollBarKind read FKind;
    function IsScrollBarVisible: Boolean;
  published
    property Tracking: Boolean read FTracking write FTracking default False;
    property Visible: Boolean read FVisible write SetVisible default True;
  end;


// For TCustomDBGridEh

  TDBGridEhOption = (dghFixed3D, dghFrozen3D, dghFooter3D, dghData3D, dghResizeWholeRightPart,
                     dghHighlightFocus, dghClearSelection, dghFitRowHeightToText, dghAutoSortMarking,
                     dghMultiSortMarking, dghEnterAsTab, dghTraceColSizing);
  TDBGridEhOptions = set of TDBGridEhOption;

  TDBGridEhSelectionType = (gstNon, gstRecordBookmarks, gstRectangle, gstColumns, gstAll);

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

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

  TDBGridEhSelectionCols = class(TColumnsEhList)
  private
    FGrid:TCustomDBGridEh;
    FAnchor:TColumnEh;
    FShiftCol:TColumnEh;
    FShiftSelectedCols:TColumnsEhList;
//    function Get(Index: Integer): TColumnEh;
//    procedure Put(Index: Integer; const Value: TColumnEh);
    procedure Add(ACol: TColumnEh);
  public
    constructor Create(AGrid:TCustomDBGridEh);
    destructor Destroy; override;
    procedure InvertSelect(ACol: TColumnEh);
    procedure Select(ACol: TColumnEh; AddSel:Boolean);
    procedure SelectShift(ACol: TColumnEh{; Clear:Boolean});
{$IFDEF EH_LIB_4}
    procedure Clear; override;
{$ELSE}
    procedure Clear;
{$ENDIF}
    procedure Refresh;
//    property Items[Index: Integer]: TColumnEh read Get write Put; default;
  end;

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

  TDBGridEhState = (dgsNormal, dgsRowSelecting, dgsColSelecting, dgsRectSelecting,
                    dgsPosTracing, dgsTitleDown, dgsColSizing);

  TDBGridEhAllowedOperation = (alopInsertEh, alopUpdateEh, alopDeleteEh, alopAppendEh);
  TDBGridEhAllowedOperations = set of TDBGridEhAllowedOperation;

  TDBGridEhEditAction = (geaCutEh, geaCopyEh, geaPasteEh, geaDeleteEh, geaSelectAllEh);
  TDBGridEhEditActions = set of TDBGridEhEditAction;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区和二区| 国产在线一区二区| 国产一区二区三区免费在线观看 | 国产色爱av资源综合区| 夜夜嗨av一区二区三区| 国产91精品一区二区麻豆网站 | 国产精品全国免费观看高清| 亚洲自拍偷拍av| 国产成人福利片| 欧美mv日韩mv国产| 亚洲一区二区欧美| 91视频xxxx| 国产精品美女久久久久久| 精品一区二区三区免费播放| 欧美久久久久中文字幕| 一区二区三区四区视频精品免费 | 日本高清不卡aⅴ免费网站| 26uuu久久综合| 视频一区视频二区中文字幕| 欧美影院一区二区| 一区二区三区丝袜| 91麻豆免费看片| 国产精品传媒入口麻豆| 成人黄色综合网站| 国产精品久久久久一区二区三区共| 久久99热国产| 久久综合999| 国产一区二区精品久久91| 精品国产网站在线观看| 美国一区二区三区在线播放| 7777精品久久久大香线蕉| 日日嗨av一区二区三区四区| 欧美日韩一级二级| 日韩精品每日更新| 精品91自产拍在线观看一区| 毛片基地黄久久久久久天堂| 日韩欧美成人激情| 国产成人av电影免费在线观看| 久久这里都是精品| 成人国产亚洲欧美成人综合网| 国产精品美女久久久久aⅴ | 91在线你懂得| 中文字幕中文字幕在线一区 | 色狠狠一区二区| 亚洲国产中文字幕| 日韩欧美亚洲另类制服综合在线| 日韩成人精品视频| 久久众筹精品私拍模特| 成人免费黄色大片| 夜夜嗨av一区二区三区| 91精品福利在线一区二区三区 | 国产日韩欧美精品在线| 成人久久18免费网站麻豆| 国产精品国产三级国产三级人妇| 日本丶国产丶欧美色综合| 热久久久久久久| 午夜精品aaa| 日韩精品一区二区三区中文不卡| 国产一区二区三区av电影| 国产精品欧美久久久久一区二区| 日本韩国一区二区| 精品无人区卡一卡二卡三乱码免费卡| 亚洲国产激情av| 欧美日韩国产高清一区二区| 国产在线精品一区二区三区不卡 | 99视频在线观看一区三区| 偷窥少妇高潮呻吟av久久免费| 欧美精品一区二区不卡| 色婷婷久久久综合中文字幕| 美女性感视频久久| 亚洲男人天堂一区| 精品欧美久久久| 欧美色大人视频| 不卡的av在线| 韩国av一区二区| 香蕉乱码成人久久天堂爱免费| 欧美激情一区二区三区蜜桃视频| 欧美日本国产视频| 91在线观看免费视频| 国产在线视频不卡二| 亚洲国产sm捆绑调教视频| 国产精品乱人伦中文| 欧美精品一区二区三区很污很色的| 欧洲精品一区二区| 99这里只有精品| 国产电影一区二区三区| 美女视频黄久久| 日韩在线一二三区| 亚洲美女视频一区| 国产精品蜜臀av| 国产欧美视频在线观看| 欧美一区二区高清| 欧美午夜不卡在线观看免费| a亚洲天堂av| 国产suv精品一区二区6| 看片网站欧美日韩| 日韩专区一卡二卡| 亚洲二区在线视频| 一区二区三区久久久| 亚洲啪啪综合av一区二区三区| 久久久久久久综合狠狠综合| 日韩欧美一区二区三区在线| 欧美三级欧美一级| 精品污污网站免费看| 91蝌蚪porny九色| 日韩欧美一二三区| 日韩精品一区二区三区四区| 欧美一卡二卡三卡| 欧美日韩一级片在线观看| 欧美视频一区二区三区四区 | av电影一区二区| 成人福利视频网站| 成人av在线观| 93久久精品日日躁夜夜躁欧美| 成人国产视频在线观看| av在线不卡免费看| 91国产丝袜在线播放| 一本一本大道香蕉久在线精品 | 久久久久久久久久久电影| 久久伊99综合婷婷久久伊| 国产亚洲欧美日韩俺去了| 国产欧美精品一区| 国产精品久久午夜| 一区二区在线观看不卡| 亚洲午夜精品网| 美女视频黄免费的久久| 国产激情视频一区二区三区欧美| 国产成人夜色高潮福利影视| 99久久99久久综合| 欧美丝袜第三区| 日韩欧美国产午夜精品| 国产亲近乱来精品视频| 亚洲欧洲日产国产综合网| 亚洲一区在线看| 激情综合一区二区三区| av电影在线观看不卡 | 一本色道a无线码一区v| 欧美日韩免费观看一区二区三区| 欧美精品色综合| 久久精品视频在线看| 亚洲乱码日产精品bd| 日韩电影免费在线看| 国产成人夜色高潮福利影视| 日本韩国欧美一区二区三区| 日韩视频一区在线观看| 欧美国产国产综合| 婷婷久久综合九色综合绿巨人| 激情文学综合插| 色爱区综合激月婷婷| 这里只有精品视频在线观看| 国产精品剧情在线亚洲| 视频在线在亚洲| 成人激情免费视频| 欧美一区在线视频| 最新热久久免费视频| 久久精品国产秦先生| 色88888久久久久久影院野外| 亚洲精品一区二区精华| 亚洲二区在线视频| 99视频有精品| 久久久久久久av麻豆果冻| 午夜精彩视频在线观看不卡| 成人黄色在线网站| 精品99一区二区三区| 午夜精品影院在线观看| 波多野洁衣一区| 精品日韩99亚洲| 午夜精品久久久久影视| 91在线播放网址| 中文字幕乱码亚洲精品一区| 麻豆精品蜜桃视频网站| 欧美日韩一区成人| 亚洲日本va午夜在线影院| 国产精品白丝jk白祙喷水网站 | 日韩av午夜在线观看| 在线免费观看视频一区| 日韩精品一级二级 | 精品国产亚洲在线| 日韩精品乱码av一区二区| 欧美在线观看视频一区二区| 欧美激情综合五月色丁香小说| 毛片一区二区三区| 日韩欧美在线1卡| 亚洲成人久久影院| 91福利视频在线| 亚洲人妖av一区二区| av午夜一区麻豆| 国产精品三级久久久久三级| 国产精品综合久久| 久久蜜臀精品av| 狠狠色丁香久久婷婷综合丁香| 制服视频三区第一页精品| 香蕉加勒比综合久久| 91福利在线免费观看| 亚洲一二三四在线观看| 欧美天天综合网| 天堂成人国产精品一区| 91精品国产全国免费观看| 日韩影视精彩在线| 日韩一区二区高清|