⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pseffect.pas

📁 TPicShow是一套图形平滑特效控制组件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
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;
  R2.Right := X;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect008(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;
  R2.Left := W - X;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect009(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.Right := (2 * W) - X;
  R2.Left := (W - X) div 2;
  R2.Right := (W + X) div 2;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect010(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) div 2;
  R.Right := (W + X) div 2;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect011(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) div 2;
  R1.Right := (W + X) div 2;
  R2.Left := (W - X) div 2;
  R2.Right := (W + X) div 2;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect012(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 div 2) + 1;
  R2.Right := (X div 2) + 1;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
  R1.Left := W - (X div 2) - 1;
  R1.Right := W;
  R2.Left := W - (X div 2) - 1;
  R2.Right := W;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect013(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 div 2) + 1;
  R2.Right := (W div 2) + 1;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
  R1.Left := W - (X div 2) - 1;
  R1.Right := W;
  R2.Left := W div 2;
  R2.Right := W;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect014(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;
  if R1.Left < W div 5 then
   R1.Right := R1.Left + X div 2
  else if (R1.Left + W div 5) > W then
   R1.Right := R1.Left + (W - X) div 2
  else
   R1.Right := R1.Left + W div 10;
  R2.Left := R1.Right;
  R2.Right := R2.Left + R1.Right - R1.Left;
  MirrorCopyRect(Screen.Canvas, R1, Image, R2, True, False);
  R1.Left := 0;
  R1.Right := X;
  R2.Left := 0;
  R2.Right := X;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect015(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 := W - X;
  if (R1.Right + W div 5) > W then
   R1.Left := R1.Right - X div 2
  else if R1.Right < W div 5 then
   R1.Left := R1.Right - (W - X) div 2
  else
   R1.Left := R1.Right - W div 10;
  R2.Right := R1.Left;
  R2.Left := R2.Right - R1.Right + R1.Left;
  MirrorCopyRect(Screen.Canvas, R1, Image, R2, True, False);
  R1.Left := W - X;
  R1.Right := W;
  R2.Left := W - X;
  R2.Right := W;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect016(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;
  R2.Right := X;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
  R1.Left := X;
  R1.Right := W;
  R2.Left := X;
  R2.Right := Min(X + W div S, W);
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect017(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.Right := W;
  R2.Left := W - X;
  R2.Right := W;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
  R1.Left := 0;
  R1.Right := W - X;
  R2.Left := Max((W - X) - W div S, 0);
  R2.Right := W - X;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect018(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.Top := H - Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect019(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.Bottom := Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect020(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.Top := H - Y;
  R.Bottom := (2 * H) - Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect021(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.Top := Y - H;
  R.Bottom := Y;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect022(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);
end;

procedure Effect023(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;
  R2.Top := H - Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect024(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 := (2 * H) - Y;
  R2.Bottom := Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect025(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 - H;
  R2.Top := H - Y;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect026(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 - H;
  R1.Bottom := (2 * H) - Y;
  R2.Top := (H - Y) div 2;
  R2.Bottom := (H + Y) div 2;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect027(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) div 2;
  R1.Bottom := (H + Y) div 2;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect028(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) div 2;
  R1.Bottom := (H + Y) div 2;
  R2.Top := (H - Y) div 2;
  R2.Bottom := (H + Y) div 2;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
end;

procedure Effect029(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 := (Y div 2) + 1;
  Screen.Canvas.CopyRect(R1, Image.Canvas, R2);
  R1.Top := H - (Y div 2) - 1;

⌨️ 快捷键说明

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