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

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

?? hemispherebutton.pas

?? 機房管理系統 是用VB設計的簡單的管理系統
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
unit HemisphereButton;

{*
** 球形按鈕
** 作者:Chirstian Schnell
** 修改:午秋
** 更新:新增了一個 Action 屬性
** THemisphereButton implementation
** Copyright (c) 1997 Christian Schnell
**
** Author: Christian Schnell
**         lulli@cs.tu-berlin.de
**         http://www.cs.tu-berlin.de/~lulli
** 
** History:
**
** .p00 [19970627cs] first release
** .p01 [19970801cs] [sub-release]
**                   removed MATH-usage, added functions ceil() and floor().
** .p02 [19970814cs] [sub-release]
**                   added user-bitmap UserBitmap, lower left pixel is
**                     reserved for transparent color.
** .p03 [19970815cs] renamed UserBitmap to Glyph, added NumGlyphs,
**                     GlyphIndex
**                   stripped CalcImages, fixed: mouse events, default size
**                   added shaded glyphs
**      [19970821cs] added GlyphMapped, AttenControl
**                   added arctan2
**                   changed illumination model
**                     removed fColorBright, redDt, greenDt, blueDt
**                   renamed Pressed to Down
**                   added ParentShowHint, ShowHint
** .p04 [19970823cs] [sub-release]
**      [19970825cs] added FaceShaded
**                   bmIn and bmOut now calculated in one step
**                   bug-fix: Glyph painting on odd width or height
**                   problem: ParentFont seems not possible, TControl.Font is
**                            protected (cannot access Parent.Font!)
**                   added FaceTransparent, GlyphTransparent
** .p05 [19970826cs] [sub-release]
** .p06 [19970831cs] added bmMask, background-clip-mask is now persistent
**                   calling Paint indirectly now (Invalidate), except SetDown
**                   right mouse click ignored now
**                   made changes for Delphi1
**                   [sub-release]
** .p07 [19971006cs] 2nd release (as 2.0)
**                   OK for Delphi1, Delphi2 and Delphi3
** .p08 [19971030cs] 3rd release (as 2.1)
**                   Bug-fix:
**                     - added fFont.Free in destructor
**                     - fixed Delphi1\HemiBtn.dcr (was bad in release 2.0)
**                   Changed:
**                     - New glyph for component-palette, note that if you
**                       are upgrading from release 2.0, you must reinstall
**                       the component to see the new image in your IDE.
*}

interface

uses
  {$IFDEF VER80}
  WinProcs, WinTypes, Menus,
  {$ELSE}
  Windows,
  {$ENDIF}
  SysUtils, Forms, Classes, Controls, Graphics;

const
  cDefaultColor = clGray;   { default face color                          }
  cDefaultWidth = 25;       { default dimensions                          }
  cDefaultHeight = 25;
  cLightX = -0.5773502692;  { vector to light-source,                     }
  cLightY = -0.5773502692;  { left-handed coordinate system               }
  cLightZ =  0.5773502692;  { (points to upper-left corner, Windows-std.) }

type
  THemisphereBevel = (hbNone, hbLowered, hbRaised);

  THemiBtn = class(TGraphicControl)
  protected
    faceRed, faceGreen, faceBlue : TColor;
    bmUnpressed, bmPressed, bmMask, bmGlpyh: TBitmap;
    oldWidth, oldHeight, fBevelWidth, fGroupIndex,
    fNumGlyphs, fGlyphIndex: Integer;
    GlyphValid, InMousePress, oldDown,
    fDown, fAllowAllUp, fFaceShaded, fGlyphShaded,
    fGlyphMapped, fGlyphTransparent, fFaceTransparent: Boolean;
    fBorderColor, fFaceColor: TColor;
    fOnClick, fOnDblClick: TNotifyEvent;
    fBevelOuter, fBevelInner: THemisphereBevel;
    fOnMouseDown, fOnMouseUp: TMouseEvent;
    fOnMouseMove: TMouseMoveEvent;
    fBorderStyle: TBorderStyle;
    fAttenControl: Double;
    fCaption: String;
    fFont: TFont;
    procedure CalcImages;
    procedure DefineProperties(Filer: TFiler); override;
    function  InsideEllipse(X,Y: Integer): Boolean;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
    procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
    procedure Paint; override;
    procedure ReadGlyphValid(Reader: TReader);
    procedure ReadImageGlyph(Stream: TStream);
    procedure ReadImageIn(Stream: TStream);
    procedure ReadImageMask(Stream: TStream);
    procedure ReadImageOut(Stream: TStream);
    procedure RenderBorder(aCanvas: TCanvas; X0,Y0,X1,Y1, bevWidth: Integer; Raised: Boolean);
    procedure RenderButtonFaces(nBorder: Integer; mskBorder, canvUp, canvDown: TCanvas);
    procedure SetAllowAllUp(Value: Boolean);
    procedure SetAttenControl(Value: Double);
    procedure SetBevelInner(Value: THemisphereBevel);
    procedure SetBevelOuter(Value: THemisphereBevel);
    procedure SetBevelWidth(Value: Integer);
    procedure SetBorderColor(Value: TColor);
    procedure SetBorderStyle(Value: TBorderStyle);
    procedure SetBounds(aLeft, aTop, aWidth, aHeight: Integer); override;
    procedure SetCaption(Value: String);
    procedure SetDown(Value: Boolean);
    procedure SetFaceColor(Value: TColor);
    procedure SetFaceShaded(Value: Boolean);
    procedure SetFaceTransparent(Value: Boolean);
    procedure SetFont(Value: TFont);
    procedure SetGlyph(Value: TBitmap);
    procedure SetGlyphIndex(Value: Integer);
    procedure SetGlyphMapped(Value: Boolean);
    procedure SetGlyphShaded(Value: Boolean);
    procedure SetGlyphTransparent(Value: Boolean);
    procedure SetNumGlyphs(Value: Integer);
    procedure WriteGlyphValid(Writer: TWriter);
    procedure WriteImageGlyph(Stream: TStream);
    procedure WriteImageIn(Stream: TStream);
    procedure WriteImageMask(Stream: TStream);
    procedure WriteImageOut(Stream: TStream);
  public
    constructor Create(aOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Action;
    property Align;
    property AllowAllUp: Boolean read fAllowAllUp write SetAllowAllUp;
    property AttenControl: Double read fAttenControl write SetAttenControl;
    property BevelInner: THemisphereBevel read fBevelInner write SetBevelInner;
    property BevelOuter: THemisphereBevel read fBevelOuter write SetBevelOuter;
    property BevelWidth: Integer read fBevelWidth write SetBevelWidth;
    property BorderColor: TColor read fBorderColor write SetBorderColor;
    property BorderStyle: TBorderStyle read fBorderStyle write SetBorderStyle;
    property Caption: String read fCaption write SetCaption;
    property Down: Boolean read fDown write SetDown;
    property Enabled;
    property FaceColor: TColor read fFaceColor write SetFaceColor;
    property FaceShaded: Boolean read fFaceShaded write SetFaceShaded;
    property FaceTransparent: Boolean read fFaceTransparent write SetFaceTransparent;
    property Font: TFont read fFont write SetFont;
    property Glyph: TBitmap read bmGlpyh write SetGlyph stored False; { We store it, TBitmap is buggy }
    property GlyphIndex: Integer read fGlyphIndex write SetGlyphIndex;
    property GlyphShaded: Boolean read fGlyphShaded write SetGlyphShaded;
    property GlyphMapped: Boolean read fGlyphMapped write SetGlyphMapped;
    property GlyphTransparent: Boolean read fGlyphTransparent write SetGlyphTransparent;
    property GroupIndex: Integer read fGroupIndex write fGroupIndex;
    property Hint;
    property NumGlyphs: Integer read fNumGlyphs write SetNumGlyphs;
    property OnClick: TNotifyEvent read fOnClick write fOnClick;
    property OnDblClick: TNotifyEvent read fOnDblClick write fOnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
    {$IFNDEF VER80}
    property OnStartDrag;
    {$ENDIF}
    property OnMouseDown: TMouseEvent read fOnMouseDown write fOnMouseDown;
    property OnMouseMove: TMouseMoveEvent read fOnMouseMove write fOnMouseMove;
    property OnMouseUp: TMouseEvent read fOnMouseUp write fOnMouseUp;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property Visible;
  end;

  procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Wuqiu', [THemiBtn]);
end;

function Ceil(X: Double): Longint;
begin
  Result := Trunc(X);
  if Frac(X) > 0 then Inc(Result);
end;

function Floor(X: Double): Longint;
begin
  Result := Trunc(X);
  if Frac(X) < 0 then Dec(Result);
end;

function ArcTan2(Y, X: Double): Double;
assembler;
  asm
    FLD Y
    FLD X
    FPATAN
    FWAIT
end;

constructor THemiBtn.Create(aOwner: TComponent);
begin
  fFont := TFont.Create;
  inherited Create(aOwner);
  bmUnpressed := TBitmap.Create;
  bmPressed := TBitmap.Create;
  bmMask := TBitmap.Create;
  bmGlpyh := TBitmap.Create;
  oldWidth := -1;
  oldHeight := -1;
  fBevelWidth := 2;
  fBevelInner := hbNone;
  fBevelOuter := hbLowered;
  fBorderStyle := bsNone;
  fBorderColor := clGray;
  fNumGlyphs := 1;
  fGlyphIndex := 1;
  fAttenControl := 1.0;
  fFaceShaded := True;
  fGlyphShaded := True;
  fGlyphTransparent := True;
  fFaceColor := cDefaultColor;
  faceRed := cDefaultColor and $ff;
  faceGreen := (cDefaultColor shr 8) and $ff;
  faceBlue := (cDefaultColor shr 16) and $ff;
  inherited SetBounds(Left, Top, cDefaultWidth, cDefaultHeight);
end;

destructor THemiBtn.Destroy;
begin
  fFont.Free;
  bmUnpressed.Free;
  bmPressed.Free;
  bmMask.Free;
  bmGlpyh.Free;
  inherited Destroy;
end;

procedure THemiBtn.ReadImageIn(Stream: TStream);
begin
  bmPressed.LoadFromStream(Stream);
end;

procedure THemiBtn.ReadImageOut(Stream: TStream);
begin
  bmUnpressed.LoadFromStream(Stream);
end;

procedure THemiBtn.ReadImageMask(Stream: TStream);
begin
  bmMask.LoadFromStream(Stream);
end;

procedure THemiBtn.ReadImageGlyph(Stream: TStream);
begin
  bmGlpyh.LoadFromStream(Stream);
end;

procedure THemiBtn.WriteImageIn(Stream: TStream);
begin
  bmPressed.SaveToStream(Stream);
end;

procedure THemiBtn.WriteImageOut(Stream: TStream);
begin
  bmUnpressed.SaveToStream(Stream);
end;

procedure THemiBtn.WriteImageMask(Stream: TStream);
begin
  bmMask.SaveToStream(Stream);
end;

procedure THemiBtn.WriteImageGlyph(Stream: TStream);
begin
  bmGlpyh.SaveToStream(Stream);
end;

procedure THemiBtn.ReadGlyphValid(Reader: TReader);
begin
  GlyphValid := Reader.ReadBoolean;
end;

procedure THemiBtn.WriteGlyphValid(Writer: TWriter);
begin
  Writer.WriteBoolean(GlyphValid);
end;

procedure THemiBtn.DefineProperties(Filer: TFiler);
begin
  inherited DefineProperties(Filer);
  Filer.DefineProperty('GlyphValid', ReadGlyphValid, WriteGlyphValid, True);
  Filer.DefineBinaryProperty('ImageOut', ReadImageOut, WriteImageOut, True);
  Filer.DefineBinaryProperty('ImageIn', ReadImageIn, WriteImageIn, True);
  Filer.DefineBinaryProperty('ImageMask', ReadImageMask, WriteImageMask, True);
  Filer.DefineBinaryProperty('ImageGlyph', ReadImageGlyph, WriteImageGlyph, GlyphValid);
end;

procedure THemiBtn.SetAllowAllUp(Value: Boolean);
var
  i: Integer;
begin
  if Value <> fAllowAllUp then begin
    if (csLoading in ComponentState) or (GroupIndex = 0) then
      fAllowAllUp := Value
    else
      for i:=0 to Owner.ComponentCount-1 do
        if Owner.Components[i] is THemiBtn then
          if THemiBtn(Owner.Components[i]).GroupIndex = GroupIndex then
            THemiBtn(Owner.Components[i]).fAllowAllUp := Value;
  end;
end;

procedure THemiBtn.SetAttenControl(Value: Double);
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久久久欧美国产| 国产福利一区二区三区视频 | 亚洲一线二线三线视频| 国产成人精品亚洲777人妖 | 中文字幕亚洲欧美在线不卡| 不卡的电影网站| 欧美日韩国产123区| 亚洲第一综合色| 亚洲精品国产一区二区精华液| 国产精品你懂的在线欣赏| 欧美唯美清纯偷拍| 亚洲精选视频免费看| 精品日韩一区二区三区| 色妞www精品视频| 国产一区二区三区免费观看 | 国产精品剧情在线亚洲| 欧美成人官网二区| 欧美精品乱人伦久久久久久| 国产不卡视频在线观看| 午夜激情一区二区| 亚洲综合一区二区精品导航| 欧美成人精品二区三区99精品| 欧美色综合网站| 色婷婷国产精品综合在线观看| 欧美三日本三级三级在线播放| 久久99精品一区二区三区三区| 亚洲一本大道在线| 国产精品久久三区| 亚洲丝袜另类动漫二区| www国产亚洲精品久久麻豆| 精品国一区二区三区| 91精品视频网| 日本高清免费不卡视频| 波多野结衣精品在线| bt7086福利一区国产| 色综合久久天天综合网| 色婷婷一区二区三区四区| 91福利国产精品| 欧美日本视频在线| 久久综合色婷婷| 日韩欧美国产1| 欧美一级免费大片| 久久伊人中文字幕| 一区二区视频免费在线观看| 日本美女一区二区| 在线精品观看国产| 国产精品免费av| 久久精品久久精品| 欧美日本视频在线| 亚洲女人****多毛耸耸8| 亚洲视频免费在线观看| 午夜影视日本亚洲欧洲精品| 精品一区二区三区香蕉蜜桃| eeuss鲁片一区二区三区在线观看| 欧美亚洲一区三区| 一区二区三区欧美视频| 成人午夜短视频| 国产日韩欧美综合一区| 久久国产生活片100| 欧美日韩国产精品自在自线| 中文字幕一区二区三区不卡在线| 久久草av在线| 久久精品欧美日韩精品 | 亚洲午夜免费电影| 99国产精品久久久久久久久久| 久久综合国产精品| 国产精品一级黄| 亚洲精品在线三区| 久久99国产精品尤物| 精品久久久久久久久久久久久久久久久 | 91精品免费观看| 日韩国产精品久久久久久亚洲| 91久久精品一区二区三| 亚洲人吸女人奶水| 一本大道久久a久久综合婷婷| 国产精品大尺度| 日韩精品在线一区| 国产精品资源网| 亚洲女同一区二区| 欧美久久久久久久久久| 爽好多水快深点欧美视频| 日韩精品专区在线影院重磅| 国产在线播放一区三区四| 国产女同互慰高潮91漫画| 日本高清不卡aⅴ免费网站| 一区二区三区日本| 精品久久久久久无| 91老司机福利 在线| 午夜精品免费在线| 国产精品国产成人国产三级 | 国产精品美女久久久久aⅴ| 国产综合久久久久久久久久久久| 国产三级欧美三级日产三级99 | 亚洲激情av在线| 久久久久亚洲蜜桃| 欧美日韩免费不卡视频一区二区三区| 精品亚洲国内自在自线福利| 日韩国产高清在线| 亚洲激情中文1区| 成人欧美一区二区三区视频网页| 日韩视频一区二区| 欧美二区三区91| 日本韩国视频一区二区| 成人精品在线视频观看| 国产综合久久久久久鬼色| 三级亚洲高清视频| 亚洲一区在线观看视频| 亚洲免费伊人电影| 亚洲日本va在线观看| 中文字幕日韩欧美一区二区三区| 欧美变态tickle挠乳网站| 777午夜精品免费视频| 国模无码大尺度一区二区三区| 国产精品久久影院| 亚洲欧美日韩系列| 国产精品国产馆在线真实露脸| 亚洲欧洲国产日韩| 亚洲影院在线观看| 日韩影院在线观看| 国产一区二区在线观看免费 | 国产一区二区三区免费看| 国产精品123区| 国产九色sp调教91| 色老汉一区二区三区| 色屁屁一区二区| 精品久久久三级丝袜| 综合色中文字幕| 日本美女一区二区三区视频| 精品制服美女久久| 99国产精品久久久| 欧美成人三级电影在线| 亚洲色图一区二区| 久国产精品韩国三级视频| 大白屁股一区二区视频| 欧美日韩亚洲国产综合| 国产亚洲欧洲997久久综合| 亚洲国产成人高清精品| 美女网站色91| 91社区在线播放| 欧美sm美女调教| 亚洲成人在线免费| 91色.com| 国产精品毛片大码女人| 国产美女娇喘av呻吟久久| 欧美日韩国产综合视频在线观看| 中文字幕一区二区三区在线观看 | 久久久久久久综合色一本| 亚洲成av人片在线| 一道本成人在线| 亚洲欧美日韩综合aⅴ视频| 国产91精品一区二区| 久久久99精品久久| 国产精品亚洲一区二区三区妖精| 在线观看91av| 蜜臀av性久久久久蜜臀av麻豆| 欧美精品国产精品| 美女一区二区久久| 精品日韩一区二区三区免费视频| 日本vs亚洲vs韩国一区三区二区| 欧美人牲a欧美精品| 免费高清在线一区| 日韩欧美在线影院| 国产乱码一区二区三区| 国产拍欧美日韩视频二区| 国产精品1024| 亚洲欧美日韩系列| 欧美日韩精品高清| 成人一级片网址| 一区二区三区在线视频观看| 日本精品一级二级| 综合婷婷亚洲小说| 日韩一区国产二区欧美三区| 国产精品一二三| 午夜视频在线观看一区二区| 日韩欧美一区二区在线视频| 国产成人精品网址| 亚洲妇熟xx妇色黄| 亚洲国产精品成人综合色在线婷婷| 91网站在线观看视频| 精品一区二区三区久久久| 国产精品短视频| 久久精品一区二区三区不卡| 欧美日韩在线不卡| 高清日韩电视剧大全免费| 日韩中文字幕麻豆| 亚洲va欧美va人人爽午夜| 亚洲国产精品国自产拍av| 精品国产免费人成在线观看| 欧美日韩一区二区欧美激情| 波多野结衣的一区二区三区| 国产最新精品精品你懂的| 日欧美一区二区| 日韩精品91亚洲二区在线观看| 伊人一区二区三区| 一区二区三区免费观看| 亚洲男同性视频| 一区二区三区四区激情| 中文字幕制服丝袜一区二区三区| 国产精品高清亚洲| 亚洲最新在线观看|