teshake.pas
来自「可以做出类似netants的那种窗体左右弹出效果」· PAS 代码 · 共 52 行
PAS
52 行
unit teShake;
interface
uses Classes, Windows, SysUtils, Graphics, TransEff;
type
TShakeTransition = class(TTransitionEffect)
protected
procedure DoExecute(Data: TTETransitionData); override;
function NeedDstImage: Boolean; override;
end;
implementation
uses
teRender, teChrono;
function TShakeTransition.NeedDstImage: Boolean;
begin
Result := False;
end;
procedure TShakeTransition.DoExecute(Data: TTETransitionData);
var
Chrono: TTEChrono;
PosX,
PosY: Integer;
begin
Chrono := TTEChrono.Create;
try
Randomize;
Chrono.Start;
while Chrono.Milliseconds < Milliseconds do
begin
PosX := Random(7);
PosY := Random(7);
BitBlt(Data.Canvas.Handle, PosX-3, PosY-3, Data.Width, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, cmSrcCopy);
Sleep(35);
end;
BitBlt(Data.Canvas.Handle, 0, 0, Data.Width, Data.Height,
Data.SrcBmp.Canvas.Handle, 0, 0, cmSrcCopy);
finally
Chrono.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?