📄 teslide.pas
字号:
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);
end;
24: begin;
VisibleR.Right := Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Top :=
Data.Height - Round((Data.Height / TotalFrames) * 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);
end;
25: begin
with VisibleR do
begin
Left := (Data.Width -
Round((Data.Width / TotalFrames) * CurrentFrame)) div 2;
Top := (Data.Height -
Round((Data.Height / TotalFrames) * 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);
end;
26,
27,
28: begin;
Inc(VisibleR.Bottom, Step);
if Mode <> 27
then
begin
if not IsClipped
then
begin
ScrollR := Rect(0, VisibleOldR.Bottom, Data.Width, Data.Height);
ScrollDC(Data.Canvas.Handle, 0, Step, ScrollR, ClipR, 0, nil);
end
else
BitBlt(Data.Canvas.Handle, 0, VisibleR.Bottom, Data.Width,
Data.Height - VisibleR.Bottom, Data.SrcBmp.Canvas.Handle, 0, 0,
cmSrcCopy);
end
else
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Bottom, Data.Width,
Data.Height - VisibleR.Bottom, Data.SrcBmp.Canvas.Handle, 0, 0,
Data.Width, Data.Height, cmSrcCopy);
if Mode = 28
then
StretchBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy)
else
BitBlt(Data.Canvas.Handle, 0, VisibleOldR.Bottom, Data.Width,
Step, Data.DstBmp.Canvas.Handle, 0, VisibleOldR.Bottom, cmSrcCopy);
end;
29,
30,
31: begin;
Dec(VisibleR.Top, Step);
if Mode <> 30
then
begin
if not IsClipped
then
begin
ScrollR := Rect(0, 0, Data.Width, VisibleOldR.Top);
ScrollDC(Data.Canvas.Handle, 0, -Step, ScrollR, ClipR, 0, nil);
end
else
begin
Inc(DstYDesp, Step);
BitBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, DstYDesp, cmSrcCopy);
end;
end
else
StretchBlt(Data.Canvas.Handle, 0, 0, Data.Width, VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
if Mode = 31
then
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Top, Data.Width,
Data.Height - VisibleR.Top, Data.DstBmp.Canvas.Handle, 0, 0,
Data.Width, Data.Height, cmSrcCopy)
else
BitBlt(Data.Canvas.Handle, 0, VisibleR.Top, Data.Width, Step,
Data.DstBmp.Canvas.Handle, 0, VisibleR.Top, cmSrcCopy);
end;
32,
33,
34: begin;
Dec(VisibleR.Left, Step);
if Mode <> 33
then
begin
if not IsClipped
then
begin
ScrollR := Rect(0, 0, VisibleOldR.Left, Data.Height);
ScrollDC(Data.Canvas.Handle, -Step, 0, ScrollR, ClipR, 0, nil);
end
else
begin
Inc(DstXDesp, Step);
BitBlt(Data.Canvas.Handle, 0, 0, VisibleR.Left, Data.Height,
Data.SrcBmp.Canvas.Handle, DstXDesp, 0, cmSrcCopy);
end;
end
else
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Left, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
if Mode = 34
then
StretchBlt(Data.Canvas.Handle, VisibleR.Left, 0,
Data.Width - VisibleR.Left, Data.Height,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy)
else
BitBlt(Data.Canvas.Handle, VisibleR.Left, 0, Step, Data.Height,
Data.DstBmp.Canvas.Handle, VisibleR.Left, 0, cmSrcCopy);
end;
35,
36,
37: begin;
Inc(VisibleR.Right, Step);
if Mode <> 36
then
begin
if not IsClipped
then
begin
ScrollR := Rect(VisibleOldR.Right, 0, Data.Width, Data.Height);
ScrollDC(Data.Canvas.Handle, Step, 0, ScrollR, ClipR, 0, nil);
end
else
BitBlt(Data.Canvas.Handle, VisibleR.Right, 0,
Data.Width - VisibleR.Right, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, cmSrcCopy);
end
else
StretchBlt(Data.Canvas.Handle, VisibleR.Right, 0,
Data.Width - VisibleR.Right, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
if Mode = 37
then
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right, Data.Height,
Data.DstBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy)
else
BitBlt(Data.Canvas.Handle, VisibleOldR.Right, 0, Step, Data.Height,
Data.DstBmp.Canvas.Handle, VisibleOldR.Right, 0, cmSrcCopy);
end; //EROC itnA
38,
39: begin;
VisibleR.Right :=
Data.Width - Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Top := Round((Data.Height / TotalFrames) * CurrentFrame);
xDesp := VisibleR.Right - VisibleOldR.Right;
yDesp := VisibleR.Top - VisibleOldR.Top;
if Mode = 38
then
begin
if not IsClipped
then
ScrollDC(Data.Canvas.Handle, xDesp, yDesp, VisibleOldR, ClipR, 0,
nil)
else
begin
Dec(DstXDesp, xDesp);
BitBlt(Data.Canvas.Handle, 0, VisibleR.Top, VisibleR.Right,
Data.Height - VisibleR.Top, Data.SrcBmp.Canvas.Handle,
DstXDesp, 0, cmSrcCopy);
end;
end
else
StretchBlt(Data.Canvas.Handle, 0, VisibleR.Top, VisibleR.Right,
Data.Height - VisibleR.Top, Data.SrcBmp.Canvas.Handle, 0, 0,
Data.Width, Data.Height, cmSrcCopy);
BitBlt(Data.Canvas.Handle, 0, VisibleOldR.Top, VisibleOldR.Right, yDesp,
Data.DstBmp.Canvas.Handle, 0, VisibleOldR.Top, cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleR.Right, VisibleR.Top, -xDesp,
VisibleR.Bottom - VisibleR.Top, Data.DstBmp.Canvas.Handle,
VisibleR.Right, VisibleR.Top, cmSrcCopy);
end;
40,
41: begin;
VisibleR.Left := Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Top := Round((Data.Height / TotalFrames) * CurrentFrame);
xDesp := VisibleR.Left - VisibleOldR.Left;
yDesp := VisibleR.Top - VisibleOldR.Top;
if Mode = 40
then
begin
if not IsClipped
then
ScrollDC(Data.Canvas.Handle, xDesp, yDesp, VisibleOldR, ClipR, 0,
nil)
else
BitBlt(Data.Canvas.Handle, VisibleR.Left, VisibleR.Top,
Data.Width - VisibleR.Left, Data.Height - VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, 0, cmSrcCopy);
end
else
StretchBlt(Data.Canvas.Handle, VisibleR.Left, VisibleR.Top,
Data.Width - VisibleR.Left, Data.Height - VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width,
Data.Height, cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleOldR.Left, VisibleOldR.Top,
Data.Width - VisibleOldR.Left, yDesp, Data.DstBmp.Canvas.Handle,
VisibleOldR.Left, VisibleOldR.Top, cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleOldR.Left, VisibleOldR.Top, xDesp,
Data.Height - VisibleOldR.Top, Data.DstBmp.Canvas.Handle,
VisibleOldR.Left, VisibleOldR.Top, cmSrcCopy);
end;
42,
43: begin;
VisibleR.Right :=
Data.Width - Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Bottom :=
Data.Height - Round((Data.Height / TotalFrames) * CurrentFrame);
xDesp := VisibleR.Right - VisibleOldR.Right;
yDesp := VisibleR.Bottom - VisibleOldR.Bottom;
if Mode = 42
then
begin
if not IsClipped
then
ScrollDC(Data.Canvas.Handle, xDesp, yDesp, VisibleOldR, ClipR, 0,
nil)
else
begin
Dec(DstXDesp, xDesp);
Dec(DstYDesp, yDesp);
BitBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right, VisibleR.Bottom,
Data.SrcBmp.Canvas.Handle, DstXDesp, DstYDesp, cmSrcCopy);
end;
end
else
StretchBlt(Data.Canvas.Handle, 0, 0, VisibleR.Right,
VisibleR.Bottom, Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width,
Data.Height, cmSrcCopy);
BitBlt(Data.Canvas.Handle, 0, VisibleR.Bottom, VisibleOldR.Right, -yDesp,
Data.DstBmp.Canvas.Handle, 0, VisibleR.Bottom, cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleR.Right, 0, -xDesp, VisibleR.Bottom,
Data.DstBmp.Canvas.Handle, VisibleR.Right, 0, cmSrcCopy);
end;
44,
45: begin;
VisibleR.Left := Round((Data.Width / TotalFrames) * CurrentFrame);
VisibleR.Bottom :=
Data.Height - Round((Data.Height / TotalFrames) * CurrentFrame);
xDesp := VisibleR.Left - VisibleOldR.Left;
yDesp := VisibleR.Bottom - VisibleOldR.Bottom;
Dec(DstYDesp, yDesp);
if Mode = 44
then
begin
if not IsClipped
then
ScrollDC(Data.Canvas.Handle, xDesp, yDesp, VisibleOldR, ClipR, 0,
nil)
else
BitBlt(Data.Canvas.Handle, VisibleR.Left, 0,
Data.Width - VisibleR.Left, VisibleR.Bottom,
Data.SrcBmp.Canvas.Handle, 0, DstYDesp, cmSrcCopy);
end
else
StretchBlt(Data.Canvas.Handle, VisibleR.Left, 0,
Data.Width - VisibleR.Left, VisibleR.Bottom,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height,
cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleOldR.Left, VisibleR.Bottom,
Data.Width - VisibleOldR.Left, -yDesp, Data.DstBmp.Canvas.Handle,
VisibleOldR.Left, VisibleR.Bottom, cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleOldR.Left, 0, xDesp,
VisibleR.Bottom, Data.DstBmp.Canvas.Handle, VisibleOldR.Left, 0,
cmSrcCopy);
end;
46: begin
with VisibleR do
begin
Left := (Round((Data.Width / TotalFrames) * CurrentFrame)) div 2;
Top := (Round((Data.Height / TotalFrames) * CurrentFrame)) div 2;
Right := Data.Width - Left;
Bottom := Data.Height - Top;
end;
BitBlt(Data.Canvas.Handle, VisibleOldR.Left, VisibleR.Bottom,
VisibleOldR.Right - VisibleOldR.Left,
VisibleOldR.Bottom - VisibleR.Bottom, Data.DstBmp.Canvas.Handle,
VisibleOldR.Left, VisibleR.Bottom, cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleOldR.Left, VisibleOldR.Top,
VisibleOldR.Right - VisibleOldR.Left,
VisibleR.Top - VisibleOldR.Top, Data.DstBmp.Canvas.Handle,
VisibleOldR.Left, VisibleOldR.Top, cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleOldR.Left, VisibleR.Top,
VisibleR.Left - VisibleOldR.Left, VisibleR.Bottom - VisibleR.Top,
Data.DstBmp.Canvas.Handle, VisibleOldR.Left, VisibleR.Top,
cmSrcCopy);
BitBlt(Data.Canvas.Handle, VisibleR.Right, VisibleR.Top,
VisibleOldR.Right - VisibleR.Right, VisibleR.Bottom - VisibleR.Top,
Data.DstBmp.Canvas.Handle, VisibleR.Right, VisibleR.Top, cmSrcCopy);
StretchBlt(Data.Canvas.Handle, VisibleR.Left, VisibleR.Top,
VisibleR.Right - VisibleR.Left, VisibleR.Bottom - VisibleR.Top,
Data.SrcBmp.Canvas.Handle, 0, 0, Data.Width, Data.Height, cmSrcCopy);
end;
end;
end;
initialization
TERegisterTransition(TSlideTransition);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -