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

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

?? toolctrlseh.pas

?? delphi控件類
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{*******************************************************}
{                                                       }
{                       EhLib v2.0                      }
{                     Tool controls                     }
{                                                       }
{      Copyright (c) 2001 by Dmitry V. Bolshakov        }
{                                                       }
{*******************************************************}

unit ToolCtrlsEh;

{$I EhLib.Inc}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
{$IFDEF EH_LIB_6} Variants, {$ENDIF}
  StdCtrls, Mask, Db, DBCtrls, Buttons;

type

  TFieldsArrEh = array of TField;

{ Standard events }

  TButtonClickEventEh = procedure(Sender: TObject; var Handled: Boolean) of object;
  TButtonDownEventEh = procedure(Sender: TObject; TopButton: Boolean;
    var AutoRepeat: Boolean;  var Handled: Boolean) of object;
  TCloseUpEventEh = procedure(Sender: TObject; Accept: Boolean) of object;
  TNotInListEventEh = procedure(Sender: TObject; NewText: String;
    var RecheckInList: Boolean) of object;
  TUpdateDataEventEh = procedure(Sender: TObject; var Handled: Boolean) of object;

{ TDBLookupControl }

  TDBLookupControlEh = class;

  TLookupCtrlDataLinkEh = class(TDataLink)
  private
    FDBLookupControl: TDBLookupControlEh;
  protected
    procedure ActiveChanged; override;
    procedure FocusControl(Field: TFieldRef); override;
    procedure LayoutChanged; override;
    procedure RecordChanged(Field: TField); override;
  public
    constructor Create;
  end;

  TLookupCtrlListLinkEh = class(TDataLink)
  private
    FDBLookupControl: TDBLookupControlEh;
  protected
    procedure ActiveChanged; override;
    procedure DataSetChanged; override;
    procedure LayoutChanged; override;
  public
    constructor Create;
  end;

  TDBLookupControlEh = class(TCustomControl)
  private
    FDataFieldName: string;
    FDataFields: TFieldsArrEh;
    FDataLink: TLookupCtrlDataLinkEh;
    FHasFocus: Boolean;
    FKeyFieldName: string;
    FKeyFields: TFieldsArrEh;
    FKeyValue: Variant;
    FListActive: Boolean;
    FListField: TField;
    FListFieldIndex: Integer;
    FListFieldName: string;
    FListFields: TList;
    FListLink: TLookupCtrlListLinkEh;
    FLookupMode: Boolean;
    FLookupSource: TDataSource;
    FMasterFieldNames:String;
    FMasterFields: TFieldsArrEh;
    FSearchText: string;
    function GetDataField: TField;
    function GetDataSource: TDataSource;
    function GetKeyFieldName: string;
    function GetListSource: TDataSource;
    function GetReadOnly: Boolean;
    procedure CheckNotCircular;
    procedure CheckNotLookup;
    procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
    procedure DataLinkRecordChanged(Field: TField);
    procedure SetDataFieldName(const Value: string);
    procedure SetDataSource(Value: TDataSource);
    procedure SetKeyFieldName(const Value: string);
    procedure SetKeyValue(const Value: Variant);
    procedure SetListFieldName(const Value: string);
    procedure SetListSource(Value: TDataSource);
    procedure SetLookupMode(Value: Boolean);
    procedure SetReadOnly(Value: Boolean);
    procedure WMGetDlgCode(var Message: TMessage); message WM_GETDLGCODE;
    procedure WMKillFocus(var Message: TMessage); message WM_KILLFOCUS;
    procedure WMSetFocus(var Message: TMessage); message WM_SETFOCUS;
  protected
    function CanModify: Boolean; virtual;
    function GetBorderSize: Integer; virtual;
    function GetTextHeight: Integer; virtual;
    function LocateKey: Boolean; virtual;
    procedure KeyValueChanged; virtual;
    procedure ListLinkDataChanged; virtual;
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure ProcessSearchKey(Key: Char); virtual;
    procedure SelectKeyValue(const Value: Variant); virtual;
    procedure UpdateDataFields; virtual;
    procedure UpdateListFields; virtual;
    property DataField: string read FDataFieldName write SetDataFieldName;
    property DataSource: TDataSource read GetDataSource write SetDataSource;
    property HasFocus: Boolean read FHasFocus;
    property KeyField: string read GetKeyFieldName write SetKeyFieldName;
    property KeyValue: Variant read FKeyValue write SetKeyValue;
    property ListActive: Boolean read FListActive;
    property ListField: string read FListFieldName write SetListFieldName;
    property ListFieldIndex: Integer read FListFieldIndex write FListFieldIndex default 0;
    property ListFields: TList read FListFields;
    property ListLink: TLookupCtrlListLinkEh read FListLink;
    property ListSource: TDataSource read GetListSource write SetListSource;
    property ParentColor default False;
    property ReadOnly: Boolean read GetReadOnly write SetReadOnly default False;
    property SearchText: string read FSearchText write FSearchText;
    property TabStop default True;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Field: TField read GetDataField;
  end;

{ TDBLookupListBoxEh }

  TDBLookupListBoxEh = class(TDBLookupControlEh)
  private
    FBorderStyle: TBorderStyle;
    FKeyFields: TFieldsArrEh;
    FKeySelected: Boolean;
    FListField: TField;
    FLockPosition: Boolean;
    FMousePos: Integer;
    FPopup: Boolean;
    FRecordCount: Integer;
    FRecordIndex: Integer;
    FRowCount: Integer;
    FSelectedItem: string;
    FShowTitles: Boolean;
    FTimerActive: Boolean;
    FTracking: Boolean;
    function  GetKeyIndex: Integer;
    procedure CMCtl3DChanged(var Message: TMessage); message CM_CTL3DCHANGED;
    procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
    procedure SelectCurrent;
    procedure SelectItemAt(X, Y: Integer);
    procedure SetBorderStyle(Value: TBorderStyle);
    procedure SetRowCount(Value: Integer);
    procedure SetShowTitles(const Value: Boolean);
    procedure StopTimer;
    procedure StopTracking;
    procedure TimerScroll;
    procedure UpdateScrollBar;
    procedure WMCancelMode(var Message: TMessage); message WM_CANCELMODE;
    procedure WMTimer(var Message: TMessage); message WM_TIMER;
    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
  protected
    FTitleHeight: Integer;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure CreateWnd; override;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
    procedure KeyPress(var Key: Char); override;
    procedure KeyValueChanged; override;
    procedure ListLinkDataChanged; override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure Paint; override;
    procedure UpdateListFields; override;
  public
    constructor Create(AOwner: TComponent); override;
    function ExecuteAction(Action: TBasicAction): Boolean; override;
    function UpdateAction(Action: TBasicAction): Boolean; override;
    function UseRightToLeftAlignment: Boolean; override;
    procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
    property KeyValue;
    property SelectedItem: string read FSelectedItem;
    property ShowTitles:Boolean read FShowTitles write SetShowTitles;
  published
    property Align;
    property Anchors;
    property BiDiMode;
    property Constraints;
    property DragKind;
    property ParentBiDiMode;
    property OnEndDock;
    property OnStartDock;
    {$IFDEF EH_LIB_5}
    property OnContextPopup;
    {$ENDIF}
    property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsSingle;
    property Color;
    property Ctl3D;
    property DataField;
    property DataSource;
    property DragCursor;
    property DragMode;
    property Enabled;
    property Font;
    property ImeMode;
    property ImeName;
    property KeyField;
    property ListField;
    property ListFieldIndex;
    property ListSource;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ReadOnly;
    property RowCount: Integer read FRowCount write SetRowCount stored False;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property Visible;
    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDrag;
  end;

{ TSizeGripEh }

  TSizeGripPostion = (sgpTopLeft,sgpTopRight,sgpBottomRight,sgpBottomLeft);
  TSizeGripChangePosition = (sgcpToLeft,sgcpToRight,sgcpToTop,sgcpToBottom);

  TSizeGripEh = class(TCustomControl)
  private
    FInitScreenMousePos:TPoint;
    FInternalMove: Boolean;
    FOldMouseMovePos:TPoint;
    FParentRect:TRect;
    FParentResized:TNotifyEvent;
    FPosition: TSizeGripPostion;
    FTriangleWindow: Boolean;
    function GetVisible: Boolean;
    procedure SetPosition(const Value: TSizeGripPostion);
    procedure SetTriangleWindow(const Value: Boolean);
    procedure SetVisible(const Value: Boolean);
    procedure WMMove(var Message: TMessage); message WM_MOVE;
  protected
    procedure CreateWnd; override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure Paint; override;
    procedure ParentResized; dynamic;
  public
    constructor Create(AOwner: TComponent); override;
    procedure ChangePosition(NewPosition: TSizeGripChangePosition);
    procedure UpdatePosition;
    property Position:TSizeGripPostion read FPosition write SetPosition default sgpBottomRight;
    property TriangleWindow:Boolean read FTriangleWindow write SetTriangleWindow default True;
    property Visible: Boolean read GetVisible write SetVisible;
    property OnParentResized:TNotifyEvent read FParentResized write FParentResized;
  end;

{ TPopupDataListEh }
const
    cm_SetSizeGripChangePosition = WM_USER + 100;

type
  TPopupDataListEh = class(TDBLookupListBoxEh)
  private
    FOnUserKeyValueChange: TNotifyEvent;
    FSizeGrip:TSizeGripEh;
    FSizeGripResized:Boolean;
    FUserKeyValueChanged:Boolean;
    function CheckNewSize(var NewWidth, NewHeight: Integer): Boolean;
    procedure CMSetSizeGripChangePosition(var Message:TMessage); message cm_SetSizeGripChangePosition;
    procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
    procedure WMMouseActivate(var Message: TMessage); message WM_MOUSEACTIVATE;
    procedure WMSize(var Message: TWMSize); message WM_SIZE;
    procedure WMWindowPosChanging(var Message: TWMWindowPosChanging); message WM_WINDOWPOSCHANGING;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
    procedure KeyValueChanged; override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
  public
    constructor Create(AOwner: TComponent); override;
    property SizeGrip: TSizeGripEh read FSizeGrip;
    property SizeGripResized:Boolean read FSizeGripResized write FSizeGripResized;
    property OnUserKeyValueChange: TNotifyEvent read FOnUserKeyValueChange write FOnUserKeyValueChange;
  end;


  TDrawButtonControlStyleEh = (bcsDropDownEh, bcsEllipsisEh, bcsUpDownEh, bcsCheckboxEh);
  procedure PaintButtonControlEh(DC: HDC;ARect:TRect;ParentColor:TColor;
               Style:TDrawButtonControlStyleEh; DownButton:Integer;
               Flat,Active,Enabled:Boolean; State: TCheckBoxState);

  function GetDefaultFlatButtonWidth:Integer;

var
  FlatButtonWidth:Integer;

procedure GetFieldsProperty(List: TList; DataSet: TDataSet;
   Control: TComponent; const FieldNames: String); overload;

function GetFieldsProperty(DataSet: TDataSet; Control: TComponent;
   const FieldNames: String):TFieldsArrEh; overload;

procedure DataSetSetFieldValues(DataSet: TDataSet; Fields: String; Value:Variant);

function VarEquals(const V1, V2: Variant): Boolean;

var UseButtonsBitmapCache:Boolean = True;

procedure ClearButtonsBitmapCache;

implementation

uses DBConsts {$IFDEF EH_LIB_6} ,VDBConsts {$ENDIF};

procedure DrawCheck(DC: HDC; R: TRect; AState: TCheckBoxState; AEnabled, AFlat: Boolean);
var
  DrawState,oldRgn: Integer;
  DrawRect: TRect;
//  OldBrushColor: TColor;
//  OldBrushStyle: TBrushStyle;
//  OldPenColor: TColor;
  Rgn, SaveRgn: HRgn;
//  Brush,SaveBrush: HBRUSH;
begin
  SaveRgn := 0;
  oldRgn := 0;
  DrawRect := R;
  with DrawRect do
    if (Right - Left) > (Bottom - Top) then
    begin
     Left := Left + ((Right - Left) - (Bottom - Top)) div 2;
     Right := Left + (Bottom - Top);
    end else if (Right - Left) < (Bottom - Top) then
    begin
     Top := Top + ((Bottom - Top) - (Right - Left)) div 2;
     Bottom := Top + (Right - Left);
    end;
  case AState of
    cbChecked:
      DrawState := DFCS_BUTTONCHECK or DFCS_CHECKED;
    cbUnchecked:
      DrawState := DFCS_BUTTONCHECK;
    else // cbGrayed
      DrawState := DFCS_BUTTON3STATE or DFCS_CHECKED;
  end;
  if not AEnabled then
    DrawState := DrawState or DFCS_INACTIVE;
//  with Canvas do
//  begin
    if AFlat then
    begin
      { Remember current clipping region }
      SaveRgn := CreateRectRgn(0,0,0,0);
      oldRgn := GetClipRgn(DC, SaveRgn);
      { Clip 3d-style checkbox to prevent flicker }
      with DrawRect do
        Rgn := CreateRectRgn(Left + 2, Top + 2, Right - 2, Bottom - 2);
      SelectClipRgn(DC, Rgn);
      DeleteObject(Rgn);
    end;
    if AFlat then InflateRect(DrawRect,1,1);
    DrawFrameControl(DC, DrawRect, DFC_BUTTON, DrawState);
    if AFlat then
    begin
      //SelectClipRgn(Handle, SaveRgn);
      if oldRgn = 0 then
        SelectClipRgn(DC, 0)
      else
        SelectClipRgn(DC, SaveRgn);
      DeleteObject(SaveRgn);
      { Draw flat rectangle in-place of clipped 3d checkbox above }
      InflateRect(DrawRect,-1,-1);
      FrameRect(DC,DrawRect,GetSysColorBrush(COLOR_BTNSHADOW));

      InflateRect(DrawRect,1,1);
      FrameRect(DC,DrawRect,GetCurrentObject(DC,OBJ_BRUSH));
    end;
//  end;
end;

const
  DownFlags : array [Boolean] of Integer = (0,DFCS_PUSHED);
  FlatFlags : array [Boolean] of Integer = (0,DFCS_FLAT);
  EnabledFlags : array [Boolean] of Integer = (DFCS_INACTIVE,0);
  IsDownFlags: array [Boolean] of Integer = (DFCS_SCROLLUP, DFCS_SCROLLDOWN);

procedure DrawEllipsisButton(DC: HDC; ARect: TRect; Enabled, Active, Flat, Pressed: Boolean);
var InterP,PWid,W,H:Integer;
    ElRect:TRect;
    Brush,SaveBrush: HBRUSH;
begin
  ElRect := ARect;
  Brush := GetSysColorBrush(COLOR_BTNFACE);
  if Flat then
  begin
    Windows.FillRect(DC, ElRect, Brush);
    InflateRect(ElRect,-1,-1)
  end else
  begin
    DrawEdge(DC, ElRect, EDGE_RAISED, BF_RECT or BF_MIDDLE or FlatFlags[Pressed]);
    InflateRect(ElRect,-2,-2);
    Windows.FillRect(DC, ElRect, Brush);
  end;
  InterP := 2;
  PWid := 2;
  W := ElRect.Right - ElRect.Left ;//+ Ord(not Active and Flat);
  if W < 12 then InterP := 1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
69p69国产精品| 日韩国产在线一| 亚洲成人av中文| www.在线欧美| 久久久综合视频| 青娱乐精品在线视频| 欧美亚洲高清一区| 中文字幕一区二区三区在线不卡| 人妖欧美一区二区| 欧洲av一区二区嗯嗯嗯啊| 国产精品久久久一本精品| 黄色小说综合网站| 欧美va亚洲va| 免费成人在线网站| 欧美精品123区| 天堂蜜桃一区二区三区| 在线精品亚洲一区二区不卡| 最新久久zyz资源站| 大白屁股一区二区视频| 久久久久久久综合| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩国产综合草草| 亚洲一级电影视频| 欧美性高清videossexo| 亚洲柠檬福利资源导航| 色呦呦日韩精品| 亚洲色图一区二区三区| 一本久道久久综合中文字幕| 亚洲男人的天堂av| 在线欧美日韩精品| 亚洲精品成人精品456| 91免费观看视频在线| 亚洲美女免费视频| 欧美优质美女网站| 日韩高清中文字幕一区| 日韩三级中文字幕| 国内成人精品2018免费看| 2020国产精品自拍| 国产99久久久国产精品免费看 | 日韩伦理免费电影| 成人97人人超碰人人99| 自拍偷拍亚洲综合| 欧美日韩情趣电影| 久久国产麻豆精品| 久久综合狠狠综合久久综合88 | 国产精品少妇自拍| 成av人片一区二区| 又紧又大又爽精品一区二区| 欧美日韩美少妇| 国产综合色产在线精品| 国产精品高潮呻吟| 欧美视频在线一区| 国产一区二区在线视频| ...xxx性欧美| 91精品国产综合久久蜜臀| 国产专区欧美精品| 亚洲蜜臀av乱码久久精品| 欧美日产国产精品| 成人黄色一级视频| 日本亚洲最大的色成网站www| 久久综合色婷婷| 日本电影欧美片| 九九久久精品视频| 亚洲伦理在线精品| 久久这里只有精品视频网| 91极品视觉盛宴| 国产又黄又大久久| 亚洲午夜在线观看视频在线| 26uuu国产电影一区二区| 一本色道久久综合精品竹菊| 麻豆一区二区99久久久久| 国产精品久久久久久久久搜平片| 欧美日韩免费一区二区三区 | 欧美精品电影在线播放| 国产成人在线影院| 亚洲午夜精品在线| 国产无人区一区二区三区| 911精品国产一区二区在线| 国产成人一区二区精品非洲| 视频一区二区三区中文字幕| 一区在线中文字幕| 久久品道一品道久久精品| 欧美日韩在线免费视频| 不卡的电影网站| 精品中文字幕一区二区| 亚洲成人高清在线| 亚洲男人电影天堂| 欧美激情在线一区二区三区| 欧美tk—视频vk| 91精品福利在线一区二区三区 | 国产精品卡一卡二卡三| 精品91自产拍在线观看一区| 欧美三级日韩在线| 91在线丨porny丨国产| 国产成人午夜片在线观看高清观看| 日韩激情在线观看| 亚洲一卡二卡三卡四卡无卡久久| 亚洲欧美中日韩| 国产无遮挡一区二区三区毛片日本| 91精品国产高清一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 成人av网站在线观看免费| 国产精品正在播放| 国产精品一区三区| 国产精品夜夜嗨| 国产精品自在在线| 国产aⅴ综合色| 成人avav影音| 99这里都是精品| 波多野结衣一区二区三区 | 亚洲男人的天堂网| 亚洲美女免费在线| 一级日本不卡的影视| 伊人夜夜躁av伊人久久| 一区二区免费在线播放| 亚洲二区视频在线| 日韩成人精品视频| 久久99国产乱子伦精品免费| 精品一区二区三区不卡 | 中文字幕日韩一区| 亚洲欧美精品午睡沙发| 亚洲韩国一区二区三区| 爽爽淫人综合网网站| 日韩avvvv在线播放| 久久97超碰国产精品超碰| 国产成人在线视频网址| 一道本成人在线| 这里是久久伊人| 久久色.com| 亚洲色图丝袜美腿| 日韩精品电影一区亚洲| 国产在线精品一区二区夜色| 丁香激情综合五月| 一本久久综合亚洲鲁鲁五月天 | 欧美日韩精品电影| 日韩写真欧美这视频| 国产精品久线观看视频| 一区二区三区在线观看国产| 日韩和的一区二区| 国产91丝袜在线播放0| 色屁屁一区二区| 日韩亚洲电影在线| 自拍偷拍欧美精品| 久久精品国产精品亚洲综合| 成人性生交大片| 欧美日韩一级片在线观看| 久久精品夜色噜噜亚洲a∨| 一区二区三区在线播放| 韩国女主播成人在线观看| 91麻豆成人久久精品二区三区| 欧美疯狂做受xxxx富婆| 久久精品一区蜜桃臀影院| 亚洲午夜激情av| 高清视频一区二区| 91精品国产色综合久久不卡电影| 国产精品理伦片| 老司机精品视频线观看86| 91丨九色丨黑人外教| 精品久久久久一区| 亚洲妇熟xx妇色黄| av成人免费在线| 精品国产麻豆免费人成网站| 亚洲一区免费观看| 成人黄色在线视频| 久久亚洲精华国产精华液| 亚洲福利电影网| 99久久精品久久久久久清纯| 欧美精品一区二区久久久| 性久久久久久久| 99国产麻豆精品| 国产午夜亚洲精品理论片色戒| 丝袜美腿一区二区三区| 日本电影欧美片| 亚洲少妇最新在线视频| 国产乱人伦偷精品视频免下载| 欧美日韩一区久久| 亚洲免费在线视频| 99re66热这里只有精品3直播| 久久这里只有精品首页| 久久99久久99| 日韩一区二区三区视频在线| 亚洲国产日韩在线一区模特| av日韩在线网站| 中文字幕电影一区| 国产精品综合网| 精品成a人在线观看| 美国十次综合导航| 日韩一区二区三区视频在线| 天堂一区二区在线| 精品视频一区二区三区免费| 亚洲另类在线视频| 91麻豆精品视频| 亚洲激情自拍视频| 色天天综合久久久久综合片| 亚洲理论在线观看| 欧美三级中文字幕| 日韩主播视频在线| 日韩三级伦理片妻子的秘密按摩| 麻豆91免费观看| 久久免费电影网|