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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 個(gè)人收集及編寫的一個(gè)通用函數(shù)集.pas

?? 個(gè)人收集及編寫的一個(gè)通用函數(shù)集
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
        S := '';
        B := mDisplay[I] = '''';
      end;
      '$', '0'..'9', 'a'..'f', 'A'..'F': S := S + mDisplay[I];
    end;
  if (not B) and (S <> '') then Result := Result + Chr(StrToIntDef(S, 0));
end; { DisplayToString }

function GetFileVersionInfomation(mFileName: TFileName;
  var nFileVersionInfomation: TFileVersionInfomation;
  mDefineName: string = ''): Boolean;
var
  vHandle: Cardinal;
  vInfoSize: Cardinal;
  vVersionInfo: Pointer;
  vTranslation: Pointer;
  vVersionValue: string;
  vInfoPointer: Pointer;
begin
  Result := False;
  vInfoSize := GetFileVersionInfoSize(PChar(mFileName), vHandle); //取得文件版本信息空間及資源句柄
  FillChar(nFileVersionInfomation, SizeOf(nFileVersionInfomation), 0); //初始化返回信息
  if vInfoSize <= 0 then Exit; //安全檢查

  GetMem(vVersionInfo, vInfoSize); //分配資源
  with nFileVersionInfomation do try
    if not GetFileVersionInfo(PChar(mFileName),
      vHandle, vInfoSize, vVersionInfo) then Exit;
    VerQueryValue(vVersionInfo, '\VarFileInfo\Translation',
      vTranslation, vInfoSize);
    vVersionValue := Format('\StringFileInfo\%.4x%.4x\',
      [LOWORD(Longint(vTranslation^)), HIWORD(Longint(vTranslation^))]);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'CompanyName'),
      vInfoPointer, vInfoSize);
    rCommpanyName := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'FileDescription'),
      vInfoPointer, vInfoSize);
    rFileDescription := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'FileVersion'),
      vInfoPointer, vInfoSize);
    rFileVersion := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'InternalName'),
      vInfoPointer, vInfoSize);
    rInternalName := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'LegalCopyright'),
      vInfoPointer, vInfoSize);
    rLegalCopyright := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'LegalTrademarks'),
      vInfoPointer, vInfoSize);
    rLegalTrademarks := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'OriginalFileName'),
      vInfoPointer, vInfoSize);
    rOriginalFileName := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'ProductName'),
      vInfoPointer, vInfoSize);
    rProductName := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'ProductVersion'),
      vInfoPointer, vInfoSize);
    rProductVersion := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, PChar(vVersionValue + 'Comments'),
      vInfoPointer, vInfoSize);
    rComments := PChar(vInfoPointer);
    VerQueryValue(vVersionInfo, '\', vInfoPointer, vInfoSize);
    rVsFixedFileInfo := TVSFixedFileInfo(vInfoPointer^);
    if mDefineName <> '' then begin
      VerQueryValue(vVersionInfo, PChar(vVersionValue + mDefineName),
        vInfoPointer, vInfoSize);
      rDefineValue := PChar(vInfoPointer);
    end else rDefineValue := '';
  finally
    FreeMem(vVersionInfo, vInfoSize);
  end;
  Result := True;
end; { GetFileVersionInfomation }
//=======Begin 位圖翻轉(zhuǎn)函數(shù)
function Turnbmp(mSource: TBitmap; Rotate: integer): Boolean;
begin
  Result := false;
  case Rotate of
    1: if BitmapRotate90(mSource) then Result := true;
//    2: if BitmapRotate180(mSource) then Result := true;
    3: if BitmapRotate270(mSource) then Result := true;
  end;
end;

function Turnbmp1(mSource: TBitmap; Rotate: integer): Boolean;
begin
  Result := false;
  case Rotate of
    1: if BitmapRotate90(mSource) then Result := true;
    2: if BitmapRotate180(mSource) then Result := true;
    3: if BitmapRotate270(mSource) then Result := true;
  end;
end;

function BitmapRotate90(mSource: TBitmap): Boolean;
var
  I, J,  BITS, SIZE: Integer;
  A: PByteArray;
  ms :TMemoryStream;
begin
  Result := False;
  if not Assigned(mSource) then Exit;
  case mSource.PixelFormat of
    pf8bit : BITS := 1;
    pf16bit: BITS := 2;
    pf24bit: BITS := 3;
    pf32bit: BITS := 4;
    else Exit;
  end;
  SIZE := mSource.Width;
  ms := TMemoryStream.Create;
  try
    for I := 0 to mSource.Height - 1 do
    begin
       A  := mSource.ScanLine[I];
       ms.WriteBuffer(A^,SIZE * BITS);
    end;
    ms.Position := 0;
    mSource.Width := mSource.Height;
    mSource.Height := SIZE;
    for J := (mSource.Width - 1) downto 0 do
    for I := 0 to mSource.Height - 1 do
    begin
      A := mSource.ScanLine[I];
      ms.ReadBuffer(A[J * BITS], BITS);
    end;
  finally
    ms.Free;
  end;
  Result := True;
end; { BitmapRotate90 }

function BitmapRotate180(mSource: TBitmap): Boolean;
var
  I, J, BITS, SIZE: Integer;
  A: PByteArray;
  ms :TMemoryStream;
begin
  Result := False;
  if not Assigned(mSource)  then Exit;
  case mSource.PixelFormat of
    pf8bit : BITS := 1;
    pf16bit: BITS := 2;
    pf24bit: BITS := 3;
    pf32bit: BITS := 4;
    else Exit;
  end;
  SIZE := mSource.Width;
  ms := TMemoryStream.Create;
  try
    for I := 0 to mSource.Height - 1 do
    begin
       A  := mSource.ScanLine[I];
       ms.WriteBuffer(A^,SIZE * BITS);
    end;
    ms.Position := 0;
    for I := (mSource.Height - 1) downto 0 do
    begin
       A := mSource.ScanLine[I];
       for J := (mSource.Width - 1) downto 0 do
         ms.ReadBuffer(A[J * BITS], BITS);
    end;
  finally
    ms.free;
  end;
  Result := True;
end; { BitmapRotate180 }

function BitmapRotate270(mSource: TBitmap): Boolean;
var
  I, J, BITS, SIZE: Integer;
  A: PByteArray;
  ms :TMemoryStream;
begin
  Result := False;
  if not Assigned(mSource) then Exit;
  case mSource.PixelFormat of
    pf8bit : BITS := 1;
    pf16bit: BITS := 2;
    pf24bit: BITS := 3;
    pf32bit: BITS := 4;
    else Exit;
  end;
  SIZE := mSource.Width;
  ms := TMemoryStream.Create;
  try
    for I := 0 to mSource.Height - 1 do
    begin
       A  := mSource.ScanLine[I];
       ms.WriteBuffer(A^,SIZE * BITS);
    end;
    ms.Position := 0;
    mSource.Width := mSource.Height;
    mSource.Height := SIZE;
    for J := 0 to mSource.Width - 1 do
    for I := (mSource.Height - 1) downto 0 do
    begin
      A := mSource.ScanLine[I];
      ms.ReadBuffer(A[J * BITS], BITS);
    end;
  finally
    ms.Free;
  end;
  Result := True;
end; { BitmapRotate270 }
//=======End 位圖翻轉(zhuǎn)函數(shù)
function StrBinToStr(strbin: string): string; //二進(jìn)制轉(zhuǎn)為字串
var
  c: byte;
  i,bindex: integer;
  str : string;
begin
  str := '';
  c := $0;
  i := Length(strbin) mod 8;
  if i <> 0 then
  for bindex := 1 to 8-i do strbin := strbin + '0';
  bindex := 1;
  for i := 1 to Length(strbin) do
  begin
    if bindex > 8 then begin
      str := str + Char(c);
      c := $0;
      bindex := 1;
    end;
    c := byte(c shl 1);
    if strbin[i] = '1' then c:= c or $1;
    Inc(bindex);
  end;
  if bindex <> 1 then str := str + Char(c);
  Result := str;
end;
function StrToStrBin(str: string): string; //字串轉(zhuǎn)為二進(jìn)制
var
  i, j: integer;
  binstr: string;
  c : Byte;
begin
  binstr := '';
  for i := 1 to Length(str) do
  begin
    c:= Byte(str[i]);
    for j := 1 to 8 do begin
      if (c and $80) <> $00 then
        binstr:= binstr + '1'
      else
        binstr := binstr + '0';
      c := Byte(c shl 1);
    end
  end;
  Result := binstr;
end;

procedure RGBtoHSL(R,G,B:Integer;var H,S,L:Integer);
var
 Delta : Double;
 CMax,CMin : Double;
 Red,Green,Blue,Hue,Sat,Lum : Double;
begin
 Red := R/255;
 Green := G/255;
 Blue := B/255;
 CMax := Max(Red,Max(Green,Blue));
 CMin := Min(Red,Min(Green,Blue));
 Lum := (CMax+CMin)/2;
 if CMax = CMin then begin
   Sat := 0;
   Hue := 0;
 end
 else begin
   if Lum < 0.5 then Sat := (CMax-CMin)/(CMax+CMin)
   else Sat := (cmax-cmin)/(2-cmax-cmin);
   delta := CMax-CMin;
   If Red = CMax then Hue := (Green-Blue)/Delta
   else if Green = CMax then Hue := 2+(Blue-Red)/Delta
   else Hue := 4.0+(Red-Green)/Delta;
   Hue := Hue / 6;
   If Hue < 0 then Hue := Hue + 1;
 end;
 H := Round(Hue*360);
 S := Round(Sat*100);
 L := Round(Lum*100);
end;

procedure HSLtoRGB(H,S,L:Integer;var R,G,B:Integer);
var
 Sat,Lum : Double;
begin
 R := 0;
 G := 0;
 B := 0;
 if (H < 360) and (H >= 0) and (S <= 100) and (S >= 0) and (L <= 100) and (L >= 0) then begin
   if H <=60 then begin
     R := 255;
     G := Round((255/60)*H);
     B := 0;
   end
   else if H <=120 then begin
     R := Round(255-(255/60)*(H-60));
     G := 255;
     B := 0;
   end
   else if H <=180 then begin
     R := 0;
     G := 255;
     B := Round((255/60)*(H-120));
   end
   else if H <=240 then begin
     R := 0;
     G := Round(255-(255/60)*(H-180));
     B := 255;
   end
   else if H <=300 then begin
     R := Round((255/60)*(H-240));
     G := 0;
     B := 255;
   end
   else if H <360 then begin
     R := 255;
     G := 0;
     B := Round(255-(255/60)*(H-300));
   end;

   Sat := Abs((S-100)/100);
   R := Round(R-((R-128)*Sat));
   G := Round(G-((G-128)*Sat));
   B := Round(B-((B-128)*Sat));

   Lum := (L-50)/50;
   if Lum > 0 then begin
     R := Round(R+((255-R)*Lum));
     G := Round(G+((255-G)*Lum));
     B := Round(B+((255-B)*Lum));
   end
   else if Lum < 0 then begin
     R := Round(R+(R*Lum));
     G := Round(G+(G*Lum));
     B := Round(B+(B*Lum));
   end;
 end;
end;


function GetSubStr(Str : string; index : integer):string;
var
  substr : string;
  i,j: integer;
begin
   if index <0 then begin
    Result := '';
    exit;
   end;
   i := 0;
   substr := str;
   while i<=index do
   begin
      j := Pos(',',substr);
      if j = 0 then begin
        if i <>index then substr := '';
        break
      end else begin
         if i = index then substr := copy(substr,1,j-1)
         else delete(substr,1,j); //刪除
         Inc(i);
      end;
   end;
   Result := substr;
end;


function mMove(i : integer):string;
begin
   SetLength(Result,sizeof(i));
   Move(i, Result[1], sizeof(i));
end;

function mMove(i : int64):string;
begin
   SetLength(Result,sizeof(i));
   Move(i, Result[1], sizeof(i));
end;

function mMove(i : boolean):string;
begin
   SetLength(Result,sizeof(i));
   Move(i, Result[1], sizeof(i));
end;
function mMove(i : Word):string;
begin
   SetLength(Result,sizeof(i));
   Move(i, Result[1], sizeof(i));
end;

function mMove(i : Byte):string;
begin
   SetLength(Result,sizeof(i));
   Move(i, Result[1], sizeof(i));
end;

function mMove(p : Pchar; Size: integer): string;
begin
   SetLength(Result,size);
   Move(p[0], Result[1], size);
end;
procedure mMove(var i : integer;var Source: string);
begin
  Move(Source[1],i,sizeof(i));
  delete(Source,1,sizeof(i));
end;

procedure mMove(var i : int64; var Source: string);
begin
  Move(Source[1],i,sizeof(i));
  delete(Source,1,sizeof(i));
end;

procedure mMove(var i : boolean; var Source: string);
begin
  Move(Source[1],i,sizeof(i));
  delete(Source,1,sizeof(i));
end;

procedure mMove(var i : Word; var Source: string);
begin
  Move(Source[1],i,sizeof(i));
  delete(Source,1,sizeof(i));
end;

procedure mMove(var i : Byte; var Source: string);
begin
  Move(Source[1],i,sizeof(i));
  delete(Source,1,sizeof(i));
end;

procedure StrToIntStr(var Data: string); //字串轉(zhuǎn)整數(shù)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大合| 91在线观看下载| 1区2区3区国产精品| 69堂亚洲精品首页| 91在线免费视频观看| 精品亚洲成av人在线观看| 亚洲视频免费在线| 国产日韩欧美亚洲| 欧美一级日韩免费不卡| 在线精品视频一区二区| 国产精品911| 老司机一区二区| 爽爽淫人综合网网站| 亚洲日本青草视频在线怡红院| 亚洲精品一线二线三线| 欧美丰满美乳xxx高潮www| 91在线免费看| 成人久久久精品乱码一区二区三区| 免费国产亚洲视频| 午夜激情综合网| 亚洲夂夂婷婷色拍ww47| 国产精品久久影院| 国产午夜精品一区二区三区四区 | 国产在线一区观看| 日韩精品一级中文字幕精品视频免费观看 | 日韩精品欧美精品| 亚洲午夜影视影院在线观看| 欧美国产禁国产网站cc| 久久嫩草精品久久久久| 精品久久一二三区| 欧美成人性战久久| 日韩精品专区在线影院观看| 日韩三区在线观看| 欧美成人三级在线| 久久久午夜精品| 久久久久9999亚洲精品| 国产欧美va欧美不卡在线| 国产欧美日韩亚州综合| 国产欧美日韩精品a在线观看| 久久久精品蜜桃| 久久精品网站免费观看| 久久久激情视频| 欧美国产在线观看| 国产精品免费看片| 亚洲欧美一区二区三区国产精品| 亚洲视频中文字幕| 亚洲卡通动漫在线| 午夜精品久久久久久久99水蜜桃| 亚洲成人www| 美女mm1313爽爽久久久蜜臀| 玖玖九九国产精品| 精品一区二区三区在线视频| 国产精品66部| 成人动漫在线一区| 一本久道久久综合中文字幕| 欧美日韩国产高清一区| 日韩欧美国产成人一区二区| 国产清纯美女被跳蛋高潮一区二区久久w| 国产喂奶挤奶一区二区三区| 亚洲人成精品久久久久| 五月天激情小说综合| 久久99国产乱子伦精品免费| 国产成人啪午夜精品网站男同| 成人美女视频在线观看| 欧美色区777第一页| 日韩女优av电影| 国产精品乱码妇女bbbb| 一区二区国产视频| 看电影不卡的网站| 99麻豆久久久国产精品免费 | 亚洲国产精品天堂| 另类综合日韩欧美亚洲| 成熟亚洲日本毛茸茸凸凹| 日本道免费精品一区二区三区| 欧美巨大另类极品videosbest| 久久亚洲一区二区三区明星换脸| 国产精品久久久久久亚洲毛片 | 2022国产精品视频| 1024成人网| 老司机精品视频线观看86| 99re在线精品| 欧美xxxx在线观看| 一区二区在线观看不卡| 精品一区二区国语对白| 日本电影欧美片| 久久欧美一区二区| 国产精品视频第一区| 亚洲成精国产精品女| 成人网在线播放| 欧美日韩国产精品自在自线| 国产精品视频在线看| 免费在线欧美视频| 91蝌蚪porny| 久久中文字幕电影| 亚洲电影你懂得| 99精品视频一区二区三区| 精品国产sm最大网站| 夜夜亚洲天天久久| 国产凹凸在线观看一区二区| 91精品欧美福利在线观看| 中文字幕一区二区三区四区不卡 | 91在线小视频| 久久久噜噜噜久噜久久综合| 午夜国产不卡在线观看视频| av在线这里只有精品| 精品国产乱码久久久久久夜甘婷婷| 亚洲精品国产精品乱码不99| 国产精品主播直播| 日韩一区二区电影在线| 亚洲成在人线在线播放| 91社区在线播放| 国产免费久久精品| 国产精品一区二区男女羞羞无遮挡 | 91精品国产综合久久福利软件| 日韩理论片网站| 成人免费av网站| 国产亚洲成aⅴ人片在线观看| 免费高清成人在线| 欧美电影在哪看比较好| 一区二区久久久久久| 色综合久久久久| 日韩美女视频一区二区 | 成人黄色软件下载| 国产三级三级三级精品8ⅰ区| 精品一区二区影视| 精品播放一区二区| 精品在线你懂的| 日韩精品在线一区| 免费看欧美女人艹b| 欧美一级精品在线| 老司机午夜精品| 日韩精品专区在线影院重磅| 久久精品国产99久久6| 91精品国产乱码久久蜜臀| 午夜精品久久久久久久久久 | 欧美日韩一区二区三区视频| 亚洲一区中文日韩| 欧美猛男男办公室激情| 午夜不卡av在线| 欧美电影在哪看比较好| 男人操女人的视频在线观看欧美| 欧美一区二区三区免费视频| 免费观看成人av| 久久人人97超碰com| 国产很黄免费观看久久| 国产精品美女久久久久久久网站| 91在线无精精品入口| 一区二区久久久久久| 8v天堂国产在线一区二区| 精品一区二区三区在线播放视频 | 91精品国产高清一区二区三区蜜臀| 日日摸夜夜添夜夜添国产精品| 91精品视频网| 国产高清久久久久| 中文字幕免费不卡| 日本韩国一区二区| 热久久一区二区| 国产午夜精品一区二区三区四区| 99久久婷婷国产综合精品| 五月天久久比比资源色| 久久久精品2019中文字幕之3| 国产91在线观看丝袜| 亚洲裸体在线观看| 欧美一区二区三区喷汁尤物| 国产精品 日产精品 欧美精品| 亚洲乱码国产乱码精品精小说| 91精品国产手机| 国产精品综合视频| 亚洲一级在线观看| 久久亚洲精精品中文字幕早川悠里 | 精品写真视频在线观看| 国产精品久久看| 欧美高清www午色夜在线视频| 国产一区二区三区观看| 亚洲男人的天堂网| 精品少妇一区二区三区 | 久久久亚洲精品石原莉奈| 99久久婷婷国产综合精品| 日本不卡视频一二三区| 国产精品久久久久久久久免费桃花 | 日韩欧美国产午夜精品| 99国产精品久久久久久久久久久 | 日韩精品电影在线| 国产欧美日韩综合精品一区二区| 色偷偷一区二区三区| 国产真实乱子伦精品视频| 亚洲一级二级在线| 欧美国产日韩精品免费观看| 欧美一区在线视频| 一本久道久久综合中文字幕 | 欧美久久高跟鞋激| 粉嫩嫩av羞羞动漫久久久| 日本亚洲免费观看| 国产精品萝li| www国产亚洲精品久久麻豆| 欧美最猛性xxxxx直播| 成人午夜视频网站| 激情成人综合网| 日韩精品电影一区亚洲| 亚洲五月六月丁香激情|