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

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

?? delphi常用函數庫.txt

?? delphi常用的函數庫 再不用絞盡腦汁想一些已經存在的函數了
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
  I: Integer; 
  S1: string; 
begin 
  S1 := HexToStr(S); 
  Result := S1; 
  for I := 1 to Length(S1) do 
  begin 
   if char(byte(S1[I]) xor (Key shr 8)) = Chr(0) then 
     begin 
      Result[I] := S1[I]; 
      Key := (byte(Chr(0)) + Key) * C1 + C2; //保證Key的正確性   
     end 
   else 
     begin 
      Result[I] := char(byte(S1[I]) xor (Key shr 8)); 
      Key := (byte(S1[I]) + Key) * C1 + C2; 
     end; 
  end; 
end; 

///VarIIF,VarTostr為變體函數 
function varIIF(aTest: Boolean; TrueValue, FalseValue: Variant): Variant; 
begin 
 if aTest then Result := TrueValue else Result := FalseValue; 
end; 

function varToStr(const V: Variant): string; 
begin 
 case TVarData(v).vType of 
  varSmallInt: Result := IntToStr(TVarData(v).VSmallInt); 
  varInteger: Result := IntToStr(TVarData(v).VInteger); 
  varSingle: Result := FloatToStr(TVarData(v).VSingle); 
  varDouble: Result := FloatToStr(TVarData(v).VDouble); 
  varCurrency: Result := FloatToStr(TVarData(v).VCurrency); 
  varDate: Result := DateToStr(TVarData(v).VDate); 
  varBoolean: Result := varIIf(TVarData(v).VBoolean, 'True', 'False'); 
  varByte: Result := IntToStr(TVarData(v).VByte); 
  varString: Result := StrPas(TVarData(v).VString); 
  varEmpty, 
   varNull, 
   varVariant, 
   varUnknown, 
   varTypeMask, 
   varArray, 
   varByRef, 
   varDispatch, 
   varError: Result := ''; 
 end; 
end; 


function IsDigital(Value: string): boolean; 
var 
 i, j: integer; 
 str: char; 
begin 
 result := true; 
 Value := trim(Value); 
 j := Length(Value); 
 if j = 0 then 
 begin 
  result := false; 
  exit; 
 end; 
 for i := 1 to j do 
 begin 
  str := Value[i]; 
  if not (str in ['0'..'9']) then 
  begin 
   result := false; 
   exit; 
  end; 
 end; 
end; 


function RandomStr(aLength : Longint) : String; 
var 
 X : Longint; 
begin 
 if aLength <= 0 then exit; 
 SetLength(Result, aLength); 
 for X:=1 to aLength do 
  Result[X] := Chr(Random(26) + 65); 
end; 

//▎============================================================▎// 
//▎==================②擴展日期時間操作函數====================▎// 
//▎============================================================▎// 

function GetYear(Date: TDate): Integer; 
var 
 y, m, d: WORD; 
begin 
 DecodeDate(Date, y, m, d); 
 Result := y; 
end; 

function GetMonth(Date: TDate): Integer; 
var 
 y, m, d: WORD; 
begin 
 DecodeDate(Date, y, m, d); 
 Result := m; 
end; 

function GetDay(Date: TDate): Integer; 
var 
 y, m, d: WORD; 
begin 
 DecodeDate(Date, y, m, d); 
 Result := d; 
end; 

function GetHour(Time: TTime): Integer; 
var 
 h, m, s, ms: WORD; 
begin 
 DecodeTime(Time, h, m, s, ms); 
 Result := h; 
end; 

function GetMinute(Time: TTime): Integer; 
var 
 h, m, s, ms: WORD; 
begin 
 DecodeTime(Time, h, m, s, ms); 
 Result := m; 
end; 

function GetSecond(Time: TTime): Integer; 
var 
 h, m, s, ms: WORD; 
begin 
 DecodeTime(Time, h, m, s, ms); 
 Result := s; 
end; 

function GetMSecond(Time: TTime): Integer; 
var 
 h, m, s, ms: WORD; 
begin 
 DecodeTime(Time, h, m, s, ms); 
 Result := ms; 
end; 

//傳入年、月,得到該月份最后一天 
function GetMonthLastDay(Cs_Year,Cs_Month:string):string; 
Var 
  V_date:Tdate; 
  V_year,V_month,V_day:word; 
begin 
  V_year:=strtoint(Cs_year); 
  V_month:=strtoint(Cs_month); 
  if V_month=12 then 
  begin 
    V_month:=1; 
    inc(V_year); 
  end 
  else 
  inc(V_month); 
V_date:=EncodeDate(V_year,V_month,1); 
V_date:=V_date-1; 
DecodeDate(V_date,V_year,V_month,V_day); 
Result:=DateToStr(EncodeDate(V_year,V_month,V_day)); 
end; 

//判斷某年是否為閏年 
function IsLeapYear( nYear: Integer ): Boolean; 
begin 
 Result := (nYear mod 4 = 0) and ((nYear mod 100 <> 0) or (nYear mod 400 = 0)); 
end; 

//兩個日期取較大的日期 
function MaxDateTime(const Values: array of TDateTime): TDateTime; 
var 
 I: Cardinal; 
begin 
 Result := Values[0]; 
 for I := 0 to Low(Values) do 
  if Values[I] < Result then Result := Values[I]; 
end; 

//兩個日期取較小的日期 
function MinDateTime(const Values: array of TDateTime): TDateTime; 
var 
 I: Cardinal; 
begin 
 Result := Values[0]; 
 for I := 0 to High(Values) do 
  if Values[I] < Result then Result := Values[I]; 
end; 

//得到本月的第一一天 
function dateBeginOfMonth(D: TDateTime): TDateTime; 
var 
 Year, Month, Day: Word; 
begin 
 DecodeDate(D, Year, Month, Day); 
 Result := EncodeDate(Year, Month, 1); 
end; 

//得到本月的最后一天 
function dateEndOfMonth(D: TDateTime): TDateTime; 
var 
 Year, Month, Day: Word; 
begin 
 DecodeDate(D, Year, Month, Day); 
 if Month = 12 then 
 begin 
  Inc(Year); 
  Month := 1; 
 end else 
  Inc(Month); 
 Result := EncodeDate(Year, Month, 1) - 1; 
end; 

//得到本年的最后一天 
function dateEndOfYear(D: TDateTime): TDateTime; 
var 
 Year, Month, Day: Word; 
begin 
 DecodeDate(D, Year, Month, Day); 
 Result := EncodeDate(Year, 12, 31); 
end; 

//得到兩個日期相隔的天數 
function DaysBetween(Date1, Date2: TDateTime): integer; 
begin 
 Result := Trunc(Date2) - Trunc(Date1) + 1; 
 if Result < 0 then Result := 0; 
end; 
//▎============================================================▎// 
//▎=====================③位操作函數===========================▎// 
//▎============================================================▎// 

// 設置位 
procedure SetBit(var Value: Byte; Bit: TByteBit; IsSet: Boolean); 
begin 
 if IsSet then 
  Value := Value or (1 shl Bit) 
 else 
  Value := Value and not (1 shl Bit); 
end; 

procedure SetBit(var Value: WORD; Bit: TWordBit; IsSet: Boolean); 
begin 
 if IsSet then 
  Value := Value or (1 shl Bit) 
 else 
  Value := Value and not (1 shl Bit); 
end; 

procedure SetBit(var Value: DWORD; Bit: TDWordBit; IsSet: Boolean); 
begin 
 if IsSet then 
  Value := Value or (1 shl Bit) 
 else 
  Value := Value and not (1 shl Bit); 
end; 

// 取位 
function GetBit(Value: Byte; Bit: TByteBit): Boolean; 
begin 
 Result := Value and (1 shl Bit) <> 0; 
end; 

function GetBit(Value: WORD; Bit: TWordBit): Boolean; 
begin 
 Result := Value and (1 shl Bit) <> 0; 
end; 

function GetBit(Value: DWORD; Bit: TDWordBit): Boolean; 
begin 
 Result := Value and (1 shl Bit) <> 0; 
end; 

//▎============================================================▎// 
//▎=================④擴展的文件及目錄操作函數=================▎// 
//▎============================================================▎// 

// 移動文件、目錄 
function MoveFile(const sName, dName: string): Boolean; 
var 
 s1, s2: AnsiString; 
 lpFileOp: TSHFileOpStruct; 
begin 
 s1 := PChar(sName) + #0#0; 
 s2 := PChar(dName) + #0#0; 
 with lpFileOp do 
 begin 
  Wnd := Application.Handle; 
  wFunc := FO_MOVE; 
  pFrom := PChar(s1); 
  pTo := PChar(s2); 
  fFlags := FOF_ALLOWUNDO; 
  hNameMappings := nil; 
  lpszProgressTitle := nil; 
  fAnyOperationsAborted := True; 
 end; 
 Result := SHFileOperation(lpFileOp) = 0; 
end; 

// 打開文件屬性窗口 
procedure FileProperties(const FName: string); 
var 
 SEI: SHELLEXECUTEINFO; 
begin 
 with SEI do 
 begin 
  cbSize := SizeOf(SEI); 
  fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_INVOKEIDLIST or 
   SEE_MASK_FLAG_NO_UI; 
  Wnd := Application.Handle; 
  lpVerb := 'properties'; 
  lpFile := PChar(FName); 
  lpParameters := nil; 
  lpDirectory := nil; 
  nShow := 0; 
  hInstApp := 0; 
  lpIDList := nil; 
 end; 
 ShellExecuteEx(@SEI); 
end; 

// 縮短顯示不下的長路徑名 
function FormatPath(APath: string; Width: Integer): string; 
var 
 SLen: Integer; 
 i, j: Integer; 
 TString: string; 
begin 
 SLen := Length(APath); 
 if (SLen <= Width) or (Width <= 6) then 
 begin 
  Result := APath; 
  Exit 
 end 
 else 
 begin 
  i := SLen; 
  TString := APath; 
  for j := 1 to 2 do 
  begin 
   while (TString[i] <> '\') and (SLen - i < Width - 8) do 
    i := i - 1; 
   i := i - 1; 
  end; 
  for j := SLen - i - 1 downto 0 do 
   TString[Width - j] := TString[SLen - j]; 
  for j := SLen - i to SLen - i + 2 do 
   TString[Width - j] := '.'; 
  Delete(TString, Width + 1, 255); 
  Result := TString; 
 end; 
end; 

// 打開文件框 
function OpenDialog(var FileName: string; Title: string; Filter: string; 
 Ext: string): Boolean; 
var 
 OpenName: TOPENFILENAME; 
 TempFilename, ReturnFile: string; 
begin 
 with OpenName do 
 begin 
  lStructSize := SizeOf(OpenName); 
  hWndOwner := GetModuleHandle(''); 
  Hinstance := SysInit.Hinstance; 
  lpstrFilter := PChar(Filter + #0 + Ext + #0#0); 
  lpstrCustomFilter := ''; 
  nMaxCustFilter := 0; 
  nFilterIndex := 1; 
  nMaxFile := MAX_PATH; 
  SetLength(TempFilename, nMaxFile + 2); 
  lpstrFile := PChar(TempFilename); 
  FillChar(lpstrFile^, MAX_PATH, 0); 
  SetLength(TempFilename, nMaxFile + 2); 
  nMaxFileTitle := MAX_PATH; 
  SetLength(ReturnFile, MAX_PATH + 2); 
  lpstrFileTitle := PChar(ReturnFile); 
  FillChar(lpstrFile^, MAX_PATH, 0); 
  lpstrInitialDir := '.'; 
  lpstrTitle := PChar(Title); 
  Flags := OFN_HIDEREADONLY + OFN_ENABLESIZING; 
  nFileOffset := 0; 
  nFileExtension := 0; 
  lpstrDefExt := PChar(Ext); 
  lCustData := 0; 
  lpfnHook := nil; 
  lpTemplateName := ''; 
 end; 
 Result := GetOpenFileName(OpenName); 
 if Result then 
  FileName := ReturnFile 
 else 
  FileName := ''; 
end; 

// 取兩個目錄的相對路徑,注意串尾不能是'\'字符! 
function GetRelativePath(Source, Dest: string): string; 
 // 比較兩路徑字符串頭部相同串的函數 
 function GetPathComp(s1, s2: string): Integer; 
 begin 
  if Length(s1) > Length(s2) then swapStr(s1, s2); 
  Result := Pos(s1, s2); 
  while (Result = 0) and (Length(s1) > 3) do 
  begin 
   if s1 = '' then Exit; 
   s1 := ExtractFileDir(s1); 
   Result := Pos(s1, s2); 
  end; 
  if Result <> 0 then Result := Length(s1); 
  if Result = 3 then Result := 2; 
  // 修正因ExtractFileDir()處理'c:\'時產生的錯誤. 
 end; 
 // 取Dest的相對根路徑的函數 
 function GetRoot(s: ShortString): string; 
 var 
  i: Integer; 
 begin 
  Result := ''; 
  for i := 1 to Length(s) do 
   if s[i] = '\' then Result := Result + '..\'; 
  if Result = '' then Result := '.\'; 
  // 如果不想處理成".\"的路徑格式,可去掉本行 
 end; 

var 
 RelativRoot, RelativSub: string; 
 HeadNum: Integer; 
begin 
 Source := UpperCase(Source); 
 Dest := UpperCase(Dest);       // 比較兩路徑字符串頭部相同串 
 HeadNum := GetPathComp(Source, Dest); // 取Dest的相對根路徑 
 RelativRoot := GetRoot(StrRight(Dest, Length(Dest) - HeadNum)); 
 // 取Source的相對子路徑 
 RelativSub := StrRight(Source, Length(Source) - HeadNum - 1); 
 // 返回 
 Result := RelativRoot + RelativSub; 
end; 

// 運行一個文件 
procedure RunFile(const FName: string; Handle: THandle; 
 const Param: string); 
begin 
 ShellExecute(Handle, nil, PChar(FName), PChar(Param), nil, SW_SHOWNORMAL); 
end; 

// 運行一個文件并等待其結束 
function WinExecAndWait32(FileName: string; Visibility: Integer): Integer; 
var 
 zAppName: array[0..512] of Char; 
 zCurDir: array[0..255] of Char; 
 WorkDir: string; 
 StartupInfo: TStartupInfo; 
 ProcessInfo: TProcessInformation; 
begin 
 StrPCopy(zAppName, FileName); 
 GetDir(0, WorkDir); 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人黄色小说| 日韩一区二区精品| 国产成a人亚洲| 欧美视频在线一区二区三区| 欧美成人激情免费网| 亚洲靠逼com| 国产东北露脸精品视频| 在线不卡一区二区| 自拍偷在线精品自拍偷无码专区 | 91国产丝袜在线播放| 精品人在线二区三区| 亚洲一区二区在线免费观看视频| 久久99精品一区二区三区三区| 97久久精品人人澡人人爽| 精品久久人人做人人爽| 午夜激情综合网| 欧美无砖砖区免费| 亚洲免费三区一区二区| 欧美专区在线观看一区| 久久久不卡影院| 久久 天天综合| 91精品国产免费久久综合| 亚洲午夜精品在线| 欧美性感一类影片在线播放| 国产精品妹子av| 国产91精品入口| 中文一区二区在线观看| 国产成人av电影免费在线观看| 精品久久久久av影院| 美腿丝袜亚洲三区| 欧美v日韩v国产v| 久久精品国产99久久6| 91精品免费在线观看| 日本成人在线网站| 日韩一卡二卡三卡四卡| 老司机一区二区| 精品国产一区二区三区av性色| 美女视频黄 久久| 日韩欧美电影一区| 国产精品自拍三区| 国产精品久久久久国产精品日日| 成人在线综合网站| 最新中文字幕一区二区三区| 欧美日本国产一区| 国产精品电影一区二区| 毛片av一区二区| 在线免费观看日本一区| 中文字幕欧美国产| 麻豆国产精品一区二区三区| 色激情天天射综合网| 国产日韩综合av| 日本sm残虐另类| 欧美在线观看一区| 亚洲三级理论片| 亚洲一区二区四区蜜桃| 欧美一区二区免费视频| 国产乱码精品一区二区三区忘忧草 | 久久婷婷国产综合精品青草| 国产成人一区二区精品非洲| 最新日韩av在线| 884aa四虎影成人精品一区| 久草这里只有精品视频| 亚洲最大色网站| 欧美不卡视频一区| av欧美精品.com| 亚洲国产精品尤物yw在线观看| 欧美一区二区三区男人的天堂| 韩国在线一区二区| 亚洲精品日韩专区silk| 日韩精品一区二区三区在线| 成人理论电影网| 日韩制服丝袜先锋影音| 欧美激情中文字幕| 欧美日本一区二区在线观看| 国产成人久久精品77777最新版本| ...xxx性欧美| 精品处破学生在线二十三| 色哦色哦哦色天天综合| 激情久久五月天| 亚洲综合在线电影| 国产清纯白嫩初高生在线观看91 | 国产精品三级视频| 欧美一区永久视频免费观看| 国产成人精品一区二| 午夜精品福利视频网站| 国产精品国产成人国产三级| 欧美一区二区美女| 在线免费不卡视频| 成人av资源站| 狠狠狠色丁香婷婷综合激情| 亚洲综合色成人| 国产精品第13页| 久久久精品国产免大香伊| 91精品国产91久久久久久最新毛片 | 一区二区三区小说| 欧美国产精品v| 精品国产免费一区二区三区香蕉 | jlzzjlzz亚洲女人18| 黑人精品欧美一区二区蜜桃| 国产露脸91国语对白| 午夜欧美电影在线观看| 亚洲乱码国产乱码精品精小说| 久久久久久久久免费| 日韩精品影音先锋| 8v天堂国产在线一区二区| 欧美亚洲综合一区| 欧美在线视频不卡| 欧洲精品一区二区三区在线观看| 成人免费精品视频| 丰满放荡岳乱妇91ww| 国内精品伊人久久久久av影院| 日韩电影在线观看网站| 性久久久久久久久| 亚洲高清视频在线| 婷婷久久综合九色综合伊人色| 亚洲乱码日产精品bd| 一区二区日韩av| 亚洲国产sm捆绑调教视频 | 国产亚洲欧美日韩俺去了| 337p粉嫩大胆噜噜噜噜噜91av| 日韩免费视频线观看| 精品日产卡一卡二卡麻豆| 精品国产一区二区三区av性色| 精品国产污网站| 国产亚洲一区二区三区四区 | 国产精品蜜臀av| 日韩一区中文字幕| 玉米视频成人免费看| 亚洲午夜激情av| 免费在线观看视频一区| 国产一区二区电影| 成人av电影在线| 欧美午夜精品一区二区三区| 欧美日韩免费观看一区三区| 欧美群妇大交群中文字幕| 日韩欧美国产一区在线观看| 欧美精品一区二区三区蜜桃| 欧美高清在线视频| 一区二区三区毛片| 成人国产一区二区三区精品| 97se狠狠狠综合亚洲狠狠| 欧美伊人久久大香线蕉综合69| 欧美久久久久久久久中文字幕| 欧美videossexotv100| 国产精品久久久久久久岛一牛影视 | 欧美一区二视频| 中文字幕不卡在线观看| 亚洲一线二线三线久久久| 免费在线观看一区| 色综合久久中文字幕| 日韩视频免费直播| 亚洲欧美怡红院| 蜜臀av一级做a爰片久久| 国产91在线看| 欧美日韩国产一区| 国产精品系列在线| 日韩成人av影视| caoporm超碰国产精品| 日韩欧美在线影院| 有码一区二区三区| 高清不卡在线观看av| 51久久夜色精品国产麻豆| 国产精品美女视频| 久久国产精品第一页| 欧美中文字幕一区二区三区 | 亚洲女子a中天字幕| 久久成人麻豆午夜电影| 日本韩国欧美三级| 亚洲国产精品av| 男男视频亚洲欧美| 欧美一a一片一级一片| 国产欧美视频在线观看| 日本中文在线一区| 91官网在线观看| 国产精品国产三级国产aⅴ无密码| 久久精品久久99精品久久| 欧美揉bbbbb揉bbbbb| **欧美大码日韩| 成人黄色电影在线| 久久婷婷色综合| 久久99精品一区二区三区三区| 欧美精品一区二区三区久久久| 天堂av在线一区| 欧美日韩亚洲综合一区| 亚洲乱码中文字幕| 菠萝蜜视频在线观看一区| 国产亚洲欧洲一区高清在线观看| 裸体健美xxxx欧美裸体表演| 欧美精品少妇一区二区三区| 一区二区三区在线看| 91免费版在线看| 亚洲人成小说网站色在线 | 在线视频中文字幕一区二区| 国产欧美日韩另类视频免费观看| 久久国产精品99久久久久久老狼| 91精品国产福利在线观看| 青青草国产成人av片免费| 欧美精品乱码久久久久久| 爽好久久久欧美精品| 91精品国产综合久久蜜臀|