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

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

?? vrarrow.pas

?? 作工控的好控件
?? PAS
字號:
{*****************************************************}
{                                                     }
{     Varian Component Workshop                       }
{                                                     }
{     Varian Software NL (c) 1996-2000                }
{     All Rights Reserved                             }
{                                                     }
{*****************************************************}

unit VrArrow;

{$I VRLIB.INC}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Dialogs,
  VrClasses, VrControls, VrSysUtils;

type
  TVrArrowDirection = (pdLeft, pdRight, pdUp, pdDown);

  TVrArrow = class(TVrGraphicImageControl)
  private
    FDirection: TVrArrowDirection;
    FPalette: TVrPalette;
    FActive: Boolean;
    FTrackMouse: Boolean;
    Glyphs: TBitmap;
    GlyphMask: TBitmap;
    HasMouse: Boolean;
    function ImageRect: TRect;
    function InControl(X, Y: Integer): Boolean;
    procedure SetActive(Value: Boolean);
    procedure SetDirection(Value: TVrArrowDirection);
    procedure SetPalette(Value: TVrPalette);
    procedure PaletteModified(Sender: TObject);
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  protected
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure LoadBitmaps; virtual;
    procedure Paint; override;
    function GetPalette: HPalette; override;
  public
    constructor Create(Aowner: TComponent); override;
    destructor Destroy; override;
  published
    property Active: Boolean read FActive write SetActive default false;
    property Direction: TVrArrowDirection read FDirection write SetDirection default pdUp;
    property Palette: TVrPalette read FPalette write SetPalette;
    property TrackMouse: Boolean read FTrackMouse write FTrackMouse default false;
    property Transparent default false;
    property Align;
{$IFDEF VER110}
    property Anchors;
    property Constraints;
{$ENDIF}
    property Color default clBlack;
    property DragCursor;
{$IFDEF VER110}
    property DragKind;
{$ENDIF}
    property DragMode;
    property Hint;
    property ParentColor default false;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property Visible;
    property OnClick;
{$IFDEF VER130}
    property OnContextPopup;
{$ENDIF}
    property OnDragDrop;
    property OnDragOver;
{$IFDEF VER110}
    property OnEndDock;
{$ENDIF}
    property OnEndDrag;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
{$IFDEF VER110}
    property OnStartDock;
{$ENDIF}
    property OnStartDrag;
  end;


implementation

{$R VRARROW.D32}

const
  ResId: array[TVrArrowDirection] of PChar =
    ('LEFTARROW', 'RIGHTARROW', 'UPARROW', 'DOWNARROW');

{TVrArrow}

constructor TVrArrow.Create(Aowner: TComponent);
begin
  inherited Create(Aowner);
  ControlStyle := ControlStyle + [csOpaque] - [csDoubleClicks];
  Width := 50;
  Height := 45;
  ParentColor := false;
  Color := clBlack;
  FActive := false;
  FDirection := pdUp;
  FPalette := TVrPalette.Create;
  FPalette.OnChange := PaletteModified;
  Glyphs := TBitmap.Create;
  GlyphMask := TBitmap.Create;
  HasMouse := false;
  LoadBitmaps;
end;

destructor TVrArrow.Destroy;
begin
  FPalette.Free;
  Glyphs.Free;
  GlyphMask.Free;
  inherited Destroy;
end;

procedure TVrArrow.LoadBitmaps;
begin
  Glyphs.Handle := LoadBitmap(hInstance, ResId[FDirection]);
  GlyphMask.Assign(Glyphs);
  GlyphMask.Mask(clWhite);
  FPalette.ToBMP(Glyphs, clGreen, clLime);
end;

function TVrArrow.GetPalette: HPalette;
begin
  Result := Glyphs.Palette;
end;

procedure TVrArrow.SetActive(Value: Boolean);
begin
  if FActive <> Value then
  begin
    FActive := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrArrow.SetDirection(Value: TVrArrowDirection);
begin
  if FDirection <> Value then
  begin
    FDirection := Value;
    LoadBitmaps;
    UpdateControlCanvas;
  end;
end;

procedure TVrArrow.PaletteModified(Sender: TObject);
begin
  LoadBitmaps;
  UpdateControlCanvas;
end;

procedure TVrArrow.SetPalette(Value: TVrPalette);
begin
  FPalette.Assign(Value);
end;

procedure TVrArrow.Paint;
var
  GlyphRect: TRect;
  Index, W, H: Integer;
begin
  ClearBitmapCanvas;

  if FTrackMouse then Active := HasMouse;

  Index := Ord(FActive);
  with BitmapCanvas do
  begin
    Brush.Style := bsClear;
    W := Glyphs.Width div 2;
    H := Glyphs.Height;
    GlyphRect := Bounds(Index * W, 0, W, H);
    BrushCopy(ImageRect, Glyphs, GlyphRect, clWhite);
  end;

  ShowDesignFrame(BitmapCanvas);

  inherited Paint;
end;

function TVrArrow.ImageRect: TRect;
var
  X, Y, W, H: Integer;
begin
  W := Glyphs.Width div 2;
  H := Glyphs.Height;
  X := (Width - W) div 2;
  Y := (Height - W) div 2;
  Result := Bounds(X, Y, W, H);
end;

function TVrArrow.InControl(X, Y: Integer): Boolean;
var
  R: TRect;
  Px, Py: Integer;
begin
  R := ImageRect;
  Px := R.Right - X - 1;
  Py := R.Bottom - Y - 1;
  Result := (PtInRect(R, Point(X, Y))) and
            (GlyphMask.Canvas.Pixels[Px, Py] = clBlack);
end;

procedure TVrArrow.MouseMove(Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  if FTrackMouse then
  begin
    HasMouse := InControl(X, Y);
    UpdateControlCanvas;
  end;
end;

procedure TVrArrow.CMMouseLeave(var Message: TMessage);
begin
  inherited;
  if TrackMouse then
  begin
    HasMouse := false;
    UpdateControlCanvas;
  end;
end;


end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频在线一区二区三区| 国产女人18水真多18精品一级做| 国产九色精品成人porny| 丝袜亚洲另类丝袜在线| 亚洲妇女屁股眼交7| 免费人成精品欧美精品 | 国产呦精品一区二区三区网站| 一区二区在线观看免费| 国产丝袜美腿一区二区三区| 综合激情网...| 奇米色777欧美一区二区| 国产在线精品一区二区夜色| 成人午夜视频福利| 日本高清免费不卡视频| 日韩一级在线观看| 中文字幕国产精品一区二区| 亚洲成a人在线观看| 精品一区二区三区日韩| 在线观看视频一区二区| 久久久噜噜噜久久中文字幕色伊伊 | 欧美大黄免费观看| 中文无字幕一区二区三区 | 欧美网站大全在线观看| 国产三级精品在线| 日本不卡的三区四区五区| 91美女福利视频| 亚洲国产精品99久久久久久久久| 亚洲黄色免费网站| a亚洲天堂av| 国产精品美女久久久久aⅴ| 国模冰冰炮一区二区| 91精品中文字幕一区二区三区| 日韩女同互慰一区二区| 一区二区三区色| 亚洲卡通动漫在线| 在线观看亚洲精品| 日韩在线一区二区| 欧美一区二区播放| 捆绑紧缚一区二区三区视频| 日韩一区二区在线看| 伦理电影国产精品| 久久亚洲私人国产精品va媚药| 久久电影网站中文字幕| 久久丝袜美腿综合| 高清不卡一区二区| 一区二区欧美国产| 宅男噜噜噜66一区二区66| 蜜桃久久久久久久| 国产精品三级av| 色综合色综合色综合色综合色综合 | 激情综合网天天干| 国产精品你懂的在线欣赏| 99精品久久只有精品| 亚洲中国最大av网站| 91精品国产91热久久久做人人| 久久国产欧美日韩精品| 国产精品美日韩| 777a∨成人精品桃花网| 福利一区在线观看| 日韩精品久久久久久| 久久精品水蜜桃av综合天堂| 91成人免费在线| 国产精品1区2区3区| 亚洲成a人v欧美综合天堂 | 国产美女精品在线| 亚洲va欧美va天堂v国产综合| 久久久99精品久久| 精品福利在线导航| 欧美日韩国产综合草草| caoporen国产精品视频| 国产一区二区三区日韩| 人人狠狠综合久久亚洲| 亚洲欧美日韩系列| 国产调教视频一区| 久久久99精品久久| 国产清纯在线一区二区www| 欧美一区二区精品| 欧美一区二区三区视频免费播放| 色网站国产精品| 日本韩国精品在线| 欧美吻胸吃奶大尺度电影| 91福利精品第一导航| 欧美午夜寂寞影院| 欧美妇女性影城| 欧美一区二区三区视频免费播放| 欧美喷水一区二区| 日韩免费性生活视频播放| 精品国产一区二区在线观看| 精品黑人一区二区三区久久| 欧美不卡在线视频| 亚洲国产精品国自产拍av| 日韩影视精彩在线| 一区二区三区.www| 欧美tk—视频vk| 欧美疯狂性受xxxxx喷水图片| 成人精品一区二区三区四区| 久久综合色天天久久综合图片| 日本亚洲三级在线| 亚洲高清视频中文字幕| 性做久久久久久久免费看| 国产精品久久久爽爽爽麻豆色哟哟| 久久久亚洲精品石原莉奈| 欧美色区777第一页| 久久国产福利国产秒拍| 91国产福利在线| 国产福利91精品一区| 国产精品久久福利| 亚洲女女做受ⅹxx高潮| 日韩精品一级中文字幕精品视频免费观看| 欧美一区二区不卡视频| 欧美午夜精品久久久久久超碰| av在线播放一区二区三区| 久久国产精品免费| 国产成人精品一区二区三区网站观看| 91精彩视频在线观看| 成人在线视频首页| 紧缚捆绑精品一区二区| 欧美日韩一区成人| 国产精品九色蝌蚪自拍| 国产原创一区二区三区| 日韩一区二区三区免费看| 亚洲自拍偷拍av| 日本精品视频一区二区| 中文字幕中文字幕中文字幕亚洲无线| 男人的j进女人的j一区| 欧美视频自拍偷拍| 亚洲国产精品久久久久婷婷884| 色综合天天综合网国产成人综合天| 久久久久久久久99精品| 国内一区二区在线| 日本成人在线电影网| 一区视频在线播放| 成人黄动漫网站免费app| www欧美成人18+| 国产激情一区二区三区桃花岛亚洲| 欧美一区二区三区免费视频| 首页综合国产亚洲丝袜| 欧美日韩国产天堂| 九一久久久久久| 国产精品视频免费| 99re这里只有精品首页| 五月婷婷欧美视频| 久久久综合精品| 成人av电影免费在线播放| 亚洲一区二区中文在线| 欧美一区二区黄色| av中文字幕在线不卡| 99vv1com这只有精品| 亚洲大片免费看| 欧美第一区第二区| 在线国产电影不卡| 日本女优在线视频一区二区| 国产欧美一区二区三区在线看蜜臀| 国产成人免费在线视频| 视频在线观看一区二区三区| 久久久久久一级片| 欧美制服丝袜第一页| 韩国一区二区视频| 最新热久久免费视频| 日韩三级高清在线| 欧美日韩精品欧美日韩精品 | 免费观看30秒视频久久| 欧美日韩国产精选| 国产精品久久毛片a| 欧美一区中文字幕| 在线观看视频一区二区| 国产成人av电影在线播放| 亚洲资源中文字幕| 欧美视频一区二区三区四区 | 717成人午夜免费福利电影| 成人看片黄a免费看在线| av色综合久久天堂av综合| 国产91在线观看丝袜| 美女精品自拍一二三四| 日日摸夜夜添夜夜添国产精品 | 97久久精品人人澡人人爽| 久久精品噜噜噜成人av农村| 精品国产乱码久久久久久蜜臀| 天堂资源在线中文精品| 亚洲电影一区二区| 亚洲女同ⅹxx女同tv| 国产精品国产三级国产aⅴ入口| 久久久噜噜噜久久人人看| 久久综合九色欧美综合狠狠| 日韩精品中文字幕一区二区三区 | 精品午夜一区二区三区在线观看| 777欧美精品| 色综合夜色一区| 成人免费高清视频| 成人av手机在线观看| 91捆绑美女网站| 91国产视频在线观看| 久久伊人中文字幕| 综合网在线视频| 亚洲午夜久久久| 精品一区二区三区久久久| 北条麻妃国产九九精品视频| 欧美日韩精品久久久| 欧美韩日一区二区三区| 视频一区二区中文字幕|