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

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

?? cdibglyphbutton.pas

?? Delphi控件
?? PAS
字號:
unit cDIBGlyphButton;

{-----------------------------------------------------------------------------
The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/MPL-1.1.html

Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
the specific language governing rights and limitations under the License.

The Original Code is: cDIBGlyphButton.PAS, released March 23, 2003.

The Initial Developer of the Original Code is Peter Morris (pete@droopyeyes.com),
Portions created by Peter Morris are Copyright (C) 2003 Peter Morris.
All Rights Reserved.

Purpose of file:
To create a simple non-animated button.

Contributor(s):
None as yet


Last Modified: March 23, 2003

You may retrieve the latest version of this file at http://www.droopyeyes.com


Known Issues:
-----------------------------------------------------------------------------}
//Modifications
(*
Date:
By:
Change:
*)

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  cDIBControl, cDIBButton, cDIBImageList, cDIB;

type
  TNumGlyphs = 2..5;

  EDIBGlyphButtonError = class(EDIBError);
  
  TCustomDIBGlyphButton = class(TAbstractDIBButton)
  private
    FGlyph: TDIBImageLink;
    FNumGlyphs: TNumGlyphs;
    FCaptionOffsetMouseClick: TPointProperty;
    FCaptionOffsetDown: TPointProperty;
    FCaptionOffsetMouseOver: TPointProperty;
    FCaptionOffsetEnabled: TPointProperty;
    FCaptionOffsetDisabled: TPointProperty;
    FFontDisabled: TFont;
    procedure CaptionOffsetChanged(Sender: TObject);
    procedure SetNumGlyphs(const Value: TNumGlyphs);
    procedure SetCaptionOffsetDisabled(const Value: TPointProperty);
    procedure SetCaptionOffsetMouseClick(const Value: TPointProperty);
    procedure SetCaptionOffsetDown(const Value: TPointProperty);
    procedure SetCaptionOffsetEnabled(const Value: TPointProperty);
    procedure SetCaptionOffsetMouseOver(const Value: TPointProperty);
    procedure SetFontDisabled(const Value: TFont);
  protected
    function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override;
    procedure ImageChanged(Index: Integer; Operation: TDIBOperation); override;
    procedure Paint; override;

    property CaptionOffsetEnabled: TPointProperty read FCaptionOffsetEnabled write SetCaptionOffsetEnabled;
    property CaptionOffsetMouseClick: TPointProperty read FCaptionOffsetMouseClick write SetCaptionOffsetMouseClick;
    property CaptionOffsetDown: TPointProperty read FCaptionOffsetDown write SetCaptionOffsetDown;
    property CaptionOffsetDisabled: TPointProperty read FCaptionOffsetDisabled write SetCaptionOffsetDisabled;
    property CaptionOffsetMouseOver: TPointProperty read FCaptionOffsetMouseOver write SetCaptionOffsetMouseOver;
    property FontDisabled: TFont read FFontDisabled write SetFontDisabled;
    property Glyph: TDIBImageLink read FGlyph write FGlyph;
    property NumGlyphs: TNumGlyphs read FNumGlyphs write SetNumGlyphs default 2;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

  TDIBGlyphButton = class(TCustomDIBGlyphButton)
  public
    property Canvas;
    constructor Create(AOwner: TComponent); override;
  published
    property Accelerator;
    property Anchors;
    property Caption;
    property CaptionOffsetEnabled;
    property CaptionOffsetDisabled;
    property CaptionOffsetDown;
    property CaptionOffsetMouseClick;
    property CaptionOffsetMouseOver;
    property Children;
    property Constraints;
    property Cursor;
    property DIBFeatures;
    property DIBImageList;
    property Down;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Enabled;
    property Font;
    property FontDisabled;
    property Glyph;
    property Group;
    property Hint;
    property NumGlyphs;
    property Opacity;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property DIBTabOrder;
    property Tag;
    property ToggleDown;
    property Visible;

    {$I WinControlEvents.inc}
    property OnClick;
    property OnContextPopup;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnMouseDown;
    property OnMouseEnter;
    property OnMouseLeave;
    property OnMouseMove;
    property OnMouseUp;
    property OnPaintStart;
    property OnPaintEnd;
    property OnStartDock;
    property OnStartDrag;
    property OnResize;
  end;

implementation

{ TCustomDIBGlyphButton }

function TCustomDIBGlyphButton.CanAutoSize(var NewWidth,
  NewHeight: Integer): Boolean;
var
  CurrentDIB: TMemoryDIB;
begin
  if Glyph.GetImage(CurrentDIB) then
  begin
    NewWidth := CurrentDIB.Width div NumGlyphs;
    NewHeight := CurrentDIB.Height;
  end;
  Result := True;
end;

procedure TCustomDIBGlyphButton.CaptionOffsetChanged(Sender: TObject);
begin
  Invalidate;
end;

constructor TCustomDIBGlyphButton.Create(AOwner: TComponent);
begin
  inherited;
  FFontDisabled := TFont.Create;
  FCaptionOffsetMouseClick := TPointProperty.Create;
  FCaptionOffsetDown := TPointProperty.Create;
  FCaptionOffsetMouseOver := TPointProperty.Create;
  FCaptionOffsetEnabled := TPointProperty.Create;
  FCaptionOffsetDisabled := TPointProperty.Create;
  FCaptionOffsetMouseClick.OnChanged := CaptionOffsetChanged;
  FCaptionOffsetDown.OnChanged := CaptionOffsetChanged;
  FCaptionOffsetMouseOver.OnChanged := CaptionOffsetChanged;
  FCaptionOffsetEnabled.OnChanged := CaptionOffsetChanged;
  FCaptionOffsetDisabled.OnChanged := CaptionOffsetChanged;
  AutoSize := True;
  FNumGlyphs := 2;
  FGlyph := TDIBImageLink.Create(Self);
  AddIndexProperty(FGlyph);
  AddTemplateProperty('NumGlyphs');
  AddTemplateProperty('Opacity');
end;

destructor TCustomDIBGlyphButton.Destroy;
begin
  FreeAndNil(FGlyph);
  FreeAndNil(FCaptionOffsetMouseClick);
  FreeAndNil(FCaptionOffsetDown);
  FreeAndNil(FCaptionOffsetMouseOver);
  FreeAndNil(FCaptionOffsetEnabled);
  FreeAndNil(FCaptionOffsetDisabled);
  FreeAndNil(FFontDisabled);
  inherited;
end;


procedure TCustomDIBGlyphButton.ImageChanged(Index: Integer;
  Operation: TDIBOperation);
begin
  inherited;
  if AutoSize then AdjustSize;
end;

procedure TCustomDIBGlyphButton.Paint;
  function GetGlyphNumber(State: TButtonState): TButtonState;
  begin
    Result := State;
    if Ord(Result) + 1 > NumGlyphs then
    begin
      case State of
        bsDisabled: Result := bsEnabled;
        bsMouseOver : Result := bsEnabled;
        bsDown: Result := bsMouseClick;
      end;
    end;
  end;

var
  CurrentDIB: TMemoryDIB;
  CaptionWidth: Integer;
  CaptionHeight: Integer;
  CaptionX: Integer;
  CaptionY: Integer;
  Offset: TPointProperty;
begin
  inherited;
  if Glyph.GetImage(CurrentDIB) then
  begin
    CurrentDIB.Draw(0, 0, Width, Height, ControlDIB, Width * Ord(GetGlyphNumber(ButtonState)), 0);
    if Caption <> '' then
    begin
      if ButtonState = bsDisabled then
        ControlDIB.Canvas.Font := FontDisabled
      else
        ControlDIB.Canvas.Font := Font;

      CaptionWidth := ControlDIB.Canvas.TextWidth(Caption);
      CaptionHeight := ControlDIB.Canvas.TextHeight(Caption);
      CaptionX := (Width div 2) - (CaptionWidth div 2);
      CaptionY := (Height div 2) - (CaptionHeight div 2);
      Offset := nil;
      case ButtonState of
        bsEnabled: Offset := CaptionOffsetEnabled;
        bsMouseClick: Offset := CaptionOffsetMouseClick;
        bsDisabled: Offset := CaptionOffsetDisabled;
        bsMouseOver: Offset := CaptionOffsetMouseOver;
        bsDown: Offset := CaptionOffsetMouseClick;
      else
        raise EDIBGlyphButtonError.Create('Unknown button state');
      end;
      CaptionX := CaptionX + Offset.X;
      CaptionY := CaptionY + Offset.Y;
      ControlDIB.Canvas.Brush.Style := bsClear;
      ControlDIB.Canvas.TextOut(CaptionX, CaptionY, Caption);
    end;
  end;
end;

procedure TCustomDIBGlyphButton.SetCaptionOffsetDisabled(const Value: TPointProperty);
begin
  FCaptionOffsetMouseClick.Assign(Value);
end;

procedure TCustomDIBGlyphButton.SetCaptionOffsetMouseClick(const Value: TPointProperty);
begin
  FCaptionOffsetMouseClick.Assign(Value);
end;

procedure TCustomDIBGlyphButton.SetCaptionOffsetDown(const Value: TPointProperty);
begin
  FCaptionOffsetDown.Assign(Value);
end;

procedure TCustomDIBGlyphButton.SetCaptionOffsetEnabled(
  const Value: TPointProperty);
begin
  FCaptionOffsetEnabled.Assign(Value);
end;

procedure TCustomDIBGlyphButton.SetCaptionOffsetMouseOver(const Value: TPointProperty);
begin
  FCaptionOffsetMouseOver.Assign(Value);
end;

procedure TCustomDIBGlyphButton.SetFontDisabled(const Value: TFont);
begin
  FFontDisabled.Assign(Value);
  Invalidate;
end;

procedure TCustomDIBGlyphButton.SetNumGlyphs(const Value: TNumGlyphs);
begin
  Assert((Value >= Low(TNumGlyphs)) and (Value <= High(TNumGlyphs)));
  FNumGlyphs := Value;
  if AutoSize then AdjustSize;
end;

{ TDIBGlyphButton }

constructor TDIBGlyphButton.Create(AOwner: TComponent);
begin
  inherited;
  AddTemplateProperty('CaptionOffsetEnabled');
  AddTemplateProperty('CaptionOffsetMouseClick');
  AddTemplateProperty('CaptionOffsetDisabled');
  AddTemplateProperty('CaptionOffsetMouseOver');
  AddTemplateProperty('CaptionOffsetDown');
  AddTemplateProperty('Font');
  AddTemplateProperty('FontDisabled');
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91天堂素人约啪| 91麻豆精品国产综合久久久久久| 亚洲男人天堂av| 日韩欧美国产系列| 色中色一区二区| 成人午夜私人影院| 麻豆精品视频在线| 午夜精品影院在线观看| 中文字幕亚洲在| 精品福利一二区| 欧美日韩中文另类| 成人黄色在线网站| 黄色精品一二区| 日本视频免费一区| 亚洲午夜视频在线观看| 国产精品乱人伦| 国产午夜精品一区二区三区嫩草 | 91浏览器打开| 福利电影一区二区| 毛片av一区二区三区| 亚洲一区影音先锋| 亚洲欧洲日韩一区二区三区| 亚洲精品一区二区三区在线观看| 欧美精品在线观看播放| 色综合久久天天| 99精品欧美一区| 成人激情av网| www.欧美亚洲| 成人黄页毛片网站| 成人午夜免费电影| 成人午夜激情影院| 成人毛片在线观看| 成人开心网精品视频| 大美女一区二区三区| 国产乱人伦精品一区二区在线观看| 青青草精品视频| 午夜视频久久久久久| 亚洲动漫第一页| 香蕉加勒比综合久久| 香蕉影视欧美成人| 视频在线观看一区| 日韩电影在线免费| 日本欧美一区二区| 老司机精品视频导航| 久久精品国产精品亚洲精品| 捆绑紧缚一区二区三区视频| 老司机精品视频在线| 狠狠色伊人亚洲综合成人| 久久66热re国产| 韩国三级电影一区二区| 国产在线看一区| 成人免费观看男女羞羞视频| 成人一区二区三区视频| 风流少妇一区二区| a美女胸又www黄视频久久| 99re热这里只有精品免费视频| 91色porny在线视频| 在线观看国产91| 欧美一区二区精品久久911| 欧美电影免费观看完整版| 久久久一区二区| 国产精品久久久久久久久动漫| 亚洲老妇xxxxxx| 午夜激情综合网| 日韩精品亚洲专区| 精品一区二区免费视频| www.av亚洲| 欧美日韩国产高清一区二区| 欧美mv日韩mv国产网站| 国产午夜精品一区二区三区嫩草| 中文字幕一区在线观看视频| 亚洲成av人片一区二区| 极品少妇一区二区三区精品视频| 99久久精品一区二区| 欧美性三三影院| 精品成人一区二区三区| 亚洲欧洲av一区二区三区久久| 亚洲成人自拍网| 国产一区二区在线观看视频| av中文字幕不卡| 正在播放一区二区| 中日韩av电影| 日韩国产欧美三级| 丰满亚洲少妇av| 欧美日韩国产乱码电影| 日本一区二区综合亚洲| 亚洲gay无套男同| 成人激情免费网站| 91精品欧美久久久久久动漫| 欧美国产一区在线| 三级在线观看一区二区| av电影在线不卡| 精品国产免费久久| 亚洲午夜久久久| 成人av动漫在线| 日韩欧美成人一区二区| 亚洲尤物在线视频观看| 国产成人av电影在线| 制服丝袜国产精品| 亚洲精品大片www| 国产成人aaa| 欧美一级xxx| 亚洲第一狼人社区| 99久久国产综合精品麻豆| 精品三级在线观看| 午夜精彩视频在线观看不卡| 91欧美一区二区| 日本一二三四高清不卡| 极品销魂美女一区二区三区| 在线91免费看| 亚洲自拍偷拍网站| 99综合电影在线视频| 久久综合中文字幕| 蜜桃在线一区二区三区| 欧美三级视频在线观看| 中文字幕欧美一区| 国产a区久久久| 精品粉嫩超白一线天av| 蜜乳av一区二区| 欧美人与禽zozo性伦| 亚洲精品乱码久久久久久黑人| 风间由美一区二区三区在线观看| 久久先锋资源网| 久久成人免费电影| 日韩欧美一区二区三区在线| 日韩va亚洲va欧美va久久| 欧美丝袜第三区| 一区二区三区在线观看国产| 91免费小视频| 亚洲精品福利视频网站| 色系网站成人免费| 亚洲欧美视频在线观看| 色www精品视频在线观看| 亚洲精品水蜜桃| 色婷婷久久综合| 一区二区三区在线观看动漫| 在线免费观看不卡av| 亚洲香蕉伊在人在线观| 欧美亚洲动漫精品| 亚洲电影你懂得| 欧美精品久久天天躁| 青青草97国产精品免费观看| 91精品国产一区二区三区| 日韩电影在线一区二区三区| 91精品国产综合久久精品性色| 日本视频免费一区| 欧美变态tickling挠脚心| 老色鬼精品视频在线观看播放| www精品美女久久久tv| 国产精品77777竹菊影视小说| 欧美国产一区在线| 色香色香欲天天天影视综合网| 亚洲最大成人综合| 7777精品伊人久久久大香线蕉经典版下载 | 国产成人自拍在线| 久久免费国产精品| 成人免费av网站| 一区二区高清视频在线观看| 在线播放日韩导航| 精品一区二区三区免费观看| 国产精品视频看| 在线观看一区二区视频| 男人操女人的视频在线观看欧美| 精品国产不卡一区二区三区| 成人深夜在线观看| 亚洲在线视频网站| 欧美成人综合网站| 成人做爰69片免费看网站| 亚洲欧美一区二区三区国产精品| 欧洲精品在线观看| 精品午夜一区二区三区在线观看| 国产清纯在线一区二区www| 91久久精品网| 国产精一品亚洲二区在线视频| 亚洲人成小说网站色在线| 日韩视频一区二区三区| av动漫一区二区| 蜜臀av一级做a爰片久久| 国产精品每日更新在线播放网址| 91福利社在线观看| 国产精品夜夜嗨| 亚洲r级在线视频| 国产精品久久久久久久第一福利 | 欧美成人一区二区三区在线观看| jizzjizzjizz欧美| 日韩精品乱码av一区二区| 国产精品高潮久久久久无| 欧美精品三级在线观看| 成人深夜视频在线观看| 日本成人中文字幕在线视频| 国产精品久久久久久久久久免费看 | 99久久国产综合色|国产精品| 亚洲成人av免费| 欧美自拍丝袜亚洲| 亚洲国产日日夜夜| 精品粉嫩超白一线天av| 色综合久久久久综合体| 国产成人鲁色资源国产91色综| 亚洲精品国产无天堂网2021| av不卡免费在线观看|