⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teradial.pas

📁 delphi2007界面效果控件源码
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit teRadial;

interface

{$INCLUDE teDefs.inc}

uses
  SysUtils, Classes, TransEff, teMasked, Windows, Messages, Graphics;

type
  TRadialTransition = class(TMaskedTransition)
  private
  protected
    Center: TPoint;
    ActiveCorners: Array[1..4] of Boolean;
    CornerPositions: Array[1..4] of Longint;
    CornerPoints: Array[1..4] of TPoint;
    MaxFrames: Longint;

    procedure Initialize(Data: TTETransitionData; var TotalFrames: Longint);
      override;
    function  CalcTotalFrames(Data: TTETransitionData): Longint; override;
    function  AvoidPixelRepaint: Boolean; override;
    function  ResetMaskBmp(Device: TTETransitionDevice): Boolean; override;
    function  CalculateReversedSubStyle(
      const StyleValue, SubStyleValue: Word): Word; override;
    procedure MaskFrame(MaskBmp: TBitmap; CurrentFrame, Step, LastExecutedFrame:
      Longint; Data: TTETransitionData; Draw, CalcDirtyRects: Boolean); override;
    procedure DrawMask(Origin: TPoint; MaskBmp: TBitmap; Data: TTETransitionData;
      Position, Step: Longint; Draw, CalcDirtyRects: Boolean);
    function GetInfo(Device: TTETransitionDevice): TTETransitionInfo; override;
    procedure Style1_1Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style1_2Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style1_3Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style1_4Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style1_5Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style1_6Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style1_7Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style1_8Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style2_1Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style2_2Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style2_3Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style2_4Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style2_5Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style2_6Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style2_7Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style2_8Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style3_1Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style3_2Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style3_3Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style3_4Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style3_5Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style3_6Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style3_7Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style3_8Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style4_1Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style4_2Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style4_3Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style4_4Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style4_5Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style4_6Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style4_7Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style4_8Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_1Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_2Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_3Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_4Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_5Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_6Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_7Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_8Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_9Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_10Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_11Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_12Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_13Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_14Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_15Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style5_16Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style6_1Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style6_2Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style6_3Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style6_4Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style6_5Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style6_6Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style6_7Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style6_8Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_1Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_2Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_3Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_4Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_5Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_6Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_7Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_8Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_9Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_10Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_11Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_12Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_13Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_14Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_15Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
    procedure Style7_16Frame(MaskBmp: TBitmap; Data: TTETransitionData;
      CurrentFrame, Step: Longint; Draw, CalcDirtyRects: Boolean);
  public
    constructor Create(AOwner: TComponent = nil); override;
    class function Description: String; override;

    function CountOfSubStyles(StyleValue: Word): Word; override;

    property CountOfStyles;
  published
    property Reversed;
    property SmoothingLevel;
    property Style;
    property SubStyle;
  end;

implementation

constructor TRadialTransition.Create(AOwner: TComponent);
begin
  inherited;

  FCountOfStyles := 7;
end;

class function TRadialTransition.Description: String;
begin
  Result := 'Radial';
end;

function TRadialTransition.CalculateReversedSubStyle(
  const StyleValue, SubStyleValue: Word): Word;
begin
  Result := SubStyleValue;

  case StyleValue of
    1: case SubStyleValue of
       1: Result := 2;
       2: Result := 1;
       3: Result := 4;
       4: Result := 3;
       5: Result := 6;
       6: Result := 5;
       7: Result := 8;
       8: Result := 7;
    end;
    2: case SubStyleValue of
       1: Result := 2;
       2: Result := 1;
       3: Result := 4;
       4: Result := 3;
       5: Result := 6;
       6: Result := 5;
       7: Result := 8;
       8: Result := 7;
    end;
    3: case SubStyleValue of
       1: Result := 2;
       2: Result := 1;
       3: Result := 4;
       4: Result := 3;
       5: Result := 6;
       6: Result := 5;
       7: Result := 8;
       8: Result := 7;
    end;
    4: case SubStyleValue of
       1: Result := 2;
       2: Result := 1;
       3: Result := 4;
       4: Result := 3;
       5: Result := 6;
       6: Result := 5;
       7: Result := 8;
       8: Result := 7;
    end;
    5: case SubStyleValue of
        1: Result :=  2;
        2: Result :=  1;
        3: Result :=  4;
        4: Result :=  3;
        5: Result :=  6;
        6: Result :=  5;
        7: Result :=  8;
        8: Result :=  9;
        9: Result := 10;
       10: Result :=  9;
       11: Result := 12;
       12: Result := 11;
       13: Result := 14;
       14: Result := 13;
       15: Result := 16;
       16: Result := 15;
    end;
    6: case SubStyleValue of
       1: Result := 2;
       2: Result := 1;
       3: Result := 4;
       4: Result := 3;
       5: Result := 6;
       6: Result := 5;
       7: Result := 8;
       8: Result := 7;
    end;
    7: case SubStyleValue of
        1: Result :=  2;
        2: Result :=  1;
        3: Result :=  4;
        4: Result :=  3;
        5: Result :=  6;
        6: Result :=  5;
        7: Result :=  8;
        8: Result :=  9;
        9: Result := 10;
       10: Result :=  9;
       11: Result := 12;
       12: Result := 11;
       13: Result := 14;
       14: Result := 13;
       15: Result := 16;
       16: Result := 15;
    end;
  end;
end;

function TRadialTransition.AvoidPixelRepaint: Boolean;
begin
  Result := True;
end;

function TRadialTransition.ResetMaskBmp(Device: TTETransitionDevice): Boolean;
begin
  Result := not Smooth(Device);
end;

procedure TRadialTransition.Initialize(Data: TTETransitionData; var
  TotalFrames: Longint);
var
  W,
  H: Integer;
begin
  // The corners have to be bordering to ensure the last line point is painted
  // and the with and height have to be an odd number to get straight lines at
  // middle positions
  W        := Data.Width;
  H        := Data.Height;
  if not Odd(W) then
    Inc(W);
  if not Odd(H) then
    Inc(H);

  Center.x           := W div 2;
  Center.y           := H div 2;
  CornerPositions[1] := 1;
  CornerPositions[2] := W + 2;
  CornerPositions[3] := CornerPositions[2] + H + 1;
  CornerPositions[4] := CornerPositions[3] + W + 1;
  CornerPoints   [1] := Point(-1, -1);
  CornerPoints   [2] := Point( W, -1);
  CornerPoints   [3] := Point( W,  H);
  CornerPoints   [4] := Point(-1,  H);
  ActiveCorners  [1] := True;
  ActiveCorners  [2] := True;
  ActiveCorners  [3] := True;
  ActiveCorners  [4] := True;
  case StyleToUse of
    4: case SubStyleToUse of
         1,
         2:
           begin
             ActiveCorners[1] := False;
             ActiveCorners[4] := False;
           end;
         3,
         4:
           begin
             ActiveCorners[2] := False;
             ActiveCorners[3] := False;
           end;
         5,
         6:
           begin
             ActiveCorners[1] := False;
             ActiveCorners[2] := False;
           end;
         7,
         8:
           begin
             ActiveCorners[3] := False;
             ActiveCorners[4] := False;
           end;
       end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -