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

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

?? vrdesign.pas

?? 作工控的好控件
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
  FImage := TBitmap.Create;
end;

destructor TVrCounter.Destroy;
begin
  FImage.Free;
  FBitmap.Free;
  inherited Destroy;
end;

procedure TVrCounter.Changed;
begin
  if Assigned(FOnChange) then FOnChange(Self);
end;

procedure TVrCounter.BitmapChanged(Sender: TObject);
begin
  UpdateControlCanvas;
end;

procedure TVrCounter.Paint;
var
  str: string;
  I, V, MidX, MidY: Integer;
begin
  CalcPaintParams;
  ClearBitmapCanvas;

  with FImage, FImage.Canvas do
  begin
    Brush.Color := Self.Color;
    Brush.Style := bsSolid;
    FillRect(Bounds(0, 0, Width, Height));
  end;

  MidX := 0;
  MidY := 0;
  if not Bitmap.Empty then
  begin
    str := Format('%.' + IntToStr(Digits) + 'd', [Value]);
    for I := 1 to Length(str) do
    begin
      V := StrToInt(str[I]);
      FImage.Canvas.BrushCopy(Bounds(MidX, MidY, FDigitSize.X, FDigitSize.Y),
        Bitmap, Bounds(V * FDigitSize.X, 0, FDigitSize.X, FDigitSize.Y),
        Self.Color);
      Inc(MidX, FSpacing + FDigitSize.X);
    end;
  end;

  if Transparent then BitmapCanvas.Brush.Style := bsClear
    else BitmapCanvas.Brush.Style := bsSolid;

  if (Stretch) and (not AutoSize) then
    BitmapCanvas.BrushCopy(ClientRect, FImage,
      BitmapRect(FImage), Self.Color)
  else
  begin
    MidX := (ClientWidth - FImage.Width) div 2;
    MidY := (ClientHeight - FImage.Height) div 2;
    BitmapCanvas.BrushCopy(Bounds(MidX, MidY, FImage.Width, FImage.Height),
      FImage, BitmapRect(FImage), Self.Color);
  end;
  ShowDesignFrame(BitmapCanvas);
  inherited Paint;
end;

procedure TVrCounter.CalcPaintParams;
begin
  if not Bitmap.Empty then
  begin
    FDigitSize.X := Bitmap.Width div 10;
    FDigitSize.Y := Bitmap.Height;
    FImage.Width := (Spacing * Pred(Digits)) + (FDigitSize.X * Digits);
    FImage.Height := Bitmap.Height;
    if AutoSize then
      BoundsRect := Bounds(Left, Top, FImage.Width, FImage.Height);
  end;
end;

function TVrCounter.GetPalette: HPalette;
begin
  if FBitmap.Empty then Result := inherited GetPalette
  else Result := FBitmap.Palette;
end;

procedure TVrCounter.SetValue(Value: TVrCounterValue);
begin
  if FValue <> Value then
  begin
    FValue := Value;
    UpdateControlCanvas;
    Changed;
  end;
end;

procedure TVrCounter.SetDigits(Value: TVrCounterDigits);
begin
  if FDigits <> Value then
  begin
    FDigits := Value;
    UpdateControlCanvas;
  end;
end;

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

procedure TVrCounter.SetBitmap(Value: TBitmap);
begin
  FBitmap.Assign(Value);
end;

procedure TVrCounter.SetSpacing(Value: Integer);
begin
  if FSpacing <> Value then
  begin
    FSpacing := Value;
    UpdateControlCanvas;
  end;
end;

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

{ TVrBitmapCheckBox }

constructor TVrBitmapCheckBox.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := ControlStyle + [csOpaque, csSetCaption] - [csDoubleClicks];
  Width := 140;
  Height := 17;
  TabStop := false;
  FSpacing := 5;
  FMargin := -1;
  FLayout := ImageLeft;
  FState := vcbUnchecked;
  FTransparentColor := clOlive;
  FTextureIndex := -1;
  FTextureStyle := cbtTile;
  FAllowGrayed := false;
  FFocusColor := clBlue;
  FFocusOffset := 0;
  FNumGlyphs := 3;
  FFont3D := TVrFont3D.Create;
  FFont3D.OnChange := Font3DChanged;
  FEnabledGlyphIndex := -1;
  FDisabledGlyphIndex := -1;
  FBitmapListLink := TVrChangeLink.Create;
  FBitmapListLink.OnChange := BitmapListChanged;
end;

destructor TVrBitmapCheckBox.Destroy;
begin
  FFont3D.Free;
  FBitmapListLink.Free;
  inherited Destroy;
end;

procedure TVrBitmapCheckBox.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do
    WindowClass.style := WindowClass.style and not (CS_HREDRAW or CS_VREDRAW);
end;

procedure TVrBitmapCheckBox.UpdateGlyphs;
var
  NewX, NewY: Integer;
begin
  FEnabledGlyphs := GetBitmap(FEnabledGlyphIndex);
  FDisabledGlyphs := GetBitmap(FDisabledGlyphIndex);
  NewX := -1;
  NewY := -1;
  FSize.X := 0;
  FSize.Y := 0;
  if FEnabledGlyphs <> nil then
  begin
    FSize.X := FEnabledGlyphs.Width div NumGlyphs;
    FSize.Y := FEnabledGlyphs.Height;
  end;
  if FDisabledGlyphs <> nil then
  begin
    NewX := FDisabledGlyphs.Width div NumGlyphs;
    NewY := FDisabledGlyphs.Height;
  end;
  if NewX > FSize.X then FSize.X := NewX;
  if NewY > FSize.Y then FSize.Y := NewY;
end;

procedure TVrBitmapCheckBox.Paint;
var
  Index, X, Y: Integer;
  iWidth, iHeight: Integer;
  R: TRect;
  BackImage, Glyphs: TBitmap;
begin
  BackImage := GetBitmap(FTextureIndex);
  if BackImage = nil then ClearBitmapCanvas
  else
  begin
    if TextureStyle = cbtTile then
      DrawTiledBitmap(BitmapCanvas, ClientRect, BackImage)
    else BitmapCanvas.CopyRect(ClientRect, BackImage.Canvas, BitmapRect(BackImage));
  end;

  if (Enabled) or (FDisabledGlyphs = nil) then
    Glyphs := FEnabledGlyphs
  else Glyphs := FDisabledGlyphs;

  with BitmapCanvas do
  begin
    Index := Ord(State); //0, 1 or 2
    if (Glyphs <> nil) and (Index < NumGlyphs) then
    begin
      iWidth := Glyphs.Width div NumGlyphs;
      iHeight := Glyphs.Height;
      X := (WidthOf(FImageRect) - iWidth) div 2;
      Y := (HeightOf(FImageRect) - iHeight) div 2;

      R := Bounds(FImageRect.Left + X, FImageRect.Top + Y, iWidth, iHeight);

      Brush.Style := bsClear;
      BrushCopy(R, Glyphs,
        Bounds(Index * iWidth, 0, iWidth, iHeight), TransparentColor);
    end;

    Font := Self.Font;
    FFont3D.Paint(BitmapCanvas, FTextBounds, Caption,
      DT_LEFT or DT_VCENTER or DT_SINGLELINE);

    if (Focused) and (FocusOffset > -1) then
    begin
      R := ClientRect;
      InflateRect(R, -FocusOffset, -FocusOffset);
      Brush.Color := FocusColor;
      FrameRect(R);
    end;
  end;

  inherited Paint;
end;

procedure TVrBitmapCheckBox.CalcPaintParams(Repaint: Boolean);
var
  ImagePos: TPoint;
begin
  UpdateGlyphs;
  Canvas.Font.Assign(Self.Font);
  CalcImageTextLayout(Canvas, ClientRect, Point(1, 1), Caption, FLayout,
    FMargin, FSpacing, Point(FSize.X, FSize.Y), ImagePos, FTextBounds);
  FImageRect := Bounds(ImagePos.X, ImagePos.Y, FSize.X, FSize.Y);
  if Repaint then UpdateControlCanvas;
end;

procedure TVrBitmapCheckBox.WMSize(var Message: TMessage);
begin
  inherited;
  CalcPaintParams(True);
end;

procedure TVrBitmapCheckBox.CMFontChanged(var Message: TMessage);
begin
  inherited;
  CalcPaintParams(True);
end;

procedure TVrBitmapCheckBox.CMTextChanged(var Message: TMessage);
begin
  inherited;
  if HandleAllocated then
    CalcPaintParams(True);
end;

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

procedure TVrBitmapCheckBox.CMDialogChar(var Message: TCMDialogChar);
begin
  with Message do
    if IsAccel(CharCode, Caption) and CanFocus then
    begin
      SetFocus;
      if Focused then Toggle;
      Result := 1;
    end else inherited;
end;

procedure TVrBitmapCheckBox.CMFocusChanged(var Message: TCMFocusChanged);
var
  Active: Boolean;
begin
  with Message do Active := (Sender = Self);
  if Active <> FFocused then
  begin
    FFocused := Active;
    UpdateControlCanvas;
  end;
  inherited;
end;

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

function TVrBitmapCheckBox.GetBitmap(Index: Integer): TBitmap;
begin
  Result := nil;
  if Assigned(FBitmapList) then
    Result := FBitmapList.GetBitmap(Index);
end;

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

procedure TVrBitmapCheckBox.BitmapListChanged(Sender: TObject);
begin
  CalcPaintParams(True);
end;

procedure TVrBitmapCheckBox.SetEnabledGlyphIndex(Value: Integer);
begin
  if FEnabledGlyphIndex <> Value then
  begin
    FEnabledGlyphIndex := Value;
    CalcPaintParams(True);
  end;
end;

procedure TVrBitmapCheckBox.SetDisabledGlyphIndex(Value: Integer);
begin
  if FDisabledGlyphIndex <> Value then
  begin
    FDisabledGlyphIndex := Value;
    CalcPaintParams(True);
  end;
end;

procedure TVrBitmapCheckBox.Font3DChanged(Sender: TObject);
begin
  UpdateControlCanvas;
end;

procedure TVrBitmapCheckBox.SetFont3D(Value: TVrFont3D);
begin
  FFont3D.Assign(Value);
end;

procedure TVrBitmapCheckBox.SetLayout(Value: TVrImageTextLayout);
begin
  if FLayout <> Value then
  begin
    FLayout := Value;
    CalcPaintParams(True);
  end;
end;

procedure TVrBitmapCheckBox.SetMargin(Value: Integer);
begin
  if FMargin <> Value then
  begin
    FMargin := Value;
    CalcPaintParams(True);
  end;
end;

procedure TVrBitmapCheckBox.SetSpacing(Value: Integer);
begin
  if FSpacing <> Value then
  begin
    FSpacing := Value;
    CalcPaintParams(True);
  end;
end;

procedure TVrBitmapCheckBox.SetState(Value: TVrCheckBoxState);
begin
  if FState <> Value then
  begin
    FState := Value;
    UpdateControlCanvas;
    Changed;
  end;
end;

procedure TVrBitmapCheckBox.SetNumGlyphs(Value: TVrCheckBoxGlyphs);
begin
  if FNumGlyphs <> Value then
  begin
    FNumGlyphs := Value;
    CalcPaintParams(True);
  end;
end;

procedure TVrBitmapCheckBox.SetTransparentColor(Value: TColor);
begin
  if FTransparentColor <> Value then
  begin
    FTransparentColor := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapCheckBox.SetTextureIndex(Value: Integer);
begin
  if FTextureIndex <> Value then
  begin
    FTextureIndex := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapCheckBox.SetTextureStyle(Value: TVrCheckBoxTexture);
begin
  if FTextureStyle <> Value then
  begin
    FTextureStyle := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapCheckBox.SetFocusColor(Value: TColor);
begin
  if FFocusColor <> Value then
  begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷综合另类小说色区| 欧美日韩免费电影| 国产亚洲欧美激情| 久草中文综合在线| 精品国产免费久久| 国产精品69毛片高清亚洲| 久久久久99精品国产片| 色综合天天综合网国产成人综合天 | 7777精品伊人久久久大香线蕉 | 日本一区二区免费在线| 成人视屏免费看| 亚洲人被黑人高潮完整版| 欧美色偷偷大香| 日韩综合在线视频| 国产夜色精品一区二区av| 不卡的av网站| 日韩黄色小视频| 国产欧美精品一区aⅴ影院 | 日日骚欧美日韩| 久久女同精品一区二区| 久久久久久毛片| 久久国产人妖系列| 国产精品美女久久久久久2018| 99久久er热在这里只有精品15| 亚洲第一激情av| 国产欧美一区二区精品婷婷| 欧美日本国产视频| 成人午夜精品一区二区三区| 一区二区免费在线| 久久精品视频免费观看| 欧美日韩中文精品| 波多野结衣亚洲| 免费在线看成人av| 樱花草国产18久久久久| 久久精品这里都是精品| 欧美一区二区三区成人| 欧美午夜免费电影| 91老司机福利 在线| 国产sm精品调教视频网站| 国产精品影视网| 激情六月婷婷综合| 天涯成人国产亚洲精品一区av| 一区二区在线观看视频在线观看| 久久精品亚洲国产奇米99| 精品久久久久一区二区国产| 欧美一卡在线观看| 欧美第一区第二区| 久久综合久久综合亚洲| 亚洲亚洲精品在线观看| 亚洲综合色视频| 日本不卡在线视频| 天堂在线一区二区| 裸体歌舞表演一区二区| 国产综合色产在线精品| 国产精品一区二区在线观看网站 | 亚洲电影第三页| 免费在线一区观看| 成人永久aaa| 欧美三级电影网| 精品国产一区二区亚洲人成毛片 | 国产成人在线看| 日本精品视频一区二区三区| 色婷婷综合在线| 亚洲欧美国产77777| 洋洋av久久久久久久一区| 日本麻豆一区二区三区视频| 国模无码大尺度一区二区三区| 国产·精品毛片| 欧美丰满嫩嫩电影| 国产精品免费久久久久| 人人狠狠综合久久亚洲| 9人人澡人人爽人人精品| 91麻豆精品国产91久久久资源速度| 日韩视频一区二区三区 | 亚洲国产成人在线| 肉丝袜脚交视频一区二区| 成人激情av网| 欧美成人国产一区二区| 亚洲国产wwwccc36天堂| 国产成人高清在线| 日韩欧美一二三| 日韩精品1区2区3区| 91蜜桃传媒精品久久久一区二区| 精品久久久久av影院| 亚洲成人精品影院| 色婷婷av一区| 一区二区三区精品| 成人av网站在线| 国产日韩欧美精品电影三级在线| 视频在线观看一区二区三区| 欧美日韩亚洲综合在线 | 久久先锋资源网| 国产麻豆视频精品| 国产精品大尺度| 丰满少妇在线播放bd日韩电影| 亚洲美女区一区| 91精品办公室少妇高潮对白| 国产精品全国免费观看高清 | 亚洲精品国产高清久久伦理二区| a级高清视频欧美日韩| 伊人一区二区三区| 欧美剧情电影在线观看完整版免费励志电影 | 国产精品一区二区不卡| 久久中文字幕电影| 成人精品视频一区二区三区尤物| 国产免费久久精品| 99精品热视频| 亚洲一区在线电影| 日韩亚洲欧美综合| 激情欧美一区二区| 日韩一区欧美小说| 欧美一级夜夜爽| www.在线欧美| 久久精工是国产品牌吗| 国产精品狼人久久影院观看方式| 在线电影国产精品| 精品亚洲aⅴ乱码一区二区三区| 中文av一区二区| 欧美日韩你懂得| 大白屁股一区二区视频| 亚洲激情第一区| xf在线a精品一区二区视频网站| 91小视频在线免费看| 日韩精品亚洲一区| 综合欧美亚洲日本| 欧美精品一区二区三区蜜桃| 色一情一伦一子一伦一区| 久久国产三级精品| 亚洲国产一区在线观看| 中文一区在线播放| 精品日本一线二线三线不卡| 在线精品国精品国产尤物884a| 美日韩一区二区三区| 亚洲欧美日韩人成在线播放| 国产亚洲美州欧州综合国| 51精品久久久久久久蜜臀| 91亚洲男人天堂| 北条麻妃国产九九精品视频| 精品无人码麻豆乱码1区2区| 天天色图综合网| 亚洲一区二区高清| 日韩理论电影院| 亚洲视频小说图片| 亚洲国产精品99久久久久久久久| 精品国产电影一区二区| 日韩欧美在线1卡| 欧美成人一区二区三区片免费 | 国产视频一区二区在线观看| 亚洲精品在线电影| 久久综合九色综合97_久久久| 日韩一级片在线观看| 精品粉嫩超白一线天av| 欧美成人官网二区| 欧美国产精品中文字幕| 精品一二三四区| 成人少妇影院yyyy| 一本色道a无线码一区v| 欧美日韩日日摸| 亚洲精品一区二区三区福利| 国产欧美精品国产国产专区| 国产精品久久777777| 一区二区三区在线观看国产| 午夜精品福利一区二区三区av| 蜜臀av一级做a爰片久久| 国产成人自拍高清视频在线免费播放| 国产一区二区精品在线观看| 97久久精品人人做人人爽50路| 欧美亚洲国产一区在线观看网站| 91麻豆精品国产综合久久久久久| 久久亚洲精品国产精品紫薇| 亚洲伦在线观看| 国产一区二区三区免费| 91激情五月电影| 久久精品欧美一区二区三区不卡| 尤物av一区二区| 国产在线一区二区综合免费视频| 91麻豆国产自产在线观看| 欧美精品一区二区三区高清aⅴ| 亚洲视频在线一区| 国产麻豆视频精品| 欧美色欧美亚洲另类二区| 国产精品久久久久婷婷二区次| 日韩电影在线免费观看| 欧美综合一区二区三区| 亚洲欧美综合另类在线卡通| 久久精品国产久精国产爱| 日韩一区二区在线看| 日韩美女久久久| 国产传媒一区在线| 欧美日韩一卡二卡三卡| 亚洲综合色自拍一区| 色哦色哦哦色天天综合| 日韩一区二区免费在线观看| 51精品久久久久久久蜜臀| 日韩精品资源二区在线| 亚洲视频免费在线| 日韩午夜中文字幕| 一本一道综合狠狠老| 国产在线精品不卡| 亚洲不卡av一区二区三区|