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

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

?? rxspin.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
{*******************************************************}
{                                                       }
{         Delphi VCL Extensions (RX)                    }
{                                                       }
{         Copyright (c) 1995 AO ROSNO                   }
{         Copyright (c) 1997, 1998 Master-Bank          }
{                                                       }
{*******************************************************}

unit RXSpin;

interface

{$I RX.INC}

uses {$IFDEF WIN32} Windows, ComCtrls, {$ELSE} WinTypes, WinProcs, {$ENDIF}
  Controls, ExtCtrls, Classes, Graphics, Messages, Forms, StdCtrls, Menus,
  SysUtils;

type

{ TRxSpinButton }

  TSpinButtonState = (sbNotDown, sbTopDown, sbBottomDown);

  TRxSpinButton = class(TGraphicControl)
  private
    FDown: TSpinButtonState;
    FUpBitmap: TBitmap;
    FDownBitmap: TBitmap;
    FDragging: Boolean;
    FInvalidate: Boolean;
    FTopDownBtn: TBitmap;
    FBottomDownBtn: TBitmap;
    FRepeatTimer: TTimer;
    FNotDownBtn: TBitmap;
    FLastDown: TSpinButtonState;
    FFocusControl: TWinControl;
    FOnTopClick: TNotifyEvent;
    FOnBottomClick: TNotifyEvent;
    procedure TopClick;
    procedure BottomClick;
    procedure GlyphChanged(Sender: TObject);
    function GetUpGlyph: TBitmap;
    function GetDownGlyph: TBitmap;
    procedure SetUpGlyph(Value: TBitmap);
    procedure SetDownGlyph(Value: TBitmap);
    procedure SetDown(Value: TSpinButtonState);
    procedure SetFocusControl(Value: TWinControl);
    procedure DrawAllBitmap;
    procedure DrawBitmap(ABitmap: TBitmap; ADownState: TSpinButtonState);
    procedure TimerExpired(Sender: TObject);
    procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
  protected
    procedure Paint; 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 Notification(AComponent: TComponent;
      Operation: TOperation); override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property Down: TSpinButtonState read FDown write SetDown default sbNotDown;
  published
    property DragCursor;
    property DragMode;
    property Enabled;
    property Visible;
    property DownGlyph: TBitmap read GetDownGlyph write SetDownGlyph;
    property UpGlyph: TBitmap read GetUpGlyph write SetUpGlyph;
    property FocusControl: TWinControl read FFocusControl write SetFocusControl;
    property ShowHint;
    property ParentShowHint;
{$IFDEF RX_D4}
    property Anchors;
    property Constraints;
    property DragKind;
{$ENDIF}
    property OnBottomClick: TNotifyEvent read FOnBottomClick write FOnBottomClick;
    property OnTopClick: TNotifyEvent read FOnTopClick write FOnTopClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
{$IFDEF WIN32}
    property OnStartDrag;
{$ENDIF}
{$IFDEF RX_D4}
    property OnEndDock;
    property OnStartDock;
{$ENDIF}
  end;

{ TRxSpinEdit }

{$IFDEF CBUILDER}
  TValueType = (vtInt, vtFloat, vtHex);
{$ELSE}
  TValueType = (vtInteger, vtFloat, vtHex);
{$ENDIF}

{$IFDEF WIN32}
  TSpinButtonKind = (bkStandard, bkDiagonal);
{$ENDIF}

  TRxSpinEdit = class(TCustomEdit)
  private
    FAlignment: TAlignment;
    FMinValue: Extended;
    FMaxValue: Extended;
    FIncrement: Extended;
    FDecimal: Byte;
    FChanging: Boolean;
    FEditorEnabled: Boolean;
    FValueType: TValueType;
    FButton: TRxSpinButton;
    FBtnWindow: TWinControl;
    FArrowKeys: Boolean;
    FOnTopClick: TNotifyEvent;
    FOnBottomClick: TNotifyEvent;
{$IFDEF WIN32}
    FButtonKind: TSpinButtonKind;
    FUpDown: TCustomUpDown;
    function GetButtonKind: TSpinButtonKind;
    procedure SetButtonKind(Value: TSpinButtonKind);
    procedure UpDownClick(Sender: TObject; Button: TUDBtnType);
{$ENDIF}
    function GetMinHeight: Integer;
    procedure GetTextHeight(var SysHeight, Height: Integer);
    function GetValue: Extended;
    function CheckValue(NewValue: Extended): Extended;
    function GetAsInteger: Longint;
    function IsIncrementStored: Boolean;
    function IsMaxStored: Boolean;
    function IsMinStored: Boolean;
    function IsValueStored: Boolean;
    procedure SetArrowKeys(Value: Boolean);
    procedure SetAsInteger(NewValue: Longint);
    procedure SetValue(NewValue: Extended);
    procedure SetValueType(NewType: TValueType);
    procedure SetDecimal(NewValue: Byte);
    function GetButtonWidth: Integer;
    procedure RecreateButton;
    procedure ResizeButton;
    procedure SetEditRect;
    procedure SetAlignment(Value: TAlignment);
    procedure WMSize(var Message: TWMSize); message WM_SIZE;
    procedure CMEnter(var Message: TMessage); message CM_ENTER;
    procedure CMExit(var Message: TCMExit); message CM_EXIT;
    procedure WMPaste(var Message: TWMPaste); message WM_PASTE;
    procedure WMCut(var Message: TWMCut); message WM_CUT;
    procedure CMCtl3DChanged(var Message: TMessage); message CM_CTL3DCHANGED;
    procedure CMEnabledChanged(var Message: TMessage); message CM_ENABLEDCHANGED;
    procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
{$IFDEF RX_D4}
    procedure CMBiDiModeChanged(var Message: TMessage); message CM_BIDIMODECHANGED;
{$ENDIF}
  protected
    procedure Change; override;
    function IsValidChar(Key: Char): Boolean; virtual;
    procedure UpClick(Sender: TObject); virtual;
    procedure DownClick(Sender: TObject); virtual;
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
    procedure KeyPress(var Key: Char); override;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure CreateWnd; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property AsInteger: Longint read GetAsInteger write SetAsInteger default 0;
    property Text;
  published
    property Alignment: TAlignment read FAlignment write SetAlignment
      default taLeftJustify;
    property ArrowKeys: Boolean read FArrowKeys write SetArrowKeys default True;
{$IFDEF WIN32}
    property ButtonKind: TSpinButtonKind read FButtonKind write SetButtonKind
      default bkDiagonal;
{$ENDIF}
    property Decimal: Byte read FDecimal write SetDecimal default 2;
    property EditorEnabled: Boolean read FEditorEnabled write FEditorEnabled default True;
    property Increment: Extended read FIncrement write FIncrement stored IsIncrementStored;
    property MaxValue: Extended read FMaxValue write FMaxValue stored IsMaxStored;
    property MinValue: Extended read FMinValue write FMinValue stored IsMinStored;
    property ValueType: TValueType read FValueType write SetValueType
      default {$IFDEF CBUILDER} vtInt {$ELSE} vtInteger {$ENDIF};
    property Value: Extended read GetValue write SetValue stored IsValueStored;
    property AutoSelect;
    property AutoSize;
    property BorderStyle;
    property Color;
    property Ctl3D;
    property DragCursor;
    property DragMode;
    property Enabled;
    property Font;
{$IFDEF RX_D4}
    property Anchors;
    property BiDiMode;
    property Constraints;
    property DragKind;
    property ParentBiDiMode;
{$ENDIF}
{$IFDEF WIN32}
  {$IFNDEF VER90}
    property ImeMode;
    property ImeName;
  {$ENDIF}
{$ENDIF}
    property MaxLength;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ReadOnly;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property Visible;
    property OnBottomClick: TNotifyEvent read FOnBottomClick write FOnBottomClick;
    property OnTopClick: TNotifyEvent read FOnTopClick write FOnTopClick;
    property OnChange;
    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;
{$IFDEF WIN32}
    property OnStartDrag;
{$ENDIF}
{$IFDEF RX_D5}
    property OnContextPopup;
{$ENDIF}
{$IFDEF RX_D4}
    property OnMouseWheelDown;
    property OnMouseWheelUp;
    property OnEndDock;
    property OnStartDock;
{$ENDIF}
  end;

implementation

uses {$IFDEF WIN32} CommCtrl, {$ENDIF} VCLUtils;

{$IFDEF WIN32}
 {$R *.R32}
{$ELSE}
 {$R *.R16}
{$ENDIF}

const
  sSpinUpBtn = 'RXSPINUP';
  sSpinDownBtn = 'RXSPINDOWN';

const
  InitRepeatPause = 400; { pause before repeat timer (ms) }
  RepeatPause     = 100;

{ TRxSpinButton }

constructor TRxSpinButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FUpBitmap := TBitmap.Create;
  FDownBitmap := TBitmap.Create;
  FUpBitmap.Handle := LoadBitmap(HInstance, sSpinUpBtn);
  FDownBitmap.Handle := LoadBitmap(HInstance, sSpinDownBtn);
  FUpBitmap.OnChange := GlyphChanged;
  FDownBitmap.OnChange := GlyphChanged;
  Height := 20;
  Width := 20;
  FTopDownBtn := TBitmap.Create;
  FBottomDownBtn := TBitmap.Create;
  FNotDownBtn := TBitmap.Create;
  DrawAllBitmap;
  FLastDown := sbNotDown;
end;

destructor TRxSpinButton.Destroy;
begin
  FTopDownBtn.Free;
  FBottomDownBtn.Free;
  FNotDownBtn.Free;
  FUpBitmap.Free;
  FDownBitmap.Free;
  FRepeatTimer.Free;
  inherited Destroy;
end;

procedure TRxSpinButton.GlyphChanged(Sender: TObject);
begin
  FInvalidate := True;
  Invalidate;
end;

function TRxSpinButton.GetUpGlyph: TBitmap;
begin
  Result := FUpBitmap;
end;

procedure TRxSpinButton.SetUpGlyph(Value: TBitmap);
begin
  if Value <> nil then FUpBitmap.Assign(Value)
  else FUpBitmap.Handle := LoadBitmap(HInstance, sSpinUpBtn);
end;

function TRxSpinButton.GetDownGlyph: TBitmap;
begin
  Result := FDownBitmap;
end;

procedure TRxSpinButton.SetDownGlyph(Value: TBitmap);
begin
  if Value <> nil then FDownBitmap.Assign(Value)
  else FDownBitmap.Handle := LoadBitmap(HInstance, sSpinDownBtn);
end;

procedure TRxSpinButton.SetDown(Value: TSpinButtonState);
var
  OldState: TSpinButtonState;
begin
  OldState := FDown;
  FDown := Value;
  if OldState <> FDown then Repaint;
end;

procedure TRxSpinButton.SetFocusControl(Value: TWinControl);
begin
  FFocusControl := Value;
{$IFDEF WIN32}
  if Value <> nil then Value.FreeNotification(Self);
{$ENDIF}
end;

procedure TRxSpinButton.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (AComponent = FFocusControl) then
    FFocusControl := nil;
end;

procedure TRxSpinButton.Paint;
begin
  if not Enabled and not (csDesigning in ComponentState) then
    FDragging := False;
  if (FNotDownBtn.Height <> Height) or (FNotDownBtn.Width <> Width) or
    FInvalidate then DrawAllBitmap;
  FInvalidate := False;
  with Canvas do
    case FDown of
      sbNotDown: Draw(0, 0, FNotDownBtn);
      sbTopDown: Draw(0, 0, FTopDownBtn);
      sbBottomDown: Draw(0, 0, FBottomDownBtn);
    end;
end;

procedure TRxSpinButton.DrawAllBitmap;
begin
  DrawBitmap(FTopDownBtn, sbTopDown);
  DrawBitmap(FBottomDownBtn, sbBottomDown);
  DrawBitmap(FNotDownBtn, sbNotDown);
end;

procedure TRxSpinButton.DrawBitmap(ABitmap: TBitmap; ADownState: TSpinButtonState);
var
  R, RSrc: TRect;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品69久久久久水密桃| 91网站视频在线观看| 国产精品久久久久久久久免费桃花| 91亚洲男人天堂| 国内精品写真在线观看| 亚洲综合一二区| 国产欧美综合在线| 337p亚洲精品色噜噜| 99综合电影在线视频| 国模冰冰炮一区二区| 亚洲www啪成人一区二区麻豆| 国产欧美日本一区二区三区| 在线成人小视频| 色综合色狠狠综合色| 国产精品自在欧美一区| 日韩精品乱码av一区二区| 亚洲三级久久久| 中文字幕第一区第二区| 精品国产一区二区三区忘忧草| 一本大道综合伊人精品热热| 大白屁股一区二区视频| 精品一区二区三区日韩| 婷婷国产在线综合| 一区二区三区在线免费视频| 一区免费观看视频| 欧美激情自拍偷拍| 久久久久久久性| 日韩美女天天操| 欧美一区二区日韩一区二区| 欧美亚洲综合另类| 色999日韩国产欧美一区二区| 成人久久视频在线观看| 国产精品77777竹菊影视小说| 久久国产日韩欧美精品| 青青草成人在线观看| 日韩电影免费一区| 亚洲电影第三页| 午夜精品视频在线观看| 亚洲一线二线三线久久久| 亚洲伦在线观看| 亚洲狠狠丁香婷婷综合久久久| 国产精品国产三级国产aⅴ中文| 国产色91在线| 日本一区二区免费在线| 国产日韩精品久久久| 国产欧美一区二区在线| 欧美激情一区二区三区在线| 国产视频一区二区在线| 国产精品久久夜| 亚洲免费高清视频在线| 一区二区三区欧美| 午夜婷婷国产麻豆精品| 日本午夜一区二区| 九九精品一区二区| 国产精品1区2区| 波多野结衣中文一区| 99精品视频中文字幕| 日本高清成人免费播放| 欧美日韩视频专区在线播放| 51久久夜色精品国产麻豆| 精品日韩99亚洲| 中文幕一区二区三区久久蜜桃| 综合久久久久久| 亚洲123区在线观看| 蜜臀精品久久久久久蜜臀 | 国产精品网友自拍| 亚洲欧美激情视频在线观看一区二区三区| 亚洲精品久久久蜜桃| 日韩精品欧美精品| 国产成人免费xxxxxxxx| 一本一道久久a久久精品综合蜜臀| 在线区一区二视频| 亚洲精品一线二线三线无人区| 国产精品国产三级国产aⅴ中文 | 欧美tickle裸体挠脚心vk| 2017欧美狠狠色| 国产精品久久久一本精品| 亚洲福利视频一区二区| 国产一区二区精品久久| 99re在线视频这里只有精品| 欧美日韩国产精品自在自线| 久久久久久久久久久99999| 亚洲丝袜美腿综合| 蜜臀av亚洲一区中文字幕| 国产露脸91国语对白| 在线观看www91| 欧美精品一区二区高清在线观看 | 91久久精品网| 日韩限制级电影在线观看| 国产精品久99| 青青草成人在线观看| 99精品久久久久久| 欧美大片顶级少妇| 一区二区三区四区高清精品免费观看 | 国产·精品毛片| 欧美日本韩国一区二区三区视频| 欧美精品一区二区三区久久久| 亚洲精品国产第一综合99久久| 久久精品国产久精国产| 91国在线观看| 国产亚洲一区二区三区四区 | 亚洲日本免费电影| 欧美美女直播网站| 国产日韩欧美a| 美女视频网站黄色亚洲| 欧美午夜不卡视频| 中文字幕在线免费不卡| 久久精品99久久久| 欧美日韩在线免费视频| 国产精品传媒在线| 国产在线精品一区二区三区不卡| 欧美日韩一区三区四区| 亚洲欧美在线视频| 国产不卡在线视频| 精品少妇一区二区三区日产乱码| 玉足女爽爽91| 99久久精品情趣| 久久精品一区蜜桃臀影院| 青椒成人免费视频| 911精品国产一区二区在线| 亚洲精品国久久99热| av一本久道久久综合久久鬼色| 久久久青草青青国产亚洲免观| 日韩主播视频在线| 欧美日韩在线播放一区| 亚洲综合一区二区精品导航| 91女厕偷拍女厕偷拍高清| 国产欧美精品一区二区色综合朱莉 | 91福利视频网站| 中文字幕亚洲成人| www.视频一区| 国产精品久久久久一区二区三区| 久久99热国产| 日韩欧美亚洲一区二区| 捆绑调教美女网站视频一区| 欧美一区二区在线不卡| 首页国产丝袜综合| 欧美一区二区福利视频| 蜜桃一区二区三区在线| 欧美一级生活片| 欧美天天综合网| 亚洲成a人片在线不卡一二三区| 日本大香伊一区二区三区| 亚洲视频一区二区免费在线观看| 波多野结衣中文字幕一区二区三区| 亚洲国产高清aⅴ视频| 丁香一区二区三区| 国产精品久久久久四虎| 92精品国产成人观看免费 | 一区二区三区在线免费观看| 在线观看一区二区精品视频| 亚洲成人免费电影| 在线播放日韩导航| 蜜臀久久久久久久| 精品国产网站在线观看| 国产一区二区成人久久免费影院| 国产片一区二区三区| 91原创在线视频| 亚洲成国产人片在线观看| 欧美一区二区三区在线看| 国产综合久久久久久鬼色| 国产精品拍天天在线| 欧美性受xxxx| 久99久精品视频免费观看| 欧美激情一区二区三区不卡| 色综合一区二区| 肉丝袜脚交视频一区二区| 精品88久久久久88久久久| 成人av电影在线播放| 亚洲午夜一区二区| 久久亚洲精品国产精品紫薇| 岛国精品在线观看| 亚洲国产成人porn| 精品88久久久久88久久久| 99视频一区二区| 性感美女久久精品| 久久久久久久久岛国免费| 色偷偷一区二区三区| 欧美a级一区二区| 国产精品乱人伦一区二区| 欧美日韩国产美| 国产.欧美.日韩| 偷拍亚洲欧洲综合| 午夜精品久久久| 久久一区二区三区国产精品| 99在线精品视频| 日韩国产在线一| 欧美国产精品一区二区| 欧美无人高清视频在线观看| 国产美女精品人人做人人爽| 一区二区三区色| 久久亚洲私人国产精品va媚药| 91免费观看视频在线| 麻豆国产欧美日韩综合精品二区| 中文字幕一区二区三区av| 欧美一区二区久久久| 91在线国产福利| 久久国产精品72免费观看| 一区二区三区视频在线看| 亚洲国产精品成人综合色在线婷婷|