愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1幫助主頁
  • 學習手冊

    • 基本入門

    • 功能介紹

    • 控制元件說明

    • 功能用法

    • 專用模板

    • 開發流程

    • 函式程式

      • 系統函式
        • 1. 字串處理函式
          • 1.1. CompareStr
          • 1.2. CompareText
          • 1.3. Copy
          • 1.4. Decodestring
          • 1.5. Encodestring
          • 1.6. GetStreamMd5
          • 1.7. GetStringMd5
          • 1.8. LeftStr
          • 1.9. Length
          • 1.10. LowerCase
          • 1.11. Pos
          • 1.12. PosEx
          • 1.13. QuotedStr
          • 1.14. RightStr
          • 1.15. SameText
          • 1.16. StrECopy
          • 1.17. StrEnd
          • 1.18. StringOfChar
          • 1.19. StrLCat
          • 1.20. StrLComp
          • 1.21. StrLen
          • 1.22. StrLiComp
          • 1.23. StrLower
          • 1.24. StrMove
          • 1.25. StrPCopy
          • 1.26. StrPLCopy
          • 1.27. StrPos
          • 1.28. StrRScan
          • 1.29. StrScan
          • 1.30. Trim
          • 1.31. TrimLeft
          • 1.32. TrimRight
          • 1.33. UpperCase
        • 2. 科學計算函式
          • 2.1. Abs
          • 2.2. Exp
          • 2.3. Int
          • 2.4. IsZero
          • 2.5. Ln
          • 2.6. Pi
          • 2.7. Power
          • 2.8. Round
          • 2.9. SameValue
          • 2.10. Sqr
          • 2.11. Sqrt
          • 2.12. Trunc
          • 2.13. VarComplexAbs
          • 2.14. VarComplexAbsSqr
          • 2.15. VarComplexAngle
        • 3. 序數函式
          • 3.1. Odd
          • 3.2. Ord
          • 3.3. Pred
          • 3.4. Succ
        • 4. 三角函式
          • 4.1. ArcCos
          • 4.2. ArcSin
          • 4.3. ArcTan
          • 4.4. ArcTan2
          • 4.5. Cos
          • 4.6. Sin
        • 5. 統計函式
          • 5.1. MaxIntValue
          • 5.2. MinIntValue
          • 5.3. SumInt
        • 6. 金融函式
          • 6.1. DoubleDecliningBalance
          • 6.2. InternalRateOfReturn
          • 6.3. SYDDepreciation
        • 7. 隨機數函式
          • 7.1. Random
          • 7.2. RandomFrom
        • 8. 單位換算函式
          • 8.1. CelsiusToFahrenheit
          • 8.2. DateTimeToJulianDate
          • 8.3. DateTimeToModifiedJulianDate
          • 8.4. DateTimeToUnix
          • 8.5. FahrenheitToCelsius
        • 9. 日期函式
          • 9.1. CurrentYear
          • 9.2. Date
          • 9.3. DateOf
          • 9.4. DateTimeToFileDate
          • 9.5. DateTimeToStr
          • 9.6. DateToStr
          • 9.7. DayOf
          • 9.8. DayOfTheMonth
          • 9.9. DayOfTheWeek
          • 9.10. DayOfTheYear
          • 9.11. DayOfWeek
          • 9.12. DaysBetween
          • 9.13. DaysInAMonth
          • 9.14. DaysInAYear
          • 9.15. DaysInMonth
          • 9.16. DaysInYear
          • 9.17. DaysSpan
          • 9.18. DecodeDateFully
          • 9.19. EncodeDate
          • 9.20. EncodeDateDay
          • 9.21. EncodeDateMonthWeek
          • 9.22. EncodeDateTime
          • 9.23. EncodeDateWeek
          • 9.24. EncodeDayOfWeekInMonth
          • 9.25. EncodeTime
          • 9.26. EndOfAMonth
          • 9.27. EndOfAWeek
          • 9.28. EndOfTheDay
          • 9.29. EndOfTheMonth
          • 9.30. EndOfTheWeek
          • 9.31. EndOfTheYear
          • 9.32. FormatDateTime
          • 9.33. GetTime
          • 9.34. HourOfTheDay
          • 9.35. HourOfTheMonth
          • 9.36. HourOfTheWeek
          • 9.37. HourOfTheYear
          • 9.38. HoursBetween
          • 9.39. HourSpan
          • 9.40. IncDay
          • 9.41. IncHour
          • 9.42. IncMilliSecond
          • 9.43. IncMinute
          • 9.44. IncMonth
          • 9.45. IncSecond
          • 9.46. IncWeek
          • 9.47. IncYear
          • 9.48. IsInLepYear
          • 9.49. IsLeapYear
          • 9.50. IsPM
          • 9.51. IsSameDay
          • 9.52. IsToday
          • 9.53. IsValidDate
          • 9.54. IsValidDateDay
          • 9.55. IsValidDateMonthWeek
          • 9.56. IsValidDateTime
          • 9.57. IsValidDateWeek
          • 9.58. IsValidTime
          • 9.59. MilliSecondOf
          • 9.60. MilliSecondOfTheDay
          • 9.61. MilliSecondOfTheHour
          • 9.62. MilliSecondOfTheMinute
          • 9.63. MilliSecondOfTheMonth
          • 9.64. MilliSecondOfTheSecond
          • 9.65. MilliSecondsBetween
          • 9.66. MinuteOf
          • 9.67. MinuteOfTheHour
          • 9.68. MinuteOfTheMonth
          • 9.69. MinuteOfTheWeek
          • 9.70. MinuteOfTheYear
          • 9.71. MinutesBetween
          • 9.72. MinuteSpan
          • 9.73. MonthOf
          • 9.74. MonthOfTheYear
          • 9.75. MonthsBetween
          • 9.76. MonthSpan
          • 9.77. Now
          • 9.78. NthDayOfWeek
          • 9.79. RecodeDate
          • 9.80. RecodeDateTime
          • 9.81. RecodeDay
          • 9.82. RecodeHour
          • 9.83. RecodeMilliSecond
          • 9.84. RecodeMinute
          • 9.85. RecodeSecond
          • 9.86. RecodeTime
          • 9.87. RecodeYear
          • 9.88. SameDate
          • 9.89. SameDateTime
          • 9.90. SameTime
          • 9.91. SecondOf
          • 9.92. SecondOfTheDay
          • 9.93. SecondOfTheHour
          • 9.94. SecondOfTheMinute
          • 9.95. SecondOfTheMonth
          • 9.96. SecondOfTheWeek
          • 9.97. SecondsBetween
          • 9.98. SecondsSpan
          • 9.99. StartOfAWeek
          • 9.100. StartOfAYear
          • 9.101. StartOfTheDay
          • 9.102. StartOfTheMonth
          • 9.103. StartOfTheWeek
          • 9.104. StartOfTheYear
          • 9.105. StrToDate
          • 9.106. StrToDateDef
          • 9.107. StrToDateTime
          • 9.108. StrToDateTimeDef
          • 9.109. StrToTime
          • 9.110. StrToTimeDef
          • 9.111. Time
          • 9.112. TimeOf
          • 9.113. TimeToStr
          • 9.114. Today
          • 9.115. Tomorrow
          • 9.116. TryEncodeDate
          • 9.117. TryEncodeDateDay
          • 9.118. TryEncodeDateMonthWeek
          • 9.119. TryEncodeDateTime
          • 9.120. TryEncodeDateWeek
          • 9.121. TryEncodeDayOfWeekInMonth
          • 9.122. TryEncodeTime
          • 9.123. TryRecodeDateTime
          • 9.124. TryStrToDate
          • 9.125. TryStrToDateTime
          • 9.126. TryStrToTime
          • 9.127. WeekOf
          • 9.128. WeekOfTheMonth
          • 9.129. WeekOfTheYear
          • 9.130. WeeksBetween
          • 9.131. WithinPastHours
          • 9.132. WithinPastMilliSeconds
          • 9.133. WithPastMinutes
          • 9.134. WithinPastMonths
          • 9.135. WithinPastSeconds
          • 9.136. WithinPastWeeks
          • 9.137. WithinPastYears
          • 9.138. YearOf
          • 9.139. YearsBetween
          • 9.140. YearsSpan
          • 9.141. YesterDay
        • 10. 型別轉換函式
          • 10.1. Bounds
          • 10.2. IntToHex
          • 10.3. IntToStr
          • 10.4. Point
          • 10.5. Rect
          • 10.6. StreamToStr
          • 10.7. StrToBool
          • 10.8. StrToBoolDef
          • 10.9. StrToInt
          • 10.10. StrToIntDef
          • 10.11. TryStrToBool
          • 10.12. TryStrToInt
        • 11. 檔案處理函式
          • 11.1. ExcludeTrailingBackslash
          • 11.2. ExcludeTrailingPathDelimiter
          • 11.3. ExpandFileName
          • 11.4. ExpandUNCFileName
          • 11.5. ExtractFileDir
          • 11.6. ExtractFileDrive
          • 11.7. ExtractFileName
          • 11.8. ExtractFileExt
          • 11.9. ExtarctFilePath
          • 11.10. ExtractRelativePath
          • 11.11. FileAge
          • 11.12. FileExists
          • 11.13. FileIsReadOnly
          • 11.14. FileSetReadOnly
          • 11.15. ForceDirectoris
          • 11.16. GetCurrentDir
          • 11.17. InCludeTrailingBackslash
          • 11.18. InCludeTrailingPathDelimiter
          • 11.19. IOResult
          • 11.20. MatchesMask
          • 11.21. ReadIni
          • 11.22. SetCurrentDir
        • 12. 格式化函式
          • 12.1. Format
          • 12.2. FormatBuf
          • 12.3. FormatCurr
          • 12.4. FormatDateTime
          • 12.5. FormatFloat
          • 12.6. StrFmt
          • 12.7. StrLFmt
          • 12.8. WideFormat
          • 12.9. WideFormatBuf
        • 13. 對話方塊函式
          • 13.1. InputBox
          • 13.2. InputQuery
          • 13.3. LoginDialog
          • 13.4. LoginDialogEx
        • 14. 視窗控制實用程式
          • 14.1. FindControl
          • 14.2. IIF
          • 14.3. GetComCtlVersion
          • 14.4. GetParentForm
          • 14.5. GetApplicationVersion
          • 14.6. GetApplicationbit
          • 14.7. CreateGuid
        • 15. 指針相關函式
          • 15.1. FreeAndNil
        • 16. 記憶體管理函式
          • 16.1. New
          • 16.2. KillTask
      • 系統程式
      • 自定函式
      • 自定程式
目录

系統函式

# FastERP 系統函式

  該手冊內的內容用於編寫指令碼時作為參考,包含系統中使用的部分函式。

# 1. 字串處理函式

# 1.1. CompareStr

function CompareStr(const S1,S2:string):Integer;
1
  • 該函式用於比較兩個字串,字串需區分大小寫。
部分 說明
S1 待比較的字串
S2 待比較的字串
  • 返回值:如果S1與S2不相同,則函式的返回值不為0;如果S1與S2相同,則返回值為0。

  • 示例:

var
  s1: String;
  s2: String;
  s3: String;
  s4: String;
begin
  s1 := 'Hi,Hello';
  s2 := 'HI,Hello';
  s3 := 'book';
  s4 := 'book';
  if CompareStr(s1,s2) = 0 then
    ShowMessage('相同')
  else
    ShowMessage('不同');
  if CompareStr(s3,s4) = 0 then
    ShowMessage('相同')
  else
    ShowMessage('不同');  
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  • 運行結果

不同 相同

# 1.2. CompareText

  • 該函式通過序數值比較兩個字串,不區分大小寫。
部分 說明
S1 待比較的字串
S2 待比較的字串
  • 返回值:如果S1與S2不相同,則函式的返回值不為0;如果S1與S2相同,則返回值為0。

  • 示例:

var
  s1: String;
  s2: String;
  s3: String;
  s4: String;
begin
  s1 := 'Hi,Hello';
  s2 := 'HI,Hello';
  s3 := 'book';
  s4 := 'book';
  if CompareText(s1,s2) = 0 then
    ShowMessage('相同')
  else
    ShowMessage('不同');
  if CompareText(s3,s4) = 0 then
    ShowMessage('相同')
  else
    ShowMessage('不同');  
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  • 運行結果

相同 相同

# 1.3. Copy

function Copy(S: String; Index,Count: Integer): String;
1
  • 該函式用於返回一個字串的字串或者動態陣列中的一個元素。
部分 說明
S 待取的字串
Index 整形表達式,作為擷取字串或元素的起始位置
Count 整形表達式,表示擷取的字元數目
  • 返回值:函式返回擷取的字串或陣列。

  • 示例:

var
  s1: String;
  s3: String;
begin
  s1 := 'Hi,Hello';
  s3 := Copy(s1,1,4);
  ShowMessage(s3);
end;
1
2
3
4
5
6
7
8
  • 運行結果:

Hi,H

# 1.4. Decodestring

function Decodestring(AText:String):string;
1
部分 說明
AText 要加密的原始字串資訊

# 1.5. Encodestring

function Encodestring(AText:String):string;
1
  • 該函式用於返回加密後的字串資訊。
部分 說明
AText 被加密的字串資訊

# 1.6. GetStreamMd5

Function GetStreamMd5(Const Value:TStream):String;
1
  • 該函式用於將流使用Md5加密。
部分 說明
Value 被加密的流
  • 返回值:函式返回加密後的字串。

# 1.7. GetStringMd5

Function GetStringMd5(Const Value:String):String;
1
  • 該函式用於將字串使用Md5加密。
部分 說明
Value 被加密的字串
  • 返回值:函式返回加密後的字串。

# 1.8. LeftStr

function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;
1
  • 該函式在字串的開始處返回指定長度的字串。
部分 說明
AText 是一個字串表達式
ACount 是一個整型表達式,表示函式返回的子字串長度
  • 返回值:函式返回擷取的字串。

  • 示例:

begin
  ShowMessage(LeftStr('我是中國人',2));
  ShowMessage(LeftStr('Hello world',7));
end;
1
2
3
4
  • 運行結果:

我是 Hello w

# 1.9. Length

fucntion Length(S): Integer;
1
  • 該函式返回字串的字元數。
部分 說明
S 一個字串表達式
  • 返回值:函式返回字串的長度數值。

  • 示例:

var
  s1: String;
  s3: String;
begin
  s1 := 'Hi,Hello';
  s3 := IntToStr(Length(s1));
  ShowMessage('字串的長度為:' + s3);
end;
1
2
3
4
5
6
7
8
  • 運行結果:

字串的長度為:8

# 1.10. LowerCase

function LowerCase(const S: string): String;
1
  • 該函式將字串轉換為小寫格式。
部分 說明
S 待轉換的字串
  • 返回值:函式返回指定的字串的小寫格式。

  • 示例:

var
  s1: String;
begin
  s1 := 'Hi,Hello';
  s1 := LowerCase(s1);
  ShowMessage(s1);
end;
1
2
3
4
5
6
7
  • 運行結果

hi,hello

# 1.11. Pos

function Pos(SubStr: String; S: String): Integer;
1
  • 該函式返回子字串第一次出現在指定字串中的索引值。
部分 說明
SubStr 是一個要查詢的字串表達式
S 源字串
  • 返回值:如果字串在源字串中存在,則函式返回子字串在源字串中首次出現的位置,否則函式返回0。

  • 示例:

var
  s1: String;
  s2: String;
  s3: String;
begin
  s1 := 'Hi,Hello';
  s2 := 'He';
  s3 := IntToStr(Pos(s2,s1));
  ShowMessage('字串所在的位置為:' + s3);
end;
1
2
3
4
5
6
7
8
9
10
  • 運行結果:

字串所在的位置為:4

# 1.12. PosEx

function PosEx(const SubStr, S: string; Offset: Integer): Integer;
1
  • 該函式返回子字串在源字串中的索引值。
部分 說明
SubStr 欲查詢的字串表達式
S 源字串
Offset 是一個整型表達式,表示從源字串的什麼位置開始檢索
  • 返回值:函式在Offset開始處返回SubStr在S中的索引值。如果子字串沒有發現或Offset大於S的長度或者Offset小於1,函式返回0。

  • 示例:

begin
  ShowMessage(IntToStr(PosEx('Hello','Hello IsoFace',2)));
  ShowMessage(IntToStr(PosEx('IsoFace','Hello IsoFace',2)));
end;
1
2
3
4
  • 運行結果:

0 7

# 1.13. QuotedStr

function QuotedStr(const S: String): String;
1
  • 該函式返回字串的引證串,引證串是在字串的開始和結尾新增」'「。
部分 說明
S 字串表達式
  • 返回值:函式返回參數指定字串的引證串。

  • 示例:

var
  s1: String;
  s2: String;
begin
  s1 := 'Hi,Hello';
  s2 := 'He';
  ShowMessage(s1);
  ShowMessage(QuotedStr(s2));
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

Hi,Hello 'He'

# 1.14. RightStr

function RightStr(const AText: AnsiString; const ACount: Integer): AnsiString;
1
  • 該函式返回字串尾端開始指定長度的字串。
部分 說明
AText 是一個字串表達式
ACount 是一個整型表達式,表示函式返回的子字串長度
  • 返回值:函式返回擷取的字串。

  • 示例:

begin
  ShowMessage(RightStr('我是中國人',3));
  ShowMessage(RightStr('Hello world',4));
end;
1
2
3
4

# 1.15. SameText

function SmaeText(const S1,S2:String): Boolean;
1
  • 該函式根據序數值比較兩個字串,不區分大小寫。
部分 說明
S1 待比較的字串表達式
S2 待比較的字串表達式
  • 返回值:如果S1與S2相等,函式返回值為True,否則返回False。

  • 示例:

var
  s1,s2: String;
begin
  s1 := 'Hello IsoFace';
  s2 := 'hello IsoFace';
  if SameText(s1,s2) then
    ShowMessage('相同') 
  else
    ShowMessage('不同'); 
end;
1
2
3
4
5
6
7
8
9
10
  • 運行結果:

相同

# 1.16. StrECopy

function StrECopy(Dest: PAnsiChar; const Source: PAnsiChar): PAnsiChar;
1
  • 該函式將參數Source中的字元複製至Dest字串的尾部,Dest緩衝區中必須有足夠的空間。巢狀使用該函式連線字串比單個使用StrCopy函式更有效。
部分 說明
Dest 目的緩衝區
Source 源緩衝區
  • 返回值:返回複製完成的數據。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
  Man: PAnsiChar = 'Man';
var
  S: PAnsiChar; 
begin
  GetMem(S,15);
  StrECopy(StrECopy(StrECopy(S, Ob),''),Man);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
10
  • 運行結果:

ObjectMan

# 1.17. StrEnd

function StrEnd(const Str: PAnsiChar): PAnsiChar;
1
  • 該函式返回值指向參數Str字串尾的空字元指針。
部分 說明
Str 一個字串指針
  • 示例:
var
  TextBuffer: PAnsiChar;
  Ptr: PAnsiChar;
begin
  TextBuffer := 'ABCDEFG';
  Ptr := StrEnd(TextBuffer);
  ShowMessage(Ptr^);
end;
1
2
3
4
5
6
7
8
  • 運行結果:顯示空字元。

# 1.18. StringOfChar

function StringOfChar(Ch: Char; Count: Integer): String;
1
  • 該函式返回一個循環指定次數字元的字串。
部分 說明
Ch 字元型別表達式,指定字串的內容
Count 整型表達式,指定函式返回的字串由多少個字元組成
  • 返回值:函式返回一個由Count指定個數和Ch指定字元的字串。

  • 示例:

var
  s1: Char;
  s2: Integer;
  s3: String;
begin
  s1 := 'A';
  ShowMessage(StringOfChar(S1,5) + '  ' + StringOfChar('C',5));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

AAAAA CCCCC

# 1.19. StrLCat

function StrLCat(Dest: PAnsiChar; const Source: PAnsiChar; MaxLen: Cardinal): PAnsiChar;
1
  • 該函式按參數MaxLen指定的長度將參數Source中的字串新增至Dest參數的字串尾部。
部分 說明
Dest 兩個字串指針
Source 比較的長度
MaxLen 字串連線的最大長度
  • 返回值:返回新增完成後的字串。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
  Man: PAnsiChar = 'Man';
var
  S: PAnsiChar;
begin
  GetMem(S,9);
  S := StrLCat(S,Ob,6);
  S := StrLCat(S,Man,9);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
10
11
  • 運行結果:

ObjectMan

# 1.20. StrLComp

function StrLComp(const S1:PAnsiChar;const S2: PAnsiChar;MaxLen : Cardinal) : Integer
1
  • 該函式不區分大小寫比較兩個字串。
部分 說明
S1,S2 兩個字串指針
MaxLen 比較的長度
  • 返回值:如果比較的字串指定長度處相同,則返回0,否則返回其他數值。

  • 示例:

const
  S1: PAnsiChar = 'Enterprise';
  S2: PAnsiChar = 'Enter';
var
  ComStr: String;
begin
    if StrLComp(S1,S2,6) = 0 then
    ComStr := 'equal'
    else
      ComStr := 'different';
    ShowMessage(ComStr);
end.
1
2
3
4
5
6
7
8
9
10
11
12
  • 運行結果:

equal

# 1.21. StrLen

function StrLen(const Str: PAnsiChar): Cardinal;
1
  • 該函式用於獲取Str字串的長度。
部分 說明
Str 字串指針
  • 返回值:返回顯示的字串的長度。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
begin
  ShowMessage(IntToStr(StrLen(Ob)));
end;
1
2
3
4
5
  • 運行結果:

6

# 1.22. StrLiComp

function StrLIComp(const Str1, Str2: PAnsiChar; MaxLen: Cardinal): Integer;
1
  • 該函式用於不區分大小寫比較兩個字串。
部分 說明
Str1,Str2 兩個字串指針
MaxLen 比較的長度
  • 返回值:當兩者字串的取值相等時,返回數值0。

  • 示例:

const
  S1: PAnsiChar = 'Enterprise';
  S2: PAnsiChar = 'Enter';
var
  ComStr: String;
begin
  if StrLiComp(S1,S2,5) = 0 then
    ShowMessage('Equal')
  Else
    ShowMessage('different');
end;
1
2
3
4
5
6
7
8
9
10
11
  • 運行結果:

Equal

# 1.23. StrLower

function StrLower(Str: PAnsiChar): PAnsiChar;
1
  • 將參數Str中的字串轉換為小寫並返回。
部分 說明
Str 要轉換為小寫的字串指針
  • 返回值:返回轉換為小寫的字串指針。

  • 示例:

const
  S1: PAnsiChar = 'ENTerPriSe';
begin
  ShowMessage(String(StrLower(S1)) + ' '  + String(StrUpper(S1))); 
end;
1
2
3
4
5
  • 運行結果:

enterprise ENTERPRISE

# 1.24. StrMove

function StrMove(Dest: PAnsiChar; const Source: PAnsiChar; Count: Cardinal): PAnsiChar;
1
  • 該函式將參數Source中的Count個字串複製到Dest字串中並返回Dest中的字串,Source和Dest中的字串可交疊。
部分 說明
Dest 目標字串指針
Source 源字串指針
Count 複製字串的數量
  • 返回值:返回移動複製完成後的字串指針。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
var
  S: PAnsiChar;
begin
  GetMem(S,14);
  S := StrMove(S,Ob,6);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

Object

# 1.25. StrPCopy

function StrPCopy(Dest: PAnsiChar; const Source: AnsiString): PAnsiChar;
1
  • 該函式將參數Source中的字串複製至Dest參數的字串尾部。
部分 說明
Dest 兩個字串指針
Source 比較的長度
  • 返回值:返回拼接完成後的字串指針。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
var
  S: PAnsiChar;
begin
  GetMem(S,14);
  S := StrPCopy(S,Ob);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

Object

# 1.26. StrPLCopy

function StrPLCopy(Dest: PAnsiChar; const Source: AnsiString; MaxLen: Cardinal): PAnsiChar;
1
  • 該函式將參數MaxLen指定的長度將參數Source中的字串複製至Dest參數的字串尾部。
部分 說明
Dest 兩個字串指針
Source 比較的長度
MaxLen 字串連線的最大長度
  • 返回值:返回拼接完成後的字串數值。

  • 示例:

const
  Ob: PAnsiChar = 'Object';
var
  S: PAnsiChar;
begin
  GetMem(S,14);
  S := StrPLCopy(S,Ob,6);
  ShowMessage(String(S));
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

Object

# 1.27. StrPos

function StrPos(const Str1, Str2: PAnsiChar): PAnsiChar;
1
  • 該函式用於返回Str2在Str1中首次出現的指針。
部分 說明
Str1 待查詢的字串指針
Str2 要查詢的字串指針
  • 返回值:該函式返回Str2在Str1中首次出現的指針。

  • 示例:

var
  Location: PAnsiChar;
begin
  if StrPos(PAnsiChar('Enterproise'),PAnsiChar('Enter')) <> nil then
    ShowMessage('找到字串')
  else
    ShowMessage('未找到字串');  
end;
1
2
3
4
5
6
7
8
  • 運行結果:

找到字串

# 1.28. StrRScan

function StrRScan(const Str: PAnsiChar; Chr: AnsiChar): PAnsiChar;
1
  • 該函式返回參數Chr字元在Str字串中最後一次出現的指針。
部分 說明
Str 待查詢的字串指針
Chr 要查詢的字串指針
  • 返回值:函式返回參數Chr字元在Str字串中最後一次出現的指針。

  • 示例:

var
  P: PAnsiChar;
begin
  P := StrRScan('EQ3258EDX','X');
  if P <> nil then
  begin
   ShowMessage('找到該字元:' + String(P)) 
  end;
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

找到該字元:X

# 1.29. StrScan

function StrScan(const Str: PAnsiChar; Chr: AnsiChar): PAnsiChar;
1
  • 該函式返回指定字元Chr在str參數指定的字串中首次出現的指針。
部分 說明
str 待查詢的字串指針
Chr 要查詢的字元
  • 返回值:返回指定字元Chr在str參數指定的字串中首次出現的指針。

  • 示例:

var
  P: PAnsiChar;
begin
  P := StrScan('EQ3258EDX','Q');
  if P <> nil then
  begin
   ShowMessage('找到該字元:' + String(P)) 
  end;
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

找到該字元:Q

Function StrToStream(AString:String;AStream:TMemoryStream);
1

# 1.30. Trim

function Trim(const S: String): String;
1
  • 該函式用於刪除字串的首尾空格。
部分 說明
S 字串表達式
  • 返回值:函式返回去掉首尾空格后的新字串。

  • 示例:

var
  s1: String;
  s2: String;
begin
  s1 := 'Hi,H e  llo';
  s2 := '   IsoFace   ';
  ShowMessage(Trim(s1));
  ShowMessage(Trim(s2));
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

Hi,H e llo IsoFace

# 1.31. TrimLeft

function TrimLeft(const S: String): String;
1
  • 該函式用於刪除字串的首部空格。
部分 說明
S 字串表達式
  • 返回值:函式返回去掉首部空格后的新字串。

  • 示例:

var
  s1: String;
  s2: String;
begin
  s1 := '   Hi,H e  llo';
  s2 := '   IsoFace   ';
  ShowMessage(TrimLeft(s1));
  ShowMessage(TrimLeft(s2));
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

Hi,H e llo IsoFace    

# 1.32. TrimRight

function TrimRight(const S: String): String;
1
  • 該函式用於刪除字串的尾部空格。
部分 說明
S 字串表達式
  • 返回值:函式返回去掉尾部空格后的新字串。

  • 示例:

var
  s1: String;
  s2: String;
begin
  s1 := '   Hi,H e  llo';
  s2 := '   IsoFace   ';
  ShowMessage(TrimRight(s1));
  ShowMessage(TrimRight(s2));
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

    Hi,H e llo     IsoFace

# 1.33. UpperCase

function UpperCase(const S: string): String;
1
  • 該函式將字串轉換為大寫格式。
部分 說明
S 待轉換的字串
  • 返回值:函式返回指定的字串的大寫格式。

  • 示例:

var
  s1: String;
begin
  s1 := 'Hi,Hello';
  s1 := UpperCase(s1);
  ShowMessage(s1);
end;
1
2
3
4
5
6
7
  • 運行結果

HI,HELLO

# 2. 科學計算函式

# 2.1. Abs

function Abs(X);
1
  • 該函式用於返回指定數值的絕對值。
部分 說明
X 實型表達式
  • 返回值:函式返回參數X指定的絕對值。

  • 示例:

begin
  SHowMessage(IntToStr(Abs(-15)));
  ShowMessage(FloatToStr(Abs(-1.5)));
end;
1
2
3
4
  • 運行結果

15 1.5

# 2.2. Exp

function Exp(X: Real): Real;
1
  • 該函式用於返回指定數的指數。
部分 說明
X 實型表達式
  • 返回值:函式返回e的X次冪,e是自然對數的底。

  • 示例:

begin
  ShowMessage(FloatToStr(Exp(2)));
  ShowMessage(FloatToStr(Exp(1.5)));
  ShowMessage(FloatToStr(Exp(0)));
end;
1
2
3
4
5
  • 運行結果:

7.38905609893065 4.48168907033806 1

# 2.3. Int

function Int(X: Extended):Extended;
1
  • 該函式返回實數的整數部分。
部分 說明
X 實型表達式
  • 返回值:函式返回參數X的整數部分。

  • 示例:

begin
  ShowMessage(FloatToStr(Int(-12.025)));
  ShowMessage(FloatToStr(Int(12.012)));
  ShowMessage(FloatToStr(Frac(1.25)));
end;
1
2
3
4
5
  • 運行結果:

-12 12 0.25

# 2.4. IsZero

function IsZero(const A: Extended; Epsilon: Extended): Boolean;
1
  • 該函式測試實型表達式是否等於或者接近零。
部分 說明
A 待測的表達式
Epsilon 與零之間的差距
  • 返回值:如果A的值為0,函式返回True,如果指定Epsilon參數,當A與0的差距小於等於Epsilon時,函式返回True,否則返回False。

  • 示例:

begin
  if IsZero(5,5.1) then
    ShowMessage('接近於零。');
  if IsZero(3000.1 , 3000) then
    ShowMessage('接近於零。')
  else
    ShowMessage('超出。');
end;
1
2
3
4
5
6
7
8
  • 運行結果:

接近於零。 超出。

# 2.5. Ln

function Ln(X: Real):Real;
1
  • 該函式用來計算一個數的自然對數。
部分 說明
X 實型表達式
  • 返回值:X的自然對數值。

  • 示例:

begin
  ShowMessage(FloatToStr(Ln(35.6)));
  ShowMessage(FloatToStr(Ln(20.6)));
end;
1
2
3
4
  • 運行結果:

3.57234563785798 3.02529107579554

# 2.6. Pi

function Pi: Extnded;
1
  • 函式Pi返回圓周率的值。

  • 返回值:函式Pi返回圓周率的值。

  • 示例:

begin
  ShowMessage(FloatToStr(Pi));
end;
1
2
3
  • 運行結果:

3.14159265358979

# 2.7. Power

function Power(const Base,Exponent: Extended): Extended;
1
  • 該函式返回底數的任何次冪。
部分 說明
Base 實型表達式,表示一個底數
Exponent 實型表達式,表示一個指數
  • 返回值:函式的返回值是Base的Exponent次冪。

  • 示例:

begin
  ShowMessage(FloatToStr(Power(2,4)));
end;
1
2
3

# 2.8. Round

function Round(X:Extended): Int64;
1
  • 該函式將實數四捨五入為整數。
部分 說明
X 實型表達式
  • 返回值:函式的返回值是X四捨五入后的整數。

  • 示例:

begin
  ShowMessage(FloatToStr(Round(-4.6)));
  ShowMessage(FloatToStr(Round(-4.3)));
  ShowMessage(FloatToStr(Round(4.6)));
  ShowMessage(FloatToStr(Round(4.3)));
end;
1
2
3
4
5
6
  • 運行結果:

-5 -4 5 4

# 2.9. SameValue

function SameValue(const A, B: Extended; Epsilon: Extended): Boolean;
1
  • 該函式用於檢測兩個實數是否相同或相近。
部分 說明
A 待比較的實型表達式
B 待比較的實型表達式
Epsilon 實型表達式,表示與零的差距
  • 返回值:當Epsilon為零時,如果A與B相等,函式返回True,否則為False。當Epsilon不為零時,如果A與B的差距小於等於Epsilon,函式返回True,否則為False。

  • 示例:

begin
  if SameValue(10.2,15.2,4) then
    ShowMessage('相同')
  else
    ShowMessage('不同');
  if SameValue(10.2,15.2,5) then
    ShowMessage('相同')
  else
    ShowMessage('不同');
end;
1
2
3
4
5
6
7
8
9
10
  • 運行結果:

不同 相同

# 2.10. Sqr

function Sqr(X:Extended): Extended;
function Sqr(X:Integer):Integer;
1
2
  • 該函式用於計算指定數的平方。
部分 說明
X 數字達式
  • 返回值:函式返回值是X的平方。

  • 示例:

begin
  ShowMessage(FloatToStr(Sqr(10.1)));
  ShowMessage(FloatToStr(Sqr(25)));
end;
1
2
3
4
  • 運行結果:

102.01 625

# 2.11. Sqrt

function Sqrt(X:Extended): Extended;
1
  • 該函式用於計算一個數的平方根。
部分 說明
X 數字達式
  • 返回值:函式返回值是X的平方根。

  • 示例:

begin
  ShowMessage(FloatToStr(Sqrt(10.1)));
  ShowMessage(FloatToStr(Sqrt(25)));
end;
1
2
3
4
  • 運行結果:

3.17804971641414 5

# 2.12. Trunc

function Trunc(X:Extended):Int64;
1
  • 該函式返回一個實數的整數部分。
部分 說明
X 數字達式
  • 返回值:函式返回X的整數部分。

  • 示例:

begin
  ShowMessage(IntToStr(Trunc(12.45)));
  ShowMessage(IntToStr(Trunc(-12.45)));
  ShowMessage(IntToStr(Trunc(0)));
end;
1
2
3
4
5
  • 運行結果:

12 -12 0

# 2.13. VarComplexAbs

function VarComplexAbs(const AValue: Variant): Double;
1
  • 該函式返回一個複數的絕對值(模)。
部分 說明
AValue 複數
  • 返回值:函式返回AValue的絕對值。

  • 示例:

begin
  ShowMessage(FloatToStr(VarComplexAbs('3+4i')));
  ShowMessage(FloatToStr(VarComplexAbs('3-4i')));
  ShowMessage(FloatToStr(VarComplexAbs('1+2i')));
end;
1
2
3
4
5
  • 返回值:

5 5 2.23606797749979

# 2.14. VarComplexAbsSqr

function VarComplexAbsSqr(const AValue: Variant): Double;
1
  • 該函式返回一個複數的絕對值的平方。
部分 說明
AValue 複數
  • 返回值:函式返回AValue絕對值的平方。
begin
  ShowMessage(FloatToStr(VarComplexAbsSqr('3+4i')));
  ShowMessage(FloatToStr(VarComplexAbsSqr('3-4i')));
  ShowMessage(FloatToStr(VarComplexAbsSqr('1+2i')));
end;
1
2
3
4
5
  • 運行結果:

25 25 5

# 2.15. VarComplexAngle

function VarComplexAngle(const AValue: Variant): Double;
1
  • 該函式返回一個複數對應的角度。
部分 說明
AValue 複數
  • 示例:
begin
  ShowMessage(FloatToStr(VarComplexAngle('3+4i')));
  ShowMessage(FloatToStr(VarComplexAngle('3-4i')));
  ShowMessage(FloatToStr(VarComplexAngle('1+2i')));
end;
1
2
3
4
5
  • 運行結果:

0.927295218001612 -0.927295218001612 1.10714871779409

# 3. 序數函式

# 3.1. Odd

function Odd(X: Longint):Boolean;
1
  • 該函式用於判斷一個數的奇偶性。
部分 說明
X 待檢驗的數
  • 返回值:如果X為奇數,函式返回True,否則返回False。

  • 示例:

var
  i: Integer;
begin
  i := 3;
  if Odd(i) then
    ShowMessage(IntToStr(i) + '為奇數')
  else
    ShowMessage(IntToStr(i) + '為偶數');  
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

3為奇數

# 3.2. Ord

function Ord(X);
1
  • 該函式用於獲取順序型別表達式的順序值。
部分 說明
X 序數型別表達式
  • 返回值:返回一個順序表達式的順序值。

  • 示例:

begin
  ShowMessage('''a''在ASCII碼中的順序值為:' + IntToStr(Ord('a')));
end;
1
2
3
  • 運行結果:

'a'在ASCII碼中的順序值為:97

# 3.3. Pred

function Pred(X);
1
  • 該函式用於獲取順序式表達式的前驅。
部分 說明
X 序數型別表達式
  • 返回值:X的前驅,與X的型別一致。

  • 示例:

begin
  ShowMessage('B的前驅值為:' + Pred('B'));
  ShowMessage('c的前驅值為:' + Pred('c'));
  ShowMessage('9的前驅值為:' + Pred('9'));
end;
1
2
3
4
5
  • 運行結果:

B的前驅值為:A c的前驅值為:b 9的前驅值為:8

# 3.4. Succ

function Succ(X);
1
  • 該函式用於獲取順序式表達式的後繼。
部分 說明
X 序數型別表達式
  • 返回值:X的後繼,與X的型別一致。

  • 示例:

begin
  ShowMessage('B的後繼值為:' + Succ('B'));
  ShowMessage('c的後繼值為:' + Succ('c'));
  ShowMessage('8的後繼值為:' + Succ('8'));
end;
1
2
3
4
5
  • 運行結果:

B的後繼值為:C c的後繼值為:d 8的後繼值為:9

# 4. 三角函式

# 4.1. ArcCos

function ArcCos(const X : Extended): Extended;
1
  • 該函式用於計算參數X的反餘弦值。X的取值在-1至1之間。
部分 說明
X 要計算的數值
  • 返回值:返回指定參數的反餘弦值。

  • 示例:

begin
  ShowMessage(FloatToStr(ArcCos(0.5)));
end;
1
2
3
  • 運行結果:

1.0471975511966

# 4.2. ArcSin

function ArcSin(const X : Extended) : Extended;
1
  • 該函式用於計算參數X的反正弦值,X的值為-1至1之間。
部分 說明
X 要計算的數值
  • 返回值:返回指定參數的反正弦值。

  • 示例:

begin
  ShowMessage(FloatToStr(ArcSin(0.5)));
end;
1
2
3
  • 運行結果:

0.523598775598299

# 4.3. ArcTan

function ArcTan(const X: Extended): Extended;
1
  • 該函式計算參數X的反正切值。
部分 說明
X 將要計算反正切的值
  • 返回值:返回指定參數的反正切值。

  • 示例:

begin
  ShowMessage(FloatToStr(ArcTan(0.5)));
end;
1
2
3
  • 返回結果:

0.463647609000806

# 4.4. ArcTan2

function ArcTan2(const Y, X: Extended): Extended;
1
  • 該函式獲取正確象限中的角度。
部分 說明
X,Y 獲取正確象限角度的參數
  • 返回值:返回正確象限中的角度。

  • 示例:

begin
  ShowMessage(FloatToStr(ArcTan2(4,5)));
end;
1
2
3
  • 返回結果:

0.67474094223553

# 4.5. Cos

function Cos(Const X: Extended): Extended;
1
  • 該函式計算參數X的餘弦值。
部分 說明
X 將要計算餘弦的值
  • 返回值:返回指定參數的餘弦值。

  • 示例:

begin
  ShowMessage(FloatToStr(Cos(0.5)));
end;
1
2
3
  • 運行結果

0.877582561890373

# 4.6. Sin

function Sin(const X: Extended): Extended;
1
  • 該函式計算參數X的正弦值。
部分 說明
X 將要計算正弦的值
  • 返回值:返回指定參數的正弦值。

  • 示例:

begin
  ShowMessage(FloatToStr(Sin(0.5)));
end;
1
2
3
  • 運行結果:

0.479425538604203

# 5. 統計函式

# 5.1. MaxIntValue

function MaxIntValue(const Data: array of Integer): Integer;
1
  • 該函式獲取Data陣列中的最大整數。
部分 說明
Data 一個整型陣列
  • 返回值:返回陣列中數值最大的整數。

  • 示例:

var
  Data: array[0..3] of Integer;
  max: Integer;
begin
  Data[0] := 5;
  Data[1] := 40;
  Data[2] := 34;
  Data[3] := 50;
  max := MaxIntValue(Data);
  ShowMessage(IntToStr(max));
end;
1
2
3
4
5
6
7
8
9
10
11
  • 運行結果:

50

# 5.2. MinIntValue

function MinIntValue(const Data: array of Integer): Integer;
1
  • 該函式獲取Data陣列中的最小整數。
部分 說明
Data 一個整型陣列
  • 返回值:返回整數。

  • 示例:

var
  Data: array[0..3] of Integer;
  max: Integer;
begin
  Data[0] := 5;
  Data[1] := 40;
  Data[2] := 34;
  Data[3] := 50;
  max := MinIntValue(Data);
  ShowMessage(IntToStr(max));
end;
1
2
3
4
5
6
7
8
9
10
11
  • 運行結果:

5

# 5.3. SumInt

function SumInt(const Data: array of Integer): Integer;
1
  • 該函式返回整數型陣列中所有數值的總和。
部分 說明
Data 待求和陣列
  • 返回值:返回陣列中所有值的總和,整型。

  • 示例:

begin
  ShowMessage(IntToStr(SumInt([150,100])));
end;
1
2
3
  • 運行結果:

250

# 6. 金融函式

# 6.1. DoubleDecliningBalance

function DoubleDecliningBalance(const Cost, Salvage: Extended; Life, Period: Integer): Extended;
1
  • 該函式使用雙倍餘額遞減法或其他方法指定的方法計算一筆資產在給定期間內的折舊值。
部分 說明
Cost 表示資產原值
Salvage 表示資產在折舊期末的價值,也稱為資產殘值
Life 表示折舊期限,也稱作資產的使用壽命
Period 表示要計算折舊值的期間
  • 返回值:返回資產的折舊值數據。

  • 示例:

begin
  ShowMessage(FloatToStr(DoubleDecliningBalance(800000,80000,6,2)));
end;
1
2
3
  • 運行結果:

177777.777777778

# 6.2. InternalRateOfReturn

function InternalRateOfReturn(const Guess: Extended; const CashFlows: array of Double): Extended;
1
  • 返回一個由數值代表的一組現金流的內部收益率。
部分 說明
Guess 表示對函式計算結果的估計值
CashFlows Double型別數據組,表示某一功能表的支出和收入,負值表示支出,正值表示收入
  • 返回值:返回內部收益率數值。

  • 示例:

var
  my: Array[0..2] of Double;
begin
  my[0] := -300000;
  my[1] := 120000;
  my[2] := 90000;
  ShowMessage(FloatToStr(InternalRateOfReturn(0.1,my)*100));
end;
1
2
3
4
5
6
7
8
  • 運行結果:-21.690481051547

# 6.3. SYDDepreciation

function SYDDepreciation(const Cost, Salvage: Extended; Life, Period: Integer): Extended;
1
  • 該函式返回某項資產按年限總和折舊法計算的指定期間的折舊值。
部分 說明
Cost 表示資產原值
Salvage 表示資產在折舊期末的價值,也稱為資產殘值
Life 表示折舊期限,也稱作資產的使用壽命
Period 表示要計算折舊值的期間
  • 返回值:返回折舊的數據值。

  • 示例:

begin
  ShowMessage(FloatToStr(SYDDepreciation(200000,40000,6,1)));
end;
1
2
3
  • 運行結果:

45714.2857142857

# 7. 隨機數函式

# 7.1. Random

function Random[(Range:Integer)];
1
  • 該函式用於產生一個0≤X≤Range的隨機數。
部分 說明
Range 產生隨機數的範圍
  • 返回值:在[0,Range]之間的任意數。

  • 示例:

begin
  ShowMessage(IntToStr(Random(10)));
end;
1
2
3
  • 運行結果:運行該語句后產生一個大於等於0小於10的整數。

# 7.2. RandomFrom

function RandomFrom(const AValues: array of Extended): Extended;
1
  • 該函式從參數指定的陣列中隨機選出一個值。
部分 說明
AValues 陣列型別變數
  • 返回值:AValue陣列中的一個隨機數。

  • 示例:

begin
  Randomize;
  ShowMessage(FloatToStr(RandomFrom([1,2,3,4,5,6,7,8,9])));
end;
1
2
3
4
  • 運行結果:運行該語句后在所選的陣列範圍內產生一個隨機數。

# 8. 單位換算函式

# 8.1. CelsiusToFahrenheit

function CelsiusToFahrenheit(const AValue: Double): Double;
1
  • 函式將攝氏溫度轉換為華氏溫度。
部分 說明
AValue 待轉換的實型表達式
  • 返回值:函式返回華氏溫度表示的數據。

  • 示例:

begin
  ShowMessage(FloatToStr(CelsiusToFahrenheit(37.6)));
end;
1
2
3
  • 運行結果:

99.68

# 8.2. DateTimeToJulianDate

function DateTimeToJulianDate(const AValue: TDateTime): Double;
1
  • 該函式將日期值轉換為儒略日。
部分 說明
AValue 日期表達式
  • 返回值:函式返回以儒略日表示的日期。

  • 示例:

begin
  ShowMessage(FloatToStr(DateTimeToJulianDate(Now)));
end;
1
2
3
  • 運行結果:儒略日的表示格式,例如2459187.35728194

# 8.3. DateTimeToModifiedJulianDate

function DateTimeToModifiedJulianDate(const AValue: TDateTime): Double;
1
  • 該函式用於將日期轉換為改進的儒略日。
部分 說明
AValue 日期表達式
  • 返回值:函式返回以改進的儒略日。
begin
  ShowMessage(FloatToStr(DateTimeToModifiedJulianDate(Now)));
end;
1
2
3
  • 運行結果:改進的儒略日的表示格式,例如59186.8626061226。

# 8.4. DateTimeToUnix

function DateTimeToUnix(const AValue: TDateTime; AInputIsUTC: Boolean): Int64;
1
  • 該函式將日期轉換為UNIX系統或Linux系統日期值。
部分 說明
AValue 日期表達式
AInputIsUTC 輸入的時間值是否為UTC時間
  • 返回值:函式返回UNIX系統或者Linux系統日期值。

  • 示例:

begin
  ShowMessage(FloatToStr(DateTimeToUnix(Now,False)));
end;
1
2
3
  • 運行結果:顯示目前的Unix時間。

# 8.5. FahrenheitToCelsius

function FahrenheitToCelsius(const AValue: Double): Double;
1
  • 該函式將華氏溫度轉換為攝氏溫度。
部分 說明
AValue 待轉換的實型表達式
  • 返回值:函式返回以攝氏溫度表示的數據。

  • 示例:

begin
  ShowMessage(FloatToStr(FahrenheitToCelsius(95)));
end;
1
2
3
  • 運行結果:

35

# 9. 日期函式

# 9.1. CurrentYear

function CurrentYear: Word;
1
  • 返回系統目前的年份。

  • 返回值:函式返回系統目前的年份。

  • 示例:

var
  Yearis: word;
begin
  Yearis := CurrentYear();
  ShowMessage(IntToStr(Yearis));
end;
1
2
3
4
5
6
  • 運行結果:系統顯示目前年份。

# 9.2. Date

function Date: TDateTime;
1
  • 獲得系統目前日期。

  • 返回值:返回系統目前日期。

  • 示例:

begin
  ShowMessage(DateToStr(Date));
end;
1
2
3
  • 運行結果:

顯示系統目前日期,比如2019-10-06

# 9.3. DateOf

function DateOf(const AValue: TDateTime): TDateTime;
1
  • 該函式用於將給定的TDateTime值轉化為僅包含日期時間資訊的TDateTime值。
部分 說明
AValue 待轉換的日期時間值
  • 返回值:返回僅包含日期的TDateTime值。

  • 示例:

begin
  ShowMessage(DateToStr(DateOf(Now)));
end;
1
2
3
  • 運行結果:顯示目前日期。

# 9.4. DateTimeToFileDate

function DateTimeToFileDate(DateTime: TDateTime): Integer;
1
  • 該函式將TDateTime對象的日期時間表示形式轉換為OS時間資訊。
部分 說明
DateTime 待轉換的日期時間值
  • 返回值:返回參數對應的OS時間資訊。

  • 示例:

begin
  ShowMessage('操作系統對應的時間是:' + IntToStr(DateTimeToFileDate(Now)));
end;
1
2
3
  • 運行結果:顯示操作系統的對應時間。

# 9.5. DateTimeToStr

function DateTimeToStr(DateTime:TDateTime):String;
1
  • 該函式將TDateTime的值轉換為字串型別。
部分 說明
DateTime TDateTime日期時間型別
  • 返回值:TDateTime值轉換后的字串型別。

  • 示例:

begin
  ShowMessage(DateTimeToStr(Now));
end;
1
2
3
  • 運行結果:

返回目前的系統時間,例如 2020-01-20 12:30:05

# 9.6. DateToStr

function DateToStr(DateTime:TDateTime):String;
1
  • 該函式將TDateTime的值轉換為字串型別。
部分 說明
DateTime TDateTime日期時間型別
  • 返回值:TDateTime值轉換后的字串型別。

  • 示例:

begin
  ShowMessage(DateToStr(Now));
  ShowMessage(DateToStr(Date()));
end;
1
2
3
4
  • 運行結果:

返回目前的系統時間,例如 2020-01-20 返回目前的系統時間,例如 2020-01-20

# 9.7. DayOf

function DayOf(const AValue: TDateTime): Word;
1
  • 該函式返回指定TDateTime值表示日期的值。
部分 說明
AValue 表示日期
  • 返回值:返回指定日期的值(1-31)。

  • 示例

begin
  ShowMessage(IntToStr(DayOf(Now)));
end;
1
2
3
  • 運行結果:顯示目前的日期數值。

# 9.8. DayOfTheMonth

function DayOfTheMonth(const AValue: TDateTime): Word;
1
  • 該函式用於計返回指定月份的日期數值。
部分 說明
AValue 指定日期
  • 返回值:返回指定日期的日的值(1-31)。

  • 示例:

begin
  ShowMessage(IntToStr(DayOf(StrToDate('2020-11-1'))) + ' ' + IntToStr(DayOfTheMonth(StrToDate('2020-11-11'))));
end;
1
2
3
  • 運行結果:

1 11

# 9.9. DayOfTheWeek

function DayOfTheWeek(const AValue: TDateTime): Word;
1
  • 該函式用於計算指定的日期為星期幾。此處以星期一開始計數。
部分 說明
AValue 待計算的日期型別
  • 返回值:返回計算后的Word型別值(1-7)。

  • 示例:

begin
  ShowMessage(IntToStr(DayOfTheWeek(Date())) + ' ' + IntToStr(DayOfTheWeek(StrToDate('2020-3-11'))));
end;
1
2
3
  • 運行結果:顯示目前日期的星期數,2020年3月11日顯示為3,表示為星期三。

# 9.10. DayOfTheYear

function DayOfTheYear(const AValue: TDateTime): Word;
1
  • 該函式用於計算指定的日期為一年中的第幾天。
部分 說明
AValue 待計算的日期型別
  • 返回值:返回計算后的Word型別值。

  • 示例:

begin
  ShowMessage(IntToStr(DayOfTheYear(StrToDate('2020-11-01'))));
end;
1
2
3
  • 運行結果:

306

# 9.11. DayOfWeek

function DayOfWeek(const DateTime: TDateTime): Word;
1
  • 該函式用於計算指定的日期為星期幾。以星期日為開始進行計數。
部分 說明
Date 待計算的日期型別
  • 返回值:返回計算后的整數(1-7)。

  • 示例:

begin
  ShowMessage(IntToStr(DayOfWeek(Date())) + ' ' + IntToStr(DayOfWeek(StrToDate('2020-3-11'))));
end;
1
2
3
  • 運行結果:顯示目前日期的星期數,2020年3月11日顯示為4,表示為星期三。

# 9.12. DaysBetween

function DaysBetween(const ANow, AThen: TDateTime): Integer;
1
  • 該函式用於計算指定的兩個日期之間相差的天數。
部分 說明
ANow 待比較的日期時間表達式
AThen 待比較的日期時間表達式
  • 返回值:返回參數指定的兩個日期相差的天數。

  • 示例:

begin
  ShowMessage(IntToStr(DaysBetween(StrToDate('2010-3-29'),StrToDate('2020-11-1'))));
end;
1
2
3
  • 運行結果:

3870

# 9.13. DaysInAMonth

function DaysInAMonth(const AYear, AMonth: Word): Word;
1
  • 計算指定年份的指定月份的天數。
部分 說明
AYear 指定的年份
AMonth 指定的月份
  • 返回值:返回指定年份的指定月份的天數。

  • 示例:

var
  Yearis,Monthis: Integer;
begin
  Yearis := YearOf(StrToDate('2020-11-1'));
  Monthis := MonthOf(StrToDate('2020-11-1'));
  ShowMessage(IntToStr(DaysInAMonth(YearIs,MonthIs)) + ' ' + IntToStr(DaysInAMonth(2020,2)));
end;
1
2
3
4
5
6
7
  • 運行結果:

30 29

# 9.14. DaysInAYear

function DaysInAYear(const AYear: Word): Word;
1
  • 該函式獲得指定年份的總天數。
部分 說明
AYear 計算總天數的年份
  • 返回值:返回指定年份的總天數,可以獲取閏年的天數。

  • 示例:

begin
  ShowMessage(IntToStr(DaysInAYear(YearOf(StrToDate('2020-11-1')))));
end;
1
2
3
  • 運行結果:

366

# 9.15. DaysInMonth

function DaysInMonth(const AValue: TDateTime): Word;
1
  • 該函式用於獲得一個月的總天數。
部分 說明
AValue 待計算月份總天數的日期
  • 返回值:返回指定日期所在月份的總天數。

  • 示例:

begin
  ShowMessage(IntToStr(DaysInMonth(MonthOf(StrToDate('2020-11-1')))));
end;
1
2
3
  • 運行結果:

30

# 9.16. DaysInYear

function DaysInYear(const AValue: TDateTime): Word;
1
  • 該函式用於獲得指定日期時間型別的表達式所在的年份的總天數,如果是閏年,總天數為366。
部分 說明
AValue 待轉換的日期時間型別值
  • 返回值:返回指定日期時間型別的表達式所在年份的總天數。

  • 示例:

begin
  ShowMessage(IntToStr(DaysInYear(StrToDate('2020-11-1'))));
end;
1
2
3
  • 運行結果:

366

# 9.17. DaysSpan

function DaySpan(const ANow, AThen: TDateTime): Double;
1
  • 該函式用於計算兩個日期時間型別表達式所描述的日期相差的天數。
部分 說明
ANow 待比較的日期時間表達式
AThen 待比較的日期時間表達式
  • 返回值:返回參數給定兩個日期相差的天數,是Double型變數。

  • 示例:

begin
  ShowMessage(FloatToStr(DaySpan(StrToDate('2010-11-1'),StrToDate('2020-11-1'))));
end;
1
2
3
  • 運行結果:

3653

# 9.18. DecodeDateFully

function DecodeDateFully(const DateTime: TDateTime; var Year, Month, Day, DOW: Word): Boolean;
1
  • 該函式用於分解TDateTime型別表達式為年、月、日和周值。星期數以星期日作為序數的開始。
部分 說明
DateTime 待分解的日期時間表達式
Year 得到TDateTime值分解后的年份
Month 得到TDateTime值分解后的月份
Day 得到TDateTime值分解后的日
Dow 日期表達式的星期
  • 返回值:如果日期表達式所在的年份是閏年,函式返回True,否則返回False。

  • 示例:

var
  Year,Month,Day,Dow: Word;
begin
  DecodeDateFully(StrToDate('2020-11-1'),Year,Month,Day,Dow);
  ShowMessage(IntToStr(Year) + '年' + IntToStr(Month) + '月'  + IntToStr(Day) + '日 星期數' + IntToStr(Dow));
end;
1
2
3
4
5
6
  • 運行結果:

2020年11月1日 星期數1

# 9.19. EncodeDate

function EncodeDate(Year, Month, Day: Word): TDateTime;
1
  • 該函式把指定的年、月、日轉換成對應的TDateTime值。
部分 說明
Year 待轉換的TDateTime型別日期值的年份
Month 待轉換的TDateTime型別日期值的月份
Day 待轉換的TDateTime型別日期值的日
  • 返回值:日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDate(2020,11,01);
  ShowMessage(DateToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-01

# 9.20. EncodeDateDay

function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime;
1
  • 該函式把指定年份的多少天轉換為對應的DateTime日期。
部分 說明
AYear 待轉換的TDateTime型別日期值的年份
ADayOfYear 指定年份的第多少天
  • 返回值:返回TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDateDay(2020,306);
  ShowMessage(DateToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-01

# 9.21. EncodeDateMonthWeek

function EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word): TDateTime;
1
  • 該函式把指定年份、月份、該月的第幾周和周值轉換成的日期時間型別。
部分 說明
AYear 日期表達式的年份
AMonth 日期表達式的月份
AWeekOfMonth 該日是當月的第幾周
ADayOfWeek 當日的周值
  • 返回值:TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDateMonthWeek(2020,12,8,12,33,333);
  ShowMessage(DateTimeToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 運行結果:

2020-05-17

# 9.22. EncodeDateTime

function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
1
  • 把指定的年、月、日、時、分、秒和毫秒轉換成對應的TDateTime值。
部分 說明
AYear 日期表達式的年份
AMonth 日期表達式的月份
ADay 日期表達式表示的日
AHour 日期表達式表示的小時
AMinute 日期表達式表示的分鐘
ASecond 日期表達式表示的秒鐘
AMillisecond 日期表達式表示的毫秒
  • 返回值:返回TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDateTime(2020,12,8,12,33,33,333);
  ShowMessage(DateTimeToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 運行結果:

2020-12-08 12:33:33

# 9.23. EncodeDateWeek

function EncodeDateWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
1
  • 該函式用於把指定年份的第幾周的周值轉換成對應的日期時間型別。
部分 說明
AYear 日期表達式的年份
AWeekOfYear 日期表達式該日期是當年的第多少周
ADayOfWeek 日期表達式的星期
  • 返回值:返回TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDateWeek(2020,45,1);
  ShowMessage(DateTimeToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-02

# 9.24. EncodeDayOfWeekInMonth

function EncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word): TDateTime;
1
  • 該函式把指定年份、月份和該月的第幾周的某個周值轉換成TDateTime型別。
部分 說明
AYear 日期表達式的年份
AMonth 日期表達式的月份
ANthDayOfWeek 日期表達式的星期值在本月的序號
ADayOfWeek 日期表達式的星期
  • 返回值:TDateTime日期值。

  • 示例:

var
  DateTimeIs: TDateTime;
begin
  DateTimeIs := EncodeDayOfWeekInMonth(2020,4,2,5);
  ShowMessage(DateTimeToStr(DateTimeIs));
end;
1
2
3
4
5
6
  • 運行結果:

2020-04-10

# 9.25. EncodeTime

function EncodeTime(Hour,Min,Sec,MSec: Word): TDateTime;
1
  • 該函式把指定的小時、分、秒、毫秒轉換成對應的TDateTime型別值。
部分 說明
Hour 待轉換TDateTime型別日期值的小時
Min 待轉換TDateTime型別日期值的分鐘
Sec 待轉換TDateTime型別日期值的秒數
MSec 待轉換TDateTime型別日期值的毫秒
  • 返回值:TDateTime型別值。

  • 示例:

begin
  ShowMessage(TimeToStr(EncodeTime(15,33,35,999)));
end;
1
2
3
  • 運行結果:

15:33:35

# 9.26. EndOfAMonth

function EndOfAMonth(const AYear, AMonth: Word): TDateTime;
1
  • 該函式用於獲得指定月份最後一天的最後可表示時刻。
部分 說明
AYear 年份
AMonth 月份
  • 返回值:函式返回參數指定年份的月份最後一天的最後可表示時刻。

  • 示例:

begin
  ShowMessage(DateTimeToStr(EndOfAMonth(2020,11)))
end;
1
2
3
  • 運行結果:

2020-11-30 23:59:59

# 9.27. EndOfAWeek

function EndOfAWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
1
  • 該函式獲得指定年、周、周值的最後可表示時刻。
部分 說明
AYear 指定獲取最後時刻的年份
AWeekOfYear 指定獲取最後時刻的周
ADayOfWeek 指定獲取最後時刻的周值
  • 返回值:返回參數指定年、周、周值的最後可表示時刻。

  • 示例:

begin
  ShowMessage(DateTimeToStr(EndOfAWeek(2020,23,3)));
end;
1
2
3
  • 運行結果:

2020-06-03 23:59:59

# 9.28. EndOfTheDay

function EndOfTheDay(const AValue: TDateTime): TDateTime;
1
  • 該函式獲取與指定TDateTime型別表達式相同日期的最後可表示時刻。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回指定TDateTime型別表達式相同日期的最後可表示時刻。

  • 示例:

begin
  ShowMessage(DateTimeToStr(EndOfTheDay(StrToDate('2020-11-1'))));
end;
1
2
3
  • 運行結果:

2020-11-01 23:59:59

# 9.29. EndOfTheMonth

function EndOfTheMonth(const AValue: TDateTime): TDateTime;
1
  • 該函式用於獲取參數指定的TDateTime日期時間表達式值所在的月份的最後時刻。
部分 說明
AValue TDateTime日期時間型別表達式
  • 返回值:返回參數指定月份最後一天的最後可表示時刻。

  • 示例:

Var
  MyEndDay: TDateTime;
begin
  MyEndDay := EndOfTheMonth(StrToDate('2020-11-1'));
  ShowMessage(DateTimeToStr(MyEndDay));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-30 23:59:59

# 9.30. EndOfTheWeek

function EndOfTheWeek(const AValue: TDateTime): TDateTime;
1
  • 該函式用於獲取參數指定的TDateTime日期時間表達式值所在周的最後時刻。
部分 說明
AValue TDateTime日期時間型別表達式
  • 返回值:返回參數日期所在周最後一天的最後可表示時刻。

  • 示例:

Var
  MyEndDay: TDateTime;
begin
  MyEndDay := EndOfTheWeek(StrToDate('2020-11-1'));
  ShowMessage(DateTimeToStr(MyEndDay));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-01 23:59:59

# 9.31. EndOfTheYear

function EndOfTheYear(const AValue: TDateTime): TDateTime;
1
  • 該函式用於獲取參數指定的TDateTime日期時間表達式值所在年份的最後時刻。
部分 說明
AValue TDateTime日期時間型別表達式
  • 返回值:返回參數日期所在年份最後一天的最後可表示時刻。

  • 示例:

Var
  MyEndDay: TDateTime;
begin
  MyEndDay := EndOfTheYear(StrToDate('2020-11-1'));
  ShowMessage(DateTimeToStr(MyEndDay));
end;
1
2
3
4
5
6
  • 運行結果:

2020-12-31 23:59:59

# 9.32. FormatDateTime

function FormatDateTime(const Format: String; DateTime: TDateTime): String;
1
  • 該函式利用Format參數給定的格式格式化DateTime參數給定的TDateTime值。
部分 說明
Format 格式化字串的形式
DateTime TDateTime型別表達式
  • 返回值:按Format格式格式化的字串。

  • 示例:

begin
  ShowMessage(FormatDateTime('''Today is ''yyyy-m-d',now));
  ShowMessage(FormatDateTime('''DateTime is ''hh:mm:ss',now));
  ShowMessage(FormatDateTime('''Today is ''m-d-yyyy',now));  
end;
1
2
3
4
5
  • 運行結果:

Today is 2020-01-01 DateTime is 13:25:35 Today is 01-01-2020

# 9.33. GetTime

function GetTime: TDateTime;
1
  • 該函式用於返回目前系統時間。

  • 返回值:TDateTime型別值。

  • 示例:

begin
  ShowMessage(TimeToStr(GetTime()));
end;
1
2
3
  • 運行結果:顯示目前的系統時間。

# 9.34. HourOfTheDay

function HourOfTheDay(const AValue: TDateTime): Word;
1
  • 該函式獲得參數給定的日期時間型別表達式的小數部分。
部分 說明
AValue TDateTime日期時間型別表達式
  • 返回值:返回能表示參數給定的TDateTime日期時間型別表達式小時部分的Word型別數。

  • 示例:

begin
  ShowMessage(IntToStr(HourOfTheDay(StrToDateTime('2020-03-10 14:36:55'))));
end;
1
2
3
  • 運行結果:

14

# 9.35. HourOfTheMonth

function HourOfTheMonth(const AValue: TDateTime): Word;
1
  • 該函式用於獲得參數給定日期時間型別表達式與對應月份第一天零時之間已流逝的小時數。
部分 說明
AValue TDateTime型別表達式
  • 返回值:返回參數給定日期時間型別表達式與對應月份第一天零時之間已流逝的小時數的Word型別值。

  • 示例:

begin
  ShowMessage(IntToStr(HourOfTheMonth(StrToDateTime('2020-03-10 14:36:55'))));
end;
1
2
3
  • 運行結果:

230

# 9.36. HourOfTheWeek

function HourOfTheWeek(const AValue: TDateTime): Word;
1
  • 該函式獲得參數給定日期時間型別表達式與對應週期的星期一零時之間已流逝的小時數。
部分 說明
AValue 待轉換的小時數的日期和時間
  • 返回值:返回一個word值。

  • 示例:

begin
  ShowMessage(IntToStr(HourOfTheWeek(StrToDateTime('2020-03-10 14:36:55'))));
end;
1
2
3
  • 運行結果:

38

# 9.37. HourOfTheYear

function HourOfTheYear(const AValue: TDateTime): Word;
1
  • 該函式獲得參數目前時間到對應年份1月1日已流逝的小時數。
部分 說明
AValue 待轉換的小時數的日期和時間
  • 返回值:返回參數目前時間到對應年份1月1日已流逝的小時數。

  • 示例:

begin
  ShowMessage(IntToStr(HourOfTheYear(StrToDateTime('2020-03-10 14:36:55'))));
end;
1
2
3
  • 運行結果:

1670

# 9.38. HoursBetween

function HoursBetween(const ANow, AThen: TDateTime): Int64;
1
  • 該函式用於獲取指定的兩個TDateTime型別日期時間表達式之間相差的小時數。
部分 說明
ANow 待比較的日期時間
AThen 待比較的日期時間
  • 返回值:返回指定的兩個TDateTime型別日期時間表達式之間相差的小時數的Int64型別值。

  • 示例:

begin
  ShowMessage(IntToStr(HoursBetween(StrToDateTime('2020-03-10 14:36:55'),StrToDateTime('2020-11-01 13:35:16'))));
end;
1
2
3
  • 運行結果:

5662

# 9.39. HourSpan

function HourSpan(const ANow, AThen: TDateTime): Double;
1
  • 該函式用於獲取指定的兩個TDateTime值之間相差的小時數。
部分 說明
ANow 待比較的日期時間
AThen 待比較的日期時間
  • 返回值:返回指定的兩個TDateTime型別日期時間表達式之間相差的小時數的Double型別值。

  • 示例:

begin
  ShowMessage(FloatToStr(HourSpan(StrToDateTime('2020-03-10 14:36:55'),StrToDateTime('2020-11-01 13:35:16'))));
end;
1
2
3
  • 運行結果:

5662.972499999992

# 9.40. IncDay

function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime;
1
  • 根據指定的天數來增加或減少TDateTime型別的日。
部分 說明
AValue TDateTime型別日期時間表達式
ANumberOfDays 待增加或減少日的數量
  • 返回值:返回該變后的TDateTime型別值。

  • 示例:

begin
  ShowMessage(DateToStr(IncDay(StrToDate('2020-11-1'),5)));
end;
1
2
3
  • 運行結果:

2020-11-06

# 9.41. IncHour

function IncHour(const AValue: TDateTime; const ANumberOfHours: Int64 = 1): TDateTime;
1
  • 該函式根據參數給定的值來增加或減少TDateTime值的小時。
部分 說明
AValue TDateTime型別日期的表達式
ANumberOfHours 待增加或減少小時的數量
  • 返回值:返回改變后的TDateTime型別值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncHour(StrToDateTime('2020-10-01 12:00:00'),5);
  ShowMessage(DateTimeToStr(ADate));
  ADate := IncHour(StrToDateTime('2020-10-01 13:00:00'),-1);
  ShowMessage(DateTimeToStr(ADate)); 
end;
1
2
3
4
5
6
7
8
  • 運行結果:

2020-10-01 17:00:00 2020-10-01 12:00:00

# 9.42. IncMilliSecond

function IncMilliSecond(const AValue: TDateTime; const ANumberOfMilliSeconds: Int64 = 1): TDateTime;
1
  • 該函式根據參數給定的值來增加或減少TDateTime值的毫秒。
部分 說明
AValue TDateTime型別日期的表達式
ANumberOfMilliSeconds 待增加或減少毫秒的數量
  • 返回值:返回改變后的TDateTime型別值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncMilliSecond(StrToDateTime('2020-10-01 12:00:00'),5000);
  ShowMessage(DateTimeToStr(ADate));
  ADate := IncMilliSecond(StrToDateTime('2020-10-01 13:00:00'),-3000);
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

2020-10-01 12:00:05 2020-10-01 12:59:57

# 9.43. IncMinute

function IncMinute(const AValue: TDateTime; const ANumberOfMinutes: Int64 = 1): TDateTime;
1
  • 該函式根據參數給定的值來增加或減少TDateTime值的分鐘。
部分 說明
AValue TDateTime型別日期的表達式
ANumberOfMinutes 待增加或減少分鐘的數量
  • 返回值:返回改變后的TDateTime型別值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncMinute(StrToDateTime('2020-10-01 12:00:00'),5);
  ShowMessage(DateTimeToStr(ADate));
  ADate := IncMinute(StrToDateTime('2020-10-01 13:00:00'),-3);
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

2020-10-01 12:05:00 2020-10-01 12:57:00

# 9.44. IncMonth

function IncMonth(const Date: TDateTime; NumberOfMonths: Integer=1): TDateTime;
1
  • 該函式根據參數給定的值來增加或減少TDateTime值的月份。
部分 說明
Date TDateTime型別日期時間的表達式
NumberOfMonths 待增加或減少月的數量
  • 返回值:返回改變后的TDateTime型別值。

  • 示例:

begin
  ShowMessage(DateToStr(IncMonth(StrToDateTime('2020-11-01'),1)));
  ShowMessage(DateToStr(IncMonth(StrToDateTime('2020-11-01'),3)));
  ShowMessage(DateToStr(IncMonth(StrToDateTime('2020-11-01'),-2)));
end;
1
2
3
4
5
  • 運行結果:

2020-12-01 2021-02-01 2020-09-01

# 9.45. IncSecond

function IncSecond(const Date: TDateTime; NumberOfSeconds: Integer=1): TDateTime;
1
  • 該函式根據參數給定的值來增加或減少TDateTime值的秒數。
部分 說明
Date TDateTime型別日期時間的表達式
NumberOfSeconds 待增加或減少秒的數量
  • 返回值:返回改變后的TDateTime型別值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncSecond(StrToDateTime('2020-10-01 12:00:00'),5);
  ShowMessage(DateTimeToStr(ADate));
  ADate := IncSecond(StrToDateTime('2020-10-01 13:00:00'),-3);
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

2020-10-01 12:00:05 2020-10-01 12:59:57

# 9.46. IncWeek

function IncWeek(const AValue: TDateTime; NumberOfWeeks: Integer=1): TDateTime;
1
  • 該函式根據參數給定的值來增加或減少TDateTime值的週數。
部分 說明
AValue TDateTime型別日期時間的表達式
NumberOfWeeks 待增加或減少周的數量
  • 返回值:返回改變后的TDateTime型別值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncWeek(StrToDate('2020-10-01'),2);
  ShowMessage(DateToStr(ADate));
  ADate := IncWeek(StrToDate('2020-10-01'),-2);
  ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

2020-10-15 2020-09-17

# 9.47. IncYear

function IncYear(const AValue: TDateTime; const ANumberOfYears: Integer = 1):TDateTime;
1
  • 該函式根據參數給定的值來增加或減少TDateTime值的年份。
部分 說明
AValue TDateTime型別日期時間的表達式
NumberOfYears 待增加或減少年份的數量
  • 返回值:返回改變后的TDateTime型別值。

  • 示例:

Var  
  ADate: TDateTime;
begin
  ADate := IncYear(StrToDate('2020-10-01'),2);
  ShowMessage(DateToStr(ADate));
  ADate := IncYear(StrToDate('2020-10-01'),-2);
  ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

2022-10-01 2018-10-01

# 9.48. IsInLepYear

function IsInLeapYear(const AValue: TDateTime): Boolean;
1
  • 判斷參數給定的日期所在的年份是不是閏年。
部分 說明
AValue TDateTime型別日期時間的表達式
  • 返回值:如果是閏年返回True,否則返回False。

  • 示例:

begin
  if IsInLeapYear(date()) then
    ShowMessage('今年是閏年')
  else
    ShowMessage('今年不是閏年');
end;
1
2
3
4
5
6
  • 運行結果:顯示今年是否為閏年,例如本示例製作年份為2020年,該年份內執行該程式碼顯示今年為閏年。

# 9.49. IsLeapYear

function IsLeapYear(Year: Word): Boolean
1
  • 該函式用於檢驗所給的年份是否為閏年。
部分 說明
Year 待檢驗的年份
  • 返回值:如果是閏年則返回True,否則返回False。

  • 示例:

var
  BoolIs: Boolean;
  YearIs: Integer;
begin
  YearIs := 2000;
  while YearIs < 2005 Do
  begin
    BoolIs := IsLeapYear(YearIs);
    if BoolIs Then
      ShowMessage('閏年' + '(' + IntToStr(YearIs) + ')')
    else
      ShowMessage('平年' + '(' + IntToStr(YearIs) + ')');
    YearIs := YearIs + 1;
  End;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • 運行結果:

閏年(2000) 平年(2001) 平年(2002) 平年(2003) 閏年(2004)

# 9.50. IsPM

function IsPM(const AValue: TDateTime): Boolean;
1
  • 檢驗參數的時間是否為下午。
部分 說明
AValue TDateTime型別日期時間的表達式
  • 返回值:如果給定的TDateTime值的時間是下午函式返回True,否則返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsPM(StrToDateTime('2020-11-01 12:00:00')))); 
  ShowMessage(BoolToStr(IsPM(StrToDateTime('2020-11-01 11:59:59')))); 
end;
1
2
3
4
  • 運行結果:

-1(表示為True) 0(表示為False)

# 9.51. IsSameDay

function IsSameDay(const AValue, ABasis: TDateTime): Boolean;
1
部分 說明
AValue TDateTime型別日期時間的表達式
ABasis TDateTime型別日期時間的表達式
  • 返回值:如果兩參數列示同一日期函式返回True,否則返回False。

  • 示例:

begin
  if IsSameDay(StrToDateTime('2020-2-24'), StrToDateTime('2020-4-24 16:50')) then
    ShowMessage('相同')
  else
    ShowMessage('不同');
end;
1
2
3
4
5
6
  • 運行結果:

不同

# 9.52. IsToday

function IsToday(const AValue: TDateTime): Boolean;
1
  • 該函式檢測發生的日期與系統日期是否相同。
部分 說明
AValue TDateTime型別日期時間的表達式
  • 返回值:如果參數給定的日期與系統目前日期相同返回True,否則返回False。

  • 示例:

begin
  if IsToday(StrToDateTime('2020-2-24')) then
    ShowMessage('是今天')
  else
    ShowMessage('不是今天');
end;
1
2
3
4
5
6
  • 運行結果:

不是今天

# 9.53. IsValidDate

function IsValidDate(const AYear, AMonth, ADay: Word): Boolean;
1
  • 該函式用於檢驗給定的年、月、日是否合乎規範。
部分 說明
AYear 年
AMonth 月
ADay 日
  • 返回值:如果待檢驗的年、月、日合法則返回True,否則返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDate(2020,5,30)));
  ShowMessage(BoolToStr(IsValidDate(2020,4,31)));
  ShowMessage(BoolToStr(IsValidDate(0000,4,30)));
end;
1
2
3
4
5
  • 運行結果:

-1 0 0

# 9.54. IsValidDateDay

function IsValidDateDay(const AYear, ADayOfYear: Word): Boolean;
1
  • 檢查參數給定的天數是不是再指定年份的總天數範圍之內。
部分 說明
AYear 年
ADayOfYear 待檢驗的天數
  • 返回值:若參數給定的天數在指定年份的總天數範圍之內返回True,否則返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDateDay(2020,367)));
  ShowMessage(BoolToStr(IsValidDateday(2020,0)));
  ShowMessage(BoolToStr(IsValidDate(2020,4)));
end;
1
2
3
4
5
  • 運行結果:

0 0 -1

# 9.55. IsValidDateMonthWeek

function IsValidDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word): Boolean;
1
  • 該函式是檢驗參數給定的年份、月份、該月份第幾周和周值的合法性。
部分 說明
AYear 年份
AMonth 月份
AWeekOfMonth 週數
ADayOfWeek 星期
  • 返回值:如果給定參數合法則返回True,否則返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDateMonthWeek(2020,5,2,7)));
  ShowMessage(BoolToStr(IsValidDateMonthWeek(2020,13,2,7)));
  ShowMessage(BoolToStr(IsValidDateMonthWeek(2020,5,6,7)));
end;
1
2
3
4
5
  • 運行結果:

-1 0 0

# 9.56. IsValidDateTime

function IsValidDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): Boolean;
1
  • 檢驗參數給定的年、月、日、小時、分鐘、秒和毫秒的合法性。
部分 說明
AYear 年份
AMonth 月份
ADay 待檢驗的日
AHour 待檢驗的小時
AMinute 分鐘
ASecond 秒
AMilliSecond 毫秒
  • 返回值:如果所有被檢驗的值都是合法函式返回True,否則返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDateTime(2020,06,20,23,22,25,0)));
  ShowMessage(BoolToStr(IsValidDateTime(2020,13,20,23,23,24,0)));
  ShowMessage(BoolToStr(IsValidDateTime(2020,12,13,34,12,32,0)));
end;
1
2
3
4
5
  • 運行結果:

-1 0 0

# 9.57. IsValidDateWeek

function IsValidDateWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): Boolean;
1
  • 檢驗參數給定的年份、週數,合法性。
部分 說明
AYear 年份
AWeekOfYear 週數
ADayOfWeek 周值
  • 返回值:如果被檢驗值合法,函式返回True,否則返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidDateWeek(2020,50,5)));
  ShowMessage(BoolToStr(IsValidDateWeek(2020,0,5)));
  ShowMessage(BoolToStr(IsValidDateWeek(2020,53,6)));
end;
1
2
3
4
5
  • 運行結果:

-1 0 -1

# 9.58. IsValidTime

function IsValidTime(const AHour, AMinute, ASecond, AMilliSecond: Word): Boolean;
1
  • 檢驗參數給定的小時、分鐘、秒、和毫秒的合法性。
部分 說明
AHour 待檢驗的小時
AMinute 待檢驗的分鐘
ASecond 待檢驗的秒
AMilliSecond 待檢驗的毫秒
  • 返回值:如果被檢驗值合法,函式返回True,否則返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(IsValidTime(20,35,25,0)));
end;
1
2
3
  • 運行結果:

-1

# 9.59. MilliSecondOf

function MilliSecondOf(const AValue: TDateTime): Word;
1
  • 該函式獲得參數給定日期時間型別表達式的毫秒。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回能代表參數給定的日期時間型別表達式毫秒的Word型別值。

  • 示例:

Var 
  MilliSecond: Word;
begin
  MilliSecond := MilliSecondOf(Now);
  ShowMessage(IntToStr(MilliSecond));
end;
1
2
3
4
5
6

  執行上述程式碼,得到目前系統時間的毫秒值。

# 9.60. MilliSecondOfTheDay

function MilliSecondOfTheDay(const AValue: TDateTime): Cardinal;
1
  • 該函式獲得TDateTime參數所在天已流逝的毫秒數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的毫秒數。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheDay(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 運行結果:顯示當天已流逝的毫秒數。

# 9.61. MilliSecondOfTheHour

function MilliSecondOfTheHour(const AValue: TDateTime): Cardinal;
1
  • 該函式用於獲得所在小時已流逝的毫秒數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的毫秒數。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheHour(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 運行結果:顯示目前所在小時已流逝的毫秒數。

# 9.62. MilliSecondOfTheMinute

function MilliSecondOfTheMinute(const AValue: TDateTime): Cardinal;
1
  • 該函式用於獲得參數指定的TDateTime值,與它同一分鐘的起點之間已流逝的毫秒數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的毫秒數。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheMinute(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 運行結果:顯示目前分鐘已流逝的毫秒數。

# 9.63. MilliSecondOfTheMonth

function MilliSecondOfTheMonth(const AValue: TDateTime): Cardinal;
1
  • 該函式用於獲取參數指定的TDateTime值與它同一月的起點之間已流逝的毫秒數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的毫秒數。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheMonth(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 運行結果:顯示目前時刻所在月份已流逝的毫秒數。

# 9.64. MilliSecondOfTheSecond

function MilliSecondOfTheSecond(const AValue: TDateTime): Word;
1
  • 該函式用於獲得參數指定的TDateTime值與它同一秒的起點之間已流逝的毫秒數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的毫秒數。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := MilliSecondOfTheSecond(Now);
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 運行結果:顯示目前秒數中已流逝的毫秒數。

# 9.65. MilliSecondsBetween

function MilliSecondsBetween(const ANow, AThen: TDateTime): Int64;
1
  • 該函式獲取參數指定的兩個日期時間型別表達式之間相差的毫秒數。
部分 說明
ANow 待比較的日期時間型別表達式
AThen 帶比較的日期時間型別表達式
  • 返回值:返回兩日期時間型別表達式相差的毫秒數(64位整型值)。

  • 示例:

begin
  ShowMessage(IntToStr(MilliSecondsBetween(Now,Now + 1)));
end;
1
2
3
  • 運行結果:該段程式碼用於計算一天有多少毫秒數。

86400000

# 9.66. MinuteOf

function MinuteOf(const AValue: TDateTime):Word;
1
  • 該函式獲取指定的日期時間表達式時鐘的分鐘數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回指定的日期時間表達式時鐘的分鐘數(Word型別值)。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOf(Now)));
end;
1
2
3

  該段程式碼執行后,訊息對話方塊顯示系統目前分鐘。

# 9.67. MinuteOfTheHour

function MinuteOfTheHour(const AValue: TDateTime): Word;
1
  • 該函式用於指定TDateTime值與它同一小時的起點之間已流逝的分鐘數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的分鐘數。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOfTheHour(StrToDateTime('2020-11-01 13:24:00'))));
end;
1
2
3
  • 運行結果:

24

# 9.68. MinuteOfTheMonth

function MinuteOfTheMonth(const AValue: TDateTime): Word;
1
  • 該函式用於獲得參數指定的TDateTime值與它同一月的起點之間已經流逝的分鐘數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的分鐘數。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOfTheMonth(StrToDateTime('2020-11-02 13:24:00'))));
end;
1
2
3
  • 運行結果:

2244

# 9.69. MinuteOfTheWeek

function MinuteOfTheWeek(const AValue: TDateTime): Word;
1
  • 該函式用於獲得參數指定的TDateTime值與它同一周的起點之間已經流逝的分鐘數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的分鐘數。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOfTheWeek(StrToDateTime('2020-11-04 13:24:00'))));
end;
1
2
3
  • 運行結果:

3684

# 9.70. MinuteOfTheYear

function MinuteOfTheYear(const AValue: TDateTime): Cardinal;
1
  • 該函式用於獲得參數指定的TDateTime值與它同一年的起點之間已經流逝的分鐘數。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回已流逝的分鐘數。

  • 示例:

begin
  ShowMessage(IntToStr(MinuteOfTheYear(StrToDateTime('2020-11-04 13:24:00'))));
end;
1
2
3
  • 運行結果:

444324

# 9.71. MinutesBetween

function MinutesBetween(const ANow, AThen: TDateTime): Int64;
1
  • 該函式獲得指定TDateTime值之間相差的分鐘數。
部分 說明
ANow 日期時間表達式
AThen 日期時間表達式
  • 返回值:返回參數給定的兩個TDateTime值之間相差的分鐘數的64位整型。

  • 示例:

begin
  ShowMessage(IntToStr(MinutesBetween(Now,StrToDateTime('2020-11-1 3:51'))));
end;
1
2
3
  • 運行結果:返回目前時間與給定時間相差的分鐘數。

# 9.72. MinuteSpan

function MinuteSpan(const ANow, AThen: TDateTime): Double;
1
  • 該函式獲得參數給定的兩個TDateTime型別值相差的分鐘數。返回的數據型別為double。
部分 說明
ANow 日期時間表達式
AThen 日期時間表達式
  • 返回值:返回參數給定的兩個TDateTime值之間相差的分鐘數的Double型別。

  • 示例:

begin
  ShowMessage(FloatToStr(MinuteSpan(Now,StrToDateTime('2020-11-1 3:51'))));
end;
1
2
3
  • 運行結果:返回目前時間與給定時間相差的分鐘數。

# 9.73. MonthOf

function MonthOf(const AValue: TDateTime):Word;
1
  • 該函式獲得參數給定日期時間型別表達式的月份。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回能代表參數給定的日期時間型別表達式月份的Word型別值。

  • 示例:

var
  Mon: Word;
begin
  Mon := MonthOf(Now);
  ShowMessage(IntToStr(Mon));
end;
1
2
3
4
5
6

  執行上述程式碼,顯示系統目前月份。

# 9.74. MonthOfTheYear

function MonthOfTheYear(const AValue: TDateTime): Word;
1
  • 該函式獲得參數給定日期時間型別表達式的月份。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回能代表參數給定的日期時間型別表達式月份的word型別值。

  • 示例:

Var
  Mon: Word;
begin
  Mon := MonthOfTheYear(Now);
  ShowMessage(IntToStr(Mon));
end;
1
2
3
4
5
6
  • 運行結果:顯示系統目前月份。

# 9.75. MonthsBetween

function MonthsBetween(const ANow, AThen: TDateTime): Integer;
1
部分 說明
ANow 待比較的日期時間型別表達式
AThen 待比較的日期時間型別表達式
  • 返回值:返回參數給定的兩日期時間型別表達式之間相差的整月數的Word型別值。

  • 示例:

begin
  ShowMessage(IntToStr(MonthsBetween(Date,EndOfTheYear(now))));
end;
1
2
3
  • 運行結果:顯示目前月份與年末月份的差值。

# 9.76. MonthSpan

function MonthSpan(const ANow, AThen: TDateTime): Double;
1
  • 該函式獲取給定的兩日期時間型別表達式之間相差的月數。
部分 說明
ANow 待比較的日期時間型別表達式
AThen 待比較的日期時間型別表達式
  • 返回值:返回參數給定的兩日期時間型別表達式之間相差月數的Double型別值。

  • 示例:

begin
  ShowMessage(FloatToStr(MonthSpan(Date,EndOfTheYear(now))));
end;
1
2
3
  • 運行結果:顯示目前日期與年末日期的月份相差浮點數值。

# 9.77. Now

function Now: TDateTime;
1
  • 該函式用於獲取系統目前的日期和時間。

  • 返回值:返回系統目前的日期和時間。

  • 示例:

begin
  ShowMessage(DateTimeToStr(now));
  ShowMessage(DateTimeToStr(Now()));
end;
1
2
3
4
  • 運行結果:

2020-01-01 13:25:35 2020-01-01 13:35:37

# 9.78. NthDayOfWeek

function NthDayOfWeek(const AValue: TDateTime): Word;
1
  • 獲得參數指定日期時間表達式所在月份的周的序號。
部分 說明
AValue 日期時間型別表達式
  • 返回值:返回序號值。

  • 示例:

var
  MilCount: Longword;
begin
  MilCount := NthDayOfWeek(StrToDateTime('2020-11-1 11:00:00'));
  ShowMessage(IntToStr(Milcount));
end;
1
2
3
4
5
6
  • 運行結果:

1

# 9.79. RecodeDate

function RecodeDate(const AValue: TDateTime; const AYear, AMonth, ADay: Word): TDateTime;
1
  • 函式把參數指定的日期替換為參數Year、Month、Day所對應的日期。
部分 說明
AValue 被替換的日期時間型別表達式
AYear 替換后的年份
AMonth 替換后的月份
ADay 替換后的日
  • 返回值:返回變換后的日期。

  • 示例:

begin
  ShowMessage(DateToStr(RecodeDate(Now,2020,07,07)));
end;
1
2
3

# 9.80. RecodeDateTime

function RecodeDateTime(const AValue: TDateTime; const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
1
  • 該函式把參數指定的日期時間型別表達式替換為參數給定的年、月、日、小時、分鐘、秒和毫秒所對應的日期時間值。
部分 說明
AValue 被替換后的日期時間型別表達式
AYear 替換后的年份
AMonth 替換后的月份
ADay 替換后的日
AHour 替換后的小時
AMinute 替換后的分鐘
ASecond 替換后的秒鐘
AMilliSecond 替換后的毫秒
  • 返回值:返回變換后的日期時間型別值。

  • 示例:

begin
  ShowMessage(DateTimeToStr(RecodeDateTime(Now,2020,07,07,12,25,25,0)));
end;
1
2
3
  • 運行結果:

2020-07-07 12:25:25

# 9.81. RecodeDay

function RecodeDay(const AValue: TDateTime; const ADay: Word): TDateTime;
1
  • 把參數指定的日期時間型別表達式替換為參數給定日所對應的日期時間值。
部分 說明
AValue 被替換的日期時間型別表達式
ADay 替換后的日
  • 返回值:返回變換后的日期時間型別值。

  • 示例:

begin
  ShowMessage(DateToStr(RecodeDay(Now,1)));
end;
1
2
3
  • 運行結果:將目前日期的日改為1日。

# 9.82. RecodeHour

function RecodeHour(const AValue: TDateTime; const AHour: Word): TDateTime;
1
  • 該函式將指定時間中的小時替換為另一個指定的小時。
部分 說明
AValue 被替換的日期時間型別表達式
AHour 替換的小時
  • 返回值:返回修改小時後的時間。

  • 示例:

begin
  ShowMessage(DateTimeToStr(RecodeHour(StrToDateTime('2020-11-1 12:00:00'),6)));
end;
1
2
3
  • 運行結果:

2020-11-1 6:00:00

# 9.83. RecodeMilliSecond

function RecodeMilliSecond(const AValue: TDateTime; const AMilliSecond: Word): TDateTime;
1
  • 該函式將指定時間中的毫秒替換成指定的數值。
部分 說明
AValue 被替換的日期時間型別表達式
AMilliSeconds 替換的毫秒值
  • 返回值:返回替換毫秒后的時間。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeMilliSecond(now,100);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',AValue));  
end;
1
2
3
4
5
6
  • 運行結果:運行后返回參數指定的值0-999。

# 9.84. RecodeMinute

function RecodeMinute(const AValue: TDateTime; const AMinute: Word): TDateTime;
1
  • 該函式將指定時間中的分替換稱為特定數值。
部分 說明
AValue 被替換的日期時間型別表達式
AMinute 返回被替換分鐘的時間
  • 返回值:返回替換后的時間。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeMinute(now,10);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',AValue));  
end;
1
2
3
4
5
6
  • 運行結果:運行后返回參數特定的值(0-59)。

# 9.85. RecodeSecond

function RecodeSecond(const AValue: TDateTime; const ASecond: Word): TDateTime;
1
  • 該函式將指定時間的秒替換為指定的數值。
部分 說明
AValue 被替換的日期時間型別表達式
ASecond 替換秒指定的數值
  • 返回值:返回替換秒后的時間。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeSecond(now,10);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',AValue));  
end;
1
2
3
4
5
6
  • 運行結果:運行后返回參數的特定的值(0-59)。

# 9.86. RecodeTime

function RecodeTime(const AValue: TDateTime; const AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
1
  • 該函式將指定時間的時、分、秒和毫秒替換為指定的數值。
部分 說明
AValue 被替換的日期時間型別表達式
AHour,AMinute,ASecond 替換時、分、秒和毫秒的指定值
  • 返回值:返回替換后的時間。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeTime(now,11,12,13,144);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',AValue));  
end;
1
2
3
4
5
6
  • 運行結果:函式運行后,返回一個更改當前時間的時鐘為11、分鐘為12、秒鐘為13、毫秒為14的值。

# 9.87. RecodeYear

function RecodeYear(const AValue: TDateTime; const AYear: Word): TDateTime;
1
  • 該函式用於將指定時間的年份替換為指定的數值。
部分 說明
AValue 被替換的日期時間型別表達式
AYear 替換年份的指定值
  • 返回值:返回替換后的時間。

  • 示例:

var
  AValue: TDateTime;
begin
  AValue := RecodeYear(now,2021);
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',AValue));  
end;

1
2
3
4
5
6
7
  • 運行結果:函式運行后,返回一個更改當前時間的年份為2021年的值。

# 9.88. SameDate

function SameDate(const A, B: TDateTime): Boolean;
1
  • 該函式比較A和B兩個參數指定的TDateTime值是否表示相同的日期,不包括時間部分。
部分 說明
A,B 待比較的兩個日期
  • 返回值:如果相同返回True,否則返回False。

  • 示例:

var
  ADate: TDateTime;
  BDate: TDateTime;
begin
  ADate := StrToDateTime('2020-11-1');
  BDate := StrToDateTime('2020-11-2');
  if SameDate(ADate,BDate) then
    ShowMessage('Same')
  else
    ShowMessage('not Same');
end;
1
2
3
4
5
6
7
8
9
10
11
  • 運行結果:

not Same

# 9.89. SameDateTime

function SameDateTime(const A, B: TDateTime): Boolean;
1
  • 該函式比較兩個時間是否相同。
部分 說明
A,B 待比較的兩個時間
  • 返回值:返回是否相同,如果相同返回True,否則返回False。

  • 示例:

var
  ADate: TDateTime;
  BDate: TDateTime;
begin
  ADate := StrToDateTime('2020-11-1 15:00:00');
  BDate := StrToDateTime('2020-11-1 15:00:01');
  if SameDateTime(ADate,BDate) then
    ShowMessage('Same')
  else
    ShowMessage('not Same');
end;
1
2
3
4
5
6
7
8
9
10
11
  • 運行結果:

not Same

# 9.90. SameTime

function SameTime(const A, B: TDateTime): Boolean;
1
  • 該函式比較兩個時間是否相等,不包括日期部分。
部分 說明
A,B 待比較的兩個時間
  • 返回值:比較兩個時間段是否相等,如果相等返回True,否咋返回False。

  • 示例**

var
  ADate: TDateTime;
  BDate: TDateTime;
begin
  ADate := StrToDateTime('2020-11-1 15:00:00');
  BDate := StrToDateTime('2020-11-2 15:00:00');
  if SameTime(ADate,BDate) then
    ShowMessage('Same')
  else
    ShowMessage('not Same');
end;
1
2
3
4
5
6
7
8
9
10
11
  • 運行結果:

Same

# 9.91. SecondOf

function SecondOf(const AValue: TDateTime;): Word;
1
  • 該函式返回指定時間中表示的秒數。
部分 說明
AValue 待操作的TDateTime型別的時間值
  • 返回值:返回取得的秒數。

  • 示例:

begin
  ShowMessage(IntToStr(SecondOf(Now)));
end;
1
2
3

  執行上述程式碼后,顯示目前系統的秒數。

# 9.92. SecondOfTheDay

function SecondOfTheDay(const AValue: TDateTime): Cardinal;
1
  • 該函式用於返回指定時間與同一天00:00:00之間已流逝的秒數。
部分 說明
AValue 指定計算的時間
  • 返回值:返回流逝的秒數。

  • 示例:

var
  ADate: TDateTime;
  SecOf: Word;
begin
  ADate := Now();
  SecOf := SecondOftheDay(ADate);
  ShowMessage(IntToStr(SecOf));
end;
1
2
3
4
5
6
7
8
  • 運行結果:運行后返回流逝的秒數。

# 9.93. SecondOfTheHour

function SecondOfTheHour(const AValue: TDateTime): Word;
1
  • 該函式用於返回指定時間與同一天同一時的起始時間之間流逝的秒數。
部分 說明
AValue 指定計算的時間
  • 返回值:返回流逝的小時數。

  • 示例:

var
  ADate: TDateTime;
  HOurOf: Word;
begin
  ADate := Now();
  HOurOf := SecondOftheHour(ADate);
  ShowMessage(IntToStr(HOurOf));
end;
1
2
3
4
5
6
7
8
  • 運行結果:顯示目前小時已流逝的秒數。

# 9.94. SecondOfTheMinute

function SecondOfTheMinute(const AValue: TDateTime): Word;
1
  • 該函式返回指定時間與同一天同一分鐘的起始時間之間流逝的秒數。
部分 說明
AValue 指定計算的時間
  • 返回值:返回流逝的秒數。

  • 示例:

var
  ADate: TDateTime;
  HOurOf: Word;
begin
  ADate := Now();
  HOurOf := SecondOftheMinute(ADate);
  ShowMessage(IntToStr(HOurOf));
end;
1
2
3
4
5
6
7
8
  • 返回值:返回流逝的秒數。

# 9.95. SecondOfTheMonth

function SecondOfTheMonth(const AValue: TDateTime): Cardinal;
1
  • 該函式返回指定時間與同一天同一分鐘的起始時間之間流逝的秒數。
部分 說明
AValue 指定計算的時間
  • 返回值:返回流逝的秒數。

  • 示例:

var
  ADate: TDateTime;
  HOurOf: Word;
begin
  ADate := Now();
  HOurOf := SecondOftheMonth(ADate);
  ShowMessage(IntToStr(HOurOf));
end;
1
2
3
4
5
6
7
8
  • 返回值:返回流逝的秒數。

# 9.96. SecondOfTheWeek

function SecondOfTheWeek(const AValue: TDateTime): Cardinal;
1
  • 該函式返回指定的時間與其所在周首天00:00:00之間流逝的秒數。
部分 說明
AValue 指定計算的時間
  • 返回值:返回流逝的秒數。

  • 示例:

var
  ADate: TDateTime;
  HOurOf: Word;
begin
  ADate := Now();
  HOurOf := SecondOfTheWeek(ADate);
  ShowMessage(IntToStr(HOurOf));
end;
1
2
3
4
5
6
7
8
  • 返回值:返回流逝的秒數。

# 9.97. SecondsBetween

function SecondsBetween(const ANow, AThen: TDateTime): Int64;
1
  • 該函式返回兩個間隔時間相差的秒數。
部分 說明
ANow,AThen 兩個計算相差值的時間
  • 返回值:返回兩個間隔時間相差的秒數。

  • 示例:

var
  ADt, TADt: TDateTime;
  Sec: Int64;
begin
  ADt := Now();
  TADt:= StrToDateTime('2020-08-08 08:08:08');
  Sec := SecondsBetween(ADt, TADt);
  ShowMessage('距離該時間已過' + IntToStr(Sec) + '秒');
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:該函式返回ADt與TADt之間相差的秒數。

# 9.98. SecondsSpan

function SecondSpan(const ANow, AThen: TDateTime): Double;
1
  • 該函式返回兩個指定時間相差的秒數,包括分數秒。
部分 說明
ANow,AThen 兩個計算相差值的時間
  • 返回值:該函式返回Double型別的相差秒數。

  • 示例:

var
  ADt, TADt: TDateTime;
  Sec: Double;
begin
  ADt := Now();
  TADt:= StrToDateTime('2020-08-08 08:08:08');
  Sec := SecondSpan(ADt, TADt);
  ShowMessage('距離該時間已過' + FloatToStr(Sec) + '秒');
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:該函式返回ADt與TADt之間相差的秒數。

# 9.99. StartOfAWeek

function StartOfAWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
1
  • 該函式返回指定日期中指定星期的第一個可表示時刻。
部分 說明
AYear 指定的年
AWeekOfYear 指定周
ADayOfWeek 指定周的第一天是哪天
  • 返回值:返回一個時間值。

  • 示例:

var
  DT: TDateTime;
begin
  DT := StartOfAWeek(2020,45,1);
  ShowMessage(DateToStr(DT));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-02

# 9.100. StartOfAYear

function StartOfAYear(const AYear: Word): TDateTime;
1
  • 該函式返回指定年份的第一個可表示的時刻。
部分 說明
AYear 指定年份
  • 返回值:返回獲得的時間。

  • 示例:

var
  DT: TDateTime;
begin
  DT := StartOfAYear(2020);
  ShowMessage(DateToStr(DT));
end;
1
2
3
4
5
6
  • 運行結果:

2020-01-01

# 9.101. StartOfTheDay

function StartOfTheDay(const AValue: TDateTime): TDateTime;
1
  • 該函式根據指定的日期返回當天的零時時間。
部分 說明
AValue 日期表達式
  • 返回值:函式返回AValue所表示的某一天的開始時間。

  • 示例:

begin
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',StartOfTheDay(Now)));
end;
1
2
3
  • 運行結果:該函式顯示當天的零時時間。

# 9.102. StartOfTheMonth

function StartOfTheMonth(const AValue: TDateTime): TDateTime;
1
  • 該函式根據指定的日期返回當月第一天的零時時間。
部分 說明
AValue 日期表達式
  • 返回值:函式返回AValue所表示的某一天的開始時間。

  • 示例:

begin
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheMonth(Now)));
end;
1
2
3

  執行上述程式碼,單擊按鈕,顯示本月初的零時時間。

# 9.103. StartOfTheWeek

function StartOfTheWeek(const AValue: TDateTime): TDateTime;
1
  • 該函式根據指定的日期返回本週第一天的零時時間。
部分 說明
AValue 日期表達式
  • 返回值:函式返回AValue所表示的某一天的開始時間。

  • 示例:

begin
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheWeek(Now)));
end;
1
2
3

  顯示本週週一的零時時間。

# 9.104. StartOfTheYear

function StartOfTheYear(const AValue: TDateTime): TDateTime;
1
  • 該函式根據指定的日期返回當年的第一天的零時時間。
部分 說明
AValue 日期表達式
  • 返回值:函式返回AValue所表示的某一天的開始時間。

  • 示例:

begin
  ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheYear(Now)));
end;
1
2
3

  顯示本年第一天的零時時間。

# 9.105. StrToDate

function StrToDate(const S: String): TDateTime;
1
  • 該函式將字串轉換為日期值。
部分 說明
S 字串表達式,表示待轉換的字串
  • 返回值:函式返回轉換后的日期數據。

  • 示例:

begin
  ShowMessage(DateTimeToStr(StrToDate('2020-01-01')));
end;
1
2
3
  • 運行結果:

2020-01-01

# 9.106. StrToDateDef

function StrToDateDef(const S: String; const Default: TDateTime): TDateTime;
1
  • 該函式將字串轉換為日期值,如果字串不符合日期格式,返回預設值。
部分 說明
S 字串表達式,表示待轉換的字串
Default 日期數據,表示為函式提供的預設值
  • 返回值:函式返回轉換后的日期數據,如果S不符合日期格式,函式返回預設值。

  • 示例:

var
  ADate: TDateTime;
  BDate: TDateTime;
begin
  ADate := StrToDate('2008-01-01');
  BDate := StrToDateDef('2008-01-0s',ADate);
  ShowMessage(DateToStr(BDate));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

2008-01-01

# 9.107. StrToDateTime

function StrToDate(const S: String): TDateTime;
1
  • 該函式將字串轉換為日期值。
部分 說明
S 字串表達式,表示待轉換的字串
  • 返回值:函式返回轉換后的日期時間數據。

  • 示例:

var
  ADate: TDateTime;
begin
  ADate := StrToDateTime('2020-11-01 13:25:28');
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-01 13:25:28

# 9.108. StrToDateTimeDef

function StrToDateTimeDef(const S: String; const Default: TDateTime): TDateTime;
1
  • 該函式將字串轉換為日期時間型別,如果字串不符合格式,則使用預設值。
部分 說明
S 字串表達式,表示待轉換的字串
Default 日期數據,表示為函式提供的預設值
  • 返回值:函式返回轉換后的日期時間數據,如果S不符合日期時間格式,函式返回預設值。

  • 示例:

var
  ADate: TDateTime;
begin
  ADate := StrToDateTimeDef('2008-01-0D 12:59:59',Now);
  ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6

  上述函式運行后,字串表達式中的日期時間數據不符合格式要求,函式返回預設值。

# 9.109. StrToTime

function StrToTime(const S: String): TDateTime;
1
  • 該函式將字串轉換為時間。
部分 說明
S 字串表達式,表示待轉換的字串
  • 返回值:返回轉換后的時間數據。

  • 示例:

var
  ATime: TDateTime;
begin
  ATime := StrToTime('12:59:59');
  if ATime < 0.5 then
    ShowMessage('早上好!')
  else
    ShowMessage('下午好!');
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

下午好!

# 9.110. StrToTimeDef

function StrToDateDef(Const S: string; const Default: TDateTime): TDateTime;
1
  • 該函式將字串轉換為時間,如果字串不符合要求,則返回預設值。
部分 說明
S 字串表達式,表示待轉換的字串
Default 日期數據,表示為函式提供的預設值
  • 返回值:函式返回轉換后的時間數據,如果S不符合時間格式,函式返回預設值。

  • 示例:

var
  ATime: TDateTime;
begin
  ATime := StrToTimeDef('12:00:0s',Now);
  ShowMessage(TimeToStr(ATime));
end;
1
2
3
4
5
6

  該函式運行后,由於時間格式不符合要求,函式返回目前時間。

# 9.111. Time

function Time: TDateTime;
1
  • 函式用於返回目前系統時間。

  • 返回值:函式返回系統目前的時間數據。

  • 示例:

begin
  ShowMessage(TimeToStr(time));
end;
1
2
3
  • 運行結果:該示例運行后,返回目前系統的時間。

# 9.112. TimeOf

function TimeOf(const AValue: TDateTime): TDateTime;
1
  • 該函式用於去掉日期時間數據的日期部分,使其只包含時間部分,將日期設定為0。
部分 說明
AValue 日期時間型別表達式
  • 返回值:函式返回轉換后的時間數據。

  • 示例:

begin
  ShowMessage(FormatDateTime('hh:mm:ss',TimeOf(Now)));
  ShowMessage(FormatDateTime('yyyy-mm-dd',TimeOf(Now)));
end;
1
2
3
4
  • 運行結果:顯示目前時間資訊,日期則顯示為1899-12-30

# 9.113. TimeToStr

function TimeToStr(Time: TDateTime): String;
1
  • 該函式返回日期時間數據中時間部分的字串。
部分 說明
Time 日期時間型別表達式
  • 返回值:函式返回時間部分的字串。

  • 示例:

begin
  ShowMessage(TimeToStr(Now));
end;
1
2
3
  • 運行結果:該示例運行后,顯示目前系統的時間。

# 9.114. Today

function Today: TDateTime;
1
  • 函式Today返回目前的日期數據,時間部分被設定為0。

  • 返回值:返回目前系統的日期。

  • 示例:

begin
  ShowMessage(DateToStr(Today));
end;
1
2
3
  • 運行結果:顯示目前的系統日期。

# 9.115. Tomorrow

function Tomorrow: TDateTime;
1
  • 該函式返回明天的日期數據,時間部分被設定為0。

  • 返回值:函式返回明天日期。

  • 示例:

begin
  ShowMessage(DateToStr(Tomorrow));
end;
1
2
3
  • 運行結果:顯示目前系統的明天的日期。

# 9.116. TryEncodeDate

function TryEncodeDate(Year,Month,Day:Word; out Date: TDateTime): Boolean;
1
  • 該函式根據參數中的年、月、日產生一個日期值,如果產生了日期值,函式返回True,否則返回False。
部分 說明
Year 整型表達式,用於表示產生日期值的年份
Month 整型表達式,用於表示產生日期值的月份
Day 整型表達式,用於某一月的第幾天
Date 日期型表達式,用於儲存產生的日期
  • 返回值:如果函式能夠產生合法的日期,返回值為True,否則返回值為False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDate(2020,11,01,ADate) Then
    ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-01

# 9.117. TryEncodeDateDay

function TryEncodeDateDay(const AYear, ADayOfYear: Word; out AValue: TDateTime): Boolean;
1
  • 該函式根據指定的年份和該年已過的天數計算日期。
部分 說明
AYear 整型表達式,用於表示產生日期的年份
ADayOfYear 整型表達式,用於表示已過的天數
AValue 日期表達式,用於儲存產生的日期數據
  • 返回值:如果函式能夠產生合規的日期,返回值為True,否則返回False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDateDay(2020,306,ADate) Then
    ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-01

# 9.118. TryEncodeDateMonthWeek

function TryEncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word; var AValue: TDateTime): Boolean;
1
  • 該函式根據指定的年、月、每月的第幾周、每週的第幾天等資訊產生一個日期。
部分 說明
AYear 整型表達式,用於表示產生日期的年份
AMonth 整型表達式,用於表示產生日期的月份
AWeekOfMonth 整型表達式,用於表示月份的第幾周
ADayOfWeek 整型表達式,用於表示某一週的第幾天
AValue 日期表達式,用於儲存產生的日期數據
  • 返回值:如果函式能夠產生合規的日期,返回值為True,否則返回False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDateMonthWeek(2020,11,2,2,ADate) Then
    ShowMessage(DateToStr(ADate));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-10

# 9.119. TryEncodeDateTime

function TryEncodeDateTime(Year,Month,Day,Hour,Minute,Second,Millisecond:Word; out Date: TDateTime): Boolean;
1
  • 該函式根據參數中的年、月、日產生一個日期值,如果產生了日期值,函式返回True,否則返回False。
部分 說明
Year 整型表達式,用於表示產生日期值的年份
Month 整型表達式,用於表示產生日期值的月份
Day 整型表達式,用於某一月的第幾天
Hour 整型表達式,用於表示小時
Minute 整型表達式,用於表示分鐘
Second 整型表達式,用於表示秒
Millisecond 整型表達式,用於表示毫秒
Date 日期型表達式,用於儲存產生的日期
  • 返回值:如果函式能夠產生合法的日期時間,返回值為True,否則返回值為False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDateTime(2020,11,01,12,13,32,293,ADate) Then
    ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-01 12:13:32

# 9.120. TryEncodeDateWeek

function TryEncodeDateWeek(const AYear, AWeekOfYear: Word; out AValue: TDateTime; const ADayOfWeek: Word): Boolean;
1
  • 該函式根據指定的年及該年的第幾周計算一個日期。
部分 說明
AYear 整型表達式,用於表示產生日期的年份
AWeekOfYear 整型表達式,用於表示已過的星期數
AValue 日期型表達式,用於儲存產生的日期
ADayOfWeek 整型表達式,用於表示星期幾,預設為1
  • 返回值:如果函式能夠產生合法的日期,返回值為True,否則返回值為False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDateWeek(2020,14,ADate,1) Then
    ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
  • 運行結果:

2020-03-30

# 9.121. TryEncodeDayOfWeekInMonth

function TryEncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word; out AValue: TDateTime): Boolean;
1
  • 該函式用於根據指定的年、月、星期以及星期在某一月中出現的次數等資訊產生一個日期值。
部分 說明
AYear 整型表達式,用於表示產生日期的年份
AMonth 整型表達式,用於表示產生日期的月份
ANthDayOfWeek 整型表達式,用於指定ADayOfWeek在某一月中出現的次數
ADayOfWeek 整型表達式,用於表示星期幾
AValue 日期型表達式,用於儲存產生的日期
  • 返回值:如果函式能夠產生合法的日期,返回值為True,否則返回值為False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeDayOfWeekInMonth(2020,11,1,2,ADate) Then
    ShowMessage(DateTimeToStr(ADate));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-03

# 9.122. TryEncodeTime

function TryEncodeTime(Hour, Min, Sec, MSec: Word; out Time: TDateTime): Boolean;
1
  • 該函式根據指定的小時、分、秒、毫秒產生一個時間值。
部分 說明
Hour 整型表達式,用於表示產生時間的小時
Min 整型表達式,用於表示產生時間的分鐘
Sec 整型表達式,用於表示秒
MSec 整型表達式,用於表示毫秒
Time 日期型表達式,用於儲存產生的日期
  • 返回值:如果函式能夠產生合法的日期,返回值為True,否則返回值為False。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryEncodeTime(12,31,45,122,ADate) Then
    ShowMessage(FormatDateTime('hh:mm:ss:zzz',ADate));
end;
1
2
3
4
5
6
  • 運行結果:

12:31:45:122

# 9.123. TryRecodeDateTime

function TryRecodeDateTime(const AValue: TDateTime; const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word; out AResult: TDateTime): Boolean;
1
  • 該函式能夠對指定的日期數據部分或全部內容進行修改。
部分 說明
AValue 日期型數據,表示欲修改的數據
AYear 整型表達式,表示新日期的年份
AMonth 整型表達式,表示新日期的月份
ADay 整型表達式,表示新日期的日
AHour 整型表達式,用於表示新日期的小時
AMinute 整型表達式,用於表示新日期的分鐘
ASecond 整型表達式,用於表示新日期的秒
AMilliSecond 整型表達式,用於表示新日期的毫秒
out AResult 日期型表達式,用於儲存修改後的日期
  • 返回值:函式返回日期。

  • 示例:

var
  ADate: TDateTime;
begin
  if TryRecodeDateTime(Now,2020,11,1,12,33,45,122,ADate) Then
    ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',ADate));
end;
1
2
3
4
5
6
  • 運行結果:

2020-11-01 12:33:45:122

# 9.124. TryStrToDate

function TryStrToDate(const S: String; out Value: TDateTime): Boolean;
1
  • 該函式將字串轉換為日期。
部分 說明
S 字串表達式,表示欲轉換的數據
Value 日期表達式,用於儲存轉換后的數據
  • 返回值:如果函式能夠將字串轉換為日期,返回值為True,否則返回值為False。

  • 示例:

var
  temp: TDateTime;
  msg: String;
begin
  if TryStrToDate('2005.06-1D',temp) Then
    msg := DateToStr(temp)
  else
    msg := '字串不符合格式要求';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
10
  • 運行結果:運行上述程式碼,由於時間格式不正確,顯示字串不符合格式要求提示框。

# 9.125. TryStrToDateTime

function TryStrToDateTime(const S: String; out Value: TDateTime): Boolean;
1
  • 該函式將字串轉換為日期。
部分 說明
S 字串表達式,表示欲轉換的數據
Value 日期表達式,用於儲存轉換后的數據
  • 返回值:如果函式能夠將字串轉換為日期時間,返回值為True,否則返回值為False。

  • 示例:

var
  temp: TDateTime;
  msg: String;
begin
  if TryStrToDateTime('2005-06-11 12:30',temp) Then
    msg := DateTimeToStr(temp)
  else
    msg := '字串不符合格式要求';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
10
  • 運行結果:運行上述程式碼,顯示2005-06-11 12:30。

# 9.126. TryStrToTime

function TryStrToTime(const S: String; out Value: TDateTime): Boolean;
1
  • 該函式將字串轉換為日期。
部分 說明
S 字串表達式,表示欲轉換的數據
Value 日期表達式,用於儲存轉換后的數據
  • 返回值:如果函式能夠將字串轉換為時間,返回值為True,否則返回值為False。

  • 示例:

var
  temp: TDateTime;
  msg: String;
begin
  if TryStrToTime('12:30',temp) Then
    msg := TimeToStr(temp)
  else
    msg := '字串不符合格式要求';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
10
  • 運行結果:運行上述程式碼,顯示12:30。

# 9.127. WeekOf

function WeekOf(const AValue: TDateTime): Word;
1
  • 該函式根據日期值返回日期值所在的周在一年中的週數。
部分 說明
AValue 日期表達式,用於指定日期數據
  • 返回值:函式返回參數指定的日期在一年中的週數。

  • 示例:

begin
  ShowMessage(IntToStr(WeekOf(Now)));
end;
1
2
3
  • 運行結果:運行后顯示當天的本年週數。

# 9.128. WeekOfTheMonth

function WeekOfTheMonth(const AValue: TDateTime): Word;
1
  • 該函式根據指定的日期判斷本週是本月中的第幾周。
部分 說明
AValue 日期表達式,用於表示指定日期數據
AYear 整型表達式,用於返回日期中的年份
AMonth 整型表達式,用於返回日期中的月份
  • 返回值:函式返回參數指定的日期在本月中的週數。

  • 示例:

begin
  ShowMessage(IntToStr(WeekOfTheMonth(Now)));
end;
1
2
3
  • 運行結果:顯示當天在本月中的週數。

# 9.129. WeekOfTheYear

function WeekOfTheYear(const AValue: TDateTime): Word;
1
  • 該函式根據日期值返回日期值所在的周在一年中的週數。
部分 說明
AValue 日期表達式,用於指定日期數據
AYear 整型表達式,用於返回日期中的年份
  • 返回值:函式返回參數指定的日期在所標識的年中的週數。

  • 示例:

begin
  ShowMessage(IntToStr(WeekOfTheYear(Now)));
end;
1
2
3
  • 運行結果:顯示本週在一年中的週數。

# 9.130. WeeksBetween

function WeeksBetween(const ANow, AThen: TDateTime): Integer;
1
  • 該函式用於計算兩個日期之間的週數。
部分 說明
ANow 待比較的日期
AThen 待比較的日期
  • 返回值:函式返回參數指定的時間段的週數。

  • 示例:

begin
  ShowMessage(IntToStr(WeeksBetween(Now , Now + 14)));
end;
1
2
3
  • 運行結果:

2

# 9.131. WithinPastHours

function WithinPastHours(const ANow, AThen: TDateTime; const AHours: Int64): Boolean;
1
  • 該函式判斷兩個時間段之間的差距是否在指定的小時之內。
部分 說明
ANow 待比較的日期
AThen 待比較的日期
AHours 整型表達式,用於指定時間段的差距
  • 返回值:如果指定的時間段小於等於AHours,函式返回True,否則返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastDays(StrToTime('12:00:00') , StrToTime('15:00:00'),3) Then
    msg := '差距小於等於3'
  else
    msg := '差距大於3';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

差距小於等於3

# 9.132. WithinPastMilliSeconds

function WithinPastMilliSeconds(const ANow, AThen: TDateTime; const AMilliSeconds: Int64): Boolean;
1
  • 該函式判斷兩個時間段之間的差距是否在指定的毫秒之內。
部分 說明
ANow 日期表達式
AThen 日期表達式
AMilliSeconds 整型表達式,用於指定時間段的差距
  • 返回值:如果指定的時間段小於等於AMilliSeconds,函式返回True,否則返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastMilliSeconds(StrToTime('12:00:00.099') , StrToTime('12:00:00.999'),1000) Then
    msg := '差距小於等於1000'
  else
    msg := '差距大於1000';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

差距小於等於1000。

# 9.133. WithPastMinutes

function WithinPastMinutes(const ANow, AThen: TDateTime; const AMinutes: Int64): Boolean;
1
  • 該函式判斷兩個時間段之間的差距是否在指定的分鐘數之內。
部分 說明
ANow 日期表達式
AThen 日期表達式
AMinutes 整型表達式,用於指定時間段的差距
  • 返回值:如果指定的時間算小於等於AMinutes,函式返回True,否則返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastMinutes(StrToTime('12:10:00') , StrToTime('12:03:00'),6) Then
    msg := '差距小於等於6'
  else
    msg := '差距大於6';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

差距大於6

# 9.134. WithinPastMonths

function WithinPastMonths(const ANow, AThen: TDateTime; const AMonths: Integer): Boolean;
1
  • 該函式判斷兩個時間段之間的差距是否在指定的月數之內。
部分 說明
ANow 日期表達式
AThen 日期表達式
AMonths 整型表達式,用於指定時間段的差距
  • 返回值:如果指定的時間段小於等於AMonths,函式返回True,否則返回False。
var
  msg: String;
begin
  if WithinPastMonths(StrToDate('2020-11-1') , StrToDate('2023-12-1'),28) Then
    msg := '差距小於等於28'
  else
    msg := '差距大於28';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

差距大於28

# 9.135. WithinPastSeconds

function WithinPastSeconds(const ANow, AThen: TDateTime; const ASeconds: Int64): Boolean;
1
  • 該函式判斷兩個時間段之內的差距是否在指定的秒數之內。
部分 說明
ANow 日期表達式
AThen 日期表達式
ASeconds 整型表達式,用於指定時間段的差距
  • 返回值:如果指定的時間段小於等於ASeconds,函式返回True,否則返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastSeconds(StrToDateTime('2020-11-1 12:00:00') , StrToDateTime('2020-11-10 12:00:11'),864000) Then
    msg := '差距小於等於864000'
  else
    msg := '差距大於864000';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

差距小於等於86400

# 9.136. WithinPastWeeks

function WithinPastWeeks(const ANow, AThen: TDateTime; const AWeeks: Integer): Boolean;
1
  • 該函式判斷兩個時間段之間的差距是否在指定的週數之內。
部分 說明
ANow 日期表達式
AThen 日期表達式
AWeeks 整型表達式,用於指定時間段的差距
  • 返回值:如果指定的時間段小於等於AWeeks,函式返回True,否則返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastWeeks(StrToDateTime('2020-11-1 12:00:00') , StrToDateTime('2020-11-10 12:00:11'),2) Then
    msg := '差距小於等於2'
  else
    msg := '差距大於2';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

差距小於等於2

# 9.137. WithinPastYears

function WithinPastYears(const ANow, AThen: TDateTime; const AYears: Integer): Boolean;
1
  • 該函式用於判斷兩個時間段之間的差距是否在指定的年數之內。
部分 說明
ANow 日期表達式
AThen 日期表達式
AYears 整型表達式,用於指定時間段的差距
  • 返回值:如果指定的時間段小於等於AYears,函式返回True,否則返回False。

  • 示例:

var
  msg: String;
begin
  if WithinPastYears(StrToDateTime('2020-11-1 12:00:00') , StrToDateTime('2021-10-30 12:00:00'),1) Then
    msg := '差距小於等於1'
  else
    msg := '差距大於1';
  ShowMessage(msg);
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

差距小於等於1

# 9.138. YearOf

function YearOf(const AValue: TDate): Word;
1
  • 該函式返回指定日期的年份。
部分 說明
AValue 日期表達式,用於指定日期數據
  • 返回值:函式返回AValue所標識的年份。

  • 示例:

begin
  ShowMessage(IntToStr(YearOf(Now)));
end;
1
2
3
  • 運行結果:運行后顯示當天顯示的年份數。

# 9.139. YearsBetween

function YearsBetween(const ANow, AThen: TDateTime): Integer;
1
  • 函式返回兩個日期數據之間大約的年數。
部分 說明
ANow 日期表達式
AThen 日期表達式
  • 返回值:函式返回兩個日期數據之間大約的年數。

  • 示例:

begin
  ShowMessage(FloatToStr(YearsBetween(Now,StrToDate('2077-10-11'))));
end;
1
2
3
  • 運行結果:運行后顯示當天與2077年相差的年數。

# 9.140. YearsSpan

function YearSpan(const ANow, AThen: TDateTime): Double;
1
  • 該函式返回兩個日期數據之間大約的年數,包含小數部分。
部分 說明
ANow 日期表達式
AThen 日期表達式
  • 返回值:函式返回兩個日期之間大約的年數,包含小數部分。

  • 示例:

begin
  ShowMessage(FloatToStr(YearSpan(Now,StrToDate('2077-10-11'))));
end;
1
2
3
  • 運行結果:運行后顯示當天與2077年相差的年數,包含小數部分。

# 9.141. YesterDay

function Yesterday: TDateTime;
1
  • 該函式返回昨天的日期。

  • 返回值:函式返回昨天的系統日期。

  • 示例:

begin
  ShowMessage(DateToStr(Yesterday));
end;
1
2
3
  • 運行結果:該函式返回昨天的系統日期。

# 10. 型別轉換函式

# 10.1. Bounds

function Bounds(ALeft, ATop, AWidth, AHeight: Integer): TRect;
1
  • 該函式獲得某個矩形。
部分 說明
ALeft,ARight,AWidth,AHeight 轉換區域的規格大小
  • 返回值:返回一個TRect型別的矩陣。

  • 示例:

var
  MyRect : TRect;
begin
  MyRect := Bounds(10,10,50,50);
end;
1
2
3
4
5
  • 運行結果:設定一個指定規格的矩形。

# 10.2. IntToHex

function IntToHex(Vlue:Integer;Digits:Integer):String;
1
  • 該函式將一個數字轉換成一個字串,字串中包含該數字的十六進制表現形式。
部分 說明
Value 將要轉換的整形值
Digits 轉換位數
  • 返回值:返回轉換后的字串。
var
  S: Integer;
begin
  S := 2147483647;
  ShowMessage(IntToHex(S,0));
  ShowMessage(IntToHex(S,8));
  ShowMessage(IntToHex(S,10));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

7FFFFFFF 007FFFFFFF

# 10.3. IntToStr

function IntToStr(Value: Integer): String;
1
  • 該函式將一個指定整型值轉換成一個字串。
部分 說明
Value 將要轉換的整型值
  • 返回值:返回轉換后的字串。

  • 示例:

  begin
     ShowMessage(IntToStr(1982));
     ShowMessage(IntToStr(-1982));
  end;
1
2
3
4
  • 運行結果:

1982 -1982

# 10.4. Point

function Point(AX,AY: Integer): TPoint;
1
  • 該函式建立一個TPoint結構表示AX,AY指定的座標。
參數 說明
AX,AY 轉換座標
  • 返回值:返回一個TPoint型別的值。

  • 示例:

var
  TP: TPoint;
begin
  TP := Point(10,10);
end;
1
2
3
4
5

  該端程式碼在座標(10,10)的位置建立一個TPoint型別的點。

# 10.5. Rect

function Rect(ALeft,ATop,ARight,ABottom: Integer): TRect;
1
  • 該函式用一組座標建立一個TRect結構,此結構用指定的座標表示矩形。
參數 說明
ALeft 左邊界座標
ARight 右邊界座標
ATop 上邊界座標
ABottom 下邊界座標
ATopLeft 左上角的點
ABottomRight 右下角的點
  • 返回值:返回一個TRect型別的矩陣。

  • 示例:

var
  MyRect: TRect;
begin
  MyRect := Rect(10,10,170,70);
end;
1
2
3
4
5

# 10.6. StreamToStr

Function StreamToStr(Astream:TMemoryStream):String;
1
  • 該函式將位元組流轉換為字串。
部分 說明
Astream 被轉換的流
  • 返回值:返回轉換后的字串。

# 10.7. StrToBool

function StrToBool(const S: String): Boolean;
1
  • 該函式將參數指定的字串轉化為Boolean型別的值,字串為非邏輯表達式時將引起異常。
參數 說明
S 將要轉換的字串,如"True"或"False"
  • 返回值:返回轉換后的Boolean型別值。

  • 示例:

var
  bools: string;
begin
  bools := 'true';
  if StrToBool(bools) Then
  begin
    ShowMessage('True');
  End;
end;
1
2
3
4
5
6
7
8
9
  • 運行結果:

True

# 10.8. StrToBoolDef

function StrToBoolDef(const S: String; const Default: Boolean): Boolean;
1
  • 該函式將參數指定的字串轉化為Boolean型別值,字串為非邏輯表達式時將返回預設值。
參數 說明
S 將要轉換的字串
Default 預設返回值
  • 返回值:返回轉換后的Boolean型別值。

  • 示例:

begin
  if StrToBoolDef('0',True) Then
    ShowMessage('True')
  else
    ShowMessage('False');
  if StrToBoolDef('-1',True) Then
    ShowMessage('True')
  else
    ShowMessage('False');
  if StrToBoolDef('5',True) Then
    ShowMessage('True')
  else
    ShowMessage('False');
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • 運行結果:

False True True

# 10.9. StrToInt

function StrToInt(const S: String): Integer;
1
  • 函式將參數指定用的二進制或十六進制符號表示的一個整形字串轉換為一個整數值。
部分 說明
S 將要轉換的字串
  • 返回值:返回轉換后的整形值。

  • 示例:

var
  si: String;
  i: Integer;
begin
  si := '19091103';
  i := StrToInt(si);
end;
1
2
3
4
5
6
7

  該端程式碼將字串si轉換為整型值,並存儲到變數i中,i的值為19091103。

# 10.10. StrToIntDef

function StrToIntDef(const S: String; const Default: Integer): Integer;
1
  • 該函式將指定的一個表示整型數字的字串轉換為一個數值。
參數 說明
S 將要轉換的字串
Default 預設返回值
  • 返回值:返回轉換后的整型值,如果S不能夠轉換為整型值,則返回預設值Default。

  • 示例:

var
  i: Integer;
  s: String;
begin
  s := 'First';
  i := StrToIntDef(s,18);
  ShowMessage(IntToStr(i));
end;
1
2
3
4
5
6
7
8
  • 運行結果:

18

# 10.11. TryStrToBool

function TryStrToBool(const S: String;out Value: Boolean): Boolean;
1
參數 說明
S 將要轉換的字串
Value 轉換后值返回的位置
  • 返回值:返回轉換是否成功,成功返回True,否則返回False。
var
  i: Integer;
  s: String;
  sd: Boolean;
begin
  for i := 0 To 3 Do
  begin
    case i Of
    0: s := '0';
    1: s := '3';
    2: s := '-4';
    3: s := '……';
    End;
    if TryStrToBool(s,sd) Then
    begin
      if sd Then
        ShowMessage('True')
      else
        ShowMessage('False');    
    End
    else
      ShowMessage('數值不為字元型');
    end;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  • 運行結果:

False True True 數值不為字元型。

# 10.12. TryStrToInt

function TryStrToInt(const S: String;out Value: Integer): Boolean;
1
參數 說明
S 將要轉換的字串
Value 返回值賦予的變數
  • 返回值:如果轉換成功則返回 True,否則返回False。

  • 示例:

var
  i,k: Integer;
  s: String;
begin
  s := '......';
  for k := 0 To 1 Do
  begin
    if TryStrToInt(s,i) Then
      ShowMessage(IntToStr(i))
    else
      ShowMessage('不為數字型。');
    s := '34';
  End;
End;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • 運行結果:

不為數字型。 34

# 11. 檔案處理函式

# 11.1. ExcludeTrailingBackslash

function ExcludeTrailingBackslash(const S: string): string;
1
  • 改函式使用多位元組字符集,它刪除參數中結束路徑界定符\,並向後相容。
部分 說明
S 待轉換的字串
  • 返回值:返回刪除界定符的字串。

  • 示例:

var
  s: String;
begin
  s := ExcludeTrailingBackslash('D:\test\');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:

D:\test

# 11.2. ExcludeTrailingPathDelimiter

function ExcludeTrailingPathDelimiter(const S: string): string;
1
部分 說明
S 待轉換的字串
  • 該函式使用多位元組字符集,它刪除參數中結束路徑界定符\,若參數中最後一個字元為界定符,則刪除該字元,否則參數無改變返回。

  • 返回值:返回刪除界定符的字串。

  • 示例:

var
  s: String;
begin
  s := ExcludeTrailingPathDelimiter('D:\test\');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:

D:\test

# 11.3. ExpandFileName

function ExpandFileName(const FileName: string): string;
1
  • 該函式將相對檔名轉換為完全標準化路徑。它不驗證產生的完全標準化路徑是否引用一個現有的檔案。
部分 說明
FileName 待查詢的檔名稱(相對檔名稱)
  • 返回值:返回一個標準化檔案路徑。

  • 示例:

var
  s: String;
begin
  s := ExpandFileName('test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:顯示目前相對路徑的完全標準化路徑。

# 11.4. ExpandUNCFileName

function ExpandUNCFileName(const FileName: string): string;
1
  • 該函式利用網路檔案的通用命名協議(NUC)返回一個完全標準化的路徑名。本地的檔名使用方式同ExpandFileName。
部分 說明
FileName 待查詢的檔名稱(相對檔名稱)
  • 返回值:返回一個標準化檔案路徑。

  • 示例:

var
  s: String;
begin
  s := ExpandUNCFileName('test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:顯示目前相對路徑的完全標準化路徑。

# 11.5. ExtractFileDir

function ExtractFileDir(const FileName: string): string;
1
  • 該函式從檔名中提取驅動器和目錄部分。
部分 說明
FileName 待查詢的檔名稱
  • 返回值:返回一個目錄路徑。

  • 示例:

var
  s: String;
begin
  s := ExtractFileDir('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:顯示目前相對路徑的目錄路徑。例如D:\

# 11.6. ExtractFileDrive

function ExtractFileDrive(const FileName: string): string;
1
  • 該函式返回完全標準化路徑名的驅動器部分。
部分 說明
FileName 待查詢的檔名稱
  • 返回值:返回一個目錄路徑。

  • 示例:

var
  s: String;
begin
  s :=  ExtractFileDrive('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:顯示目前路徑的驅動器名稱。例如D:

# 11.7. ExtractFileName

function ExtractFileName(const FileName: string): string;
1
  • 該函式用於從指定的字串中提取檔名。
部分 說明
FileName 待查詢的檔名稱
  • 返回值:返回一個目錄路徑。

  • 示例:

var
  s: String;
begin
  s :=  ExtractFileName('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:顯示路徑。例如test.txt

# 11.8. ExtractFileExt

function ExtractFileExt(const FileName: string): string;
1
  • 該函式返回FileName參數指定檔名的副檔名,產生的字串包含分隔檔名的副檔名和副檔名的句點符。
部分 說明
FileName 待查詢的檔名稱
  • 返回值:返回一個檔案的副檔名。

  • 示例:

var
  s: String;
begin
  s :=  ExtractFileExt('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:

.txt

# 11.9. ExtarctFilePath

function ExtractFilePath(const FileName: string): string;
1
  • 該函式用於返回指定檔案的工作路徑。
部分 說明
FileName 指定的檔名
  • 返回值:返回檔案的工作路徑。

  • 示例:

var
  s: String;
begin
  s :=  ExtractFilePath('D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:

D:\

# 11.10. ExtractRelativePath

function ExtractRelativePath(const BaseName, DestName: string): string;
1
  • 該函式用於將完全標準化的路徑轉換為相對路徑名。
部分 說明
BaseName 基本目錄的完全標準化路徑,不一定包含檔名
DestName 指定被轉換的檔名(包含路徑)
  • 返回值:返回指定的路徑。

  • 示例:

var
  s: String;
begin
  s :=  ExtractRelativePath('D:\test\','D:\test.txt');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:

..\test.txt

# 11.11. FileAge

function FileAge(const FileName: string): LongInt; overload;
1
  • 該函式返回指定檔案的操作系統時間。
部分 說明
FileName 指定的檔名
  • 返回值:返回指定檔案的操作系統時間,如果返回-1則表示檔案沒有找到。

  • 示例:

begin
  ShowMessage(IntToStr(FileAge('D:\test.txt')));
end;
1
2
3
  • 運行結果:執行該語句后,返回檔案的日期時間。

# 11.12. FileExists

  function FileExists(const FileName: String): Boolean;
1
  • 該函式用於測試指定的檔案是否存在。
部分 說明
FileName 指定檔案的名稱
  • 返回值:如果指定的檔案存在返回True,否則返回False。

  • 示例:

begin
  if FileExists('sample.pdf') then
    ShowMessage('檔案存在')
  else
    ShowMessage('檔案不存在');
end;
1
2
3
4
5
6
  • 運行結果:

檔案不存在

# 11.13. FileIsReadOnly

function FileIsReadOnly(const FileName: string): Boolean;
1
  • 該函式用於判斷指定檔案是否是隻讀的。
部分 說明
FileName 指定檔案的名稱
  • 返回值:如果檔案為只讀則返回True,否則返回False。

  • 示例:

begin
  ShowMessage(BoolToStr(FileIsReadOnly('E:\test.txt'),True));
end;
1
2
3
  • 運行結果:判斷指定檔案是否為只讀檔案,並彈窗顯示。

# 11.14. FileSetReadOnly

function FileSetReadOnly(const FileName: string; ReadOnly: Boolean): Boolean;
1
  • 該函式設定檔案是否未只讀。
部分 說明
FileName 指定檔案的檔名
ReadOnly 是否為只讀,如果為True則設定檔案為只讀,否則設定檔案為讀寫
  • 返回值:設定成功則返回True,否則返回False。

  • 示例:

begin
  if FileSetReadOnly('D:\test.txt',True) then
    ShowMessage('設定檔案為只讀屬性成功');
end;
1
2
3
4
  • 運行結果:將對應的檔案設定為只讀屬性。

# 11.15. ForceDirectoris

function ForceDirectories(Dir: string): Boolean;
1
  • 該函式在指定的目錄中建立一個目錄。
部分 說明
Dir 建立目錄的全名,必須包括上級目錄
  • 返回值:如果建立成功則返回True,否則會返回False。

  • 示例:

var
  Dir: String;
begin
  Dir := 'D:\test\sample';
  if ForceDirectories(Dir) then
    ShowMessage(Dir + '建立成功!' );
end;
1
2
3
4
5
6
7
  • 運行結果:成功建立指定的目錄。

# 11.16. GetCurrentDir

function GetCurrentDir: string;
1
  • 該函式返回目前目錄。

  • 返回值:返回目前目錄名稱。

  • 示例:

begin
  ShowMessage(GetCurrentDir);
end;
1
2
3
  • 運行結果:顯示目前的目錄名稱。

# 11.17. InCludeTrailingBackslash

function IncludeTrailingBackslash(const S: string): string;
1
  • 該函式確保路徑名以路徑定界符\結束。
部分 說明
S 待檢查的字串路徑
  • 返回值:返回檢查后的路徑。

  • 示例:

var
  s: String;
begin
  s :=  IncludeTrailingBackslash('D:\test');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:

D:\test\

# 11.18. InCludeTrailingPathDelimiter

function IncludeTrailingPathDelimiter(const S: string): string;
1
  • 該函式確保路徑名以路徑定界符\結束,若參數S表示的路徑名已經以路徑定界符\結束,則返回的字串無變化;否則將S字串加上定界符返回。
部分 說明
S 待檢查的字串路徑
  • 返回值:返回檢查后的路徑。

  • 示例:

var
  s: String;
begin
  s :=  IncludeTrailingPathDelimiter('D:\test');
  ShowMessage(s);
end;
1
2
3
4
5
6
  • 運行結果:

D:\test\

# 11.19. IOResult

function IOResult: Integer;
1
  • 該函式返回最後一次I/O操作的狀態資訊。

  • 返回值:如果最後一次I/O操作執行成功則返回0,否則返回錯誤程式碼。

  • 示例:

begin
  if IOResult = 0 then
    ShowMessage('上一次讀寫操作成功');
end;
1
2
3
4
  • 運行結果:如果I/O運行操作無錯誤發生則顯示上一次讀寫操作成功。

# 11.20. MatchesMask

function MatchesMask(const Filename, Mask: string): Boolean;
1
  • 該函式利用描述的Mask參數檢查FileName是否與過濾器指定的字串格式一致。一個有效的過濾器包含文字字元、字符集和萬用字元。
部分 說明
FileName 待檢查的字串
Mask 匹配的字串
  • 返回值:如果兩者匹配,返回True,否則返回False。

  • 示例:

begin
  if MatchesMask('Hello','Hello') then
    ShowMessage('OK')
  else
    ShowMessage('no');
end;
1
2
3
4
5
6
  • 運行結果:

OK

# 11.21. ReadIni

function ReadIni(filename,Section,Ident:String;Const Default:String="):String;
1
  • 該函式用於讀取配置檔案的資訊,並返回參數值。
部分 說明
filename 檔名稱
section 配置分組名稱
Ident 配置參數值名稱

# 11.22. SetCurrentDir

function SetCurrentDir(const Dir: string): Boolean;
1
  • 該函式能夠改變目前目錄。
部分 說明
Dir 改變后的目標目錄名稱
  • 返回值:如果執行成功返回True,否則返回False。

  • 示例:

var
  Dir: String;
begin
  Dir := 'D:\test';
  if SetCurrentDir(Dir) then
    ShowMessage(GetCurrentDir());
end;
1
2
3
4
5
6
7
  • 運行結果:

D:\test

# 12. 格式化函式

# 12.1. Format

function Format(const Format: string; const Args: array of const): String;
1
  • 該函式按照指定方式格式化一個陣列常量的字元形式。
部分 說明
Format 是一個字串表達式,指定格式化所使用的格式
Args 是一個陣列表達式,指定要格式化的內容
  • 返回值:函式返回指定的格式格式化后的字串。

  • 示例:

 ShowMessage(Format('x=%d',[12]));  //'x=12'//最普通
 ShowMessage(Format('x=%3d',[12])); //'x= 12'//指定寬度,若小於指定的寬度在前面補空格
 ShowMessage(Format('x=%f',[12.0]));  //'x=12.00'//浮點數
 ShowMessage(Format('x=%.3f',[12.0])); //'x=12.000' //指定小數點后的位數
 ShowMessage(Format('x=%.*f',[5,12.0])); //'x=12.00000' //動態配置小數位數
 ShowMessage(Format('x=%.5d',[12]));     // 'x=00012' //前面補0
 ShowMessage(Format('x=%.5x',[12]));     //'x=0000C'  //轉換為十六進制
 ShowMessage(Format('x=%1:d%0:d',[12,13])); //'x=1312' //使用索引替換指定位置的字元
 ShowMessage(Format('x=%p',[nil]));         //'x=00000000' //返回指針型別的地址
 ShowMessage(Format('x=%1.1e',[12.0]));     //'x=1.2E+001' //科學記數法
 ShowMessage(Format('x=%%',[]));            //'x=%' //得到"%"
1
2
3
4
5
6
7
8
9
10
11

# 12.2. FormatBuf

function FormatBuf(var Buffer; BufLen: Cardinal; const Format; FmtLen: Cardinal; const Args: array of const): Cardinal;
1
  • 該函式按指定方式格式化一個陣列常量到緩衝區Buffer中。
部分 說明
Buffer Cardinal型別的緩衝區
BufLen 緩衝區的大小
Format 指定格式化所使用的格式
FmtLen 格式化表達式的長度
Args 陣列表達式,指定要格式化的內容
FormatSettings 記錄型別,包含了系統預定義的格式化方法
  • 返回值:返回緩衝區的函式。

  • 示例:FmtStr程式是通過FormatBuf函式來實現的。

procedure FmtStr(var Result: string; const Format: string; const Args: array of const);
var
  Len,BufLen: Integer;
  Buffer: array[0..4095] of Char;
begin
  BufLen := SizeOf(Buffer);
  if Length(Format) < (sizeof(Buffer)-(sizeof(Buffer) div 4)) then
    Len := FormatBuf(Buffer,SizeOf(Buffer) - 1, Pointer(Format)^, Length(Format),Args)
  else
  begin
    BufLen := Length(Format);
    Len := BufLen;
  end;
  if Len >= BufLen -1 then
  begin
    while Len >= BufLen - 1 do
    begin
      Inc(BufLen,BufLen);
      Result := '';
      SetLength(Result,BufLen);
      Len := FormatBuf(Pointer(Result)^,BufLen - 1,Pointer(Format)^, Length(Format),Args);
    end;
    SetLength(Result,Len);
  end
  else
  SetString(Result,Buffer,Len);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 12.3. FormatCurr

function FormatCurr(const Format: string; Value: Currency): string;
1
  • 該函式將貨幣型別以指定的格式轉換成字串。
部分 說明
Format 用於指定格式化的字串
Value 將要格式化的內容
  • 返回值:返回將貨幣型別以指定格式轉換成的字串。

  • 示例:

var
  S: String;
begin
  S := FormatCurr('#,##0.00;;Zero',0.5);
  ShowMessage(S);
end;
1
2
3
4
5
6
  • 運行結果:

0.50

# 12.4. FormatDateTime

function FormatDateTime(const Format: String; DateTime: TDateTime): String;
1
  • 該函式用於格式化顯示日期時間。
部分 說明
Format 用於指定格式化的字串
DateTime 格式化顯示的內容
  • 返回值:返回用指定的格式來格式化日期時間的字串。

  • 示例:

ShowMessage(FormatDateTime('"The Metting is on" dddd,mm mm d, yyyy," at " hh:mm AM/PM',Now +0.125));
1
  • 運行結果:

The Metting is on 星期日,11 11 9 2020,at 01:44 AM。

# 12.5. FormatFloat

function FormatFloat(const Format: String; value: Extended): string;
1
部分 說明
Format 是一個字串表達式,指定格式化所使用的格式
Value 指定要格式化的內容
  • 返回值:返回將浮點數型別以指定格式轉換成的字串。

  • 示例:

下方表格展示參數的轉換形式。

格式化字串 1234 -1234 0.5 0 命令
為空時 1234 -1234 0.5 0 FormatFloat('',0.5)
0 1234 -1234 1 0 FormatFloat('0',0.5)
0.00 1234.00 -1234.00 0.50 0.00 FormatFloat('0.00',0.5)
#.## 1234 -1234 .5 FormatFloat('#.##',0.5)
#,##0.00 1,234.00 -1,234.00 0.50 0.00 FormatFloat('#,##0.00',0.5)
#,##0.00;(#,##0.00) 1,234.00 (1,234.00) 0.50 0.00 FormatFloat('#,##0.00;(#.##0.00)',0.5)
#,##0.00;;Zero 1,234.00 -1,234.00 0.50 0.00 FormatFloat('#,##0.00;;Zero',0.5)
0.000E+00 1.234E+03 -1.234E+03 5.000E-01 0.000E+00 FormatFloat('0.000E+00',0.5)
#.###E-0 1.234E3 -1.234E3 5E-1 0E0 FormatFloat('#.###E-0',0.5)

# 12.6. StrFmt

function StrFmt(Buffer, Format: PAnsiChar; const Args: array of const): PAnsiChar;
1
  • 該函式按指定方式格式化一個陣列常量的字元指針形式。
部分 說明
Buffer 是一個字元型別的指針,將格式化后的字串儲存在該變數中。
Format 是一個字串表達式,指定格式化所使用的格式。
Args 是一個陣列表達式,指定要格式化的內容
FormatSettings 是一個記錄型別,包含了系統預定義的格式化方法
  • 返回值:該函式返回格式化后的字元指針。

  • 示例:

var
  Str: PAnsiChar;
begin
  GetMem(Str,255);
  StrFmt(Str,'x=%.5d',[2]);
  ShowMessage(Str);
  FreeMem(Str,255);
end;
1
2
3
4
5
6
7
8
  • 運行結果:

x=00002

# 12.7. StrLFmt

function StrLFmt(Buffer: PAnsiChar; MaxBufLen: Cardinal; Format: PAnsiChar; const Args: array of const): PAnsiChar;
1
  • 該函式按指定方式和長度格式化一個陣列常量的字元指針形式。
部分 說明
Buffer 是一個字元型別的指針,將格式化后的字串儲存在該變數中
MaxLen 是一個整型值,指定格式化時的字串長度
Format 是一個字串表達式,指定格式化所使用的格式
Args 是一個陣列表達式,指定要格式化的內容
  • 返回值:該函式返回字串的指針地址。

  • 示例:

var
  Str: PAnsiChar;
begin
  GetMem(Str,255);
  StrLFmt(Str,8,'x=%d|1234',[1024]);
  ShowMessage(Str);
  FreeMem(Str,255);
end;
1
2
3
4
5
6
7
8
  • 運行結果:

x=1024|1

# 12.8. WideFormat

function WideFormat(const Format: WideString; const Args: array of const): WideString;
1
  • 該函式按指定方式格式化一個陣列常量的多位元組字元形式。
部分 說明
Format 是一個字串表達式,指定格式化所使用的格式
Args 是一個陣列表達式,指定要格式化的內容
FormatSettings 是一個記錄型別,包含了系統預定義的格式化方法
  • 返回值:返回按指定方式格式化一個陣列常量的多位元組字元形式。

  • 示例:

var
  S: String;
begin
  S := WideFormat('%1:s %0:s',['How Are You!','Hello!']);
  ShowMessage(S);
end;
1
2
3
4
5
6
  • 運行結果:

Hello! How Are You!

# 12.9. WideFormatBuf

function WideFormatBuf(var Buffer; BufLen: Cardinal; const Format; FmtLen: Cardinal; const Args: array of const): Cardinal;
1
  • 該函式按指定方式格式化一個陣列常量至緩衝區Buffer中。
部分 說明
Buffer Cardinal型別的緩衝區
BufLen 緩衝區的大小
Format 指定格式化所使用的格式
FmtLen 格式化表達式的長度
Args 陣列表達式,指定要格式化的內容
FormatSettings 記錄型別,包含了系統預定義的格式化方法
  • 返回值:返回緩衝區的函式。

  • 示例:WideFmtStr程式是通過WideFormatBuf函式來實現的。

procedure WideFmtStr(var Result: string; const Format: string; const Args: array of const);
var
  Len,BufLen: Integer;
  Buffer: array[0..4095] of Char;
begin
  BufLen := SizeOf(Buffer);
  if Length(Format) < (sizeof(Buffer)-(sizeof(Buffer) div 4)) then
    Len := WideFormatBuf(Buffer,SizeOf(Buffer) - 1, Pointer(Format)^, Length(Format),Args)
  else
  begin
    BufLen := Length(Format);
    Len := BufLen;
  end;
  if Len >= BufLen -1 then
  begin
    while Len >= BufLen - 1 do
    begin
      Inc(BufLen,BufLen);
      Result := '';
      SetLength(Result,BufLen);
      Len := WideFormatBuf(Pointer(Result)^,BufLen - 1,Pointer(Format)^, Length(Format),Args);
    end;
    SetLength(Result,Len);
  end
  else
  SetString(Result,Buffer,Len);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 13. 對話方塊函式

# 13.1. InputBox

function InputBox(const ACaption,APrompt,ADefault:string):string;
1
  • 該函式顯示一個帶有編輯元件的訊息對話方塊,為使用者提供輸入文字的功能。
部分 說明
ACaption 訊息對話方塊的標題
APrompt 訊息對話方塊提示資訊
ADefault 訊息對話方塊首次出現時編輯框中顯示的資訊
  • 返回值:返回使用者在對話方塊中輸入的字串。

  • 示例:

var
  S: string;
begin
  S := InputBox('提示','請輸入內容','');
  ShowMessage('你輸入的內容是:' + S);
end;
1
2
3
4
5
6

  執行上述語句后,在輸入框中輸入的內容會顯示在接下來彈出的訊息對話方塊中。

# 13.2. InputQuery

function InputQuery(const ACaption,APrompt: String; var Value: String):Boolean;
1
  • 該函式顯示一個帶有編輯元件的訊息對話方塊,為使用者提供輸入文字的功能,並判斷使用者是否按下OK按鈕。
部分 說明
ACaption 訊息對話方塊的標題
APrompt 訊息對話方塊提示資訊
AValue 訊息對話方塊首次出現時編輯框中顯示的字串,並得到使用者在訊息對話方塊中輸入的字串
  • 返回值:如果選擇了訊息對話方塊中的OK按鈕,函式返回True,否則返回False。

  • 示例:

var
  S: string;
begin
  InputQuery('提示','請輸入內容',S);
  ShowMessage('你輸入的內容是:' + S);
end;
1
2
3
4
5
6

  執行該語句后,如果訊息對話方塊中選的是OK按鈕,則flag=True,S獲得使用者輸入的資訊。

# 13.3. LoginDialog

function LoginDialog(const ADatabaseName: string; var AUserName, APassword: string): Boolean;
1
  • 產生標準的Login對話方塊,提示使用者輸入有效的使用者名稱和口令,以連線伺服器。
部分 說明
ADatabaseName 要求訪問的資料庫
AUserName 對話方塊返回使用者輸入的使用者名稱
APassword 對話方塊返回使用者輸入的密碼
  • 返回值:如果使用者選擇對話方塊的OK按鈕返回True,否則返回False。

  • 示例:

var
  user,pass: String;
begin
   if (LoginDialog('test',user,pass)) then
   begin
     ShowMessage('輸入的使用者名稱:' + user);
   end;
end;
1
2
3
4
5
6
7
8
  • 運行結果:運行後會彈出一個標準登錄對話方塊,輸入后返回使用者名稱資訊。

# 13.4. LoginDialogEx

function LoginDialogEx(const ADatabaseName: string; var AUserName, APassword: string; NameReadOnly: Boolean): Boolean;
1
  • 該函式用於產生標準的Login對話方塊,提示使用者輸入有效的使用者名稱和口令,以連線伺服器。
部分 說明
ADatabaseName 要求訪問的資料庫
AUserName 對話方塊返回使用者輸入的使用者名稱
APassword 對話方塊返回使用者輸入的密碼
NameReadOnly 設定使用者是否可以修改對話方塊中的使用者名稱
  • 返回值:如果使用者選擇對話方塊的"OK"按鈕,函式返回True,否則函式返回False。

  • 示例:

var
  user,pass: String;
begin
   if (LoginDialogEx('test',user,pass, False)) then
   begin
     ShowMessage('輸入的使用者名稱:' + user);
   end;
end;
1
2
3
4
5
6
7
8
  • 運行結果:運行後會彈出一個標準登錄對話方塊,輸入后返回使用者名稱資訊。

# 14. 視窗控制實用程式

# 14.1. FindControl

function FindControl(Handle: HWnd): TWinControl;
1
  • 函式返回一個由視窗化控制代碼指定的視窗化元件,如果Handle不是一個有效的視窗化控制代碼,則返回Nil。
部分 說明
Handle 窗體可視元件的控制代碼
  • 返回值:返回TWinControl可視類元件。

  • 示例:

begin
  ShowMessage(FindControl(FThis.Handle).Name);
end;
1
2
3
  • 運行結果:顯示目前顯示視窗元件的名稱。

# 14.2. IIF

Function IIF(ACondition: Boolean; _True, _False: Variant):Variant;
1
  • 該函式用於判斷傳入的表達式是否成立,成立返回_True對應的條件值,否則返回_False對應的條件值。
部分 說明
ACondition 條件判斷語句
_True 條件成立時的值
_False 條件不成立時的值
  • 返回值:返回成立的數值。

# 14.3. GetComCtlVersion

function GetComCtlVersion: Integer;
1
  • 該函式返回安裝的ComCtl32.DLL版本號。

  • 返回值:整數型別,返回安裝的版本號。

  • 示例:

begin
  ShowMessage(IntToStr(GetComCtlVersion));
end;
1
2
3
  • 運行結果:運行結果根據各機器安裝軟體版本的不同而有所差異。

# 14.4. GetParentForm

function GetParentForm(Control: TControl; TopForm: Boolean = True): TCustomForm;
1
  • 該函式返回包含指定空間的窗體屬性。
部分 說明
Control 窗體中包含的控制元件
  • 返回值:返回包含指定空間的窗體屬性。

  • 示例:

begin
  ShowMessage(GetParentForm(FThis.Button1).Name);
end;
1
2
3
  • 運行結果:

Main

# 14.5. GetApplicationVersion

function GetApplicationVersion:String;
1
  • 該函式返回應用程式的版本號資訊。

# 14.6. GetApplicationbit

function GetApplicationbit:String;
1
  • 該函式返回應用程式的位數資訊。

# 14.7. CreateGuid

Function CreateGuid:String;
1
  • 該函式返回唯一ID字串資訊。

# 15. 指針相關函式

# 15.1. FreeAndNil

function FreeAndNil(var Obj);
1
  • 該函式用於釋放指定對象,並設定其為空。
部分 說明
Obj 任何類的實體
  • 示例:
FreeAndNil(FThis.Button1);
FreeAndNil(s);
1
2

  執行該語句后Obj對像將被釋放,並且設定其值為Nil。

# 16. 記憶體管理函式

# 16.1. New

procedure New(var P:Pointer);
1
  • 該過程建立一個新的動態變數,並把指針P指向這個新建立的變數。分配的記憶體大小由P指針表示的型別決定。
部分 說明
P Pointer型別,表示任何指針變數
var
  P: PInteger;
begin
  New(P);
  P^ := 12333;
  ShowMessage(IntToStr(P^));
end;
1
2
3
4
5
6
7

# 16.2. KillTask

function KillTask(ExeFileName: string):integer;
1
  • 該函式用於結束指定程式的程序。
部分 說明
ExeFileName 程序的程式名稱
進銷存主頁
系統程式

← 進銷存主頁 系統程式→

Copyright © 2021-2025 愛招飛IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式