亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pseffect.pas

?? TPicShow是一套圖形平滑特效控制組件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    begin
      if Result <> 0 then
      begin
        CombineRgn(Result, Result, Rgn, RGN_OR);
        DeleteObject(Rgn);
      end
      else
        Result := Rgn;
    end;
    Inc(X1, 10)
  end;
end;

function CreatePourRgn(X, Y, W, H, XMode, YMode: Integer): HRGN;
var
  X1, Y1, N: Integer;
  Rgn, tRgn: HRGN;
begin
  Result := 0;
  if XMode <> 0 then
  begin
    if X < W then
      N := W div 7
    else
      N := 0;
    Y1 := 0;
    while Y1 < H do
    begin
      if XMode = 1 then
        Rgn := CreateRectRgn(W - X + Random(N) - Random(N), Y1, W, Y1 + 5 + H mod 5)
      else if XMode = 2 then
        Rgn := CreateRectRgn(0, Y1, X + Random(N) - Random(N), Y1 + 5 + H mod 5)
      else if XMode = 3 then
      begin
        Rgn := CreateRectRgn((W - X + Random(N) - Random(N)) div 2, Y1, W div 2, Y1 + 5 + H mod 5);
        tRgn := CreateRectRgn(W div 2, Y1, (W + X + Random(N) - Random(N)) div 2, Y1 + 5 + H mod 5);
        CombineRgn(Rgn, Rgn, tRgn, RGN_OR);
        DeleteObject(tRgn);
      end
      else
      begin
        Rgn := CreateRectRgn(W - (X + Random(N) - Random(N)) div 2, Y1, W, Y1 + 5 + H mod 5);
        tRgn := CreateRectRgn(0, Y1, (X + Random(N) - Random(N)) div 2, Y1 + 5 + H mod 5);
        CombineRgn(Rgn, Rgn, tRgn, RGN_OR);
        DeleteObject(tRgn);
      end;
      if Result <> 0 then
      begin
        CombineRgn(Result, Result, Rgn, RGN_OR);
        DeleteObject(Rgn);
      end
      else
        Result := Rgn;
      Inc(Y1, 5);
    end;
  end;
  if YMode <> 0 then
  begin
    if Y < H then
      N := H div 7
    else
      N := 0;
    X1 := 0;
    while X1 < W do
    begin
      if YMode = 1 then
        Rgn := CreateRectRgn(X1, H - Y + Random(N) - Random(N), X1 + 5 + W mod 5, H)
      else if YMode = 2 then
        Rgn := CreateRectRgn(X1, 0, X1 + 5 + W mod 5, Y + Random(N) - Random(N))
      else if YMode = 3 then
      begin
        Rgn := CreateRectRgn(X1, (H - Y + Random(N) - Random(N)) div 2, X1 + 5 + W mod 5, H div 2);
        tRgn := CreateRectRgn(X1, H div 2, X1 + 5 + W mod 5, (H + Y + Random(N) - Random(N)) div 2);
        CombineRgn(Rgn, Rgn, tRgn, RGN_OR);
        DeleteObject(tRgn);
      end
      else
      begin
        Rgn := CreateRectRgn(X1, H - (Y + Random(N) - Random(N)) div 2, X1 + 5 + W mod 5, H);
        tRgn := CreateRectRgn(X1, 0, X1 + 5 + W mod 5, (Y + Random(N) - Random(N)) div 2);
        CombineRgn(Rgn, Rgn, tRgn, RGN_OR);
        DeleteObject(tRgn);
      end;
      if Result <> 0 then
      begin
        CombineRgn(Result, Result, Rgn, RGN_OR);
        DeleteObject(Rgn);
      end
      else
        Result := Rgn;
      Inc(X1, 5);
    end;
  end;
end;

function CreateSwarmRgn(X, Y, W, H, XMode, YMode: Integer): HRGN;
var
  X1, Y1, N, M, I, J: Integer;
  Rgn, tRgn: HRGN;
begin
  Result := 0;
  if XMode <> 0 then
  begin
    if X < W then
      N := W div 10
    else
      N := 0;
    M := N div 20;
    if M < 2 then M := 2;
    Y1 := 0;
    while Y1 < H do
    begin
      if XMode = 1 then
      begin
        Rgn := CreateRectRgn(W - X, Y1, W, Y1 + M);
        for I := N div M downto 1 do
        begin
          if I > 3 * N div M div 4 then J := 0 else J := 1;
          if Random(I) <= J then
          begin
            X1 := (W - X) - (I * M);
            tRgn := CreateRectRgn(X1, Y1, X1 + M, Y1 + M);
            CombineRgn(Rgn, Rgn, tRgn, RGN_OR);
            DeleteObject(tRgn);
          end;
        end;
      end
      else
      begin
        Rgn := CreateRectRgn(0, Y1, X, Y1 + M);
        for I := N div M downto 1 do
        begin
          if I > 3 * N div M div 4 then J := 0 else J := 1;
          if Random(I) <= J then
          begin
            X1 := X + (I * M);
            tRgn := CreateRectRgn(X1 - M, Y1, X1, Y1 + M);
            CombineRgn(Rgn, Rgn, tRgn, RGN_OR);
            DeleteObject(tRgn);
          end;
        end;
      end;
      if Result <> 0 then
      begin
        CombineRgn(Result, Result, Rgn, RGN_OR);
        DeleteObject(Rgn);
      end
      else
        Result := Rgn;
      Inc(Y1, M div 2);
    end;
  end;
  if YMode <> 0 then
  begin
    if Y < H then
      N := H div 10
    else
      N := 0;
    M := N div 20;
    if M < 2 then M := 2;
    X1 := 0;
    while X1 < W do
    begin
      if YMode = 1 then
      begin
        Rgn := CreateRectRgn(X1, H - Y, X1 + M, H);
        for I := N div M downto 1 do
        begin
          if I > 3 * N div M div 4 then J := 0 else J := 1;
          if Random(I) <= J then
          begin
            Y1 := (H - Y) - (I * M);
            tRgn := CreateRectRgn(X1, Y1, X1 + M, Y1 + M);
            CombineRgn(Rgn, Rgn, tRgn, RGN_OR);
            DeleteObject(tRgn);
          end;
        end;
      end
      else
      begin
        Rgn := CreateRectRgn(X1, 0, X1 + M, Y);
        for I := N div M downto 1 do
        begin
          if I > 3 * N div M div 4 then J := 0 else J := 1;
          if Random(I) <= J then
          begin
            Y1 := Y + (I * M);
            tRgn := CreateRectRgn(X1, Y1 - M, X1 + M, Y1);
            CombineRgn(Rgn, Rgn, tRgn, RGN_OR);
            DeleteObject(tRgn);
          end;
        end;
      end;
      if Result <> 0 then
      begin
        CombineRgn(Result, Result, Rgn, RGN_OR);
        DeleteObject(Rgn);
      end
      else
        Result := Rgn;
      Inc(X1, M div 2);
    end;
  end;
end;

function CreateTriangleRgn(X1, Y1, X2, Y2, X3, Y3: Integer): HRGN;
var
  Pts: array[1..3] of TPoint;
begin
  Pts[1].X := X1;
  Pts[1].Y := Y1;
  Pts[2].X := X2;
  Pts[2].Y := Y2;
  Pts[3].X := X3;
  Pts[3].Y := Y3;
  Result := CreatePolygonRgn(Pts, High(Pts), WINDING);
end;

function CreateArcRgn(mX, mY, Radius: Integer; StartAngle, EndAngle: Extended;
  NumPts: Integer): HRGN;
type
  PtArray = array[0..0] of TPoint;
var
  Pts: ^PtArray;
  Sin, Cos, Delta: Extended;
  I: Integer;
begin
  GetMem(Pts, (NumPts + 1) * SizeOf(TPoint));
  try
    Pts[0].X := mX;
    Pts[0].Y := mY;
    Delta := (EndAngle - StartAngle) / NumPts;
    for I := 1 to NumPts do
    begin
      SinCos(StartAngle, Sin, Cos);
      Pts[I].X := mX + Round(Radius * Cos);
      Pts[I].Y := mY + Round(Radius * Sin);
      StartAngle := StartAngle + Delta;
    end;
    Result := CreatePolygonRgn(Pts^, NumPts + 1, WINDING);
  finally
    FreeMem(Pts);
  end;
end;

procedure CalcParams(const Rect: TRect; Step: Integer; Progress: Integer;
  var W, H, X, Y, Slice: Integer);
begin
  W := Rect.Right - Rect.Left;
  H := Rect.Bottom - Rect.Top;
  if W >= H then
  begin
    X := MulDiv(W, Progress, 100);
    Y := MulDiv(X, H, W);
    Slice := MulDiv(W, Step, 90);
  end
  else
  begin
    Y := MulDiv(H, Progress, 100);
    X := MulDiv(Y, W, H);
    Slice := MulDiv(H, Step, 90);
  end;
end;

{$IFNDEF DELPHI4_UP}
function Min(A, B: Integer): Integer;
begin
  if A < B then
    Result := A
  else
    Result := B;
end;
{$ENDIF}

{$IFNDEF DELPHI4_UP}
function Max(A, B: Integer): Integer;
begin
  if A > B then
    Result := A
  else
    Result := B;
end;
{$ENDIF}

{ Transition Effects }

procedure Effect001(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;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

procedure Effect002(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;
  Screen.Canvas.CopyRect(R, Image.Canvas, Rect);
end;

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

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

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

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

procedure Effect007(Screen, Image: TBitmap; const Rect: TRect;
  Step: Integer; Progress: Integer);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久se精品一区精品二区| 99精品久久免费看蜜臀剧情介绍| 国产又黄又大久久| 色综合久久88色综合天天6| 538在线一区二区精品国产| 欧美激情在线一区二区三区| 污片在线观看一区二区| 国产日韩欧美不卡在线| 欧美色大人视频| 国产麻豆精品95视频| 精品国产乱码久久久久久蜜臀| 综合在线观看色| 色呦呦国产精品| 午夜精品福利视频网站| av一区二区三区| 亚洲福利一二三区| www.欧美精品一二区| 国产成人午夜精品5599| 亚洲一区二区视频| 成人av电影观看| 久久在线免费观看| 亚洲成av人片一区二区| 91一区二区在线观看| 欧美亚洲免费在线一区| 欧美电影一区二区| 亚洲大片在线观看| 99精品欧美一区二区三区小说| 久久久久久久久久久99999| 天天综合色天天综合色h| 欧美丝袜丝交足nylons| 一区二区三区精品视频| 大白屁股一区二区视频| 久久综合av免费| 狠狠色丁香婷婷综合| 精品国产麻豆免费人成网站| 日本美女一区二区三区视频| 欧美美女bb生活片| 视频一区国产视频| 欧美日韩国产中文| 午夜国产精品一区| a在线欧美一区| 亚洲色图20p| 色婷婷综合久久久久中文一区二区| 日本一区二区免费在线观看视频| 粉嫩aⅴ一区二区三区四区五区| 久久久国产精华| 成人久久视频在线观看| 亚洲丝袜另类动漫二区| 99在线热播精品免费| 一区二区三区在线免费播放| 在线日韩av片| 视频一区视频二区中文字幕| 日韩欧美综合一区| 国产精品一区二区你懂的| 日本一二三不卡| 色88888久久久久久影院按摩| 亚洲激情图片小说视频| 欧美久久一区二区| 久草精品在线观看| 久久久天堂av| 91福利精品第一导航| 蜜臀99久久精品久久久久久软件| 久久综合久久综合久久综合| 国产电影一区二区三区| 一区二区三区在线视频观看58 | 亚洲欧洲精品一区二区三区| 色女孩综合影院| 午夜精品aaa| 久久午夜羞羞影院免费观看| 国产风韵犹存在线视精品| 亚洲免费视频中文字幕| 这里只有精品视频在线观看| 国产一区二区免费看| 成人欧美一区二区三区白人| 色88888久久久久久影院野外| 久久99热国产| 亚洲欧美另类小说| 精品国产亚洲在线| 成人福利视频在线看| 亚洲.国产.中文慕字在线| 久久久精品免费网站| 欧美日韩中文一区| 成人午夜av电影| 日本成人在线不卡视频| 国产精品国产三级国产普通话99| 欧美乱熟臀69xxxxxx| 成人免费毛片嘿嘿连载视频| 午夜精品久久久久久久久久| 国产免费观看久久| 91精品国产日韩91久久久久久| 成人黄色一级视频| 久久成人av少妇免费| 一区二区免费在线| 中文字幕欧美区| 日韩一区二区免费视频| 在线视频观看一区| 不卡视频在线看| 国产在线播放一区三区四| 天涯成人国产亚洲精品一区av| 亚洲天堂福利av| 中文在线一区二区| 欧美大片在线观看一区二区| 欧美午夜宅男影院| 在线亚洲人成电影网站色www| jvid福利写真一区二区三区| 亚洲电影你懂得| 亚洲精品国产精华液| 亚洲欧美影音先锋| 久久久久久久久伊人| 日韩欧美久久久| 91麻豆精品国产自产在线观看一区 | 久国产精品韩国三级视频| 午夜精品一区二区三区电影天堂| 一区在线中文字幕| 最好看的中文字幕久久| 国产日韩欧美制服另类| 国产日韩精品视频一区| 国产女人水真多18毛片18精品视频| 久久综合色一综合色88| 国产日韩视频一区二区三区| 久久综合一区二区| 26uuu另类欧美亚洲曰本| 欧美不卡一区二区三区四区| 日韩欧美一级二级三级| 在线电影欧美成精品| 日韩欧美成人午夜| 精品第一国产综合精品aⅴ| 欧美亚洲一区三区| 在线不卡一区二区| 欧美一级一级性生活免费录像| 在线播放中文字幕一区| 欧美一区二区视频免费观看| 日韩一区二区不卡| 精品免费国产二区三区| 日韩欧美高清在线| 国产欧美一区二区精品性 | 欧美日韩一区二区三区在线| 欧美亚洲高清一区二区三区不卡| 在线免费观看日韩欧美| 正在播放亚洲一区| 久久久久久久久久电影| 国产精品电影一区二区三区| 亚洲午夜在线电影| 亚洲mv在线观看| 国产高清成人在线| 色婷婷精品大在线视频| 日韩三级中文字幕| 国产精品美女久久久久av爽李琼| 亚洲精品久久7777| 精品中文字幕一区二区小辣椒| 成人在线一区二区三区| 欧美午夜不卡视频| 久久综合狠狠综合| 亚洲精品福利视频网站| 狠狠色丁香久久婷婷综合丁香| 97精品久久久午夜一区二区三区 | 欧美精选午夜久久久乱码6080| 91精品国产综合久久福利软件| 久久男人中文字幕资源站| 国产精品久久久久久亚洲伦 | 精品粉嫩aⅴ一区二区三区四区| www.日本不卡| 欧美三级韩国三级日本一级| 91精品国产欧美一区二区成人 | 亚洲免费在线视频| 亚洲日穴在线视频| 久久国产欧美日韩精品| 成人性生交大片免费看中文网站| 99这里只有久久精品视频| 这里只有精品免费| 国产精品一区二区果冻传媒| 国产mv日韩mv欧美| 欧美丰满高潮xxxx喷水动漫| 欧美精品亚洲二区| 国产视频一区二区三区在线观看| 国产清纯在线一区二区www| 欧美经典一区二区| 亚洲免费毛片网站| 波多野结衣91| 成人美女视频在线观看18| 欧美色图在线观看| 日韩福利电影在线观看| 不卡一区二区三区四区| 欧美一三区三区四区免费在线看| 亚洲品质自拍视频| 国产美女精品一区二区三区| 4438成人网| 久久综合五月天婷婷伊人| 亚洲图片欧美综合| 成人丝袜高跟foot| 欧美性xxxxxx少妇| 中文字幕一区二区三区四区| 视频一区二区中文字幕| 国产精品一二三四| 精品福利一区二区三区| 日本不卡中文字幕| 91国在线观看| 亚洲最新视频在线播放| 丁香激情综合五月| 久久久精品黄色|