📄 teslide.pas
字号:
DstXDesp := Data.Width;
DstYDesp := 0;
VisibleR := Rect(0, Data.Height, 0, Data.Height);
end;
25: begin
if Data.Width > Data.Height
then Frames := Data.Width div 2
else Frames := Data.Height div 2;
VisibleR := Rect(Data.Width div 2, Data.Height div 2, Data.
Width div 2, Data.Height div 2);
end;
26,
27,
28: begin
Frames := Data.Height;
VisibleR := Rect(0, 0, Data.Width, 0);
end;
29,
30,
31: begin
Frames := Data.Height;
DstYDesp := 0;
VisibleR := Rect(0, Data.Height, Data.Width, Data.Height);
end;
32,
33,
34: begin
Frames := Data.Width;
DstXDesp := 0;
VisibleR := Rect(Data.Width, 0, Data.Width, Data.Height);
end;
35,
36,
37: begin
Frames := Data.Width;
VisibleR := Rect(0, 0, 0, Data.Height);
end;
38,
39: begin
if Data.Width > Data.Height
then Frames := Data.Width
else Frames := Data.Height;
DstXDesp := 0;
VisibleR := Rect(0, 0, Data.Width, Data.Height);
end;
40,
41: begin
if Data.Width > Data.Height
then Frames := Data.Width
else Frames := Data.Height;
VisibleR := Rect(0, 0, Data.Width, Data.Height);
end;
42,
43: begin
if Data.Width > Data.Height
then Frames := Data.Width
else Frames := Data.Height;
DstXDesp := 0;
DstYDesp := 0;
VisibleR := Rect(0, 0, Data.Width, Data.Height);
end;
44,
45: begin
if Data.Width > Data.Height
then Frames := Data.Width
else Frames := Data.Height;
DstYDesp := 0;
VisibleR := Rect(0, 0, Data.Width, Data.Height);
end;
46: begin
if Data.Width > Data.Height
then Frames := Data.Width div 2
else Frames := Data.Height div 2;
VisibleR := Rect(0, 0, Data.Width, Data.Height);
end;
end;
end;
procedure TSlideTransition.Finalize(Data: TTETransitionData);
begin
SetStretchBltMode(Data.Canvas.Handle, SaveStretchBltMode);
inherited;
end;
procedure TSlideTransition.ExecuteFrame(Data: TTETransitionData;
CurrentFrame, Step, TotalFrames, LastExecutedFrame: Longint);
var
VisibleOldR,
ScrollR: TRect;
xDesp,
yDesp: Integer;
begin
inherited;
VisibleOldR := VisibleR;
case Mode of
1,
2: begin;
Inc(VisibleR.Bottom, Step);
Dec(DstYDesp, Step);
if not IsClipped
then
begin
ScrollDC(Data.Canvas.Handle, 0, Step, VisibleOldR, ClipR, 0, nil);
BitBlt(Data.Canvas.Handle, 0, 0, Data.Width, Step,
Data.DstBmp.Canvas.Handle, 0, DstYDesp, cmSrcCopy);
end
else
BitBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, 0, DstYDesp, cmSrcCopy);
if Mode = 2 then
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Bottom,
Data.Width, Data.Height - VisibleR.Bottom,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
3,
4: begin;
Inc(VisibleR.Bottom, Step);
StretchBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
if Mode = 4 then
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Bottom, Data.Width,
Data.Height - VisibleR.Bottom, Data.SrcBmp.Canvas.Handle, 0, 0,
Data.Width, Data.Height, cmSrcCopy);
end;
5,
6: begin;
Dec(VisibleR.Top, Step);
if not IsClipped
then
begin
Inc(DstYDesp, Step);
ScrollDC(Data.Canvas.Handle, 0, -Step, VisibleOldR, ClipR, 0, nil);
BitBlt(Data.Canvas.Handle, 0, Data.Height - Step, Data.Width, Step,
Data.DstBmp.Canvas.Handle, 0, DstYDesp, cmSrcCopy);
end
else
BitBlt(Data.Canvas.Handle, 0, VisibleR.Top, Data.Width,
VisibleR.Bottom - VisibleR.Top, Data.DstBmp.Canvas.Handle, 0,
0, cmSrcCopy);
if Mode = 6 then
StretchBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
7,
8: begin;
Dec(VisibleR.Top, Step);
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Top, Data.Width,
Data.Height - VisibleR.Top, Data.DstBmp.Canvas.Handle, 0, 0,
Data.Width, Data.Height, cmSrcCopy);
if Mode = 8 then
StretchBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
9,
10: begin
Dec(VisibleR.Left, Step);
if not IsClipped
then
begin
Inc(DstXDesp, Step);
ScrollDC(Data.Canvas.Handle, -Step, 0, VisibleOldR, ClipR, 0, nil);
BitBlt(Data.Canvas.Handle, Data.Width - Step, 0, Step, Data.Height,
Data.DstBmp.Canvas.Handle, DstXDesp, 0, cmSrcCopy);
end
else
BitBlt(Data.Canvas.Handle, VisibleR.Left, 0,
VisibleR.Right - VisibleR.Left, Data.Height,
Data.DstBmp.Canvas.Handle, 0, 0, cmSrcCopy);
if Mode = 10 then
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Left, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
11,
12: begin;
Dec(VisibleR.Left, Step);
StretchBlt(Data.Canvas.Handle, VisibleR.Left, 0,
Data.Width - VisibleR.Left, Data.Height, Data.DstBmp.Canvas.Handle,
0, 0, Data.Width, Data.Height, cmSrcCopy);
if Mode = 12 then
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Left, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
13,
14: begin;
Inc(VisibleR.Right, Step);
Dec(DstXDesp, Step);
if not IsClipped
then
begin
ScrollDC(Data.Canvas.Handle, Step, 0, VisibleOldR, ClipR, 0, nil);
BitBlt(Data.Canvas.Handle, 0, 0, Step, Data.Height,
Data.DstBmp.Canvas.Handle, DstXDesp, 0, cmSrcCopy);
end
else
BitBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right, Data.Height,
Data.DstBmp.Canvas.Handle, DstXDesp, 0, cmSrcCopy);
if Mode = 14 then
StretchBlt(Data.Canvas.Handle, VisibleR.Right, 0,
Data.Width - VisibleR.Right, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
15,
16: begin;
Inc(VisibleR.Right, Step);
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right, Data.Height,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height, cmSrcCopy);
if Mode = 16 then
StretchBlt(Data.Canvas.Handle, VisibleR.Right, 0,
Data.Width - VisibleR.Right, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
17: begin;
VisibleR.Left :=
Data.Width - Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Bottom := Round((Data.Height / TotalFrames) * CurrentFrame);
yDesp := VisibleR.Bottom - VisibleOldR.Bottom;
Dec(DstYDesp, yDesp);
if not IsClipped
then
begin
xDesp := VisibleR.Left - VisibleOldR.Left;
ScrollDC(Data.Canvas.Handle, xDesp, yDesp, VisibleOldR, ClipR, 0,
nil);
BitBlt(Data.Canvas.Handle, VisibleR.Left, 0,
VisibleR.Right - VisibleR.Left, yDesp,
Data.DstBmp.Canvas.Handle, 0, Data.Height - VisibleR.Bottom,
cmSrcCopy);
BitBlt(Data.Canvas.Handle,
Data.Width + xDesp, yDesp,
-xDesp, VisibleOldR.Bottom,
Data.DstBmp.Canvas.Handle,
VisibleOldR.Right - VisibleOldR.Left, DstYDesp + yDesp,
cmSrcCopy);
end
else
BitBlt(Data.Canvas.Handle, VisibleR.Left, 0,
VisibleR.Right - VisibleR.Left, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, 0, DstYDesp, cmSrcCopy);
end;
18: begin;
VisibleR.Left :=
Data.Width - Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Bottom := Round((Data.Height / TotalFrames) * CurrentFrame);
StretchBlt(Data.Canvas.Handle, VisibleR.Left, 0,
Data.Width - VisibleR.Left, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
19: begin;
VisibleR.Right := Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Bottom := Round((Data.Height / TotalFrames) * CurrentFrame);
xDesp := VisibleR.Right - VisibleOldR.Right;
yDesp := VisibleR.Bottom - VisibleOldR.Bottom;
Dec(DstXDesp, xDesp);
Dec(DstYDesp, yDesp);
if not IsClipped
then
begin
ScrollDC(Data.Canvas.Handle, xDesp, yDesp, VisibleOldR, ClipR, 0,
nil);
BitBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right - VisibleR.Left,
yDesp, Data.DstBmp.Canvas.Handle, DstXDesp, DstYDesp, cmSrcCopy);
BitBlt(Data.Canvas.Handle, 0, yDesp, xDesp, VisibleOldR.Bottom,
Data.DstBmp.Canvas.Handle, DstXDesp, DstYDesp + yDesp,
cmSrcCopy);
end
else
BitBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, DstXDesp, DstYDesp, cmSrcCopy);
end;
20: begin;
VisibleR.Right := Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Bottom := Round((Data.Height / TotalFrames) * CurrentFrame);
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
21: begin;
VisibleR.Left :=
Data.Width - Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Top :=
Data.Height - Round((Data.Height / TotalFrames) * CurrentFrame);
if not IsClipped
then
begin
xDesp := VisibleR.Left - VisibleOldR.Left;
yDesp := VisibleR.Top - VisibleOldR.Top;
Dec(DstXDesp, xDesp);
Dec(DstYDesp, yDesp);
ScrollDC(Data.Canvas.Handle, xDesp, yDesp, VisibleOldR, ClipR, 0,
nil);
BitBlt(Data.Canvas.Handle, VisibleR.Left,
Data.Height + yDesp, VisibleR.Right - VisibleR.Left, yDesp,
Data.DstBmp.Canvas.Handle, 0, DstYDesp, cmSrcCopy);
BitBlt(Data.Canvas.Handle, Data.Width + xDesp, VisibleR.Top, -xDesp,
VisibleOldR.Bottom - VisibleOldR.Top, Data.DstBmp.Canvas.Handle,
DstXDesp, 0, cmSrcCopy);
end
else
BitBlt(Data.Canvas.Handle, VisibleR.Left, VisibleR.Top,
VisibleR.Right - VisibleR.Left, VisibleR.Bottom - VisibleR.Top,
Data.DstBmp.Canvas.Handle, 0, 0, cmSrcCopy);
end;
22: begin;
VisibleR.Left :=
Data.Width - Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Top :=
Data.Height - Round((Data.Height / TotalFrames) * CurrentFrame);
StretchBlt(Data.Canvas.Handle, VisibleR.Left, VisibleR.Top,
Data.Width - VisibleR.Left, Data.Height - VisibleR.Top,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
end;
23: begin;
VisibleR.Right := Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Top :=
Data.Height - Round((Data.Height / TotalFrames) * CurrentFrame);
xDesp := VisibleR.Right - VisibleOldR.Right;
Dec(DstXDesp, xDesp);
if not IsClipped
then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -