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

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

?? vrspinner.pas

?? 作工控的好控件
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
  begin
    SetFocusBtn (TVrTimerSpinButton(Sender));
    if (FFocusControl <> nil) and FFocusControl.TabStop and
        FFocusControl.CanFocus and (GetFocus <> FFocusControl.Handle) then
      FFocusControl.SetFocus
    else if TabStop and (GetFocus <> Handle) and CanFocus then
      SetFocus;
  end;
end;

procedure TVrSpinner.BtnClick(Sender: TObject);
begin
  if Sender = FUpButton then
  begin
    if Assigned(FOnUpClick) then FOnUpClick(Self);
  end
  else
    if Assigned(FOnDownClick) then FOnDownClick(Self);
end;

procedure TVrSpinner.SetFocusBtn (Btn: TVrTimerSpinButton);
begin
  if TabStop and CanFocus and  (Btn <> FFocusedButton) then
  begin
    FFocusedButton.TimeBtnState := FFocusedButton.TimeBtnState - [tbFocusRect];
    FFocusedButton := Btn;
    if (GetFocus = Handle) then
    begin
       FFocusedButton.TimeBtnState := FFocusedButton.TimeBtnState + [tbFocusRect];
       Repaint;
    end;
  end;
end;

procedure TVrSpinner.WMGetDlgCode(var Message: TWMGetDlgCode);
begin
  Message.Result := DLGC_WANTARROWS;
end;

procedure TVrSpinner.CMEnabledChanged(var Message: TMessage);
begin
  inherited;
  FUpButton.Enabled := Enabled;
  FDownButton.Enabled := Enabled;
end;

procedure TVrSpinner.Loaded;
var
  W, H: Integer;
begin
  inherited Loaded;
  W := Width;
  H := Height;
  ChangeSize(W, H);
  if (W <> Width) or (H <> Height) then
    inherited SetBounds (Left, Top, W, H);
end;

procedure TVrSpinner.SetOrientation(Value: TVrOrientation);
begin
  if FOrientation <> Value then
  begin
    FOrientation := Value;
    if FUpButton <> nil then FUpButton.Free;
    if FDownButton <> nil then FDownButton.Free;
    if Value = voVertical then
    begin
      FUpButton := CreateButton(stUp);
      FDownButton := CreateButton(stDown);
    end
    else
    begin
      FUpButton := CreateButton(stLeft);
      FDownButton := CreateButton(stRight);
    end;
    if csDesigning in ComponentState then
    begin
      if Align = alNone then
        BoundsRect := Bounds(Left, Top, Height, Width)
      else RecreateWnd;
    end;
  end;
end;

procedure TVrSpinner.PaletteModified(Sender: TObject);
begin
  FUpButton.Palette.Assign(FPalette);
  FDownButton.Palette.Assign(FPalette);
end;

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

{ VrSpinButton }
constructor TVrSpinButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csOpaque, csClickEvents] - [csDoubleClicks];
  Height := 25;
  Width := 25;
  Color := clBtnFace;
  ParentColor := true;
  FBtnType := stUp;
  FPalette := TVrPalette.Create;
  FPalette.OnChange := PaletteModified;

  ImageList := TImageList.Create(nil);
  ImageList.DrawingStyle := dsTransparent;
  Bitmap := TBitmap.Create;
  LoadBitmaps;
end;

destructor TVrSpinButton.Destroy;
begin
  FPalette.Free;
  Bitmap.Free;
  ImageList.Free;
  inherited Destroy;
end;

procedure TVrSpinButton.LoadBitmaps;
begin
  ImageList.Width := 21;
  ImageList.Height := 16;
  if FBtnType in [stLeft, stRight] then
  begin
    ImageList.Width := 17;
    ImageList.Height := 21;
  end;
  Bitmap.Handle := LoadBitmap(hInstance, ResId[FBtnType]);
  FPalette.ToBMP(Bitmap, clGreen, clLime);
  ImageList.Clear;
  ImageList.AddMasked(Bitmap, Bitmap.TransparentColor);
  ImageList.GetBitmap(0, Bitmap);
  Bitmap.Mask(Bitmap.TransparentColor);
end;

procedure TVrSpinButton.SetBtnType(Value: TVrSpinButtonType);
begin
  if FBtnType <> Value then
  begin
    FBtnType := Value;
    LoadBitmaps;
    UpdateControlCanvas;
  end;
end;

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

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

function TVrSpinButton.ImageRect: TRect;
var
  X, Y: Integer;
begin
  X := (Width - ImageList.Width) div 2;
  Y := (Height - ImageList.Height) div 2;
  Result := Bounds(X, Y, ImageList.Width, ImageList.Height);
end;

procedure TVrSpinButton.Paint;
var
  Index: Integer;
begin
  ClearClientCanvas;

  Index := 1;
  if Enabled then
  begin
    if (MouseBtnDown) then Index := 2;
  end else Index := 0;

  {$IFDEF VER110}
    ImageList.Draw(Canvas,
      ImageRect.Left, ImageRect.Top, Index, True);
  {$ELSE}
    ImageList.Draw(Canvas,
      ImageRect.Left, ImageRect.Top, Index);
  {$ENDIF}
end;

function TVrSpinButton.InControl(X, Y: Integer): Boolean;
var
  Px, Py: Integer;
begin
  Px := ImageRect.Right - X - 1;
  Py := ImageRect.Bottom - Y - 1;
  Result := (Bitmap.Canvas.Pixels[Px, Py] = clBlack) and
            (Canvas.Pixels[X, Y] <> clBlack);
end;

procedure TVrSpinButton.Click;
begin
end;

procedure TVrSpinButton.DoClick;
begin
  inherited Click;
end;

procedure TVrSpinButton.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  inherited;
  if (Button = mbLeft) and Enabled then
    if InControl(X, Y) then
    begin
      MouseBtnDown := true;
      MouseCapture := true;
      UpdateControlCanvas;
    end;
end;

procedure TVrSpinButton.MouseUp(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  inherited;
  MouseBtnDown := false;
  MouseCapture := false;
  UpdateControlCanvas;
  if InControl(X, Y) then DoClick;
end;

{TVrTimerSpinButton}
destructor TVrTimerSpinButton.Destroy;
begin
  if FRepeatTimer <> nil then
    FRepeatTimer.Free;
  inherited Destroy;
end;

procedure TVrTimerSpinButton.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  inherited MouseDown (Button, Shift, X, Y);
  if tbAllowTimer in FTimeBtnState then
  begin
    if FRepeatTimer = nil then
      FRepeatTimer := TVrTimer.Create(Self);
    FRepeatTimer.Enabled := false;
    FRepeatTimer.OnTimer := TimerExpired;
    FRepeatTimer.Interval := InitRepeatPause;
    FRepeatTimer.TimerType := ttSystem;
    FRepeatTimer.Enabled := True;
  end;
end;

procedure TVrTimerSpinButton.MouseUp(Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  inherited MouseUp(Button, Shift, X, Y);
  if FRepeatTimer <> nil then
    FRepeatTimer.Enabled  := False;
end;

procedure TVrTimerSpinButton.TimerExpired(Sender: TObject);
begin
  FRepeatTimer.Interval := RepeatPause;
  if (MouseBtnDown) and MouseCapture then
  begin
    try
      DoClick;
    except
      FRepeatTimer.Enabled := False;
      raise;
    end;
  end;
end;

procedure TVrTimerSpinButton.Paint;
var
  R: TRect;
begin
  inherited Paint;
  if tbFocusRect in FTimeBtnState then
  begin
    R := Bounds(0, 0, Width, Height);
    InflateRect(R, -3, -3);
    Canvas.Brush.Style := bsSolid;
    Canvas.Brush.Color := clBlack;
    Canvas.FrameRect(R);
  end;
end;


end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级欧美三级日产三级99| 亚洲一二三专区| 精品视频一区三区九区| 麻豆精品一区二区综合av| 国产精品成人在线观看| 日韩一级大片在线| 91毛片在线观看| 国产高清久久久| 蜜桃久久精品一区二区| 一区二区三区视频在线看| 久久精品一区二区三区四区| 欧美精品tushy高清| 91在线porny国产在线看| 国产自产v一区二区三区c| 五月天久久比比资源色| 中文字幕日韩欧美一区二区三区| 日韩欧美一区二区不卡| 91丨九色丨蝌蚪富婆spa| 国产91丝袜在线观看| 六月婷婷色综合| 亚洲mv在线观看| 亚洲日本成人在线观看| 国产欧美日韩三级| 久久久777精品电影网影网| 91精品国产美女浴室洗澡无遮挡| 91丨porny丨户外露出| 成人激情图片网| 国产成人亚洲综合色影视| 激情亚洲综合在线| 蜜桃在线一区二区三区| 日韩高清不卡在线| 视频一区二区欧美| 偷窥国产亚洲免费视频| 亚洲第一久久影院| 亚洲福利视频一区二区| 亚洲国产精品久久一线不卡| 亚洲国产视频一区二区| 亚洲最新视频在线播放| 亚洲主播在线观看| 亚洲一级二级三级| 亚洲国产wwwccc36天堂| 亚洲一区视频在线| 亚洲一区在线免费观看| 亚洲人成伊人成综合网小说| 亚洲精品美国一| 一区二区三区成人| 亚洲成人精品在线观看| 秋霞影院一区二区| 久久99精品久久久久久国产越南| 紧缚奴在线一区二区三区| 国产精品乡下勾搭老头1| 亚洲天天做日日做天天谢日日欢| 欧洲日韩一区二区三区| www成人在线观看| 欧美一区二区三区四区久久| 欧美天天综合网| 99久久精品免费精品国产| 免费欧美日韩国产三级电影| 天堂久久久久va久久久久| 亚洲高清在线视频| 亚洲国产精品天堂| 久久久久久免费网| 床上的激情91.| 精品一区二区三区在线视频| 激情图片小说一区| 99精品欧美一区二区蜜桃免费| 欧美综合一区二区| 精品久久久影院| 中文字幕在线观看一区二区| 一区二区三区四区视频精品免费 | 国产一区二区免费看| 国产成人免费视| 在线精品视频一区二区三四| 欧美一级二级在线观看| 国产精品美女久久久久久久久| 一片黄亚洲嫩模| 国产一区欧美一区| 日本电影欧美片| 精品免费视频一区二区| 日韩伦理av电影| 日本va欧美va欧美va精品| 成人免费视频视频| 欧美一区二区三区在| 欧美国产视频在线| 日韩国产欧美视频| 99视频有精品| 精品国产百合女同互慰| 亚洲黄网站在线观看| 激情av综合网| 色婷婷国产精品综合在线观看| 精品免费国产一区二区三区四区| 一区二区三区中文在线观看| 精品一区二区三区免费毛片爱| 日本久久一区二区三区| 精品国产乱码久久久久久免费| 一区在线播放视频| 久久av老司机精品网站导航| 欧美制服丝袜第一页| 国产日韩欧美在线一区| 亚洲国产裸拍裸体视频在线观看乱了| 麻豆精品在线看| 欧美性高清videossexo| 国产精品视频一区二区三区不卡| 免费成人性网站| 日本精品视频一区二区| 久久精品男人的天堂| 日本亚洲免费观看| 欧美午夜影院一区| 综合网在线视频| 国产精品99久久久久久宅男| 亚洲午夜视频在线| 色综合天天综合网天天狠天天 | 日韩欧美美女一区二区三区| 亚洲免费观看视频| 99久久精品国产毛片| 久久综合久久综合九色| 久久疯狂做爰流白浆xx| 日韩欧美国产不卡| 久久国产精品色| 久久久国产午夜精品| 国产成人精品www牛牛影视| 欧美三级乱人伦电影| 亚洲视频图片小说| 不卡的av在线播放| 精品国产免费一区二区三区四区 | 国产色产综合色产在线视频| 免费在线一区观看| 欧美高清视频一二三区| 国产精品久久久久桃色tv| 国产伦精品一区二区三区免费迷| 91麻豆精品国产自产在线观看一区 | 国产欧美一区二区精品忘忧草| 日产国产欧美视频一区精品| 欧美美女黄视频| 亚洲第一激情av| 欧美乱妇一区二区三区不卡视频| 亚洲男人的天堂在线观看| 99久久99久久精品国产片果冻| 日本一区二区视频在线观看| 成人黄色av电影| 国产精品午夜在线| 99久久精品免费看国产| 亚洲色图20p| 欧美日韩在线三级| 日韩成人一级片| 精品理论电影在线| 国产精品亚洲一区二区三区妖精 | 国产人久久人人人人爽| 国产成人免费视频网站| 成人免费一区二区三区在线观看 | 欧美午夜精品久久久久久超碰| 亚洲电影在线播放| 日韩欧美国产电影| 成人免费福利片| 一区二区不卡在线视频 午夜欧美不卡在| 欧美三级视频在线观看| 蜜臀精品一区二区三区在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 国产成a人无v码亚洲福利| 亚洲男人的天堂在线观看| 欧美丰满嫩嫩电影| 国产一区二区三区在线看麻豆| 国产精品看片你懂得| 久久精品国产一区二区| 亚洲影视资源网| 日韩电影免费一区| 欧美老女人在线| 欧美精品亚洲一区二区在线播放| 懂色一区二区三区免费观看| 国模套图日韩精品一区二区| 免费成人结看片| 日韩高清不卡一区二区| 日产国产欧美视频一区精品| 丝袜美腿一区二区三区| 亚洲成a人片在线不卡一二三区| 亚洲最新视频在线观看| 色综合天天综合在线视频| 在线不卡a资源高清| 欧美—级在线免费片| 在线国产电影不卡| 国产一区二区三区精品欧美日韩一区二区三区| 国产精品麻豆99久久久久久| 欧美日韩国产高清一区二区三区 | 成人激情免费电影网址| 日韩精品一级中文字幕精品视频免费观看| 日韩欧美电影一区| 91美女在线视频| 国内成人精品2018免费看| 亚洲一区二区三区四区在线免费观看| 欧美大白屁股肥臀xxxxxx| 91亚洲国产成人精品一区二区三 | av在线一区二区三区| 三级欧美在线一区| 亚洲天堂av一区| 久久一区二区视频| 欧美日本韩国一区二区三区视频| 成人爱爱电影网址| 久久97超碰国产精品超碰| 亚洲国产成人porn| 亚洲三级在线免费|