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

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

?? hutil32.pas

?? 傳奇客戶端源碼DClient很不錯哦直的研究的游戲源碼
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
        FileSetAttr(dest,FileGetAttr(source));
        Result := True;
      end;
      FileClose(fSrc);
    end;
  end;
end;


function GetDefColorByName (Str: string): TColor;
var
	Cnt: Integer;
   COmpStr: string;
begin
	compStr := UpperCase (str);
	for Cnt := 1 to MAXDEFCOLOR do begin
   	if CompStr = ColorNames[Cnt].Name then begin
      	Result := TColor (ColorNames[Cnt].varl);
         exit;
      end;
   end;
   result := $0;
end;

function GetULMarkerType (Str: string): Longint;
var
	Cnt: Integer;
   COmpStr: string;
begin
	compStr := UpperCase (str);
	for Cnt := 1 to MAXLISTMARKER do begin
   	if CompStr = LiMarkerNames[Cnt].Name then begin
      	Result := LiMarkerNames[Cnt].varl;
         exit;
      end;
   end;
   result := 1;
end;

function GetDefines (Str: string): Longint;
var
	Cnt: Integer;
   COmpStr: string;
begin
	compStr := UpperCase (str);
	for Cnt := 1 to MAXPREDEFINE do begin
   	if CompStr = PreDefineNames[Cnt].Name then begin
      	Result := PreDefineNames[Cnt].varl;
         exit;
      end;
   end;
   result := -1;
end;

procedure ClearWindow (aCanvas: TCanvas; aLeft, aTop, aRight, aBottom:Longint; aColor: TColor);
begin
   with aCanvas do begin
      Brush.Color := aColor;
      Pen.Color 	:= aColor;
   	Rectangle (0, 0, aRight-aLeft, aBottom-aTop);
   end;
end;


procedure DrawTileImage (Canv: TCanvas; Rect: TRect; TileImage: TBitmap);
var
   I, J, ICnt, JCnt, BmWidth, BmHeight: Integer;
begin

   BmWidth  := TileImage.Width;
   BmHeight := TileImage.Height;
   ICnt 		:= ((Rect.Right-Rect.Left) + BmWidth - 1) div BmWidth;
   JCnt 		:= ((Rect.Bottom-Rect.Top) + BmHeight - 1) div BmHeight;

   UnrealizeObject (Canv.Handle);
   SelectPalette (Canv.Handle, TileImage.Palette, FALSE);
   RealizePalette (Canv.Handle);

   for J:=0 to JCnt do begin
      for I:=0 to ICnt do begin

        { if (I * BmWidth) < (Rect.Right-Rect.Left) then
          	BmWidth := TileImage.Width else
            BmWidth := (Rect.Right - Rect.Left) - ((I-1) * BmWidth);

         if (
         BmWidth := TileImage.Width;
         BmHeight := TileImage.Height;  }

         BitBlt (Canv.Handle,
                 Rect.Left + I * BmWidth,
                 Rect.Top + (J * BmHeight),
                 BmWidth,
                 BmHeight,
                 TileImage.Canvas.Handle,
                 0,
                 0,
                 SRCCOPY);

      end;
   end;

end;


procedure TiledImage (Canv: TCanvas; Rect: TLRect; TileImage: TBitmap);
var
   I, J, ICnt, JCnt, BmWidth, BmHeight: Integer;
   Rleft, RTop, RWidth, RHeight, BLeft, BTop: longint;
begin

	if Assigned (TileImage) then
   	if TileImage.Handle <> 0 then begin

         BmWidth  := TileImage.Width;
         BmHeight := TileImage.Height;
         ICnt 		:= (Rect.Right + BmWidth - 1) div BmWidth  -  (Rect.Left div BmWidth);
         JCnt 		:= (Rect.Bottom + BmHeight - 1) div BmHeight -  (Rect.Top div BmHeight);

         UnrealizeObject (Canv.Handle);
         SelectPalette (Canv.Handle, TileImage.Palette, FALSE);
         RealizePalette (Canv.Handle);

         for J:=0 to JCnt do begin
            for I:=0 to ICnt do begin

               if I = 0 then begin
                  BLeft := Rect.Left - ((Rect.Left div BmWidth) * BmWidth);
                  RLeft := Rect.Left;
                  RWidth := BmWidth;
               end else begin
                  if I = ICnt then
                     RWidth := Rect.Right - ((Rect.Right div BmWidth) * BmWidth) else
                     RWidth := BmWidth;
                  BLeft := 0;
                  RLeft := (Rect.Left div BmWidth) + (I * BmWidth);
               end;


               if J = 0 then begin
                  BTop := Rect.Top - ((Rect.Top div BmHeight) * BmHeight);
                  RTop := Rect.Top;
                  RHeight := BmHeight;
               end else begin
                  if J = JCnt then
                     RHeight := Rect.Bottom - ((Rect.Bottom div BmHeight) * BmHeight) else
                     RHeight := BmHeight;
                  BTop := 0;
                  RTop := (Rect.Top div BmHeight) + (J * BmHeight);
               end;

               BitBlt (Canv.Handle,
                       RLeft,
                       RTop,
                       RWidth,
                       RHeight,
                       TileImage.Canvas.Handle,
                       BLeft,
                       BTop,
                       SRCCOPY);

            end;
         end;

   	end;
end;


function GetValidStr3 (Str: string; var Dest: string; const Divider: array of Char): string;
const
   BUF_SIZE = 20480; //$7FFF;
var
	Buf: array[0..BUF_SIZE] of char;
   BufCount, Count, SrcLen, I, ArrCount: Longint;
   Ch: char;
label
	CATCH_DIV;
begin
  Ch:=#0;//Jacky
   try
      SrcLen := Length(Str);
      BufCount := 0;
      Count := 1;

      if SrcLen >= BUF_SIZE-1 then begin
         Result := '';
         Dest := '';
         exit;
      end;

      if Str = '' then begin
         Dest := '';
         Result := Str;
         exit;
      end;
      ArrCount := sizeof(Divider) div sizeof(char);

      while TRUE do begin
         if Count <= SrcLen then begin
            Ch := Str[Count];
            for I:=0 to ArrCount- 1 do
               if Ch = Divider[I] then
                  goto CATCH_DIV;
         end;
         if (Count > SrcLen) then begin
            CATCH_DIV:
            if (BufCount > 0) then begin
               if BufCount < BUF_SIZE-1 then begin
                  Buf[BufCount] := #0;
                  Dest := string (Buf);
                  Result := Copy (Str, Count+1, SrcLen-Count);
               end;
               break;
            end else begin
               if (Count > SrcLen) then begin
                  Dest := '';
                  Result := Copy (Str, Count+2, SrcLen-1);
                  break;
               end;
            end;
         end else begin
            if BufCount < BUF_SIZE-1 then begin
               Buf[BufCount] := Ch;
               Inc (BufCount);
            end;// else
               //ShowMessage ('BUF_SIZE overflow !');
         end;
         Inc (Count);
      end;
   except
      Dest := '';
      Result := '';
   end;
end;


// 備盒鞏磊啊 唱贛瘤(Result)俊 器竊 等促.
function GetValidStr4 (Str: string; var Dest: string; const Divider: array of Char): string;
const
   BUF_SIZE = 18200; //$7FFF;
var
	Buf: array[0..BUF_SIZE] of char;
   BufCount, Count, SrcLen, I, ArrCount: Longint;
   Ch: char;
label
	CATCH_DIV;
begin
  Ch:=#0;//Jacky
	try
   	//EnterCriticalSection (CSUtilLock);
      SrcLen := Length(Str);
      BufCount := 0;
      Count := 1;

      if Str = '' then begin
         Dest := '';
         Result := Str;
         exit;
      end;
      ArrCount := sizeof(Divider) div sizeof(char);

      while TRUE do begin
         if Count <= SrcLen then begin
            Ch := Str[Count];
            for I:=0 to ArrCount- 1 do
               if Ch = Divider[I] then
                  goto CATCH_DIV;
         end;
         if (Count > SrcLen) then begin
            CATCH_DIV:
            if (BufCount > 0) or (Ch <> ' ') then begin
               if BufCount <= 0 then begin
                  Buf[0] := Ch; Buf[1] := #0; Ch := ' ';
               end else
                  Buf[BufCount] := #0;
               Dest := string (Buf);
               if Ch <> ' ' then
                  Result := Copy (Str, Count, SrcLen-Count+1)        //remain divider in rest-string,
               else Result := Copy (Str, Count+1, SrcLen-Count);   //exclude whitespace
               break;
            end else begin
               if (Count > SrcLen) then begin
                  Dest := '';
                  Result := Copy (Str, Count+2, SrcLen-1);
                  break;
               end;
            end;
         end else begin
            if BufCount < BUF_SIZE-1 then begin
               Buf[BufCount] := Ch;
               Inc (BufCount);
            end else
               ShowMessage ('BUF_SIZE overflow !');     
         end;
         Inc (Count);
      end;
	finally
      //LeaveCriticalSection (CSUtilLock);
	end;      
end;


function GetValidStrVal (Str: string; var Dest: string; const Divider: array of Char): string;
//箭磊甫 盒府秦晨 ex) 12.30mV
const
	BUF_SIZE = 15600;
var
	Buf: array[0..BUF_SIZE] of char;
   BufCount, Count, SrcLen, I, ArrCount: Longint;
   Ch: char;
   currentNumeric: Boolean;
   hexmode: Boolean;
label
	CATCH_DIV;
begin
  Ch:=#0;//Jacky
	try
   	//EnterCriticalSection (CSUtilLock);
      hexmode := FALSE;
      SrcLen := Length(Str);
      BufCount := 0;
      Count := 1;
      currentNumeric := FALSE;

      if Str = '' then begin
         Dest := '';
         Result := Str;
         exit;
      end;
      ArrCount := sizeof(Divider) div sizeof(char);

      while TRUE do begin
         if Count <= SrcLen then begin
            Ch := Str[Count];
            for I:=0 to ArrCount- 1 do
               if Ch = Divider[I] then
                  goto CATCH_DIV;
         end;
         if not currentNumeric then begin
            if (Count+1) < SrcLen then begin
               if (Str[Count] = '0') and (UpCase(Str[Count+1]) = 'X') then begin
                  Buf[BufCount] := Str[Count];
                  Buf[BufCount+1] := Str[Count+1];
                  Inc (BufCount, 2);
                  Inc (Count, 2);
                  hexmode := TRUE;
                  currentNumeric := TRUE;
                  continue;
               end;
               if (Ch = '-') and (Str[Count+1] >= '0') and (Str[Count+1] <= '9') then begin
                  currentNumeric := TRUE;
               end;
            end;
            if (Ch >= '0') and (Ch <= '9') then begin
               currentNumeric := TRUE;
            end;
         end else begin
            if hexmode then begin
               if not (((Ch >= '0') and (Ch <= '9')) or
                       ((Ch >= 'A') and (Ch <= 'F')) or
                       ((Ch >= 'a') and (Ch <= 'f'))) then begin
                     Dec (Count);
                     goto CATCH_DIV;
               end;
            end else
               if ((Ch < '0') or (Ch > '9')) and (Ch <> '.') then begin
                  Dec (Count);
                  goto CATCH_DIV;
               end;
         end;
         if (Count > SrcLen) then begin
            CATCH_DIV:
            if (BufCount > 0) then begin
               Buf[BufCount] := #0;
               Dest := string (Buf);
               Result := Copy (Str, Count+1, SrcLen-Count);
               break;
            end else begin
               if (Count > SrcLen) then begin
                  Dest := '';
                  Result := Copy (Str, Count+2, SrcLen-1);
                  break;
               end;
            end;
         end else begin
            if BufCount < BUF_SIZE-1 then begin
               Buf[BufCount] := Ch;
               Inc (BufCount);
            end else
               ShowMessage ('BUF_SIZE overflow !');
         end;
         Inc (Count);
      end;
	finally
   	//LeaveCriticalSection (CSUtilLock);
	end;
end;

{" " capture => CaptureString (source: string; var rdstr: string): string;
 ** 貿瀾俊 " 綽 親惑 蓋 貿瀾俊 樂促絆 啊瀝
}
function GetValidStrCap (Str: string; var Dest: string; const Divider: array of Char): string;
begin
   str := TrimLeft (str);
   if str <> '' then begin
      if str[1] = '"' then
         Result := CaptureString (str, dest)
      else begin
         Result := GetValidStr3 (str, dest, divider);
      end;
   end else begin
      Result := '';
      Dest := '';
   end;
end;
function IntToStr2(n: integer): string;
begin
  if n < 10 then Result := '0' + IntToStr(n)
  else Result := IntToStr(n);
end;

function  IntToStrFill (num, len: integer; fill: char): string;
var
	i: integer;
   str: string;
begin
	Result := '';
   str := IntToStr (num);
   for i:=1 to len - Length(str) do
    	Result := Result + fill;
   Result := Result + str;
end;

function IsInB (Src: string; Pos: integer; Targ: string): Boolean;
var
   TLen, I: Integer;
begin
   Result := FALSE;
   TLen := Length (Targ);
   if Length(Src) < Pos + TLen then exit;
   for I:=0 to TLen-1 do
      if UpCase(Src [Pos+I]) <> UpCase(Targ [I+1]) then exit;

   Result := TRUE;
end;

function  IsInRect (X, Y: integer; Rect: TRect): Boolean;
begin
	if (X >= Rect.Left) and (X <= Rect.Right) and (Y >= Rect.Top) and (Y <= Rect.Bottom) then
   	Result := TRUE else
      Result := FALSE;
end;

function IsStringNumber (str: string): boolean;
var i: integer;
begin
   Result := TRUE;
   for i:=1 to Length(str) do
      if (byte(str[i]) < byte('0')) or (byte(str[i]) > byte('9')) then begin
         Result := FALSE;
         break;
      end;
end;


{Return : remain string}

function ArrestString (Source, SearchAfter, ArrestBefore: string;
					  const DropTags: array of string; var RsltStr: string): string;
const
   BUF_SIZE = $7FFF;
var
	Buf: array [0..BUF_SIZE] of char;
   BufCount, SrcCount, SrcLen, {AfterLen, BeforeLen,} DropCount, I: integer;
   ArrestNow: Boolean;
begin
	try
      //EnterCriticalSection (CSUtilLock);
      RsltStr := ''; {result string}
      SrcLen := Length (Source);

      if SrcLen > BUF_SIZE then begin
         Result := '';
      	exit;
  		end;

      BufCount := 0;
      SrcCount := 1;
      ArrestNow := FALSE;
      DropCount := sizeof(DropTags) div sizeof(string);

      if (SearchAfter = '') then ArrestNow := TRUE;

      //GetMem (Buf, BUF_SIZE);

      while TRUE do begin
         if SrcCount > SrcLen then break;

         if not ArrestNow then begin
            if IsInB (Source, SrcCount, SearchAfter) then ArrestNow := TRUE;
         end else begin
            Buf [BufCount] := Source[SrcCount];
            if IsInB (Source, SrcCount, ArrestBefore) or (BufCount >= BUF_SIZE-2) then begin
               BufCount := BufCount - Length (ArrestBefore);
               Buf[BufCount+1] := #0;
               RsltStr := string (Buf);
               BufCount := 0;
               break;
            end;

            for I:=0 to DropCount-1 do begin
               if IsInB (Source, SrcCount, DropTags[I]) then begin
                  BufCount := BufCount - Length(DropTags[I]);
                  break;
               end;
            end;

            Inc (BufCount);
         end;
         Inc (SrcCount);
      end;

      if (ArrestNow) and (BufCount <> 0) then begin
         Buf [BufCount] := #0;
         RsltStr := string (Buf);
      end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
18成人在线观看| 九九九久久久精品| 三级欧美韩日大片在线看| 激情亚洲综合在线| 欧美日韩综合在线免费观看| 国产日本欧美一区二区| 五月激情综合色| 91视频免费观看| 亚洲国产岛国毛片在线| 久久99久久精品欧美| 欧美日韩五月天| 亚洲精品国产精品乱码不99| 国产a视频精品免费观看| 制服丝袜中文字幕亚洲| 亚洲精品免费视频| 99久久精品免费看国产免费软件| 精品久久久网站| 青青草伊人久久| 欧美美女bb生活片| 亚洲一区二区三区四区的| 99国产欧美另类久久久精品 | 99久久亚洲一区二区三区青草 | 欧美变态凌虐bdsm| 香蕉影视欧美成人| 欧美日韩国产综合一区二区| 亚洲影视资源网| 欧美在线你懂的| 亚洲综合激情网| 欧美三级三级三级爽爽爽| 日本免费在线视频不卡一不卡二 | 免费看欧美美女黄的网站| 欧美日韩在线直播| 亚洲国产美女搞黄色| 欧美伊人精品成人久久综合97 | 91最新地址在线播放| 国产精品日韩成人| jiyouzz国产精品久久| 国产日韩精品一区二区三区| 国产久卡久卡久卡久卡视频精品| 久久青草欧美一区二区三区| 国产成人av一区二区| 国产精品三级在线观看| 91视频免费播放| 亚洲一二三专区| 欧美放荡的少妇| 精品午夜一区二区三区在线观看| 亚洲精品一区二区三区四区高清| 韩国精品一区二区| 国产色综合久久| 91丨九色丨国产丨porny| 亚洲综合色噜噜狠狠| 欧美久久久久中文字幕| 蜜桃91丨九色丨蝌蚪91桃色| 久久网站最新地址| 9色porny自拍视频一区二区| 亚洲综合丁香婷婷六月香| 欧美一二三四区在线| 国产一区二区伦理| 亚洲免费视频中文字幕| 欧美精品久久99| 国产精品系列在线播放| 自拍偷在线精品自拍偷无码专区| 欧美日韩中文字幕精品| 国产剧情一区二区| 一区二区三区四区精品在线视频| 欧美一区二区人人喊爽| 国产成人一级电影| 亚洲一二三区在线观看| 国产亚洲精品免费| 欧美特级限制片免费在线观看| 蜜桃精品在线观看| 亚洲视频一区二区在线观看| 欧美精品久久久久久久多人混战| 成人在线综合网| 丝袜亚洲精品中文字幕一区| www亚洲一区| 欧美自拍偷拍一区| 久久草av在线| 亚洲午夜私人影院| 日本一区二区三区久久久久久久久不 | 国产一区二区久久| 亚洲综合色婷婷| 26uuu另类欧美亚洲曰本| 在线免费精品视频| 成人夜色视频网站在线观看| 日韩在线一二三区| 亚洲少妇30p| 日本一区二区三区dvd视频在线| 欧美体内she精高潮| 99久久精品国产导航| 国内偷窥港台综合视频在线播放| 一区二区三区欧美在线观看| 国产日产欧美一区| 精品少妇一区二区三区日产乱码| 欧美亚州韩日在线看免费版国语版| 激情小说欧美图片| 美腿丝袜亚洲色图| 亚洲成人免费看| 亚洲精选免费视频| 国产精品高潮呻吟久久| 久久久三级国产网站| 欧美一卡二卡在线观看| 欧美日韩国产小视频在线观看| 91一区二区三区在线观看| 国v精品久久久网| 韩国精品主播一区二区在线观看| 石原莉奈在线亚洲二区| 亚洲国产毛片aaaaa无费看| 亚洲三级电影网站| 国产精品久久久久影视| 国产精品免费人成网站| 日本一区二区三级电影在线观看| 久久久.com| 国产日韩精品一区| 国产亚洲人成网站| 久久精品免费在线观看| 国产日韩欧美激情| 国产亲近乱来精品视频| 日本一区二区视频在线观看| 欧美国产精品一区二区三区| 国产视频一区二区在线| 亚洲国产激情av| 亚洲欧美日韩电影| 一区二区三区日韩精品| 亚洲aaa精品| 免费观看30秒视频久久| 久久电影国产免费久久电影| 国精产品一区一区三区mba视频 | 成人激情免费网站| aaa亚洲精品一二三区| 91丨porny丨最新| 欧美色综合网站| 日韩视频免费观看高清在线视频| 精品免费国产二区三区| 国产午夜精品一区二区三区四区| 国产精品久久久久aaaa| 亚洲永久免费av| 久久99国产乱子伦精品免费| 成人中文字幕合集| 欧美性一级生活| 欧美成人福利视频| 国产精品网站一区| 亚洲图片一区二区| 激情久久五月天| 色综合久久久久综合99| 欧美精品aⅴ在线视频| 久久夜色精品一区| 亚洲欧美日韩国产中文在线| 日本va欧美va精品发布| 丁香一区二区三区| 欧美日韩久久一区二区| 久久精品视频一区二区三区| 亚洲青青青在线视频| 久久精品国产亚洲5555| yourporn久久国产精品| 91精品国产高清一区二区三区蜜臀 | 精品视频免费看| 久久美女艺术照精彩视频福利播放| 日韩码欧中文字| 久久国产尿小便嘘嘘| 91亚洲精品一区二区乱码| 91精品中文字幕一区二区三区| 国产精品毛片高清在线完整版| 亚洲成人动漫av| 成人av电影在线网| 日韩女优电影在线观看| 夜夜精品浪潮av一区二区三区| 激情国产一区二区| 在线不卡中文字幕播放| 成人欧美一区二区三区视频网页| 免费成人av在线| 在线精品视频一区二区三四| 国产欧美综合在线| 久久99久国产精品黄毛片色诱| 91国产丝袜在线播放| 国产蜜臀av在线一区二区三区| 美女视频黄频大全不卡视频在线播放| av影院午夜一区| 久久久久久久久99精品| 天天亚洲美女在线视频| 色综合网站在线| 国产精品高潮呻吟| 国产成人亚洲综合a∨婷婷| 日韩精品一区二| 五月天欧美精品| 欧美美女激情18p| 一区二区三区不卡在线观看| 成人av影院在线| 欧美国产综合色视频| 国产一区二区调教| **网站欧美大片在线观看| 国产91丝袜在线播放0| 26uuu欧美| 精品写真视频在线观看| 日韩三区在线观看| 免费观看一级特黄欧美大片| 日韩欧美一级片| 卡一卡二国产精品| 欧美精品一区二区三区蜜臀| 青青草精品视频|