📄 teslide.pas
字号:
DstYDesp := 0;
VisibleR := Rect(0, 0, Data.Width, Data.Height);
end;
44,
45: begin
if Data.Width > Data.Height
then TotalFrames := Data.Width -1
else TotalFrames := Data.Height-1;
DstYDesp := 0;
VisibleR := Rect(0, 0, Data.Width, Data.Height);
end;
46: begin
if Data.Width > Data.Height
then TotalFrames := (Data.Width div 2) - 1
else TotalFrames := (Data.Height div 2) - 1;
VisibleR := Rect(0, 0, Data.Width, Data.Height);
end;
end;
DoScroll := Assigned(Data.Bitmap);
end;
procedure TSlideTransition.Finalize(Data: TTETransitionData);
begin
SetStretchBltMode(Data.Canvas.Handle, SaveStretchBltMode);
inherited;
end;
procedure TSlideTransition.ExecuteFrame(Data: TTETransitionData; CurrentFrame,
Step, LastExecutedFrame: Longint);
var
VisibleOldR,
ScrollR: TRect;
xDesp,
yDesp: Integer;
begin
VisibleOldR := VisibleR;
case Mode of
1,
2: begin;
Inc(VisibleR.Bottom, Step);
Dec(DstYDesp, Step);
if DoScroll
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);
Data.UpdateRect := Rect(0, 0, Data.Width, VisibleR.Bottom);
if Mode = 2 then
begin
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Bottom,
Data.Width, Data.Height - VisibleR.Bottom,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
UnionRect(Data.UpdateRect, Data.UpdateRect,
Rect(0, VisibleR.Bottom, Data.Width, Data.Height));
end;
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);
Data.UpdateRect := Rect(0, 0, Data.Width, VisibleR.Bottom);
if Mode = 4 then
begin
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Bottom, Data.Width,
Data.Height - VisibleR.Bottom, Data.SrcBmp.Canvas.Handle, 0, 0,
Data.Width, Data.Height, cmSrcCopy);
UnionRect(Data.UpdateRect, Data.UpdateRect,
Rect(0, VisibleR.Bottom, Data.Width, Data.Height));
end;
end;
5,
6: begin;
Dec(VisibleR.Top, Step);
if DoScroll
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);
Data.UpdateRect := Rect(0, VisibleR.Top, Data.Width, VisibleR.Bottom);
if Mode = 6 then
begin
StretchBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
UnionRect(Data.UpdateRect, Data.UpdateRect,
Rect(0, 0, Data.Width, VisibleR.Top));
end;
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);
Data.UpdateRect := Rect(0, VisibleR.Top, Data.Width, Data.Height);
if Mode = 8 then
begin
StretchBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
UnionRect(Data.UpdateRect, Data.UpdateRect,
Rect(0, 0, Data.Width, VisibleR.Top));
end;
end;
9,
10: begin
Dec(VisibleR.Left, Step);
if DoScroll
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);
Data.UpdateRect := Rect(VisibleR.Left, 0, VisibleR.Right, Data.Height);
if Mode = 10 then
begin
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Left, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
UnionRect(Data.UpdateRect, Data.UpdateRect,
Rect(0, 0, VisibleR.Left, Data.Height));
end;
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);
Data.UpdateRect := Rect(VisibleR.Left, 0, Data.Width, Data.Height);
if Mode = 12 then
begin
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Left, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
UnionRect(Data.UpdateRect, Data.UpdateRect,
Rect(0, 0, VisibleR.Left, Data.Height));
end;
end;
13,
14: begin;
Inc(VisibleR.Right, Step);
Dec(DstXDesp, Step);
if DoScroll
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);
Data.UpdateRect := Rect(0, 0, VisibleR.Right, Data.Height);
if Mode = 14 then
begin
StretchBlt(Data.Canvas.Handle, VisibleR.Right, 0,
Data.Width - VisibleR.Right, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
UnionRect(Data.UpdateRect, Data.UpdateRect,
Rect(VisibleR.Right, 0, Data.Width, Data.Height));
end;
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);
Data.UpdateRect := Rect(0, 0, VisibleR.Right, Data.Height);
if Mode = 16 then
begin
StretchBlt(Data.Canvas.Handle, VisibleR.Right, 0,
Data.Width - VisibleR.Right, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
UnionRect(Data.UpdateRect, Data.UpdateRect,
Rect(VisibleR.Right, 0, Data.Width, Data.Height));
end;
end;
17: begin;
VisibleR.Left :=
Data.Width - Round((Data.Width / (Data.Frames + 1)) * CurrentFrame);
VisibleR.Bottom := Round((Data.Height / (Data.Frames + 1)) * CurrentFrame);
yDesp := VisibleR.Bottom - VisibleOldR.Bottom;
Dec(DstYDesp, yDesp);
if DoScroll
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);
Data.UpdateRect := Rect(VisibleR.Left, 0, VisibleR.Right, VisibleR.Bottom);
end;
18: begin;
VisibleR.Left :=
Data.Width - Round((Data.Width / (Data.Frames + 1)) * CurrentFrame);
VisibleR.Bottom := Round((Data.Height / (Data.Frames + 1)) * 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);
Data.UpdateRect := Rect(VisibleR.Left, 0, Data.Width, VisibleR.Bottom);
end;
19: begin;
VisibleR.Right := Round((Data.Width / (Data.Frames + 1)) * CurrentFrame);
VisibleR.Bottom := Round((Data.Height / (Data.Frames + 1)) * CurrentFrame);
xDesp := VisibleR.Right - VisibleOldR.Right;
yDesp := VisibleR.Bottom - VisibleOldR.Bottom;
Dec(DstXDesp, xDesp);
Dec(DstYDesp, yDesp);
if DoScroll
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);
Data.UpdateRect := Rect(0, 0, VisibleR.Right, VisibleR.Bottom);
end;
20: begin;
VisibleR.Right := Round((Data.Width / (Data.Frames + 1)) * CurrentFrame);
VisibleR.Bottom := Round((Data.Height / (Data.Frames + 1)) * CurrentFrame);
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
Data.UpdateRect := Rect(0, 0, VisibleR.Right, VisibleR.Bottom);
end;
21: begin;
VisibleR.Left :=
Data.Width - Round((Data.Width / (Data.Frames + 1)) * CurrentFrame);
VisibleR.Top :=
Data.Height - Round((Data.Height / (Data.Frames + 1)) * CurrentFrame);
if DoScroll
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);
Data.UpdateRect := Rect(VisibleR.Left, VisibleR.Top, VisibleR.Right,
VisibleR.Bottom);
end;
22: begin;
VisibleR.Left :=
Data.Width - Round((Data.Width / (Data.Frames + 1)) * CurrentFrame);
VisibleR.Top :=
Data.Height - Round((Data.Height / (Data.Frames + 1)) * 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);
Data.UpdateRect := Rect(VisibleR.Left, VisibleR.Top, Data.Width,
Data.Height);
end;
23: begin;
VisibleR.Right := Round((Data.Width / (Data.Frames + 1)) * CurrentFrame);
VisibleR.Top :=
Data.Height - Round((Data.Height / (Data.Frames + 1)) * CurrentFrame);
xDesp := VisibleR.Right - VisibleOldR.Right;
Dec(DstXDesp, xDesp);
if DoScroll
then
begin
yDesp := VisibleR.Top - VisibleOldR.Top;
Dec(DstYDesp, yDesp);
ScrollDC(Data.Canvas.Handle, xDesp, yDesp, VisibleOldR, ClipR, 0,
nil);
BitBlt(Data.Canvas.Handle, 0, Data.Height + yDesp, VisibleR.Right,
-yDesp, Data.DstBmp.Canvas.Handle, DstXDesp, DstYDesp, cmSrcCopy);
BitBlt(Data.Canvas.Handle, 0, VisibleR.Top, xDesp,
VisibleOldR.Bottom - VisibleOldR.Top, Data.DstBmp.Canvas.Handle,
DstXDesp, 0, cmSrcCopy);
end
else
BitBlt(Data.Canvas.Handle, 0, VisibleR.Top, VisibleR.Right,
VisibleR.Bottom - VisibleR.Top, Data.DstBmp.Canvas.Handle,
DstXDesp, 0, cmSrcCopy);
Data.UpdateRect := Rect(0, VisibleR.Top, VisibleR.Right,
VisibleR.Bottom);
end;
24: begin;
VisibleR.Right := Round((Data.Width / (Data.Frames + 1)) * CurrentFrame);
VisibleR.Top :=
Data.Height - Round((Data.Height / (Data.Frames + 1)) * CurrentFrame);
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Top, VisibleR.Right,
Data.Height - VisibleR.Top, Data.DstBmp.Canvas.Handle, 0, 0,
Data.Width, Data.Height, cmSrcCopy);
Data.UpdateRect := Rect(0, VisibleR.Top, VisibleR.Right, Data.Height);
end;
25: begin
with VisibleR do
begin
Left := (Data.Width -
Round((Data.Width / (Data.Frames + 1)) * CurrentFrame)) div 2;
Top := (Data.Height -
Round((Data.Height / (Data.Frames + 1)) * CurrentFrame)) div 2;
Right := Data.Width - Left;
Bottom := Data.Height - Top;
end;
StretchBlt(Data.Canvas.Handle, VisibleR.Left, VisibleR.Top,
VisibleR.Right - VisibleR.Left, VisibleR.Bottom - VisibleR.Top,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height, cmSrcCopy);
Data.UpdateRect := Rect(VisibleR.Left, VisibleR.Top, VisibleR.Right,
VisibleR.Bottom);
end;
26,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -