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

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

?? lbleffct.pas

?? 功能強(qiáng)大和形態(tài)多樣的TLabel控件
?? PAS
?? 第 1 頁 / 共 3 頁
字號:
unit LblEffct;

{
  This unit implements a label component with 3D effects.
  Written by Keith Wood - 27 May 1995.

  This version of the component (3.0) is shareware. Previous version were
  freeware. If you like the component and use it then please send USD$15
  to the address below. Any correspondence or improvements can be sent to :

     Keith Wood                                 kwood@netinfo.com.au
     4 Watterson Place
     Gilmore  A.C.T.  2905
     Australia

  The label has a highlight and a shadow.  The colours of these
  can be controlled through properties as can their distance
  from the label and their direction.  There are also preset
  combinations of direction/distance and colours.

  The label can be set to operate as a button, ie. initially
  raised it will depress when clicked.

  The label can be rotated to any angle.

  Version 2.0 - 1 Feb 1996
      Added extrusion, keep letters vertical, graduated face and version.
  Version 2.1 - 14 Jun 1996
      Update to work with Delphi 2.0, fix bug with Transparent property,
      fix bug with Alignment property, prepare label offscreen and then display.
  Version 3.0 - 3 Jan 1997
      Added separate graduation colours for highlight and shadow.
      Added extra face graduation options.
      Added resize of highlight/shadow.
      Added bitmap background for text.

  Thanks to Paradox Informant and their starter article on 3D labels.
  Thanks to Bill Murto and his RotateLabel.
  Thanks to Curtis Keisler and his TxtRotat example.
}

interface

uses
  SysUtils, WinTypes, WinProcs, Classes, Graphics, Controls, StdCtrls, Dialogs;

type
  { Range of offsets for the shadows }
  TEffectDepth = 0..10;

  { Directions in which the offsets can be positioned }
  TEffectDirection = (edNone, edUp, edUpRight, edRight, edDownRight, edDown,
      edDownLeft, edLeft, edUpLeft);

  { Constants for specifying direction component }
  TDirXY = (drX, drY);

  { The preset styles of label effects available }
  TEffectStyle = (esNone, esCustom, esRaised, esSunken, esShadow, esFlying);

  { The preset colour schemes available }
  TColourScheme = (csCustom, csText, csWindows, csEmbossed, csGold, csSteel);

  { Constants for specifying positions of colours }
  TColourPosition = (cpHighlight, cpShadow, cpFace);

  { Range for rotation }
  TAngleRange = 0..360;

  { Options for varying the shadow/highlight for the label }
  TEffectOption = (eoNormal, eoReal, eoExtrude, eoGraduated);

  { Options for varying the face of the label }
  TGraduateOption = (goNone, goVertical, goHorizontal, goFDiagonal,
    goBDiagonal, goBoxed, goRIndented, goLIndented);

  { Options for varying the text size of the label }
  TResizeOption = (rsNone, rsExpand, rsReduce);

  { The label itsef }
  TLabelEffect = class(TCustomLabel)
  private
    { Private declarations }
    FDepthHighlight,
    FDepthShadow: TEffectDepth;
    FDirectionHighlight,
    FDirectionShadow: TEffectDirection;
    FColourHighlight,
    FColourShadow,
    FGraduateHighlight,
    FGraduateShadow,
    FColourFace: TColor;
    FGraduateFace: TGraduateOption;
    FGraduateFrom: TColor;
    FStyleHighlight,
    FStyleShadow: TEffectOption;
    FResizeHighlight,
    FResizeShadow: TResizeOption;
    FEffectStyle: TEffectStyle;
    FColourScheme: TColourScheme;
    FBitmap: TBitmap;
    FAsButton: Boolean;
    FAngle: TAngleRange;
    FKeepLettersVertical: Boolean;
    FVersion: String;
    bChangingStyle,                { Is preset style being invoked ? }
    bChangingScheme: Boolean;      { Is preset colour scheme being invoked ? }
    clrSchemes: array [TColourScheme,TColourPosition] of TColor;
    dDegToRad, dCosAngle, dSinAngle, dCosSquared, dSinSquared: Double;
    procedure SetDepthHighlight(iDepth: TEffectDepth);
    procedure SetDepthShadow(iDepth: TEffectDepth);
    procedure SetDirectionHighlight(edDirection: TEffectDirection);
    procedure SetDirectionShadow(edDirection: TEffectDirection);
    procedure SetColourHighlight(clrHighlight: TColor);
    procedure SetColourShadow(clrShadow: TColor);
    procedure SetGraduateHighlight(clrHighlight: TColor);
    procedure SetGraduateShadow(clrShadow: TColor);
    procedure SetColourFace(clrFace: TColor);
    procedure SetGraduateFace(goGrad: TGraduateOption);
    procedure SetGraduateFrom(clrGrad: TColor);
    procedure SetStyleHighlight(eoStyle: TEffectOption);
    procedure SetStyleShadow(eoStyle: TEffectOption);
    procedure SetResizeHighlight(rsSize: TResizeOption);
    procedure SetResizeShadow(rsSize: TResizeOption);
    procedure SetEffectStyle(esStyle: TEffectStyle);
    procedure SetColourScheme(csScheme: TColourScheme);
    procedure SetBitmap(bmp: TBitmap);
    procedure SetAsButton(bBtn: Boolean);
    procedure SetAngle(aAngle: TAngleRange);
    procedure SetTextAngle(cnv: TCanvas; aAngle: TAngleRange; iHeight: Integer);
    procedure SetKeepLettersVertical(bKeep: Boolean);
    function GetColourFace: TColor;
    procedure ChangeFont(Sender: TObject);
    procedure ChangeBitmap(Sender: TObject);
    function IsCustomEffect: Boolean;
    function IsCustomScheme: Boolean;

  protected
    { Protected declarations }
    procedure Paint; override;
    procedure MouseDown(mbBtn: TMouseButton; ssShift: TShiftState;
        x, y: Integer); override;
    procedure MouseMove(ssShift: TShiftState; x, y: Integer); override;
    procedure MouseUp(mbBtn: TMouseButton; ssShift: TShiftState;
        x, y: Integer); override;

  public
    { Public declarations }
    constructor Create(AOwner:TComponent); override;
    destructor Destroy; override;
    procedure Assign(Source: TPersistent); override;
    property Version: String read FVersion;         { Read-only }

  published
    { Publish specialised properties }
    property DepthHighlight: TEffectDepth read FDepthHighlight
        write SetDepthHighlight stored IsCustomEffect default 1;
    property DepthShadow: TEffectDepth read FDepthShadow
        write SetDepthShadow stored IsCustomEffect default 1;
    property DirectionHighlight: TEffectDirection read FDirectionHighlight
        write SetDirectionHighlight stored IsCustomEffect default edUpLeft;
    property DirectionShadow: TEffectDirection read FDirectionShadow
        write SetDirectionShadow stored IsCustomEffect default edDownRight;
    property ColourHighlight: TColor read FColourHighlight
        write SetColourHighlight stored IsCustomScheme default clWhite;
    property ColourShadow: TColor read FColourShadow
        write SetColourShadow stored IsCustomScheme default clBlack;
    property GraduateHighlight: TColor read FGraduateHighlight
        write SetGraduateHighlight default clGray;
    property GraduateShadow: TColor read FGraduateShadow
        write SetGraduateShadow default clGray;
    property ColourFace: TColor read GetColourFace write SetColourFace;
    property GraduateFace: TGraduateOption read FGraduateFace
        write SetGraduateFace default goNone;
    property GraduateFrom: TColor read FGraduateFrom
        write SetGraduateFrom default clGray;
    property StyleHighlight: TEffectOption read FStyleHighlight
        write SetStyleHighlight default eoNormal;
    property StyleShadow: TEffectOption read FStyleShadow
        write SetStyleShadow default eoNormal;
    property ResizeHighlight: TResizeOption read FResizeHighlight
        write SetResizeHighlight default rsNone;
    property ResizeShadow: TResizeOption read FResizeShadow
        write SetResizeShadow default rsNone;
    property EffectStyle: TEffectStyle read FEffectStyle
        write SetEffectStyle default esRaised;
    property ColourScheme: TColourScheme read FColourScheme
        write SetColourScheme default csWindows;
    property Bitmap: TBitmap read FBitmap write SetBitmap;
    property AsButton: Boolean read FAsButton write SetAsButton default False;
    property Angle: TAngleRange read FAngle write SetAngle default 0;
    property KeepLettersVertical: Boolean read FKeepLettersVertical
        write SetKeepLettersVertical default False;

    { Publish inherited properties }
    property Align;
    property Alignment;
    property Caption;
    property Color;
    property Cursor;
    property DragCursor;
    property DragMode;
    property Enabled;
    property FocusControl;
    property Font;
    property ParentColor;
    property ParentFont;
    property ParentShowHint;
    property ShowAccelChar;
    property ShowHint;
    property Transparent default True;
    property Visible;
    property WordWrap;

    property OnClick;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDrag;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
  end;

procedure Register;

implementation

const
  sLabelEffectVersion = '3.0';

procedure Register;
begin
  RegisterComponents('MyControl', [TLabelEffect]);
end;

{ Initialisation }
constructor TLabelEffect.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  { Colour schemes cannot be constant since Custom version varies }
  clrSchemes[csText, cpHighlight] := clWhite;
  clrSchemes[csText, cpFace] := clBlack;
  clrSchemes[csText, cpShadow] := clGray;

  clrSchemes[csWindows, cpHighlight] := clWhite;
  clrSchemes[csWindows, cpFace] := clGray;
  clrSchemes[csWindows, cpShadow] := clBlack;

  clrSchemes[csEmbossed, cpHighlight] := clWhite;
  clrSchemes[csEmbossed, cpFace] := clSilver;
  clrSchemes[csEmbossed, cpShadow] := clBlack;

  clrSchemes[csGold, cpHighlight] := clYellow;
  clrSchemes[csGold, cpFace] := clOlive;
  clrSchemes[csGold, cpShadow] := clBlack;

  clrSchemes[csSteel, cpHighlight] := clAqua;
  clrSchemes[csSteel, cpFace] := clTeal;
  clrSchemes[csSteel, cpShadow] := clNavy;

  clrSchemes[csCustom, cpHighlight] := clrSchemes[csWindows, cpHighlight];
  clrSchemes[csCustom, cpFace] := clrSchemes[csWindows, cpFace];
  clrSchemes[csCustom, cpShadow] := clrSchemes[csWindows, cpShadow];

  { Initialise default values for internal fields }
  FDepthHighlight := 1;
  FDepthShadow := 1;
  FDirectionHighlight := edUpLeft;
  FDirectionShadow := edDownRight;
  FStyleHighlight := eoNormal;
  FStyleShadow := eoNormal;
  FResizeHighlight := rsNone;
  FResizeShadow := rsNone;
  FEffectStyle := esRaised;
  FColourScheme := csWindows;
  FColourHighlight := clrSchemes[FColourScheme, cpHighlight];
  FColourShadow := clrSchemes[FColourScheme, cpShadow];
  FGraduateFace := goNone;
  FGraduateFrom := clrSchemes[FColourScheme, cpFace];
  FGraduateHighlight := clrSchemes[FColourScheme, cpFace];
  FGraduateShadow := clrSchemes[FColourScheme, cpFace];
  FBitmap := TBitmap.Create;
  FBitmap.OnChange := ChangeBitmap;
  FAsButton := False;
  FAngle := 0;
  FKeepLettersVertical := False;
  FVersion := sLabelEffectVersion;

  bChangingStyle := False;
  bChangingScheme := False;
  dDegToRad := PI / 180;
  dCosAngle := 1;         { Cos(FAngle * dDegToRad) }
  dCosSquared := 1;
  dSinAngle := 0;         { Sin(FAngle * dDegToRad) }
  dSinSquared := 0;

  AutoSize := False;
  Height := 33;
  Width := 142;
  Transparent := True;
  Font.Color := clrSchemes[FColourScheme, cpFace];
  Font.Name := 'Times New Roman';
  Font.Size := 20;
  Font.OnChange := ChangeFont;
end;

{ Free resources }
destructor TLabelEffect.Destroy;
begin
  FBitmap.Free;

  inherited Destroy;
end;

{ Copy to a new label }
procedure TLabelEffect.Assign(Source: TPersistent);
begin
  if Source is TLabelEffect then  { Can copy }
    with TLabelEffect(Source) do
    begin
      Self.Alignment := Alignment;
      Self.DragCursor := DragCursor;
      Self.DragMode := DragMode;
      Self.Enabled := Enabled;
      Self.FocusControl := FocusControl;
      Self.ShowAccelChar := ShowAccelChar;
      Self.Hint := Hint;
      Self.ParentShowHint := ParentShowHint;
      Self.ShowHint := ShowHint;
      Self.Tag := Tag;
      Self.Transparent := Transparent;
      Self.Visible := Visible;
      Self.WordWrap := WordWrap;

      Self.Bitmap.Assign(Bitmap);
      Self.Caption := Caption;
      Self.ParentColor := ParentColor;
      Self.Color := Color;
      Self.ColourHighlight := ColourHighlight;
      Self.ColourShadow := ColourShadow;
      Self.ParentFont := ParentFont;
      Self.Font.Assign(Font);
      Self.ColourScheme := ColourScheme;
      Self.Cursor := Cursor;
      Self.DepthHighlight := DepthHighlight;
      Self.DepthShadow := DepthShadow;
      Self.DirectionHighlight := DirectionHighlight;
      Self.DirectionShadow := DirectionShadow;
      Self.EffectStyle := EffectStyle;
      Self.GraduateFace := GraduateFace;
      Self.GraduateFrom := GraduateFrom;
      Self.GraduateHighlight := GraduateHighlight;
      Self.GraduateShadow := GraduateShadow;
      Self.ResizeHighlight := ResizeHighlight;
      Self.ResizeShadow := ResizeShadow;
      Self.StyleHighlight := StyleHighlight;
      Self.StyleShadow := StyleShadow;
      Self.Angle := Angle;
      Self.KeepLettersVertical := KeepLettersVertical;
      Self.AsButton := AsButton;
    end
  else  { Try default assign }
    inherited Assign(Source);
end;

{ Only store these properties if a custom effect style }
function TLabelEffect.IsCustomEffect: Boolean;
begin
  Result := (EffectStyle = esCustom);
end;

{ Only store these properties if a custom colour scheme }
function TLabelEffect.IsCustomScheme: Boolean;
begin
  Result := (ColourScheme = csCustom);
end;

{ Change face colour too }
procedure TLabelEffect.ChangeFont(Sender: TObject);
begin
  SetColourFace(Font.Color);
  Invalidate;
end;

{ Set highlight depth and repaint }
procedure TLabelEffect.SetDepthHighlight(iDepth: TEffectDepth);
begin
  if FDepthHighlight <> iDepth then
  begin
    FDepthHighlight := iDepth;
    if not bChangingStyle then  { Default to custom style when changed }
      SetEffectStyle(esCustom);
    Invalidate;
  end;
end;

{ Set shadow depth and repaint }
procedure TLabelEffect.SetDepthShadow(iDepth: TEffectDepth);
begin
  if FDepthShadow <> iDepth then
  begin
    FDepthShadow := iDepth;
    if not bChangingStyle then  { Default to custom style when changed }
      SetEffectStyle(esCustom);
    Invalidate;
  end;
end;

{ Set highlight direction and repaint }
procedure TLabelEffect.SetDirectionHighlight(edDirection: TEffectDirection);
begin
  if FDirectionHighlight <> edDirection then
  begin
    FDirectionHighlight := edDirection;
    if not bChangingStyle then  { Default to custom style when changed }
      SetEffectStyle(esCustom);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞av亚洲一区二区三| 亚洲成a天堂v人片| 欧美日韩国产电影| 成人高清视频在线| 国产在线不卡一卡二卡三卡四卡| 一区二区高清在线| 亚洲欧洲国产日本综合| 久久尤物电影视频在线观看| 67194成人在线观看| 91久久精品一区二区三| 成人国产精品免费网站| 国产福利精品导航| 久久成人免费网| 图片区小说区区亚洲影院| 一区二区三区蜜桃| 亚洲啪啪综合av一区二区三区| 国产亚洲精品超碰| 精品国产三级电影在线观看| 51精品视频一区二区三区| 欧美三级中文字| 91成人免费在线视频| 一本一道综合狠狠老| av色综合久久天堂av综合| 国产丶欧美丶日本不卡视频| 国产一区二区三区| 国产在线精品一区二区夜色| 久久精品免费看| 美女www一区二区| 日日夜夜一区二区| 日韩精品一级中文字幕精品视频免费观看 | 色综合久久综合| aaa欧美大片| 成人av在线资源网| 99re成人精品视频| 99久久综合色| 91麻豆6部合集magnet| 91老司机福利 在线| 一本色道a无线码一区v| 在线影院国内精品| 欧美日韩高清在线| 欧美一区二区网站| 日韩免费成人网| 中文幕一区二区三区久久蜜桃| 欧美日韩一区视频| 欧美日韩国产欧美日美国产精品| 欧美调教femdomvk| 欧美日韩aaa| 日韩欧美激情四射| 欧美草草影院在线视频| 久久影院视频免费| 中文字幕va一区二区三区| 国产精品久久久久桃色tv| 国产精品美女久久久久久久 | 亚洲精品视频免费看| 亚洲免费观看高清| 亚洲午夜视频在线| 麻豆精品新av中文字幕| 国产乱人伦偷精品视频免下载| 丰满白嫩尤物一区二区| 911精品国产一区二区在线| 97久久精品人人做人人爽| 91精品1区2区| 欧美一区二区三区喷汁尤物| 久久品道一品道久久精品| 国产精品久久久久久久久久久免费看 | 亚洲欧美日韩电影| 亚洲一区在线观看视频| 美日韩黄色大片| 丁香亚洲综合激情啪啪综合| 色视频成人在线观看免| 91麻豆精品国产综合久久久久久| 337p日本欧洲亚洲大胆精品| 自拍偷在线精品自拍偷无码专区| 日韩激情一区二区| 国产精品99久久久久久久女警| 91久久线看在观草草青青| 日韩免费看网站| 亚洲日本一区二区| 另类小说图片综合网| 91在线你懂得| 欧美mv和日韩mv的网站| 一区二区三区中文在线| 国内成人免费视频| 一区二区三区蜜桃| 欧美成人a∨高清免费观看| 国产欧美日本一区二区三区| 亚洲婷婷在线视频| 免费国产亚洲视频| 99在线精品一区二区三区| 欧美一区二区精品久久911| 中文字幕在线视频一区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 91久久人澡人人添人人爽欧美| 精品国产区一区| 亚洲福利视频一区二区| 成人av免费在线| www国产精品av| 天堂久久久久va久久久久| 91视频xxxx| 国产亚洲一区字幕| 久久丁香综合五月国产三级网站| 欧洲av一区二区嗯嗯嗯啊| 国产日韩欧美精品综合| 免费成人av资源网| 欧美年轻男男videosbes| 亚洲欧美中日韩| 国产激情一区二区三区| 欧美xxxxx牲另类人与| 亚洲v日本v欧美v久久精品| 99九九99九九九视频精品| 国产欧美日韩精品一区| 狠狠色丁香久久婷婷综合_中| 欧美理论电影在线| 亚洲国产精品嫩草影院| 日本高清成人免费播放| 亚洲欧美一区二区在线观看| 国产一区 二区 三区一级| 日韩欧美成人激情| 日本午夜精品视频在线观看| 欧美日韩国产三级| 午夜精品久久久久久久久久久| 日本韩国精品在线| 亚洲免费色视频| 色婷婷综合久色| 亚洲日本一区二区三区| 99精品视频中文字幕| 亚洲欧洲成人自拍| 99riav久久精品riav| 国产精品国产三级国产aⅴ原创 | 天天做天天摸天天爽国产一区| 91福利在线免费观看| 亚洲一二三四在线| 欧美写真视频网站| 亚洲午夜免费视频| 9191国产精品| 久久精品国产秦先生| 精品毛片乱码1区2区3区| 狠狠色丁香婷综合久久| 国产网站一区二区| 成人a级免费电影| 亚洲裸体xxx| 欧美日韩免费不卡视频一区二区三区| 亚洲国产成人tv| 日韩免费视频一区二区| 国产精品亚洲视频| 18欧美亚洲精品| 欧美日韩一区中文字幕| 美国一区二区三区在线播放| 欧美大片日本大片免费观看| 国产一区二区精品久久99| 中文字幕国产一区| 欧美综合一区二区| 日韩av成人高清| 久久久久国产免费免费 | 色诱视频网站一区| 天堂成人国产精品一区| 综合久久久久久| 亚洲一区二区视频| 欧美高清精品3d| 久久aⅴ国产欧美74aaa| 国产人成亚洲第一网站在线播放| 99麻豆久久久国产精品免费| 亚洲成人tv网| 久久―日本道色综合久久| 91免费版pro下载短视频| 亚洲一区二区在线观看视频| 欧美成人激情免费网| 成人福利视频在线| 午夜a成v人精品| 国产精品色哟哟网站| 精品视频1区2区3区| 久久99精品国产91久久来源| 综合亚洲深深色噜噜狠狠网站| 3d动漫精品啪啪| av网站免费线看精品| 美腿丝袜亚洲色图| 中文字幕字幕中文在线中不卡视频| 欧美高清www午色夜在线视频| 成人涩涩免费视频| 免费人成精品欧美精品 | 裸体在线国模精品偷拍| 中文字幕亚洲视频| 日韩精品一区二区三区四区| av资源网一区| 韩国av一区二区三区四区| 亚洲综合小说图片| 国产欧美日韩视频一区二区| 欧美性一区二区| 岛国av在线一区| 精品在线你懂的| 亚洲午夜一区二区| 综合亚洲深深色噜噜狠狠网站| 欧美成人高清电影在线| 欧美日韩国产一二三| 99riav一区二区三区| 国产麻豆精品视频| 裸体在线国模精品偷拍| 亚洲成在人线免费| 亚洲男人的天堂在线观看| 久久久久久97三级|