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

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

?? nixutils.pas

?? 發票打印程序源碼
?? PAS
字號:
unit NixUtils;

interface

uses Windows, Dialogs, Graphics, SysUtils;

type
  TnxBits = 0..31;
  NixUtilsException = class(Exception);

resourcestring
  strNotAvail     = 'Not Available';

const
  AlphaChars      = ['a'..'z', 'A'..'Z'];
  Numbers         = ['0'..'9'];
  Null            =  #0;
  Backspace       =  #8;
  Tab             =  #9;
  LF              = #10;
  CR              = #13;
  CRLF            = #13#10;
  EOF             = #26;
  ESC             = #27;
  Space           = #32;

  CurrentVersion  = 'CurrentVersion';

const
  TDaysInMonth: array[1..12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  //System Functions
function IsWin95: Boolean;
function IsWinNT: Boolean;
function REG_CURRENT_VERSION: string;

function RegisteredOwner: string;
function RegisteredCompany: string;

function GetLocalComputerName: string;
function GetLocalUserName: string;

function DeleteToRecycleBin(WindowHandle: HWND; Filename: string): Boolean;

  //Bit Manipulation Functions
function IsBitSet(Bits: Integer; BitToSet: tnxBits): Boolean;
function SetBit(Bits: Integer; BitToSet: tnxBits): Integer;
function UnSetBit(Bits: Integer; BitToSet: tnxBits): Integer;
function FlipBit(Bits: Integer; BitToSet: tnxBits): Integer;

  //Date & Time Functions
function YearOfDate(DateTime: TDateTime): Integer;
function MonthOfDate(DateTime: TDateTime): Integer;
function DayOfDate(DateTime: TDateTime): Integer;
function HourOfTime(DateTime: TDateTime): Integer;
function MinuteOfTime(DateTime: TDateTime): Integer;
function SecondOfTime(DateTime: TDateTime): Integer;
function IsLeapYear(DateTime: TDateTime): Boolean;
function DaysInMonth(DateTime: TDateTime): Integer;

function MakeUTCTime(DateTime: TDateTime): TDateTime;


  // HTML Functions
function MakeBold(Str: String): string;
function MakeItalic(Str: String): string;
function AddQuotes(Str: string): string;
function SpacesToPluses(Str: string): string;
function MakeHTMLParam(Str: string): string;
function MakeLink(URL, Name: string): string;
function MakeMailTo(Address, Name: string): string;
function HTMLToDelphiColor(S: String): TColor;
function ColorToHTMLHex(Color: TColor): string;

  // String Function
function IsStringAlpha(Str: string): Boolean;
function IsStringNumber(Str: string): Boolean;

  //Miscellaneous Functions

function WinExecandWait32(Path: PChar; Visibility: Word): Integer;
function CreateTempFileName(aPrefix: string): string;
function CaptionMessageDlg(const aCaption: String; const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

implementation

uses Registry, ShellAPI;

//System Functions

function IsWin95: Boolean;
begin
  Result := Win32Platform = VER_PLATFORM_WIN32_WINDOWS;
end;

function IsWinNT: Boolean;
begin
  Result := Win32Platform = VER_PLATFORM_WIN32_NT;
end;

function REG_CURRENT_VERSION: string;
begin
if IsWin95 then Result := 'Software\Microsoft\Windows\'
  else if IsWinNT then Result := 'Software\Microsoft\Windows NT\'
  else Result := EmptyStr;
end;

function RegisteredOwner: string;
var
  R: TRegIniFile;
begin
   R := TRegIniFile.Create('');
   try
     R.RootKey := HKEY_LOCAL_MACHINE;
     Result := R.ReadString(REG_CURRENT_VERSION  + CurrentVersion, 'RegisteredOwner', strNotAvail);
   finally
     R.Free;
   end;
end;

function RegisteredCompany: string;
var
  R: TRegIniFile;
begin
   R := TRegIniFile.Create('');
   try
      R.RootKey := HKEY_LOCAL_MACHINE;
      Result := R.ReadString(REG_CURRENT_VERSION + CurrentVersion, 'RegisteredOrganization', strNotAvail);
   finally
     R.Free;
   end;
end;

function DeleteToRecycleBin(WindowHandle: HWND; Filename: string): Boolean;
var
  FromName: PChar;
  SH: TSHFILEOPSTRUCT;
begin
  FromName := PChar(Filename);
  FillChar(SH, SizeOf(SH),0);
  with SH do
   begin
    Wnd := WindowHandle;
    wFunc := FO_DELETE;
    pFrom := FromName;
    StrCat(pFrom, #0);
    fFlags:= FOF_SILENT or FOF_ALLOWUNDO;
   end;
  Result := SHFileOperation(SH) = 0;
end;

//Bit Manipulation Functions

function IsBitSet(Bits: Integer; BitToSet: tnxBits): Boolean;
begin
  Result := (Bits and (1 shl BitToSet)) <> 0;
end;

function SetBit(Bits: Integer; BitToSet: tnxBits): Integer;
begin
  Result := (Bits or (1 shl BitToSet))
end;

function UnSetBit(Bits: Integer; BitToSet: tnxBits): Integer;
begin
  Result := Bits and (not (1 shl BitToSet));
end;

function FlipBit(Bits: Integer; BitToSet: tnxBits): Integer;
begin
  Result := Bits xor (1 shl BitToSet);
end;

//Date & Time Functions
function YearOfDate(DateTime: TDateTime): Integer;
var
  Y, M, D: Word;
begin
   DecodeDate(DateTime, Y, M, D);
   Result := Y
end;

function MonthOfDate(DateTime: TDateTime): Integer;
var
  Y, M, D: Word;
begin
   DecodeDate(DateTime, Y, M, D);
   Result := M;
end;

function DayOfDate(DateTime: TDateTime): Integer;
var
  Y, M, D: Word;
begin
   DecodeDate(DateTime, Y, M, D);
   Result := D;
end;

function HourOfTime(DateTime: TDateTime): Integer;
var
  H, M, S, MS: Word;
begin
  DecodeTime(DateTime, H, M, S, MS);
  Result := H;
end;

function MinuteOfTime(DateTime: TDateTime): Integer;
var
  H, M, S, MS: Word;
begin
  DecodeTime(DateTime, H, M, S, MS);
  Result := M;
end;

function SecondOfTime(DateTime: TDateTime): Integer;
var
  H, M, S, MS: Word;
begin
  DecodeTime(DateTime, H, M, S, MS);
  Result := S;
end;

function IsLeapYear(DateTime: TDateTime): Boolean;
var
  Year: Integer;
begin
  Year := YearOfDate(DateTime);
  Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0))
end;

function DaysInMonth(DateTime: TDateTime): Integer;
var
  M: Integer;
begin
  M := MonthOfDate(DateTime);
  if (M = 2) and IsLeapYear(DateTime) then Result := 29 else Result := TDaysInMonth[M];
end;

function MakeUTCTime(DateTime: TDateTime): TDateTime;
var
  TZI: TTimeZoneInformation;
begin
  case GetTimeZoneInformation(TZI) of
    TIME_ZONE_ID_STANDARD: begin
                             Result := DateTime + (TZI.Bias/60/24);
                           end;
    TIME_ZONE_ID_DAYLIGHT: begin
                             Result := DateTime + (TZI.Bias/60/24) + TZI.DaylightBias;
                           end;
  else raise NixUtilsException.Create('Error converting to UTC Time.  Time zone could not be determined.');
  end;
end;

//HTML Routines

function MakeBold(Str: String): string;
begin
   Result := Format('<B>%s</B>', [Str]);
end;

function MakeItalic(Str: String): string;
begin
   Result := Format('<I>%s</I>', [Str]);
end;

function AddQuotes(Str: string): string;
begin
  Result := Format('"%s"', [Str]);
end;

function SpacesToPluses(Str: string): string;
var
  i: Integer;
begin
  for i := 1 to Length(Str) do
  begin
    if Str[i] = Space then Str[i] := '+';
  end;
  Result := Str;
end;

function MakeHTMLParam(Str: string): string;
begin
  Result := AddQuotes(SpacesToPluses(Str));
end;

function MakeLink(URL, Name: string): string;
begin
  Result := Format('<A HREF=%s>%s</A>', [AddQuotes(URL), Name]);
end;

function MakeMailTo(Address, Name: string): string;
begin
  Result := Format('<A HREF="MAILTO:%s">%s</A>', [Address, Name]);
end;

function HTMLToDelphiColor(S: String): TColor;
 var
   Red, Green, Blue: LongInt;
 begin
   Red := StrToInt('$' + Copy(S, 1, 2));
   Green := StrToInt('$' + Copy(S, 3, 2));
   Blue := StrToInt('$' + Copy(S, 5, 2));
   Result := (Blue shl 16) + (Green shl 8) + Red;
 end;

function ColorToHTMLHex(Color: TColor): string;
begin
  Result := IntToHex(ColorToRGB(Color), 6);
  Result := Copy(Result, 5, 2) + Copy(Result, 3, 2) + Copy(Result, 1, 2); 
end;

//String Routines

function IsStringNumber(Str: string): Boolean;
var
  i: Integer;
begin
  for i := 1 to Length(Str) do
  begin
    if (not (Str[i] in Numbers)) then
    begin
      Result := False;
      Exit;
    end;
  end;
  Result := True;
end;

function IsStringAlpha(Str: string): Boolean;
var
  i: Integer;
begin
  for i := 1 to Length(Str) do
  begin
    if (not (Str[i] in AlphaChars)) then
    begin
      Result := False;
      Exit;
    end;
  end;
  Result := True;
end;

function WinExecandWait32(Path: PChar; Visibility: Word): Integer;
  { returns -1 if the Exec failed, otherwise returns the process' exit
   code when the process terminates }
   //This is Pat Ritchey's code
 var
   zAppName:array[0..512] of char;
   zCurDir:array[0..MAX_PATH] of char;
   WorkDir:String;
   StartupInfo:TStartupInfo;
   ProcessInfo:TProcessInformation;
   CP: Boolean;
 begin
   StrPCopy(zAppName,Path);
   GetDir(0,WorkDir);
   StrPCopy(zCurDir,WorkDir);
   FillChar(StartupInfo,Sizeof(StartupInfo),#0);
   StartupInfo.cb := Sizeof(StartupInfo);

   StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
   StartupInfo.wShowWindow := Visibility;

   CP := 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); { pointer to PROCESS_INF }
   if not CP
      then Result := -1
   else
      begin
        WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
        GetExitCodeProcess(ProcessInfo.hProcess, DWORD(Result));
      end;
 end;

function CreateTempFileName(aPrefix: string): string;
var
  Buf: array[0..MAX_PATH] of char;
  Temp: array[0..MAX_PATH] of char;
begin
  GetTempPath(MAX_PATH, Buf);
  GetTempFilename(Buf, PChar(aPrefix), 0, Temp);
  Result := String(Temp);
end;

function CaptionMessageDlg(const aCaption: String; const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
  with CreateMessageDialog(Msg, DlgType, Buttons) do
  try
    Caption := aCaption;
    HelpContext := HelpCtx;
    Result := ShowModal;
  finally
    Free;
  end;
end;

function GetLocalComputerName: string;
var
  aLength: DWORD;
  aLocalComputerName: array[0..MAX_PATH - 1] of Char;
begin
  aLength := MAX_COMPUTERNAME_LENGTH + 1;
  GetComputerName(aLocalComputerName, aLength);
  Result := aLocalComputerName;
end;

function GetLocalUserName: string;
var
   aLength: DWORD;
   aUserName: array[0..MAX_PATH - 1] of Char;
begin
    aLength := MAX_PATH;
    GetUserName(aUserName, aLength);
    Result := aUserName;
end;


initialization

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区蜜桃| 国产69精品久久久久毛片| 国内久久婷婷综合| 色国产综合视频| 欧美精品一区二区精品网| 国产精品久久久久久久久图文区| 亚洲妇熟xx妇色黄| 国产不卡高清在线观看视频| 欧美日韩在线一区二区| 成人欧美一区二区三区1314| 欧美aaaaaa午夜精品| 91成人在线免费观看| 国产日韩精品一区二区浪潮av| 天堂午夜影视日韩欧美一区二区| 成人av电影在线| 国产免费久久精品| 国产精品综合一区二区三区| 色欧美日韩亚洲| 中文在线资源观看网站视频免费不卡 | 国产精品正在播放| 7777精品伊人久久久大香线蕉超级流畅| 国产精品久久毛片a| 久久精品国产77777蜜臀| 欧美色爱综合网| 亚洲欧美日本在线| 成人免费高清视频| 国产精品午夜久久| 国产91精品免费| 国产欧美一区二区精品性色| 另类人妖一区二区av| 日韩一区二区三区四区五区六区| 三级精品在线观看| 337p亚洲精品色噜噜| 亚洲一区二区三区精品在线| 91在线国内视频| 国产精品不卡在线| 91在线免费播放| 一个色在线综合| 欧美午夜电影一区| 日韩av在线播放中文字幕| 欧美视频精品在线| 日韩国产欧美在线视频| 日韩免费性生活视频播放| 韩国在线一区二区| 久久免费精品国产久精品久久久久| 蜜桃av一区二区三区| 日韩你懂的电影在线观看| 久久99最新地址| 国产人妖乱国产精品人妖| 国产传媒日韩欧美成人| 日韩一区有码在线| 欧美日韩一区二区在线视频| 丝袜美腿成人在线| 久久亚洲一级片| 国产激情一区二区三区桃花岛亚洲| 欧美精品一区二区三区四区| 国产乱码精品1区2区3区| 亚洲国产成人自拍| 欧美怡红院视频| 黄色小说综合网站| 亚洲成av人片一区二区梦乃| 日韩亚洲欧美在线| 97se亚洲国产综合自在线| 亚洲免费观看高清完整版在线观看熊| 欧美狂野另类xxxxoooo| 国产一区不卡在线| 一区二区视频免费在线观看| 日韩一二三区视频| 福利一区二区在线| 午夜激情一区二区三区| 精品国产免费一区二区三区香蕉| 成人av集中营| 日韩av电影免费观看高清完整版在线观看| 精品少妇一区二区三区视频免付费| 成人性生交大合| 日韩综合一区二区| 国产精品人成在线观看免费| 欧美精品久久99久久在免费线| 国产精品亚洲成人| 首页国产欧美久久| 日本一二三不卡| 欧美一级夜夜爽| 91福利在线看| 成人毛片在线观看| 国内成人精品2018免费看| 亚洲精品免费在线播放| 精品噜噜噜噜久久久久久久久试看| 不卡的av中国片| 国产一区二区三区美女| 亚洲最新视频在线播放| 国产三区在线成人av| 欧美午夜片在线观看| 不卡视频在线观看| 国内成人精品2018免费看| 亚洲成人免费在线观看| 中文字幕一区二区三区乱码在线| 777亚洲妇女| 欧美午夜精品一区二区蜜桃| heyzo一本久久综合| 久久99久久99精品免视看婷婷| 午夜精品久久久久久不卡8050| 亚洲欧洲日韩一区二区三区| www日韩大片| 欧美一区二区三区系列电影| 欧美专区日韩专区| 欧美色倩网站大全免费| 岛国av在线一区| 国产成人精品在线看| 国产高清不卡一区| 国产成人午夜电影网| 国产麻豆精品一区二区| 男女性色大片免费观看一区二区| 丝袜亚洲另类欧美综合| 亚洲国产成人高清精品| 亚洲男女一区二区三区| 中文字幕亚洲成人| 亚洲视频免费在线观看| 日本一区二区免费在线| 中文字幕乱码日本亚洲一区二区| 久久伊人中文字幕| 国产精品视频第一区| 欧美激情一区二区三区在线| 久久久天堂av| 中文字幕成人av| 亚洲免费观看高清完整| 亚洲精品久久嫩草网站秘色| 亚洲美女在线一区| 亚洲国产乱码最新视频 | 日本丶国产丶欧美色综合| 成人一区二区三区| 色先锋aa成人| 欧美日韩一区小说| 精品国产百合女同互慰| 久久精品一区二区三区不卡 | 国产精品综合在线视频| 国产sm精品调教视频网站| 成人免费毛片aaaaa**| bt7086福利一区国产| 色综合天天狠狠| 欧美一区二区网站| 国产人成亚洲第一网站在线播放| 成人欧美一区二区三区白人| 亚洲午夜激情网站| 国产一区二区日韩精品| 成人精品免费视频| 欧美日韩中字一区| 久久久久久久一区| 亚洲综合清纯丝袜自拍| 久久精品国产77777蜜臀| 大胆欧美人体老妇| 欧美一区二区在线免费播放| 国产日韩欧美综合在线| 一区二区三区毛片| 国产在线不卡一区| av亚洲精华国产精华精| 欧美日韩一本到| 国产欧美一区二区精品忘忧草| 亚洲欧美一区二区不卡| 麻豆高清免费国产一区| 99精品在线免费| 久久奇米777| 亚洲v中文字幕| 粉嫩aⅴ一区二区三区四区 | 久久久久久夜精品精品免费| 日韩美女精品在线| 国产一区中文字幕| 欧美亚洲动漫另类| 国产精品无遮挡| 久久激情五月婷婷| 欧美影院一区二区| 国产精品网站在线| 日本美女一区二区| 一本大道久久a久久综合婷婷| 久久久另类综合| 久久精品999| 777色狠狠一区二区三区| 亚洲欧美一区二区久久| 国产不卡在线视频| 久久人人超碰精品| 美女尤物国产一区| 欧美日韩电影在线| 一区二区日韩av| 色婷婷久久久亚洲一区二区三区| 欧美精品一区二区三区久久久| 丝袜美腿亚洲综合| 欧美欧美午夜aⅴ在线观看| 亚洲三级在线免费| av一区二区三区四区| 国产欧美一区二区三区在线看蜜臀| 免费成人在线网站| 91精品麻豆日日躁夜夜躁| 亚洲国产综合色| 欧美在线观看一区二区| 1024成人网| 99国产精品一区| 中文字幕一区不卡| 色综合色综合色综合色综合色综合| 国产精品视频一二三| 成人免费视频免费观看| 中文字幕av一区二区三区|