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

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

?? vrdesign.pas

?? 作工控的好控件
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
    property Font3D: TVrFont3D read FFont3D write SetFont3D;
    property BitmapList: TVrBitmapList read FBitmapList write SetBitmapList;
    property TextureIndex: Integer read FTextureIndex write SetTextureIndex default -1;
    property TextureStyle: TVrRadioButtonTexture read FTextureStyle write SetTextureStyle default rbtTile;
    property Checked: Boolean read FChecked write SetChecked default false;
    property FocusColor: TColor read FFocusColor write SetFocusColor default clBlue;
    property FocusOffset: Integer read FFocusOffset write SetFocusOffset default 0;    
    property OnChange: TNotifyEvent read FOnChange write FOnChange;
{$IFDEF VER110}
    property Anchors;
    property Constraints;
{$ENDIF}
    property Caption;
    property Color;
    property DragCursor;
{$IFDEF VER110}
    property DragKind;
{$ENDIF}
    property DragMode;
    property Enabled;
    property Font;
    property ParentFont;
    property ParentColor;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property TabOrder;
    property TabStop default false;
    property Visible;
    property OnClick;
{$IFDEF VER130}
    property OnContextPopup;
{$ENDIF}
    property OnDragDrop;
    property OnDragOver;
{$IFDEF VER110}
    property OnEndDock;
{$ENDIF}
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
{$IFDEF VER110}
    property OnStartDock;
{$ENDIF}
    property OnStartDrag;
  end;


implementation

{ TVrBitmapButton }

constructor TVrBitmapButton.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csOpaque, csReplicatable] -
    [csDoubleClicks, csSetCaption];
  Width := 50;
  Height := 50;
  Color := clBtnFace;
  ParentColor := false;
  FGlyph := TBitmap.Create;
  FGlyph.OnChange := GlyphChanged;
  FMask := TBitmap.Create;
  FNumGlyphs := 1;
  FAutoSize := false;
  FVIndent := 2;
  FHIndent := 2;
  FTransparentMode := tmColor;
end;

destructor TVrBitmapButton.Destroy;
begin
  FMask.Free;
  FGlyph.Free;
  inherited Destroy;
end;

procedure TVrBitmapButton.Loaded;
begin
  inherited Loaded;
  AdjustImageSize;
  FMask.Assign(Glyph);
  FMask.Mask(Self.Color);
end;

procedure TVrBitmapButton.Paint;
var
  Index: Integer;
begin
  AdjustBounds;

  ClearBitmapCanvas;

  Index := 0;
  if FHasMouse then Index := 1;
  if Down then Index := 2;
  if not Enabled then Index := 3;
  if Succ(Index) > NumGlyphs then Index := 0;

  if not Glyph.Empty then
    with BitmapCanvas do
    begin
      if Transparent then Brush.Style := bsClear
      else Brush.Style := bsSolid;
      BrushCopy(DestRect, FGlyph, GetImageRect(Index), GetTransparentColor);
    end;

  ShowDesignFrame(BitmapCanvas);

  inherited Paint;
end;

function TVrBitmapButton.GetTransparentColor: TColor;
begin
  Result := Self.Color;
  if (not Glyph.Empty) and (TransparentMode = tmPixel) then
    Result := Glyph.Canvas.Pixels[0,0];
end;

function TVrBitmapButton.GetPalette: HPALETTE;
begin
  Result := 0;
  if not Glyph.Empty then
    Result := Glyph.Palette;
end;

procedure TVrBitmapButton.AdjustImageSize;
begin
  FImageWidth := 0;
  FImageHeight := 0;
  if not Glyph.Empty then
  begin
    FImageWidth := Glyph.Width div NumGlyphs;
    FImageHeight := Glyph.Height;
  end;
end;

function TVrBitmapButton.GetImageRect(Index: Integer): TRect;
begin
  Result := Bounds(Index * FImageWidth, 0, FImageWidth, FImageHeight)
end;

procedure TVrBitmapButton.AdjustBounds;
begin
  if (AutoSize) and (Align = alNone) then
    if (FImageWidth > 0) and (FImageHeight > 0) then
      SetBounds(Left, Top, FImageWidth + HIndent + 1, FImageHeight + VIndent + 1);
end;

function TVrBitmapButton.DestRect: TRect;
var
  MidX, MidY: Integer;
begin
  MidX := (ClientWidth - FImageWidth) div 2;
  MidY := (ClientHeight - FImageHeight) div 2;
  Result := Bounds(MidX, MidY, FImageWidth, FImageHeight);
  if Down then OffsetRect(Result, HIndent, VIndent);
end;

procedure TVrBitmapButton.GlyphChanged(Sender: TObject);
begin
  AdjustImageSize;
  UpdateControlCanvas;
end;

procedure TVrBitmapButton.SetGlyph(Value: TBitmap);
begin
  FGlyph.Assign(Value);
  FMask.Assign(Value);
  FMask.Mask(Self.Color);
end;

procedure TVrBitmapButton.SetNumGlyphs(Value: TVrNumGlyphs);
begin
  if (FNumGlyphs <> Value) then
  begin
    FNumGlyphs := Value;
    AdjustImageSize;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapButton.SetVIndent(Value: Integer);
begin
  if (FVIndent <> Value) and (Value >= 0) then
  begin
    FVIndent := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapButton.SetHIndent(Value: Integer);
begin
  if (FHIndent <> Value) and (Value >= 0) then
  begin
    FHIndent := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapButton.SetAutoSize(Value: Boolean);
begin
  if FAutoSize <> Value then
  begin
    FAutoSize := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapButton.SetTransparentMode(Value: TVrTransparentMode);
begin
  if FTransparentMode <> Value then
  begin
    FTransparentMode := Value;
    UpdateControlCanvas;
  end;
end;

function TVrBitmapButton.InControl(X, Y: Integer): Boolean;
var
  R: TRect;
begin
  R := ClientRect;
  Result := (PtInRect(R, Point(X, Y))) and
            (FMask.Canvas.Pixels[X, Y] = clBlack);
end;

procedure TVrBitmapButton.DoMouseDown(XPos, YPos: Integer);
begin
  if InControl(XPos, YPos) then
  begin
    Pressed := True;
    Down := True;
    MouseCapture := true;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapButton.WMLButtonDown(var Message: TWMLButtonDown);
begin
  inherited;
  DoMouseDown(Message.XPos, Message.YPos);
end;

procedure TVrBitmapButton.WMMouseMove(var Message: TWMMouseMove);
var
  P: TPoint;
begin
  inherited;
  if Pressed then
  begin
    P := Point(Message.XPos, Message.YPos);
    if InControl(P.X, P.Y) <> Down then
    begin
      Down := not Down;
      UpdateControlCanvas;
    end;
  end;
end;

procedure TVrBitmapButton.WMLButtonUp(var Message: TWMLButtonUp);
var
  DoClick: Boolean;
begin
  MouseCapture := false;
  DoClick := Pressed and Down;
  Down := false;
  Pressed := false;
  if DoClick then
  begin
    UpdateControlCanvas;
    inherited; // Click;
  end;
end;

procedure TVrBitmapButton.CMMouseEnter(var Message: TMessage);
begin
  inherited;
  FHasMouse := True;
  UpdateControlCanvas;
end;

procedure TVrBitmapButton.CMMouseLeave(var Message: TMessage);
begin
  inherited;
  FHasMouse := false;
  UpdateControlCanvas;
end;

procedure TVrBitmapButton.CMEnabledChanged(var Message: TMessage);
begin
  inherited;
  UpdateControlCanvas;
end;


{ TVrBitmapImage }

constructor TVrBitmapImage.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csOpaque, csReplicatable];
  Width := 105;
  Height := 105;
  Color := clBtnFace;
  ParentColor := false;
  FAutoSize := false;
  FCenter := True;
  FStretch := false;
  FBitmapIndex := -1;
  FBitmapListLink := TVrChangeLink.Create;
  FBitmapListLink.OnChange := BitmapListChanged;
end;

destructor TVrBitmapImage.Destroy;
begin
  FBitmapListLink.Free;
  inherited Destroy;
end;

function TVrBitmapImage.GetBitmap: TBitmap;
begin
  Result := nil;
  if Assigned(FBitmapList) then
    Result := FBitmapList.GetBitmap(BitmapIndex);
end;

procedure TVrBitmapImage.SetBitmapList(Value: TVrBitmapList);
begin
  if FBitmapList <> nil then
    FBitmapList.RemoveLink(FBitmapListLink);
  FBitmapList := Value;
  if FBitmapList <> nil then
    FBitmapList.InsertLink(FBitmapListLink);
  UpdateControlCanvas;
end;

procedure TVrBitmapImage.BitmapListChanged(Sender: TObject);
begin
  UpdateControlCanvas;
end;

function TVrBitmapImage.GetPalette: HPALETTE;
begin
  Result := 0;
  if GetBitmap <> nil then
    Result := GetBitmap.Palette;
end;

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

function TVrBitmapImage.DestRect: TRect;
begin
  if Stretch then
    Result := ClientRect
  else if Center then
    Result := Bounds((Width - FBitmap.Width) div 2, (Height - FBitmap.Height) div 2,
      FBitmap.Width, FBitmap.Height)
  else
    Result := Rect(0, 0, FBitmap.Width, FBitmap.Height);
end;

procedure TVrBitmapImage.AdjustBounds;
begin
  if (AutoSize) and (Align = alNone) then
    if (FBitmap.Width > 0) and (FBitmap.Height > 0) then
      SetBounds(Left, Top, FBitmap.Width, FBitmap.Height);
end;

procedure TVrBitmapImage.Paint;
begin
  FBitmap := GetBitmap;
  if FBitmap <> nil then AdjustBounds;
  ClearBitmapCanvas;
  if FBitmap <> nil then
    with BitmapCanvas do
    begin
      if Transparent then Brush.Style := bsClear
        else Brush.Style := bsSolid;
      BrushCopy(DestRect, FBitmap, BitmapRect(FBitmap), Self.Color);
    end;
  ShowDesignFrame(BitmapCanvas);
  inherited Paint;
end;

procedure TVrBitmapImage.SetAutoSize(Value: Boolean);
begin
  if FAutoSize <> Value then
  begin
    FAutoSize := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapImage.SetCenter(Value: Boolean);
begin
  if FCenter <> Value then
  begin
    FCenter := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapImage.SetStretch(Value: Boolean);
begin
  if FStretch <> Value then
  begin
    FStretch := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapImage.SetBitmapIndex(Value: Integer);
begin
  if FBitmapIndex <> Value then
  begin
    FBitmapIndex := Value;
    UpdateControlCanvas;
  end;
end;

{ TVrCounter }

constructor TVrCounter.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csOpaque];
  Width := 150;
  Height := 25;
  Color := clBtnFace;
  ParentColor := false;
  Transparent := false;
  FValue := 0;
  FDigits := 8;
  FAutoSize := True;
  FSpacing := 0;
  FStretch := false;
  FBitmap := TBitmap.Create;
  FBitmap.OnChange := BitmapChanged;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一成人在线| 国产精品不卡在线观看| 成人h精品动漫一区二区三区| 亚洲欧美国产毛片在线| 日韩一区二区三区在线视频| 不卡的电视剧免费网站有什么| 日韩激情一区二区| 国产精品日韩精品欧美在线| 欧美一区二区三区播放老司机| 91在线观看成人| 成人性视频网站| 国产在线日韩欧美| 天天色天天操综合| 亚洲猫色日本管| 中文字幕精品一区| 精品少妇一区二区三区在线视频| 色欧美乱欧美15图片| 国产成人av一区| 精品伊人久久久久7777人| 一区二区成人在线观看| 日韩理论在线观看| 国产精品麻豆视频| 国产精品无人区| 2020国产成人综合网| 日韩免费一区二区三区在线播放| 欧美中文字幕一区| 一本久久a久久免费精品不卡| 成人爽a毛片一区二区免费| 久久99精品国产麻豆婷婷洗澡| 五月婷婷激情综合网| 一区二区三区自拍| 一区二区三区不卡视频在线观看| 国产精品久久久久久久久图文区| 国产亚洲一本大道中文在线| 精品国产自在久精品国产| 欧美一级理论片| 日韩美一区二区三区| 日韩一区二区电影网| 日韩三级电影网址| 精品久久久久一区| 久久亚洲免费视频| 久久久欧美精品sm网站| 久久久.com| 中文字幕精品—区二区四季| 国产欧美视频一区二区| 国产欧美日韩另类视频免费观看| 国产亚洲欧美一区在线观看| 久久五月婷婷丁香社区| 欧美一级黄色片| 337p亚洲精品色噜噜狠狠| 欧美一区中文字幕| 26uuu亚洲| 中文字幕精品一区二区精品绿巨人 | 亚洲综合精品自拍| 亚洲一本大道在线| 免费xxxx性欧美18vr| 激情亚洲综合在线| 高清国产一区二区| 色综合色狠狠天天综合色| 欧美中文字幕一区| 日韩午夜在线影院| 日本一区二区高清| 一区二区成人在线| 蜜桃久久av一区| 国产精品一级片在线观看| 成人av网站在线观看| 欧美午夜电影一区| 精品三级在线看| 国产精品福利av| 日韩精品乱码av一区二区| 九九国产精品视频| av电影天堂一区二区在线| 欧美怡红院视频| 欧美精品一区二区三区在线 | 欧美性猛交xxxxxxxx| 久久久久久97三级| 一区二区激情小说| 精品一区二区三区蜜桃| 成人动漫视频在线| 欧美一区二区三区不卡| 国产精品视频看| 日本成人在线网站| 风间由美一区二区三区在线观看| 欧美亚洲综合网| 久久综合九色综合久久久精品综合 | 日韩一区欧美二区| 国产.精品.日韩.另类.中文.在线.播放| 91猫先生在线| 欧美不卡视频一区| 亚洲激情五月婷婷| 国内成人精品2018免费看| 91在线视频免费观看| 精品福利av导航| 一个色综合网站| 国产成人免费av在线| 91精品免费观看| 国产精品久久久久一区| 欧美午夜影院一区| 国产拍揄自揄精品视频麻豆| 亚洲二区在线观看| 成人av在线影院| 欧美成人性战久久| 亚洲一区二区欧美日韩| 国产sm精品调教视频网站| 337p亚洲精品色噜噜狠狠| 亚洲免费电影在线| 国产福利不卡视频| 欧美日韩精品三区| 亚洲日韩欧美一区二区在线| 国产九色sp调教91| 欧美一卡二卡在线观看| 亚洲精选视频在线| 不卡的看片网站| 国产午夜精品久久久久久久 | 国产精品国产精品国产专区不蜜| 免费成人你懂的| 欧美视频精品在线观看| 日韩久久一区二区| 不卡的av在线播放| 国产嫩草影院久久久久| 国内精品免费**视频| 91精品国模一区二区三区| 一区二区三区电影在线播| av亚洲精华国产精华精华| 久久综合av免费| 精品一二三四区| 日韩欧美一区二区视频| 日本亚洲欧美天堂免费| 欧美久久久久中文字幕| 亚洲午夜羞羞片| 欧美性做爰猛烈叫床潮| 亚洲伊人伊色伊影伊综合网| 91福利小视频| 亚洲一区二区三区四区在线免费观看 | 午夜精品在线看| 欧美电影一区二区三区| 亚洲va天堂va国产va久| 欧美区一区二区三区| 午夜视黄欧洲亚洲| 欧美日韩精品一区视频| 亚洲成人免费在线| 91精品国产免费| 九九在线精品视频| 久久精品人人做| av激情综合网| 亚洲另类色综合网站| 色女孩综合影院| 亚洲一二三区视频在线观看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲国产日韩精品| 欧美猛男gaygay网站| 日韩电影在线观看一区| 精品国产不卡一区二区三区| 国产一区久久久| 国产精品污污网站在线观看| 不卡的av电影| 亚洲chinese男男1069| 日韩欧美在线网站| 国产毛片一区二区| 国产精品国产精品国产专区不蜜| 99久久精品一区二区| 亚洲123区在线观看| 久久午夜国产精品| 91在线观看视频| 日本欧美在线观看| 亚洲国产精品成人综合色在线婷婷 | 天堂久久一区二区三区| 精品盗摄一区二区三区| 成人性生交大片免费 | 国产999精品久久| 亚洲精品美腿丝袜| 精品久久免费看| 91福利小视频| 国产一区二区三区四区五区美女| 亚洲欧美一区二区三区极速播放| 欧美日韩激情一区二区| 国精品**一区二区三区在线蜜桃| 中文字幕一区二区三区视频| 欧美亚洲一区三区| 久久99九九99精品| 中文在线一区二区| 91精品免费在线观看| 国产精品一区不卡| 亚洲一二三区不卡| 精品久久五月天| 91在线你懂得| 激情五月婷婷综合网| 国产精品萝li| 4438成人网| 大胆亚洲人体视频| 久久精品99国产精品日本| 中文字幕成人网| 精品视频在线看| 91小视频免费观看| 蜜桃av一区二区在线观看| 欧美国产精品一区| 91丝袜美腿高跟国产极品老师| 日本一道高清亚洲日美韩| 国产亚洲一区二区三区在线观看| 色综合亚洲欧洲|