pseffect.pas

来自「TPicShow是一套图形平滑特效控制组件」· PAS 代码 · 共 1,828 行 · 第 1/5 页

PAS
1,828
字号
  R1.Bottom := H;
  R2.Top := H - (Y div 2) - 1;
  R2.Bottom := H;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect030(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Bottom := (Y div 2) + 1;
  R2.Bottom := (H div 2) + 1;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
  R1.Top := H - (Y div 2) - 1;
  R1.Bottom := H;
  R2.Top := H div 2;
  R2.Bottom := H;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect031(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Top := Y;
  if R1.Top < H div 5 then
   R1.Bottom := R1.Top + Y div 2
  else if (R1.Top + H div 5) > H then
   R1.Bottom := R1.Top + (H - Y) div 2
  else
   R1.Bottom := R1.Top + H div 10;
  R2.Top := R1.Bottom;
  R2.Bottom := R2.Top + R1.Bottom - R1.Top;
  MirrorCopyRect(Screen.Canvas, R1, Image, R2, False, True);
  R1.Top := 0;
  R1.Bottom := Y;
  R2.Top := 0;
  R2.Bottom := Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect032(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Bottom := H - Y;
  if (R1.Bottom + H div 5) > H then
   R1.Top := R1.Bottom - Y div 2
  else if R1.Bottom < H div 5 then
   R1.Top := R1.Bottom - (H - Y) div 2
  else
   R1.Top := R1.Bottom - H div 10;
  R2.Bottom := R1.Top;
  R2.Top := R2.Bottom - R1.Bottom + R1.Top;
  MirrorCopyRect(Screen.Canvas, R1, Image, R2, False, True);
  R1.Top := H - Y;
  R1.Bottom := H;
  R2.Top := H - Y;
  R2.Bottom := H;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect033(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Bottom := Y;
  R2.Bottom := Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
  R1.Top := Y;
  R1.Bottom := H;
  R2.Top := Y;
  R2.Bottom := Min(Y + H div S, H);
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect034(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Top := H - Y;
  R1.Bottom := H;
  R2.Top := H - Y;
  R2.Bottom := H;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
  R1.Top := 0;
  R1.Bottom := H - Y;
  R2.Top := Max((H - Y) - H div S, 0);
  R2.Bottom := H - Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect035(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R := Rect;
  R.Left := W - X;
  R.Top := H - Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect036(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R := Rect;
  R.Left := W - X;
  R.Bottom := Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect037(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R := Rect;
  R.Right := X;
  R.Bottom := Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect038(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R := Rect;
  R.Right := X;
  R.Top := H - Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect039(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R := Rect;
  R.Left := W - X;
  R.Top := H - Y;
  R.Right := (2 * W) - X;
  R.Bottom := (2 * H) - Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect040(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R := Rect;
  R.Left := W - X;
  R.Top := Y - H;
  R.Right := (2 * W) - X;
  R.Bottom := Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect041(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R := Rect;
  R.Left := X - W;
  R.Top := Y - H;
  R.Right := X;
  R.Bottom := Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect042(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R := Rect;
  R.Left := X - W;
  R.Top := H - Y;
  R.Right := X;
  R.Bottom := (2 * H) - Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect043(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Right := X;
  R1.Bottom := Y;
  R2.Right := X;
  R2.Bottom := Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect044(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Right := X;
  R1.Top := H - Y;
  R2.Right := X;
  R2.Top := H - Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect045(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Left := W - X;
  R1.Top := H - Y;
  R2.Left := W - X;
  R2.Top := H - Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect046(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Left := W - X;
  R1.Bottom := Y;
  R2.Left := W - X;
  R2.Bottom := Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect047(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Right := (2 * W) - X;
  R1.Bottom := (2 * H) - Y;
  R2.Right := X;
  R2.Bottom := Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect048(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Right := (2 * W) - X;
  R1.Top := Y - H;
  R2.Right := X;
  R2.Top := H - Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect049(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Left := X - W;
  R1.Top := Y - H;
  R2.Left := W - X;
  R2.Top := H - Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect050(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, Step, Progress, W, H, X, Y, S);
  R1 := Rect;
  R2 := Rect;
  R1.Left := X - W;
  R1.Bottom := (2 * H) - Y;
  R2.Left := W - X;
  R2.Bottom := Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect051(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);
var
  W, H, X, Y, S: Integer;
  R1, R2: TRect;
begin
  CalcParams(Rect, S

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?