📄 teradial.pas
字号:
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 + -