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

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

?? gridseh.pas

?? 一個(gè)功能強(qiáng)大的DBGRID控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    function BoxRect(ALeft, ATop, ARight, ABottom: Longint): TRect;
    procedure DoExit; override;
    function CellRect(ACol, ARow: Longint): TRect;
    function CanEditAcceptKey(Key: Char): Boolean; dynamic;
    function CanGridAcceptKey(Key: Word; Shift: TShiftState): Boolean; dynamic;
    function CanEditModify: Boolean; dynamic;
    function CanEditShow: Boolean; virtual;
    function CheckCellMouseClick(var Message: TWMLButtonUp): Boolean; virtual;
    function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override;
    function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; override;
    function PaintLocked: Boolean;
    procedure FocusCell(ACol, ARow: Longint; MoveAnchor: Boolean);
    procedure FlatChanged; virtual;
    function GetEditText(ACol, ARow: Longint): string; dynamic;
    procedure SetEditText(ACol, ARow: Longint; const Value: string); dynamic;
    function GetEditLimit: Integer; dynamic;
    function GetEditMask(ACol, ARow: Longint): string; dynamic;
    function GetEditStyle(ACol, ARow: Longint): TEditStyle; dynamic;
    function GetGridWidth: Integer;
    function GetGridHeight: Integer;
    procedure HideEdit;
    procedure HideEditor;
    procedure ShowEditor;
    procedure ShowEditorChar(Ch: Char);
    procedure InvalidateEditor;
    procedure InvalidateGrid;
    procedure MoveColumn(FromIndex, ToIndex: Longint);
    procedure ColumnMoved(FromIndex, ToIndex: Longint); dynamic;
    procedure MoveRow(FromIndex, ToIndex: Longint);
    procedure RowMoved(FromIndex, ToIndex: Longint); dynamic;
    procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
      AState: TGridDrawState); virtual; abstract;
//    procedure DrawContraCell(ACol, ARow: Longint; ARect: TRect;
//      AState: TGridDrawState); virtual; abstract;
    procedure DefineProperties(Filer: TFiler); override;
    procedure MoveColRow(ACol, ARow: Longint; MoveAnchor, Show: Boolean);
    function SelectCell(ACol, ARow: Longint): Boolean; virtual;
    procedure SizeChanged(OldColCount, OldRowCount: Longint); dynamic;
    function Sizing(X, Y: Integer): Boolean;
    procedure ScrollData(DX, DY: Integer);
    procedure InvalidateCell(ACol, ARow: Longint);
    procedure InvalidateCol(ACol: Longint);
    procedure InvalidateRow(ARow: Longint);
    procedure TopLeftChanged; dynamic;
    procedure TimedScroll(Direction: TGridScrollDirection); dynamic;
    procedure Paint; override;
    procedure DrawLines(DrawInfo: TGridDrawInfoEh; DoHorz, DoVert: Boolean;
      Col, Row: Longint; const CellBounds: array of Integer; OnColor, OffColor: TColor;
    Canvas: TCanvas; DrawLinesInfo: TDrawLinesInfoEh);

    procedure DrawContraInfo(DrawInfo: TGridDrawInfoEh);
    procedure DrawPolyPolyline(PointsList: TPointArray; StrokeList: TDWORDArray; VCount: Integer);
    procedure DrawPolyline(Points: array of TPoint);
    procedure ColWidthsChanged; dynamic;
    procedure RowHeightsChanged; dynamic;
    procedure DeleteColumn(ACol: Longint); virtual;
    procedure DeleteRow(ARow: Longint); virtual;
    procedure UpdateDesigner;
    procedure UnlockPaint;

    procedure UpdateFixedLineColor; virtual;
    procedure DrawEdgeEh(ACanvas: TCanvas; qrc: TRect; IsDown, IsSelected,
      NeedLeft, NeedRight: Boolean);
    function CreateGridLineColors: TGridLineColorsEh; virtual;
    procedure SetContraSize(NewContraColCount, NewContraRowCount: Integer); virtual;
//    procedure ScrollMoveTopLeft(ALeft, ATop: Longint);
    procedure SmoothOffsetData(DX, DY: Integer);

    function BeginColumnDrag(var Origin, Destination: Integer;
      const MousePt: TPoint): Boolean; dynamic;
    function BeginRowDrag(var Origin, Destination: Integer;
      const MousePt: TPoint): Boolean; dynamic;
    function CheckColumnDrag(var Origin, Destination: Integer;
      const MousePt: TPoint): Boolean; dynamic;
    function CheckRowDrag(var Origin, Destination: Integer;
      const MousePt: TPoint): Boolean; dynamic;
    function EndColumnDrag(var Origin, Destination: Integer;
      const MousePt: TPoint): Boolean; dynamic;
    function EndRowDrag(var Origin, Destination: Integer;
      const MousePt: TPoint): Boolean; dynamic;
    property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsSingle;
    property Col: Longint read FCurrent.X write SetCol;
    property Color default clWindow;
    property ColCount: Longint read FColCount write SetColCount default 5;
    property ColWidths[Index: Longint]: Integer read GetColWidths write SetColWidths;
    property DefaultColWidth: Integer read FDefaultColWidth write SetDefaultColWidth default 64;
    property DefaultDrawing: Boolean read FDefaultDrawing write FDefaultDrawing default True;
    property DefaultRowHeight: Integer read FDefaultRowHeight write SetDefaultRowHeight default 24;
    property EditorMode: Boolean read FEditorMode write SetEditorMode;
    property FixedColor: TColor read FFixedColor write SetFixedColor default clBtnFace;
    property FixedCols: Integer read FFixedCols write SetFixedCols default 1;
    property FixedRows: Integer read FFixedRows write SetFixedRows default 1;
    property GridHeight: Integer read GetGridHeight;
    property GridLineWidth: Integer read FGridLineWidth write SetGridLineWidth default 1;
    property GridWidth: Integer read GetGridWidth;
    property HitTest: TPoint read FHitTest;
    property InplaceEditor: TInplaceEdit read FInplaceEdit;
    property LeftCol: Longint read FTopLeft.X write SetLeftCol;
    property Options: TGridOptions read FOptions write SetOptions
      default [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine,
      goRangeSelect];
    property ParentColor default False;
    property Row: Longint read FCurrent.Y write SetRow;
    property RowCount: Longint read FRowCount write SetRowCount default 5;
    property RowHeights[Index: Longint]: Integer read GetRowHeights write SetRowHeights;
    property ScrollBars: TScrollStyle read FScrollBars write SetScrollBars default ssBoth;
    property Selection: TGridRect read GetSelection write SetSelection;
    property TabStops[Index: Longint]: Boolean read GetTabStops write SetTabStops;
    property TopRow: Longint read FTopLeft.Y write SetTopRow;
    property VisibleColCount: Integer read GetVisibleColCount;
    property VisibleRowCount: Integer read GetVisibleRowCount;

    property ContraRowCount: Longint read FContraRowCount write SetContraRowCount default 0;
    property ContraColCount: Longint read FContraColCount write SetContraColCount default 0;
    property FullRowCount: Longint read GetFullRowCount;
    property FullColCount: Longint read GetFullColCount;
    property FrozenColCount: Longint read FFrozenColCount write SetFrozenColCount;
    property FrozenRowCount: Longint read FFrozenRowCount write SetFrozenRowCount;

    property GridLineColors: TGridLineColorsEh read FGridLineColors;

    property OnCellMouseClick: TGridEhCellMouseEvent read FOnCellMouseClick write FOnCellMouseClick;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function MouseCoord(X, Y: Integer): TGridCoord;
    procedure DefaultCellMouseClick(Cell: TGridCoord; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); virtual;
    property Flat: Boolean read FFlat write SetFlat;
  published
    property TabStop default True;
  end;

  { TCustomDrawGrid }

  { A grid relies on the OnDrawCell event to display the cells.
     CellRect
       This method returns control relative screen coordinates of the cell or
       an empty rectangle if the cell is not visible.
     EditorMode
       Setting to true shows the editor, as if the F2 key was pressed, when
       goEditing is turned on and goAlwaysShowEditor is turned off.
     MouseToCell
       Takes control relative screen X, Y location and fills in the column and
       row that contain that point.
     OnColumnMoved
       Called when the user request to move a column with the mouse when
       the goColMoving option is on.
     OnDrawCell
       This event is passed the same information as the DrawCell method
       discussed above.
     OnGetEditMask
       Called to retrieve edit mask in the inplace editor when goEditing is
       turned on.
     OnGetEditText
       Called to retrieve text to edit when goEditing is turned on.
     OnRowMoved
       Called when the user request to move a row with the mouse when
       the goRowMoving option is on.
     OnSetEditText
       Called when goEditing is turned on to reflect changes to the text
       made by the editor.
     OnTopLeftChanged
       Invoked when TopRow or LeftCol change. }

  TGetEditEvent = procedure (Sender: TObject; ACol, ARow: Longint; var Value: string) of object;
  TSetEditEvent = procedure (Sender: TObject; ACol, ARow: Longint; const Value: string) of object;
  TMovedEvent = procedure (Sender: TObject; FromIndex, ToIndex: Longint) of object;

  TCustomDrawGridEh = class(TCustomGridEh)
  private
    FOnColumnMoved: TMovedEvent;
    FOnDrawCell: TDrawCellEvent;
    FOnGetEditMask: TGetEditEvent;
    FOnGetEditText: TGetEditEvent;
    FOnRowMoved: TMovedEvent;
    FOnSelectCell: TSelectCellEvent;
    FOnSetEditText: TSetEditEvent;
    FOnTopLeftChanged: TNotifyEvent;
  protected
    procedure ColumnMoved(FromIndex, ToIndex: Longint); override;
    procedure DrawCell(ACol, ARow: Longint; ARect: TRect;
      AState: TGridDrawState); override;
//    procedure DrawContraCell(ACol, ARow: Longint; ARect: TRect;
//      AState: TGridDrawState); override;
    function GetEditMask(ACol, ARow: Longint): string; override;
    function GetEditText(ACol, ARow: Longint): string; override;
    procedure RowMoved(FromIndex, ToIndex: Longint); override;
    function SelectCell(ACol, ARow: Longint): Boolean; override;
    procedure SetEditText(ACol, ARow: Longint; const Value: string); override;
    procedure TopLeftChanged; override;
    property OnColumnMoved: TMovedEvent read FOnColumnMoved write FOnColumnMoved;
    property OnDrawCell: TDrawCellEvent read FOnDrawCell write FOnDrawCell;
    property OnGetEditMask: TGetEditEvent read FOnGetEditMask write FOnGetEditMask;
    property OnGetEditText: TGetEditEvent read FOnGetEditText write FOnGetEditText;
    property OnRowMoved: TMovedEvent read FOnRowMoved write FOnRowMoved;
    property OnSelectCell: TSelectCellEvent read FOnSelectCell write FOnSelectCell;
    property OnSetEditText: TSetEditEvent read FOnSetEditText write FOnSetEditText;
    property OnTopLeftChanged: TNotifyEvent read FOnTopLeftChanged write FOnTopLeftChanged;
  public
    function CellRect(ACol, ARow: Longint): TRect;
    procedure MouseToCell(X, Y: Integer; var ACol, ARow: Longint);
    property Canvas;
    property Col;
    property ColWidths;
    property EditorMode;
    property GridHeight;
    property GridWidth;
    property LeftCol;
    property Selection;
    property Row;
    property RowHeights;
    property TabStops;
    property TopRow;

    property ContraRowCount;
    property ContraColCount;
    property FullRowCount;
    property FullColCount;
    property FrozenColCount;
    property FrozenRowCount;
    property Flat;
  end;

  { TDrawGrid }

  TDrawGridEh = class(TCustomDrawGridEh)
  published
    property Align;
    property Anchors;
    property BiDiMode;
    property BorderStyle;
    property Color;
    property ColCount;
    property Constraints;
    property Ctl3D;
    property DefaultColWidth;
    property DefaultRowHeight;
    property DefaultDrawing;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Enabled;
    property FixedColor;
    property FixedCols;
    property RowCount;
    property FixedRows;
    property Font;
    property GridLineWidth;
    property Options;
    property ParentBiDiMode;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ScrollBars;
    property ShowHint;
    property TabOrder;
    property Visible;
    property VisibleColCount;
    property VisibleRowCount;
    property OnClick;
    property OnColumnMoved;
//    property OnContextPopup;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnDrawCell;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnGetEditMask;
    property OnGetEditText;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnMouseWheelDown;
    property OnMouseWheelUp;
    property OnRowMoved;
    property OnSelectCell;
    property OnSetEditText;
    property OnStartDock;
    property OnStartDrag;
    property OnTopLeftChanged;
  end;

  function GridCoord(X, Y: Longint): TGridCoord;

implementation

uses Math, Consts{, RTLConsts, Themes};

function GridCoord(X, Y: Longint): TGridCoord;
begin
  Result.X := X;
  Result.Y := Y;
end;

procedure InvalidOp(const id: string);
begin
  raise EInvalidGridOperationEh.Create(id);
end;

function GridRect(Coord1, Coord2: TGridCoord): TGridRect;
begin
  with Result do
  begin
    Left := Coord2.X;
    if Coord1.X < Coord2.X then Left := Coord1.X;
    Right := Coord1.X;
    if Coord1.X < Coord2.X then Right := Coord2.X;
    Top := Coord2.Y;
    if Coord1.Y < Coord2.Y then Top := Coord1.Y;
    Bottom := Coord1.Y;
    if Coord1.Y < Coord2.Y then Bottom := Coord2.Y;
  end;
end;

function PointInGridRect(Col, Row: Longint; const Rect: TGridRect): Boolean;
begin
  Result := (Col >= Rect.Left) and (Col <= Rect.Right) and (Row >= Rect.Top)
    and (Row <= Rect.Bottom);
end;

type
  TXorRects = array[0..3] of TRect;

procedure XorRects(const R1, R2: TRect; var XorRects: TXorRects);
var
  Intersect, Union: TRect;

  function PtInRect(X, Y: Integer; const Rect: TRect): Boolean;
  begin
    with Rect do Result := (X >= Left) and (X <= Right) and (Y >= Top) and
      (Y <= Bottom);
  end;

  function Includes(const P1: TPoint; P2: TPoint): Boolean;
  begin
    with P1 do
      Result := PtInRect(X, Y, R1) or PtInRect(X, Y, R2);
  end;

  function Build(var R: TRect; const P1, P2, P3: TPoint): Boolean;
  begin
    Build := True;
    with R do
      if Includes(P1, R.TopLeft) then
      begin
        Left := P1.X;
        Top := P1.Y;
        if Includes(P3, R.BottomRight) then
        begin
          Right := P3.X;
          Bottom := P3.Y;
        end else
        begin
          Right := P2.X;
          Bottom := P2.Y;
        end
      end
      else if Includes(P2, R.TopLeft) then
      begin
        Left := P2.X;
        Top := P2.Y;
        Bottom := P3.Y;
        Right := P3.X;
      end
      else
        Build := False;
  end;

begin
  XorRects[0] := EmptyRect;
  XorRects[1] := EmptyRect;
  XorRects[2] := EmptyRect;
  XorRects[3] := EmptyRect;
//  FillChar(XorRects, SizeOf(XorRects), 0);
  if not Bool(IntersectRect(Intersect, R1, R2)) then
  begin
    { Don't intersect so its simple }
    XorRects[0] := R1;
    XorRects[1] := R2;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色图激情小说| 成人av在线资源网| 日韩一区二区三区精品视频 | 国产电影一区在线| 国产精品毛片大码女人| 成人18视频在线播放| 亚洲欧美自拍偷拍| 在线观看免费亚洲| 午夜欧美一区二区三区在线播放| 欧美视频一区二区在线观看| 亚洲国产美女搞黄色| 日韩欧美一级二级| 成人免费视频一区| 亚洲女爱视频在线| 在线综合视频播放| 成人一区二区三区视频在线观看| 亚洲欧美乱综合| 欧美精品九九99久久| 精品在线一区二区| 亚洲欧美日韩系列| 欧美精品日韩一本| 国产麻豆精品在线观看| 自拍偷拍亚洲综合| 日韩一区二区电影网| 成人一道本在线| 亚洲一区二区三区四区五区黄 | 琪琪一区二区三区| 久久精品一区蜜桃臀影院| 91视频在线观看| 日韩黄色免费网站| 国产无遮挡一区二区三区毛片日本 | 精品剧情在线观看| 99国产精品久久久久久久久久 | 国产亚洲综合av| 国产精品亚洲一区二区三区妖精| 日韩黄色片在线观看| 欧美一区二区三区在线电影| 国产一区在线看| 亚洲综合自拍偷拍| 亚洲线精品一区二区三区| 亚洲精品第一国产综合野| 中文字幕亚洲欧美在线不卡| 久久精品欧美日韩精品| 久久视频一区二区| 国产农村妇女精品| 国产亚洲一区二区在线观看| 337p日本欧洲亚洲大胆精品| 久久午夜色播影院免费高清| 久久精品人人做人人爽人人| 国产三级一区二区三区| 欧美韩日一区二区三区四区| 国产精品美女久久久久久久网站| 中文字幕日韩一区二区| 亚洲男人电影天堂| 亚洲成人一区二区在线观看| 日韩精品视频网| 另类的小说在线视频另类成人小视频在线| 另类小说色综合网站| 国产成人综合亚洲网站| 91香蕉视频污在线| 欧美丝袜丝nylons| 欧美一二三区精品| 久久久精品蜜桃| 亚洲视频在线一区观看| 一区二区三区四区高清精品免费观看| 一级做a爱片久久| 日本不卡一区二区三区高清视频| 麻豆久久久久久久| 成人av在线网站| 欧美性xxxxxx少妇| 精品理论电影在线| 国产精品美女久久久久久| 亚洲一区免费视频| 精品一区二区三区免费观看| 成人性生交大片免费看视频在线| 日本韩国一区二区三区| 91.com视频| 国产精品丝袜一区| 亚洲成人精品一区二区| 国产一区中文字幕| 欧美在线不卡一区| 久久久影视传媒| 亚洲国产wwwccc36天堂| 国产综合久久久久久鬼色| 色爱区综合激月婷婷| 精品久久久久久无| 亚洲欧美日韩在线不卡| 精品一二三四区| 欧美在线高清视频| 国产免费成人在线视频| 视频在线观看国产精品| 99久久综合精品| 日韩欧美的一区| 亚洲免费观看高清完整版在线| 免费在线观看一区二区三区| 99精品热视频| 久久亚洲二区三区| 香蕉影视欧美成人| 99久久国产免费看| 精品国产污污免费网站入口 | 视频在线在亚洲| 成人精品免费视频| 日韩视频国产视频| 亚洲精品网站在线观看| 国产精品一区二区你懂的| 欧美高清视频www夜色资源网| 欧美国产成人在线| 精品亚洲免费视频| 欧美剧在线免费观看网站| 中文字幕视频一区二区三区久| 黄色精品一二区| 在线观看91av| 亚洲精品乱码久久久久| 成人av免费在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 无码av免费一区二区三区试看| 99re热视频这里只精品| 国产无人区一区二区三区| 久久精品国内一区二区三区| 欧美日韩国产成人在线91| 综合久久久久久久| 成人av动漫在线| 中文字幕精品一区二区精品绿巨人 | 亚洲欧洲av色图| 国产福利一区二区三区视频| 日韩精品一区二区三区在线观看 | 国产精品国产三级国产普通话三级 | 18欧美亚洲精品| 福利一区二区在线| 久久久久久久久久看片| 欧美三级三级三级爽爽爽| ...中文天堂在线一区| 成人精品亚洲人成在线| 精品国产网站在线观看| 麻豆精品视频在线观看免费 | 欧美日韩国产另类不卡| 亚洲一区二区三区四区在线免费观看| 91看片淫黄大片一级| 亚洲免费在线看| 色哟哟国产精品| 亚洲精品国产一区二区精华液 | 欧美午夜精品理论片a级按摩| 亚洲激情网站免费观看| 91丨porny丨国产| 夜夜爽夜夜爽精品视频| 欧美视频中文一区二区三区在线观看 | 91蜜桃视频在线| 亚洲日本欧美天堂| 91福利在线导航| 亚洲成a人片综合在线| 欧美精品日韩精品| 美女一区二区三区| 久久久久久久综合色一本| 粉嫩aⅴ一区二区三区四区五区 | 午夜欧美视频在线观看 | 一本大道久久a久久综合| 一区二区三区中文免费| 欧美日韩中文精品| 看片网站欧美日韩| 久久久久久久久蜜桃| 99久久久无码国产精品| 亚洲资源在线观看| 日韩三级伦理片妻子的秘密按摩| 久久国产欧美日韩精品| 欧美极品另类videosde| 色欧美乱欧美15图片| 亚洲第一久久影院| 精品国产三级电影在线观看| 高清不卡一二三区| 亚洲一区视频在线观看视频| 91精品国产91久久久久久一区二区| 韩国一区二区三区| 一区在线观看视频| 亚洲色图一区二区三区| 欧美乱熟臀69xxxxxx| 国产一区二区在线影院| 亚洲精品乱码久久久久久久久| 欧美一区二区三区白人| www.视频一区| 午夜精品福利一区二区三区av | 欧美视频中文字幕| 国产一区二区不卡| 亚洲精品成人在线| 精品免费99久久| 91美女福利视频| 久久97超碰色| 亚洲美女在线一区| 精品噜噜噜噜久久久久久久久试看| 成a人片亚洲日本久久| 日韩精品视频网站| 日韩一区有码在线| 亚洲精品在线一区二区| 97久久超碰国产精品| 裸体一区二区三区| 亚洲男同性恋视频| 国产色一区二区| 欧美一级高清片| 欧美在线观看你懂的| www.成人网.com| 国产在线观看一区二区|