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

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

?? vrdesign.pas

?? 作工控的好控件
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
    FFocusColor := Value;
    UpdateControlCanvas;
  end;
end;

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

function TVrBitmapCheckBox.GetChecked: Boolean;
begin
  Result := State = vcbChecked;
end;

procedure TVrBitmapCheckBox.SetChecked(Value: Boolean);
begin
  if Value then State := vcbChecked else State := vcbUnchecked;
end;

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

procedure TVrBitmapCheckBox.Toggle;
begin
  case State of
    vcbUnchecked:
      if AllowGrayed then State := vcbGrayed else State := vcbChecked;
    vcbChecked: State := vcbUnchecked;
    vcbGrayed: State := vcbChecked;
  end;
end;

procedure TVrBitmapCheckBox.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  inherited MouseDown(Button, Shift, X, Y);
  if Button = mbLeft then
  begin
    if TabStop then SetFocus;
    FButtonDown := True;
  end;
end;

procedure TVrBitmapCheckBox.MouseUp(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  if FButtonDown then
  begin
    FButtonDown := false;
    if PtInRect(ClientRect, Point(X, Y)) then
      Toggle;
  end;
  inherited MouseUp(Button, Shift, X, Y);
end;

procedure TVrBitmapCheckBox.Keypress(var Key: Char);
begin
  if Key = #32 then Toggle;
  inherited;
end;

{ TVrBitmapRadioButton }

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

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

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

procedure TVrBitmapRadioButton.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 TVrBitmapRadioButton.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 = rbtTile 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(FChecked); //0 or 1
    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 TVrBitmapRadioButton.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 TVrBitmapRadioButton.WMSize(var Message: TMessage);
begin
  inherited;
  CalcPaintParams(True);
end;

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

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

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

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

procedure TVrBitmapRadioButton.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 TVrBitmapRadioButton.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) then
    if AComponent = BitmapList then BitmapList := nil;
end;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

procedure TVrBitmapRadioButton.SetFocusColor(Value: TColor);
begin
  if FFocusColor <> Value then
  begin
    FFocusColor := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapRadioButton.SetFocusOffset(Value: Integer);
begin
  if FFocusOffset <> Value then
  begin
    FFocusOffset := Value;
    UpdateControlCanvas;
  end;
end;

procedure TVrBitmapRadioButton.SetChecked(Value: Boolean);

  procedure TurnSiblingsOff;
  var
    I: Integer;
    Sibling: TControl;
  begin
    if Parent <> nil then
      with Parent do
        for I := 0 to ControlCount - 1 do
        begin
          Sibling := Controls[I];
          if (Sibling <> Self) and (Sibling is TVrBitmapRadioButton) then
            TVrBitmapRadioButton(Sibling).SetChecked(False);
        end;
  end;

begin
  if FChecked <> Value then
  begin
    FChecked := Value;
    TabStop := Value;
    if Value then TurnSiblingsOff;
    UpdateControlCanvas;
    Changed;
  end;
end;

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

procedure TVrBitmapRadioButton.MouseDown(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  inherited MouseDown(Button, Shift, X, Y);
  if Button = mbLeft then
  begin
    if CanFocus then SetFocus;
    FButtonDown := True;
  end;
end;

procedure TVrBitmapRadioButton.MouseUp(Button: TMouseButton; Shift: TShiftState;
  X, Y: Integer);
begin
  if FButtonDown then
  begin
    FButtonDown := false;
    if PtInRect(ClientRect, Point(X, Y)) then
      Checked := True;
  end;
  inherited MouseUp(Button, Shift, X, Y);
end;

procedure TVrBitmapRadioButton.Keypress(var Key: Char);
begin
  if Key = #32 then Checked := True;
  inherited;
end;


end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91丝袜在线18| 91麻豆免费看| 亚洲黄色小视频| 2欧美一区二区三区在线观看视频| 成人黄色片在线观看| 免费观看一级欧美片| 欧美国产97人人爽人人喊| 在线不卡一区二区| 99国产精品视频免费观看| 美女性感视频久久| 一区二区三区蜜桃网| 国产亚洲精久久久久久| 91精品国产91综合久久蜜臀| 色94色欧美sute亚洲13| 成人一区二区三区中文字幕| 美女www一区二区| 亚洲午夜视频在线观看| 亚洲婷婷在线视频| 国产目拍亚洲精品99久久精品| 91精品国产综合久久婷婷香蕉| 色综合色综合色综合色综合色综合| 韩国v欧美v亚洲v日本v| 午夜激情一区二区| 一卡二卡三卡日韩欧美| 中文字幕一区二区三区乱码在线| 26uuu色噜噜精品一区二区| 91精品国产综合久久久蜜臀粉嫩 | 久久久综合网站| 日韩一区二区在线免费观看| 欧美性欧美巨大黑白大战| 一本色道综合亚洲| 色综合久久久久综合99| 99久久99精品久久久久久| 国产成人精品亚洲午夜麻豆| 国产麻豆视频精品| 国产精品主播直播| 国产麻豆91精品| 国产精品亚洲第一| 激情欧美日韩一区二区| 久久国产视频网| 久久国产精品无码网站| 理论电影国产精品| 久久超级碰视频| 精品一二线国产| 激情综合网av| 国产精品一区在线观看你懂的| 国产在线精品免费av| 国产精品888| 成人午夜短视频| 不卡av免费在线观看| 欧美不卡视频一区| 欧美一区二区私人影院日本| 欧美刺激午夜性久久久久久久| 91精品国产色综合久久不卡电影| 日韩亚洲欧美综合| 欧美精品一区二区三区蜜臀| 久久综合久久综合久久| 日本一区二区三区国色天香| 国产精品毛片无遮挡高清| 亚洲丝袜制服诱惑| 亚洲午夜在线观看视频在线| 免费人成在线不卡| 国产99精品国产| 色婷婷亚洲精品| 在线电影一区二区三区| 26uuu亚洲婷婷狠狠天堂| 国产精品妹子av| 亚洲影院在线观看| 日本麻豆一区二区三区视频| 韩国成人福利片在线播放| 波波电影院一区二区三区| 91成人免费网站| 日韩一区二区三区视频在线| 久久九九久久九九| 亚洲一区二区精品3399| 蜜桃一区二区三区在线| 国产一二三精品| 一本大道久久精品懂色aⅴ| 欧美妇女性影城| 久久久久久**毛片大全| 亚洲精品日产精品乱码不卡| 日韩国产欧美一区二区三区| 国产福利一区二区三区在线视频| 一本大道久久精品懂色aⅴ| 日韩一级完整毛片| 亚洲手机成人高清视频| 蜜桃一区二区三区在线| 91免费在线视频观看| 日韩欧美久久久| 亚洲欧美经典视频| 久久草av在线| 欧美性欧美巨大黑白大战| 久久久久久久久久看片| 亚洲已满18点击进入久久| 国产传媒久久文化传媒| 欧美日韩不卡在线| 国产精品国模大尺度视频| 日韩激情一二三区| 99精品黄色片免费大全| 日韩精品在线一区| 亚洲欧美日韩精品久久久久| 国模套图日韩精品一区二区| 欧美视频自拍偷拍| 国产精品久久久一区麻豆最新章节| 日韩精品一卡二卡三卡四卡无卡| av在线不卡免费看| 26uuu色噜噜精品一区二区| 亚洲第一会所有码转帖| 成人高清视频在线观看| 精品少妇一区二区三区| 成人白浆超碰人人人人| 欧美一级久久久| 亚洲综合色自拍一区| 国产 欧美在线| 精品卡一卡二卡三卡四在线| 视频精品一区二区| 日本精品视频一区二区| 中文字幕一区二区三区在线播放 | 视频在线观看一区| 99久久国产综合精品色伊| 欧美精品一区二区在线播放| 三级久久三级久久久| 欧美中文字幕一区二区三区| 亚洲日本一区二区三区| 成人av午夜影院| 久久丝袜美腿综合| 精品一区二区三区免费视频| 欧美一级在线观看| 午夜伦欧美伦电影理论片| 欧美亚洲一区二区在线观看| 亚洲女女做受ⅹxx高潮| 97精品国产露脸对白| 中文字幕在线一区二区三区| 成人av在线网| 国产精品青草久久| 成人av免费在线观看| 国产精品成人在线观看| 99久久er热在这里只有精品66| 中文字幕高清一区| 99久久国产综合精品女不卡| 最新热久久免费视频| zzijzzij亚洲日本少妇熟睡| 中文字幕永久在线不卡| www.欧美日韩| 亚洲精品欧美激情| 91电影在线观看| 亚洲风情在线资源站| 欧美女孩性生活视频| 日韩制服丝袜先锋影音| 日韩欧美国产三级| 国产精品自拍毛片| 国产精品美女久久久久aⅴ| 精品国产人成亚洲区| 国产一区二区电影| 中文字幕一区免费在线观看| 91污在线观看| 亚洲成年人影院| 欧美一区在线视频| 国产一区二区0| 亚洲欧美影音先锋| 欧美日韩精品一区二区三区 | 精品一区免费av| 日本一区二区三区国色天香| 91在线看国产| 午夜精品福利一区二区三区av| 精品国产一区二区亚洲人成毛片| 国产成人夜色高潮福利影视| 亚洲视频一二三区| 制服.丝袜.亚洲.中文.综合| 国产精品影视天天线| 亚洲天堂av老司机| 欧美精品一卡二卡| 国产麻豆91精品| 一区二区三区在线看| 日韩网站在线看片你懂的| 国产不卡视频在线观看| 一区二区在线观看视频在线观看| 91精品久久久久久久91蜜桃| 国产91精品一区二区麻豆亚洲| 亚洲欧美日韩国产另类专区| 日韩精品一区二区三区四区视频| 大胆欧美人体老妇| 亚洲丶国产丶欧美一区二区三区| 久久美女艺术照精彩视频福利播放| 99久久精品免费观看| 免费欧美日韩国产三级电影| 国产欧美一区二区三区在线看蜜臀| 欧美私人免费视频| 成人免费视频视频在线观看免费| 婷婷丁香久久五月婷婷| 国产精品区一区二区三| 91精品国产一区二区三区| 99精品欧美一区二区三区综合在线| 水蜜桃久久夜色精品一区的特点| 国产精品久久三| 欧美videos中文字幕| 在线国产电影不卡| 成人性生交大片免费看中文网站| 日韩成人免费在线| 一区二区三区在线视频播放|