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

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

?? delphi常用函數庫.txt

?? delphi常用的函數庫 再不用絞盡腦汁想一些已經存在的函數了
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
 StrPCopy(zCurDir, WorkDir); 
 FillChar(StartupInfo, SizeOf(StartupInfo), #0); 
 StartupInfo.cb := SizeOf(StartupInfo); 

 StartupInfo.dwFlags := STARTF_USESHOWWINDOW; 
 StartupInfo.wShowWindow := Visibility; 
 if not CreateProcess(nil, 
  zAppName,              { pointer to command line string } 
  nil,                { pointer to process security attributes } 
  nil,                { pointer to thread security attributes } 
  False,               { handle inheritance flag } 
  Create_NEW_CONSOLE or        { creation flags } 
  NORMAL_PRIORITY_CLASS, 
  nil,                { pointer to new environment block } 
  nil,                { pointer to current directory name } 
  StartupInfo,            { pointer to STARTUPINFO } 
  ProcessInfo) then 
  Result := -1            { pointer to PROCESS_INF } 

 else 
 begin 
  WaitforSingleObject(ProcessInfo.hProcess, INFINITE); 
  GetExitCodeProcess(ProcessInfo.hProcess, Cardinal(Result)); 
 end; 
end; 

// 應用程序路徑 
function AppPath: string; 
begin 
 Result := ExtractFilePath(Application.ExeName); 
end; 

// 取Windows系統目錄 
function GetWindowsDir: string; 
var 
 Buf: array[0..MAX_PATH] of Char; 
begin 
 GetWindowsDirectory(Buf, MAX_PATH); 
 Result := AddDirSuffix(Buf); 
end; 

// 取臨時文件目錄 
function GetWinTempDir: string; 
var 
 Buf: array[0..MAX_PATH] of Char; 
begin 
 GetTempPath(MAX_PATH, Buf); 
 Result := AddDirSuffix(Buf); 
end; 

// 目錄尾加'\'修正 
function AddDirSuffix(Dir: string): string; 
begin 
 Result := Trim(Dir); 
 if Result = '' then Exit; 
 if Result[Length(Result)] <> '\' then Result := Result + '\'; 
end; 

function MakePath(Dir: string): string; 
begin 
 Result := AddDirSuffix(Dir); 
end; 

// 判斷文件是否正在使用 
function IsFileInUse(FName: string): Boolean; 
var 
 HFileRes: HFILE; 
begin 
 Result := False; 
 if not FileExists(FName) then 
  Exit; 
 HFileRes := CreateFile(PChar(FName), GENERIC_READ or GENERIC_WRITE, 0, 
  nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); 
 Result := (HFileRes = INVALID_HANDLE_VALUE); 
 if not Result then 
  CloseHandle(HFileRes); 
end; 

// 取文件長度 
function GetFileSize(FileName: string): Integer; 
var 
 FileVar: file of Byte; 
begin 
  
 try 
  AssignFile(FileVar, FileName); 
  Reset(FileVar); 
  Result := FileSize(FileVar); 
  CloseFile(FileVar); 
 except 
  Result := 0; 
 end; 
  
end; 

// 設置文件時間 
function SetFileDate(FileName: string; CreationTime, LastWriteTime, 
LastAccessTime: 
 TFileTime): Boolean; 
var 
 FileHandle: Integer; 
begin 
 FileHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyNone); 
 if FileHandle > 0 then 
 begin 
  SetFileTime(FileHandle, @CreationTime, @LastAccessTime, @LastWriteTime); 
  FileClose(FileHandle); 
  Result := True; 
 end 
 else 
  Result := False; 
end; 

// 取文件時間 
function GetFileDate(FileName: string; var CreationTime, LastWriteTime, 
LastAccessTime: 
 TFileTime): Boolean; 
var 
 FileHandle: Integer; 
begin 
 FileHandle := FileOpen(FileName, fmOpenRead or fmShareDenyNone); 
 if FileHandle > 0 then 
 begin 
  GetFileTime(FileHandle, @CreationTime, @LastAccessTime, @LastWriteTime); 
  FileClose(FileHandle); 
  Result := True; 
 end 
 else 
  Result := False; 
end; 

// 取得與文件相關的圖標 
// FileName: e.g. "e:\hao\a.txt" 
// 成功則返回True 
function GetFileIcon(FileName: string; var Icon: TIcon): Boolean; 
var 
 SHFileInfo: TSHFileInfo; 
 h: HWND; 
begin 
 if not Assigned(Icon) then 
  Icon := TIcon.Create; 
 h := SHGetFileInfo(PChar(FileName), 
  0, 
  SHFileInfo, 
  SizeOf(SHFileInfo), 
  SHGFI_ICON or SHGFI_SYSICONINDEX); 
 Icon.Handle := SHFileInfo.hIcon; 
 Result := (h <> 0); 
end; 

// 文件時間轉本地時間 
function FileTimeToLocalSystemTime(FTime: TFileTime): TSystemTime; 
var 
 STime: TSystemTime; 
begin 
 FileTimeToLocalFileTime(FTime, FTime); 
 FileTimeToSystemTime(FTime, STime); 
 Result := STime; 
end; 

// 本地時間轉文件時間 
function LocalSystemTimeToFileTime(STime: TSystemTime): TFileTime; 
var 
 FTime: TFileTime; 
begin 
 SystemTimeToFileTime(STime, FTime); 
 LocalFileTimeToFileTime(FTime, FTime); 
 Result := FTime; 
end; 

// 創建備份文件 
function CreateBakFile(FileName, Ext: string): Boolean; 
var 
 BakFileName: string; 
begin 
 BakFileName := FileName + '.' + Ext; 
 Result := CopyFile(PChar(FileName), PChar(BakFileName), False); 
end; 

// 刪除整個目錄 
function Deltree(Dir: string): Boolean; 
var 
 sr: TSearchRec; 
 fr: Integer; 
begin 
 if not DirectoryExists(Dir) then 
 begin 
  Result := True; 
  Exit; 
 end; 
 fr := FindFirst(AddDirSuffix(Dir) + '*.*', faAnyFile, sr); 
 try 
  while fr = 0 do 
  begin 
   if (sr.Name <> '.') and (sr.Name <> '..') then 
   begin 
    if sr.Attr and faDirectory = faDirectory then 
     Result := Deltree(AddDirSuffix(Dir) + sr.Name) 
    else 
     Result := DeleteFile(AddDirSuffix(Dir) + sr.Name); 
    if not Result then 
     Exit; 
   end; 
   fr := FindNext(sr); 
  end; 
 finally 
  FindClose(sr); 
 end; 
 Result := RemoveDir(Dir); 
end; 

// 取文件夾文件數 
function GetDirFiles(Dir: string): Integer; 
var 
 sr: TSearchRec; 
 fr: Integer; 
begin 
 Result := 0; 
 fr := FindFirst(AddDirSuffix(Dir) + '*.*', faAnyFile, sr); 
 while fr = 0 do 
 begin 
  if (sr.Name <> '.') and (sr.Name <> '..') then 
   Inc(Result); 
  fr := FindNext(sr); 
 end; 
 FindClose(sr); 
end; 

var 
 FindAbort: Boolean; 

// 查找指定目錄下文件 
procedure FindFile(const Path: string; const FileName: string = '*.*'; 
 Proc: TFindCallBack = nil; bSub: Boolean = True; const bMsg: Boolean = True); 
var 
 APath: string; 
 Info: TSearchRec; 
 Succ: Integer; 
begin 
 FindAbort := False; 
 APath := MakePath(Path); 
 try 
  Succ := FindFirst(APath + FileName, faAnyFile - faVolumeID, Info); 
  while Succ = 0 do 
  begin 
   if (Info.Name <> '.') and (Info.Name <> '..') then 
   begin 
    if (Info.Attr and faDirectory) <> faDirectory then 
    begin 
     if Assigned(Proc) then 
      Proc(APath + Info.FindData.cFileName, Info, FindAbort); 
    end 
    else if bSub then 
     FindFile(APath + Info.Name, FileName, Proc, bSub, bMsg); 
   end; 
   if bMsg then Application.ProcessMessages; 
   if FindAbort then Exit; 
   Succ := FindNext(Info); 
  end; 
 finally 
  FindClose(Info); 
 end; 
end; 

{ 功能說明:查找一個路徑下的所有文件。 
 參數:path:路徑, filter:文件擴展名過濾, FileList:文件列表, ContainSubDir:是否包含子目錄} 
procedure 
FindFileList(Path,Filter:string;FileList:TStrings;ContainSubDir:Boolean); 
var 
 FSearchRec,DSearchRec:TSearchRec; 
 FindResult:shortint; 
begin 
 FindResult:=FindFirst(path+Filter,sysutils.faAnyFile,FSearchRec); 

 try 
 while FindResult=0 do 
 begin 
  FileList.Add(FSearchRec.Name); 
  FindResult:=FindNext(FSearchRec); 
 end; 
  
 if ContainSubDir then 
 begin 
  FindResult:=FindFirst(path+Filter,faDirectory,DSearchRec); 
  while FindResult=0 do 
  begin 
   if ((DSearchRec.Attr and faDirectory)=faDirectory) 
    and (DSearchRec.Name<>'.') and (DSearchRec.Name<>'..') then 
    FindFileList(Path,Filter,FileList,ContainSubDir); 
    FindResult:=FindNext(DSearchRec); 
  end; 
 end; 
 finally 
  FindClose(FSearchRec); 
 end; 
end; 
  
//返回一文本文件的行數 
function Txtline(const txt: string): integer; 
var 
 F : TextFile; 
 StrLine : string; 
 line : Integer; 
begin 
 AssignFile(F, txt); 
 Reset(F); 
 Line := 0; 
 while not SeekEof(f) do 
 begin 
  if SeekEoln(f) then 
   Readln; 
  Readln(F, StrLine); 
  if SeekEof(f) then 
   break 
  else 
   inc(Line); 
 end; 
 CloseFile(F); 
 Result := Line; 
end; 

//Html文件轉化成文本文件 
function Html2Txt(htmlfilename: string): string; 
var Mystring:TStrings; 
  s,lineS:string; 
  line,Llen,i,j:integer; 
  rloop:boolean; 
begin 
  rloop:=False; 
  Mystring:=TStringlist.Create; 
  s:=''; 
  Mystring.LoadFromFile(htmlfilename); 
  line:=Mystring.Count; 
  try 
   for i:=0 to line-1 do 
     Begin 
      lineS:=Mystring[i]; 
      Llen:=length(lineS); 
      j:=1; 
      while (j<=Llen)and(lineS[j]=' ')do 
      begin 
        j:=j+1; 
        s:=s+' '; 
      End; 
      while j<=Llen do 
      Begin 
        if lineS[j]='<'then 
         rloop:=True; 
         if lineS[j]='>'then 
           Begin 
            rloop:=False; 
            j:=j+1; 
            continue; 
           End; 
         if rloop then 
           begin 
            j:=j+1; 
            continue; 
           end 
         else 
          s:=s+lineS[j]; 
           j:=j+1; 
      End; 
      s:=s+#13#10; 
     End; 
  finally 
   Mystring.Free; 
  end; 
  result:=s; 
end; 

// 文件打開方式 
function OpenWith(const FileName: string): Integer; 
begin 
 Result := ShellExecute(Application.Handle, 'open', 'rundll32.exe', 
  PChar('shell32.dll,OpenAs_RunDLL ' + FileName), '', SW_SHOW); 
end; 

//▎============================================================▎// 
//▎===================⑤擴展的對話框函數=======================▎// 
//▎============================================================▎// 

// 顯示提示窗口 
procedure InfoDlg(Mess: string; Caption: string; Flags: Integer); 
begin 
 Application.MessageBox(PChar(Mess), PChar(Caption), Flags); 
end; 

// 顯示提示確認窗口 
function InfoOk(Mess: string; Caption: string): Boolean; 
begin 
 Result := Application.MessageBox(PChar(Mess), PChar(Caption), 
  MB_OK + MB_ICONINFORMATION) = IDOK; 
end; 

// 顯示錯誤窗口 
procedure ErrorDlg(Mess: string; Caption: string); 
begin 
 Application.MessageBox(PChar(Mess), PChar(Caption), MB_OK + MB_ICONSTOP); 
end; 

// 顯示警告窗口 
procedure WarningDlg(Mess: string; Caption: string); 
begin 
 Application.MessageBox(PChar(Mess), PChar(Caption), MB_OK + MB_ICONWARNING); 
end; 

// 顯示查詢是否窗口 
function QueryDlg(Mess: string; Caption: string): Boolean; 
begin 
 Result := Application.MessageBox(PChar(Mess), PChar(Caption), 
  MB_YESNO + MB_ICONQUESTION) = IDYES; 
end; 

//窗體漸變 
procedure SetWindowAnimate(Sender : TForm; IsSetAni : bool); 
var 
 pOSVersionInfo : OSVersionInfo; 
begin 
 pOSVersionInfo.dwOSVersionInfoSize := sizeof(OSVersionInfo); 
 GetVersionEx(pOSVersionInfo); 
 if pOSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then 
 begin 
  if IsSetAni then 
   AnimateWindow(Sender.Handle,444,AW_HIDE or AW_BLEND); 
 end 
 else 
  if IsSetAni then 
  begin 
   AnimateWindow(Sender.Handle,444,AW_HIDE or AW_CENTER); 
  end; 
end; 

//▎============================================================▎// 
//▎====================⑥ 系統功能函數 =======================▎// 
//▎============================================================▎// 

// 移動鼠標到控件 
procedure MoveMouseIntoControl(AWinControl: TControl); 
var 
 rtControl: TRect; 
begin 
 rtControl := AWinControl.BoundsRect; 
 MapWindowPoints(AWinControl.Parent.Handle, 0, rtControl, 2); 
 SetCursorPos(rtControl.Left + (rtControl.Right - rtControl.Left) div 2, 
  rtControl.Top + (rtControl.Bottom - rtControl.Top) div 2); 
end; 

// 動態設置分辨率 
function DynamicResolution(x, y: WORD): Boolean; 
var 
 lpDevMode: TDeviceMode; 
begin 
 Result := EnumDisplaySettings(nil, 0, lpDevMode); 
 if Result then 
 begin 
  lpDevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT; 
  lpDevMode.dmPelsWidth := x; 
  lpDevMode.dmPelsHeight := y; 
  Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL; 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品国产a| 精品1区2区在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 视频一区二区三区在线| 这里只有精品视频在线观看| 亚州成人在线电影| 日韩午夜在线播放| 国产在线播精品第三| 国产精品每日更新| 在线观看亚洲精品视频| 日韩精品一区第一页| 精品免费一区二区三区| 成人a区在线观看| 成人欧美一区二区三区黑人麻豆 | 91蜜桃免费观看视频| 亚洲高清免费观看 | 国产综合色在线| 亚洲国产精品传媒在线观看| 91网页版在线| 美女国产一区二区| 中文字幕在线一区二区三区| 欧美午夜精品久久久久久超碰| 五月开心婷婷久久| 久久精品视频免费| 在线看国产日韩| 强制捆绑调教一区二区| 欧美国产一区二区在线观看| 91精品婷婷国产综合久久竹菊| 国内一区二区在线| 一区二区三区四区av| 日韩丝袜美女视频| 94-欧美-setu| 极品销魂美女一区二区三区| 亚洲视频狠狠干| 日韩一区二区免费视频| 99精品黄色片免费大全| 久久99久久99小草精品免视看| 亚洲人成亚洲人成在线观看图片| 日韩一区二区免费高清| 不卡av电影在线播放| 免费的国产精品| 日韩伦理av电影| 久久影音资源网| 欧美精品久久久久久久久老牛影院| 国产乱码精品一品二品| 午夜久久福利影院| 亚洲欧洲av色图| 久久精品亚洲精品国产欧美kt∨| 欧美午夜精品免费| 99精品久久只有精品| 精品一区二区久久久| 亚洲成人资源网| 国产精品国产成人国产三级| 欧美刺激午夜性久久久久久久| 日本韩国欧美在线| 国产91丝袜在线观看| 久久99久久精品欧美| 偷拍亚洲欧洲综合| 亚洲精品美国一| 国产精品激情偷乱一区二区∴| 日韩欧美国产午夜精品| 欧美日韩精品专区| 成人中文字幕在线| 亚洲另类一区二区| 在线成人av影院| 成人网男人的天堂| 男男视频亚洲欧美| 高清国产一区二区三区| 亚洲国产综合色| 亚洲精品中文在线影院| 日韩在线观看一区二区| 亚洲人成网站在线| 欧美精选一区二区| 国产一区二区三区不卡在线观看| 99久久国产综合精品麻豆| 色婷婷久久综合| 国产成人午夜精品5599| 99re热这里只有精品免费视频| 蜜桃视频一区二区三区在线观看 | 亚洲精选视频免费看| 日韩精品久久理论片| av电影在线观看一区| 懂色av一区二区三区免费观看| 欧美成人vr18sexvr| 日韩精品1区2区3区| 国产福利一区二区| 精品对白一区国产伦| www.亚洲在线| 国产成人av电影免费在线观看| 国产亚洲欧洲997久久综合| 不卡一区二区在线| 337p粉嫩大胆噜噜噜噜噜91av| 欧美日韩久久不卡| 国产一区二区免费视频| 国产欧美日韩卡一| 本田岬高潮一区二区三区| 蜜桃av一区二区三区电影| 青娱乐精品视频| 捆绑变态av一区二区三区| a亚洲天堂av| 欧美情侣在线播放| 日韩一区二区在线看片| 精品国精品国产| 精品国产免费一区二区三区四区| 亚洲一级在线观看| 精品国产不卡一区二区三区| 亚洲综合色网站| 人妖欧美一区二区| 麻豆久久久久久| 宅男噜噜噜66一区二区66| 久久午夜色播影院免费高清 | 久久99国产精品久久99果冻传媒| 豆国产96在线|亚洲| 国产精品日韩精品欧美在线| 成人av电影观看| 国产日产欧美一区| 国产精品一区二区你懂的| 国产亚洲综合av| 日韩一区二区三区三四区视频在线观看| 狠狠狠色丁香婷婷综合久久五月| 亚洲国产视频网站| 青青国产91久久久久久| 亚洲美女少妇撒尿| 国产亚洲1区2区3区| 久久福利视频一区二区| 成人午夜碰碰视频| 精品女同一区二区| 欧美日韩高清一区| 中文字幕国产精品一区二区| 亚洲一区二区三区四区在线观看| 国产在线播放一区| 欧日韩精品视频| 久久精品这里都是精品| 亚洲一区二区三区影院| 丁香桃色午夜亚洲一区二区三区| 欧美日韩视频一区二区| 欧美国产成人在线| 激情综合网最新| 欧美另类变人与禽xxxxx| 中文字幕在线观看一区| 国产曰批免费观看久久久| 欧美三级蜜桃2在线观看| 国产精品入口麻豆九色| 久久精品国产精品亚洲精品| 在线观看成人免费视频| 欧美激情中文不卡| 久久97超碰国产精品超碰| 欧美日韩大陆在线| 亚洲综合无码一区二区| 93久久精品日日躁夜夜躁欧美| 久久精品一区二区三区不卡牛牛| 日韩精品电影在线| 欧美日韩精品电影| 亚洲已满18点击进入久久| 成人av在线电影| 亚洲国产成人午夜在线一区| 精品写真视频在线观看| 9191国产精品| 五月综合激情婷婷六月色窝| 91高清视频免费看| 亚洲精品免费在线播放| 99久久精品免费看| 中文字幕不卡在线观看| 国产呦精品一区二区三区网站| 日韩三级电影网址| 美女www一区二区| 精品日本一线二线三线不卡| 日韩中文字幕av电影| 6080yy午夜一二三区久久| 视频在线观看91| 欧美一区三区二区| 老司机精品视频在线| 精品国产免费久久| 国内精品写真在线观看| 久久久久久久久久看片| 国产精一区二区三区| 国产日产欧美一区| 99精品在线观看视频| 亚洲天堂中文字幕| 一本到不卡免费一区二区| 亚洲曰韩产成在线| 91精品国产91久久久久久一区二区| 日韩激情视频在线观看| 欧美大片日本大片免费观看| 国内一区二区在线| 亚洲国产高清在线| 在线一区二区视频| 性做久久久久久免费观看欧美| 欧美一区二区精美| 国产精品99久久久久久有的能看 | 国内精品久久久久影院一蜜桃| 久久网站热最新地址| 成人激情免费视频| 亚洲永久免费av| 欧美白人最猛性xxxxx69交| 国产成a人亚洲| 亚洲国产美国国产综合一区二区| 欧美一区二区视频观看视频| 狠狠色丁香久久婷婷综| 亚洲日本乱码在线观看|