系統函式
# FastERP 系統函式
該手冊內的內容用於編寫指令碼時作為參考,包含系統中使用的部分函式。
# 1. 字串處理函式
# 1.1. CompareStr
function CompareStr(const S1,S2:string):Integer;
- 該函式用於比較兩個字串,字串需區分大小寫。
部分 | 說明 |
---|---|
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;
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;
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;
- 該函式用於返回一個字串的字串或者動態陣列中的一個元素。
部分 | 說明 |
---|---|
S | 待取的字串 |
Index | 整形表達式,作為擷取字串或元素的起始位置 |
Count | 整形表達式,表示擷取的字元數目 |
返回值:函式返回擷取的字串或陣列。
示例:
var
s1: String;
s3: String;
begin
s1 := 'Hi,Hello';
s3 := Copy(s1,1,4);
ShowMessage(s3);
end;
2
3
4
5
6
7
8
- 運行結果:
Hi,H
# 1.4. LeftStr
function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;
- 該函式在字串的開始處返回指定長度的字串。
部分 | 說明 |
---|---|
AText | 是一個字串表達式 |
ACount | 是一個整型表達式,表示函式返回的子字串長度 |
返回值:函式返回擷取的字串。
示例:
begin
ShowMessage(LeftStr('我是中國人',2));
ShowMessage(LeftStr('Hello world',7));
end;
2
3
4
- 運行結果:
我是 Hello w
# 1.5. Length
fucntion Length(S): Integer;
- 該函式返回字串的字元數。
部分 | 說明 |
---|---|
S | 一個字串表達式 |
返回值:函式返回字串的長度數值。
示例:
var
s1: String;
s3: String;
begin
s1 := 'Hi,Hello';
s3 := IntToStr(Length(s1));
ShowMessage('字串的長度為:' + s3);
end;
2
3
4
5
6
7
8
- 運行結果:
字串的長度為:8
# 1.6. LowerCase
function LowerCase(const S: string): String;
- 該函式將字串轉換為小寫格式。
部分 | 說明 |
---|---|
S | 待轉換的字串 |
返回值:函式返回指定的字串的小寫格式。
示例:
var
s1: String;
begin
s1 := 'Hi,Hello';
s1 := LowerCase(s1);
ShowMessage(s1);
end;
2
3
4
5
6
7
- 運行結果
hi,hello
# 1.7. Pos
function Pos(SubStr: String; S: String): Integer;
- 該函式返回子字串第一次出現在指定字串中的索引值。
部分 | 說明 |
---|---|
SubStr | 是一個要查詢的字串表達式 |
S | 源字串 |
返回值:如果字串在源字串中存在,則函式返回子字串在源字串中首次出現的位置,否則函式返回0。
示例:
var
s1: String;
s2: String;
s3: String;
begin
s1 := 'Hi,Hello';
s2 := 'He';
s3 := IntToStr(Pos(s2,s1));
ShowMessage('字串所在的位置為:' + s3);
end;
2
3
4
5
6
7
8
9
10
- 運行結果:
字串所在的位置為:4
# 1.8. PosEx
function PosEx(const SubStr, S: string; Offset: Integer): Integer;
- 該函式返回子字串在源字串中的索引值。
部分 | 說明 |
---|---|
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;
2
3
4
- 運行結果:
0 7
# 1.9. QuotedStr
function QuotedStr(const S: String): String;
- 該函式返回字串的引證串,引證串是在字串的開始和結尾新增」'「。
部分 | 說明 |
---|---|
S | 字串表達式 |
返回值:函式返回參數指定字串的引證串。
示例:
var
s1: String;
s2: String;
begin
s1 := 'Hi,Hello';
s2 := 'He';
ShowMessage(s1);
ShowMessage(QuotedStr(s2));
end;
2
3
4
5
6
7
8
9
- 運行結果:
Hi,Hello 'He'
# 1.10. RightStr
function RightStr(const AText: AnsiString; const ACount: Integer): AnsiString;
- 該函式返回字串尾端開始指定長度的字串。
部分 | 說明 |
---|---|
AText | 是一個字串表達式 |
ACount | 是一個整型表達式,表示函式返回的子字串長度 |
返回值:函式返回擷取的字串。
示例:
begin
ShowMessage(RightStr('我是中國人',3));
ShowMessage(RightStr('Hello world',4));
end;
2
3
4
# 1.11. SameText
function SmaeText(const S1,S2:String): Boolean;
- 該函式根據序數值比較兩個字串,不區分大小寫。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
10
- 運行結果:
相同
# 1.12. StrECopy
function StrECopy(Dest: PAnsiChar; const Source: PAnsiChar): PAnsiChar;
- 該函式將參數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;
2
3
4
5
6
7
8
9
10
- 運行結果:
ObjectMan
# 1.13. StrEnd
function StrEnd(const Str: PAnsiChar): PAnsiChar;
- 該函式返回值指向參數Str字串尾的空字元指針。
部分 | 說明 |
---|---|
Str | 一個字串指針 |
- 示例:
var
TextBuffer: PAnsiChar;
Ptr: PAnsiChar;
begin
TextBuffer := 'ABCDEFG';
Ptr := StrEnd(TextBuffer);
ShowMessage(Ptr^);
end;
2
3
4
5
6
7
8
- 運行結果:顯示空字元。
# 1.14. StringOfChar
function StringOfChar(Ch: Char; Count: Integer): String;
- 該函式返回一個循環指定次數字元的字串。
部分 | 說明 |
---|---|
Ch | 字元型別表達式,指定字串的內容 |
Count | 整型表達式,指定函式返回的字串由多少個字元組成 |
返回值:函式返回一個由Count指定個數和Ch指定字元的字串。
示例:
var
s1: Char;
s2: Integer;
s3: String;
begin
s1 := 'A';
ShowMessage(StringOfChar(S1,5) + ' ' + StringOfChar('C',5));
end;
2
3
4
5
6
7
8
- 運行結果:
AAAAA CCCCC
# 1.15. StrLCat
function StrLCat(Dest: PAnsiChar; const Source: PAnsiChar; MaxLen: Cardinal): PAnsiChar;
- 該函式按參數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;
2
3
4
5
6
7
8
9
10
11
- 運行結果:
ObjectMan
# 1.16. StrLComp
function StrLComp(const S1:PAnsiChar;const S2: PAnsiChar;MaxLen : Cardinal) : Integer
- 該函式不區分大小寫比較兩個字串。
部分 | 說明 |
---|---|
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.
2
3
4
5
6
7
8
9
10
11
12
- 運行結果:
equal
# 1.17. StrLen
function StrLen(const Str: PAnsiChar): Cardinal;
- 該函式用於獲取Str字串的長度。
部分 | 說明 |
---|---|
Str | 字串指針 |
返回值:返回顯示的字串的長度。
示例:
const
Ob: PAnsiChar = 'Object';
begin
ShowMessage(IntToStr(StrLen(Ob)));
end;
2
3
4
5
- 運行結果:
6
# 1.18. StrLiComp
function StrLIComp(const Str1, Str2: PAnsiChar; MaxLen: Cardinal): Integer;
- 該函式用於不區分大小寫比較兩個字串。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
10
11
- 運行結果:
Equal
# 1.19. StrLower
function StrLower(Str: PAnsiChar): PAnsiChar;
- 將參數Str中的字串轉換為小寫並返回。
部分 | 說明 |
---|---|
Str | 要轉換為小寫的字串指針 |
返回值:返回轉換為小寫的字串指針。
示例:
const
S1: PAnsiChar = 'ENTerPriSe';
begin
ShowMessage(String(StrLower(S1)) + ' ' + String(StrUpper(S1)));
end;
2
3
4
5
- 運行結果:
enterprise ENTERPRISE
# 1.20. StrMove
function StrMove(Dest: PAnsiChar; const Source: PAnsiChar; Count: Cardinal): PAnsiChar;
- 該函式將參數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;
2
3
4
5
6
7
8
9
- 運行結果:
Object
# 1.21. StrPCopy
function StrPCopy(Dest: PAnsiChar; const Source: AnsiString): PAnsiChar;
- 該函式將參數Source中的字串複製至Dest參數的字串尾部。
部分 | 說明 |
---|---|
Dest | 兩個字串指針 |
Source | 比較的長度 |
返回值:返回拼接完成後的字串指針。
示例:
const
Ob: PAnsiChar = 'Object';
var
S: PAnsiChar;
begin
GetMem(S,14);
S := StrPCopy(S,Ob);
ShowMessage(String(S));
end;
2
3
4
5
6
7
8
9
- 運行結果:
Object
# 1.22. StrPLCopy
function StrPLCopy(Dest: PAnsiChar; const Source: AnsiString; MaxLen: Cardinal): PAnsiChar;
- 該函式將參數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;
2
3
4
5
6
7
8
9
- 運行結果:
Object
# 1.23. StrPos
function StrPos(const Str1, Str2: PAnsiChar): PAnsiChar;
- 該函式用於返回Str2在Str1中首次出現的指針。
部分 | 說明 |
---|---|
Str1 | 待查詢的字串指針 |
Str2 | 要查詢的字串指針 |
返回值:該函式返回Str2在Str1中首次出現的指針。
示例:
var
Location: PAnsiChar;
begin
if StrPos(PAnsiChar('Enterproise'),PAnsiChar('Enter')) <> nil then
ShowMessage('找到字串')
else
ShowMessage('未找到字串');
end;
2
3
4
5
6
7
8
- 運行結果:
找到字串
# 1.24. StrRScan
function StrRScan(const Str: PAnsiChar; Chr: AnsiChar): PAnsiChar;
- 該函式返回參數Chr字元在Str字串中最後一次出現的指針。
部分 | 說明 |
---|---|
Str | 待查詢的字串指針 |
Chr | 要查詢的字串指針 |
返回值:函式返回參數Chr字元在Str字串中最後一次出現的指針。
示例:
var
P: PAnsiChar;
begin
P := StrRScan('EQ3258EDX','X');
if P <> nil then
begin
ShowMessage('找到該字元:' + String(P))
end;
end;
2
3
4
5
6
7
8
9
- 運行結果:
找到該字元:X
# 1.25. StrScan
function StrScan(const Str: PAnsiChar; Chr: AnsiChar): PAnsiChar;
- 該函式返回指定字元Chr在str參數指定的字串中首次出現的指針。
部分 | 說明 |
---|---|
str | 待查詢的字串指針 |
Chr | 要查詢的字元 |
返回值:返回指定字元Chr在str參數指定的字串中首次出現的指針。
示例:
var
P: PAnsiChar;
begin
P := StrScan('EQ3258EDX','Q');
if P <> nil then
begin
ShowMessage('找到該字元:' + String(P))
end;
end;
2
3
4
5
6
7
8
9
- 運行結果:
找到該字元:Q
# 1.26. Trim
function Trim(const S: String): String;
- 該函式用於刪除字串的首尾空格。
部分 | 說明 |
---|---|
S | 字串表達式 |
返回值:函式返回去掉首尾空格后的新字串。
示例:
var
s1: String;
s2: String;
begin
s1 := 'Hi,H e llo';
s2 := ' IsoFace ';
ShowMessage(Trim(s1));
ShowMessage(Trim(s2));
end;
2
3
4
5
6
7
8
9
- 運行結果:
Hi,H e llo IsoFace
# 1.27. TrimLeft
function TrimLeft(const S: String): String;
- 該函式用於刪除字串的首部空格。
部分 | 說明 |
---|---|
S | 字串表達式 |
返回值:函式返回去掉首部空格后的新字串。
示例:
var
s1: String;
s2: String;
begin
s1 := ' Hi,H e llo';
s2 := ' IsoFace ';
ShowMessage(TrimLeft(s1));
ShowMessage(TrimLeft(s2));
end;
2
3
4
5
6
7
8
9
- 運行結果:
Hi,H e llo IsoFace
# 1.28. TrimRight
function TrimRight(const S: String): String;
- 該函式用於刪除字串的尾部空格。
部分 | 說明 |
---|---|
S | 字串表達式 |
返回值:函式返回去掉尾部空格后的新字串。
示例:
var
s1: String;
s2: String;
begin
s1 := ' Hi,H e llo';
s2 := ' IsoFace ';
ShowMessage(TrimRight(s1));
ShowMessage(TrimRight(s2));
end;
2
3
4
5
6
7
8
9
- 運行結果:
Hi,H e llo IsoFace
# 1.29. UpperCase
function UpperCase(const S: string): String;
- 該函式將字串轉換為大寫格式。
部分 | 說明 |
---|---|
S | 待轉換的字串 |
返回值:函式返回指定的字串的大寫格式。
示例:
var
s1: String;
begin
s1 := 'Hi,Hello';
s1 := UpperCase(s1);
ShowMessage(s1);
end;
2
3
4
5
6
7
- 運行結果
HI,HELLO
# 2. 科學計算函式
# 2.1. Abs
function Abs(X);
- 該函式用於返回指定數值的絕對值。
部分 | 說明 |
---|---|
X | 實型表達式 |
返回值:函式返回參數X指定的絕對值。
示例:
begin
SHowMessage(IntToStr(Abs(-15)));
ShowMessage(FloatToStr(Abs(-1.5)));
end;
2
3
4
- 運行結果
15 1.5
# 2.2. Exp
function Exp(X: Real): Real;
- 該函式用於返回指定數的指數。
部分 | 說明 |
---|---|
X | 實型表達式 |
返回值:函式返回e的X次冪,e是自然對數的底。
示例:
begin
ShowMessage(FloatToStr(Exp(2)));
ShowMessage(FloatToStr(Exp(1.5)));
ShowMessage(FloatToStr(Exp(0)));
end;
2
3
4
5
- 運行結果:
7.38905609893065 4.48168907033806 1
# 2.3. Int
function Int(X: Extended):Extended;
- 該函式返回實數的整數部分。
部分 | 說明 |
---|---|
X | 實型表達式 |
返回值:函式返回參數X的整數部分。
示例:
begin
ShowMessage(FloatToStr(Int(-12.025)));
ShowMessage(FloatToStr(Int(12.012)));
ShowMessage(FloatToStr(Frac(1.25)));
end;
2
3
4
5
- 運行結果:
-12 12 0.25
# 2.4. IsZero
function IsZero(const A: Extended; Epsilon: Extended): Boolean;
- 該函式測試實型表達式是否等於或者接近零。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
- 運行結果:
接近於零。 超出。
# 2.5. Ln
function Ln(X: Real):Real;
- 該函式用來計算一個數的自然對數。
部分 | 說明 |
---|---|
X | 實型表達式 |
返回值:X的自然對數值。
示例:
begin
ShowMessage(FloatToStr(Ln(35.6)));
ShowMessage(FloatToStr(Ln(20.6)));
end;
2
3
4
- 運行結果:
3.57234563785798 3.02529107579554
# 2.6. Pi
function Pi: Extnded;
函式Pi返回圓周率的值。
返回值:函式Pi返回圓周率的值。
示例:
begin
ShowMessage(FloatToStr(Pi));
end;
2
3
- 運行結果:
3.14159265358979
# 2.7. Power
function Power(const Base,Exponent: Extended): Extended;
- 該函式返回底數的任何次冪。
部分 | 說明 |
---|---|
Base | 實型表達式,表示一個底數 |
Exponent | 實型表達式,表示一個指數 |
返回值:函式的返回值是Base的Exponent次冪。
示例:
begin
ShowMessage(FloatToStr(Power(2,4)));
end;
2
3
# 2.8. Round
function Round(X:Extended): Int64;
- 該函式將實數四捨五入為整數。
部分 | 說明 |
---|---|
X | 實型表達式 |
返回值:函式的返回值是X四捨五入后的整數。
示例:
begin
ShowMessage(FloatToStr(Round(-4.6)));
ShowMessage(FloatToStr(Round(-4.3)));
ShowMessage(FloatToStr(Round(4.6)));
ShowMessage(FloatToStr(Round(4.3)));
end;
2
3
4
5
6
- 運行結果:
-5 -4 5 4
# 2.9. SameValue
function SameValue(const A, B: Extended; Epsilon: Extended): Boolean;
- 該函式用於檢測兩個實數是否相同或相近。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
10
- 運行結果:
不同 相同
# 2.10. Sqr
function Sqr(X:Extended): Extended;
function Sqr(X:Integer):Integer;
2
- 該函式用於計算指定數的平方。
部分 | 說明 |
---|---|
X | 數字達式 |
返回值:函式返回值是X的平方。
示例:
begin
ShowMessage(FloatToStr(Sqr(10.1)));
ShowMessage(FloatToStr(Sqr(25)));
end;
2
3
4
- 運行結果:
102.01 625
# 2.11. Sqrt
function Sqrt(X:Extended): Extended;
- 該函式用於計算一個數的平方根。
部分 | 說明 |
---|---|
X | 數字達式 |
返回值:函式返回值是X的平方根。
示例:
begin
ShowMessage(FloatToStr(Sqrt(10.1)));
ShowMessage(FloatToStr(Sqrt(25)));
end;
2
3
4
- 運行結果:
3.17804971641414 5
# 2.12. Trunc
function Trunc(X:Extended):Int64;
- 該函式返回一個實數的整數部分。
部分 | 說明 |
---|---|
X | 數字達式 |
返回值:函式返回X的整數部分。
示例:
begin
ShowMessage(IntToStr(Trunc(12.45)));
ShowMessage(IntToStr(Trunc(-12.45)));
ShowMessage(IntToStr(Trunc(0)));
end;
2
3
4
5
- 運行結果:
12 -12 0
# 2.13. VarComplexAbs
function VarComplexAbs(const AValue: Variant): Double;
- 該函式返回一個複數的絕對值(模)。
部分 | 說明 |
---|---|
AValue | 複數 |
返回值:函式返回AValue的絕對值。
示例:
begin
ShowMessage(FloatToStr(VarComplexAbs('3+4i')));
ShowMessage(FloatToStr(VarComplexAbs('3-4i')));
ShowMessage(FloatToStr(VarComplexAbs('1+2i')));
end;
2
3
4
5
- 返回值:
5 5 2.23606797749979
# 2.14. VarComplexAbsSqr
function VarComplexAbsSqr(const AValue: Variant): Double;
- 該函式返回一個複數的絕對值的平方。
部分 | 說明 |
---|---|
AValue | 複數 |
- 返回值:函式返回AValue絕對值的平方。
begin
ShowMessage(FloatToStr(VarComplexAbsSqr('3+4i')));
ShowMessage(FloatToStr(VarComplexAbsSqr('3-4i')));
ShowMessage(FloatToStr(VarComplexAbsSqr('1+2i')));
end;
2
3
4
5
- 運行結果:
25 25 5
# 2.15. VarComplexAngle
function VarComplexAngle(const AValue: Variant): Double;
- 該函式返回一個複數對應的角度。
部分 | 說明 |
---|---|
AValue | 複數 |
- 示例:
begin
ShowMessage(FloatToStr(VarComplexAngle('3+4i')));
ShowMessage(FloatToStr(VarComplexAngle('3-4i')));
ShowMessage(FloatToStr(VarComplexAngle('1+2i')));
end;
2
3
4
5
- 運行結果:
0.927295218001612 -0.927295218001612 1.10714871779409
# 3. 序數函式
# 3.1. Odd
function Odd(X: Longint):Boolean;
- 該函式用於判斷一個數的奇偶性。
部分 | 說明 |
---|---|
X | 待檢驗的數 |
返回值:如果X為奇數,函式返回True,否則返回False。
示例:
var
i: Integer;
begin
i := 3;
if Odd(i) then
ShowMessage(IntToStr(i) + '為奇數')
else
ShowMessage(IntToStr(i) + '為偶數');
end;
2
3
4
5
6
7
8
9
- 運行結果:
3為奇數
# 3.2. Ord
function Ord(X);
- 該函式用於獲取順序型別表達式的順序值。
部分 | 說明 |
---|---|
X | 序數型別表達式 |
返回值:返回一個順序表達式的順序值。
示例:
begin
ShowMessage('''a''在ASCII碼中的順序值為:' + IntToStr(Ord('a')));
end;
2
3
- 運行結果:
'a'在ASCII碼中的順序值為:97
# 3.3. Pred
function Pred(X);
- 該函式用於獲取順序式表達式的前驅。
部分 | 說明 |
---|---|
X | 序數型別表達式 |
返回值:X的前驅,與X的型別一致。
示例:
begin
ShowMessage('B的前驅值為:' + Pred('B'));
ShowMessage('c的前驅值為:' + Pred('c'));
ShowMessage('9的前驅值為:' + Pred('9'));
end;
2
3
4
5
- 運行結果:
B的前驅值為:A c的前驅值為:b 9的前驅值為:8
# 3.4. Succ
function Succ(X);
- 該函式用於獲取順序式表達式的後繼。
部分 | 說明 |
---|---|
X | 序數型別表達式 |
返回值:X的後繼,與X的型別一致。
示例:
begin
ShowMessage('B的後繼值為:' + Succ('B'));
ShowMessage('c的後繼值為:' + Succ('c'));
ShowMessage('8的後繼值為:' + Succ('8'));
end;
2
3
4
5
- 運行結果:
B的後繼值為:C c的後繼值為:d 8的後繼值為:9
# 4. 三角函式
# 4.1. ArcCos
function ArcCos(const X : Extended): Extended;
- 該函式用於計算參數X的反餘弦值。X的取值在-1至1之間。
部分 | 說明 |
---|---|
X | 要計算的數值 |
返回值:返回指定參數的反餘弦值。
示例:
begin
ShowMessage(FloatToStr(ArcCos(0.5)));
end;
2
3
- 運行結果:
1.0471975511966
# 4.2. ArcSin
function ArcSin(const X : Extended) : Extended;
- 該函式用於計算參數X的反正弦值,X的值為-1至1之間。
部分 | 說明 |
---|---|
X | 要計算的數值 |
返回值:返回指定參數的反正弦值。
示例:
begin
ShowMessage(FloatToStr(ArcSin(0.5)));
end;
2
3
- 運行結果:
0.523598775598299
# 4.3. ArcTan
function ArcTan(const X: Extended): Extended;
- 該函式計算參數X的反正切值。
部分 | 說明 |
---|---|
X | 將要計算反正切的值 |
返回值:返回指定參數的反正切值。
示例:
begin
ShowMessage(FloatToStr(ArcTan(0.5)));
end;
2
3
- 返回結果:
0.463647609000806
# 4.4. ArcTan2
function ArcTan2(const Y, X: Extended): Extended;
- 該函式獲取正確象限中的角度。
部分 | 說明 |
---|---|
X,Y | 獲取正確象限角度的參數 |
返回值:返回正確象限中的角度。
示例:
begin
ShowMessage(FloatToStr(ArcTan2(4,5)));
end;
2
3
- 返回結果:
0.67474094223553
# 4.5. Cos
function Cos(Const X: Extended): Extended;
- 該函式計算參數X的餘弦值。
部分 | 說明 |
---|---|
X | 將要計算餘弦的值 |
返回值:返回指定參數的餘弦值。
示例:
begin
ShowMessage(FloatToStr(Cos(0.5)));
end;
2
3
- 運行結果
0.877582561890373
# 4.6. Sin
function Sin(const X: Extended): Extended;
- 該函式計算參數X的正弦值。
部分 | 說明 |
---|---|
X | 將要計算正弦的值 |
返回值:返回指定參數的正弦值。
示例:
begin
ShowMessage(FloatToStr(Sin(0.5)));
end;
2
3
- 運行結果:
0.479425538604203
# 5. 統計函式
# 5.1. MaxIntValue
function MaxIntValue(const Data: array of Integer): Integer;
- 該函式獲取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;
2
3
4
5
6
7
8
9
10
11
- 運行結果:
50
# 5.2. MinIntValue
function MinIntValue(const Data: array of Integer): Integer;
- 該函式獲取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;
2
3
4
5
6
7
8
9
10
11
- 運行結果:
5
# 5.3. SumInt
function SumInt(const Data: array of Integer): Integer;
- 該函式返回整數型陣列中所有數值的總和。
部分 | 說明 |
---|---|
Data | 待求和陣列 |
返回值:返回陣列中所有值的總和,整型。
示例:
begin
ShowMessage(IntToStr(SumInt([150,100])));
end;
2
3
- 運行結果:
250
# 6. 金融函式
# 6.1. DoubleDecliningBalance
function DoubleDecliningBalance(const Cost, Salvage: Extended; Life, Period: Integer): Extended;
- 該函式使用雙倍餘額遞減法或其他方法指定的方法計算一筆資產在給定期間內的折舊值。
部分 | 說明 |
---|---|
Cost | 表示資產原值 |
Salvage | 表示資產在折舊期末的價值,也稱為資產殘值 |
Life | 表示折舊期限,也稱作資產的使用壽命 |
Period | 表示要計算折舊值的期間 |
返回值:返回資產的折舊值數據。
示例:
begin
ShowMessage(FloatToStr(DoubleDecliningBalance(800000,80000,6,2)));
end;
2
3
- 運行結果:
177777.777777778
# 6.2. InternalRateOfReturn
function InternalRateOfReturn(const Guess: Extended; const CashFlows: array of Double): Extended;
- 返回一個由數值代表的一組現金流的內部收益率。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
- 運行結果:-21.690481051547
# 6.3. SYDDepreciation
function SYDDepreciation(const Cost, Salvage: Extended; Life, Period: Integer): Extended;
- 該函式返回某項資產按年限總和折舊法計算的指定期間的折舊值。
部分 | 說明 |
---|---|
Cost | 表示資產原值 |
Salvage | 表示資產在折舊期末的價值,也稱為資產殘值 |
Life | 表示折舊期限,也稱作資產的使用壽命 |
Period | 表示要計算折舊值的期間 |
返回值:返回折舊的數據值。
示例:
begin
ShowMessage(FloatToStr(SYDDepreciation(200000,40000,6,1)));
end;
2
3
- 運行結果:
45714.2857142857
# 7. 隨機數函式
# 7.1. Random
function Random[(Range:Integer)];
- 該函式用於產生一個0≤X≤Range的隨機數。
部分 | 說明 |
---|---|
Range | 產生隨機數的範圍 |
返回值:在[0,Range]之間的任意數。
示例:
begin
ShowMessage(IntToStr(Random(10)));
end;
2
3
- 運行結果:運行該語句后產生一個大於等於0小於10的整數。
# 7.2. RandomFrom
function RandomFrom(const AValues: array of Extended): Extended;
- 該函式從參數指定的陣列中隨機選出一個值。
部分 | 說明 |
---|---|
AValues | 陣列型別變數 |
返回值:AValue陣列中的一個隨機數。
示例:
begin
Randomize;
ShowMessage(FloatToStr(RandomFrom([1,2,3,4,5,6,7,8,9])));
end;
2
3
4
- 運行結果:運行該語句后在所選的陣列範圍內產生一個隨機數。
# 8. 單位換算函式
# 8.1. CelsiusToFahrenheit
function CelsiusToFahrenheit(const AValue: Double): Double;
- 函式將攝氏溫度轉換為華氏溫度。
部分 | 說明 |
---|---|
AValue | 待轉換的實型表達式 |
返回值:函式返回華氏溫度表示的數據。
示例:
begin
ShowMessage(FloatToStr(CelsiusToFahrenheit(37.6)));
end;
2
3
- 運行結果:
99.68
# 8.2. DateTimeToJulianDate
function DateTimeToJulianDate(const AValue: TDateTime): Double;
- 該函式將日期值轉換為儒略日。
部分 | 說明 |
---|---|
AValue | 日期表達式 |
返回值:函式返回以儒略日表示的日期。
示例:
begin
ShowMessage(FloatToStr(DateTimeToJulianDate(Now)));
end;
2
3
- 運行結果:儒略日的表示格式,例如2459187.35728194
# 8.3. DateTimeToModifiedJulianDate
function DateTimeToModifiedJulianDate(const AValue: TDateTime): Double;
- 該函式用於將日期轉換為改進的儒略日。
部分 | 說明 |
---|---|
AValue | 日期表達式 |
- 返回值:函式返回以改進的儒略日。
begin
ShowMessage(FloatToStr(DateTimeToModifiedJulianDate(Now)));
end;
2
3
- 運行結果:改進的儒略日的表示格式,例如59186.8626061226。
# 8.4. DateTimeToUnix
function DateTimeToUnix(const AValue: TDateTime; AInputIsUTC: Boolean): Int64;
- 該函式將日期轉換為UNIX系統或Linux系統日期值。
部分 | 說明 |
---|---|
AValue | 日期表達式 |
AInputIsUTC | 輸入的時間值是否為UTC時間 |
返回值:函式返回UNIX系統或者Linux系統日期值。
示例:
begin
ShowMessage(FloatToStr(DateTimeToUnix(Now,False)));
end;
2
3
- 運行結果:顯示目前的Unix時間。
# 8.5. FahrenheitToCelsius
function FahrenheitToCelsius(const AValue: Double): Double;
- 該函式將華氏溫度轉換為攝氏溫度。
部分 | 說明 |
---|---|
AValue | 待轉換的實型表達式 |
返回值:函式返回以攝氏溫度表示的數據。
示例:
begin
ShowMessage(FloatToStr(FahrenheitToCelsius(95)));
end;
2
3
- 運行結果:
35
# 9. 日期函式
# 9.1. CurrentYear
function CurrentYear: Word;
返回系統目前的年份。
返回值:函式返回系統目前的年份。
示例:
var
Yearis: word;
begin
Yearis := CurrentYear();
ShowMessage(IntToStr(Yearis));
end;
2
3
4
5
6
- 運行結果:系統顯示目前年份。
# 9.2. Date
function Date: TDateTime;
獲得系統目前日期。
返回值:返回系統目前日期。
示例:
begin
ShowMessage(DateToStr(Date));
end;
2
3
- 運行結果:
顯示系統目前日期,比如2019-10-06
# 9.3. DateOf
function DateOf(const AValue: TDateTime): TDateTime;
- 該函式用於將給定的TDateTime值轉化為僅包含日期時間資訊的TDateTime值。
部分 | 說明 |
---|---|
AValue | 待轉換的日期時間值 |
返回值:返回僅包含日期的TDateTime值。
示例:
begin
ShowMessage(DateToStr(DateOf(Now)));
end;
2
3
- 運行結果:顯示目前日期。
# 9.4. DateTimeToFileDate
function DateTimeToFileDate(DateTime: TDateTime): Integer;
- 該函式將TDateTime對象的日期時間表示形式轉換為OS時間資訊。
部分 | 說明 |
---|---|
DateTime | 待轉換的日期時間值 |
返回值:返回參數對應的OS時間資訊。
示例:
begin
ShowMessage('操作系統對應的時間是:' + IntToStr(DateTimeToFileDate(Now)));
end;
2
3
- 運行結果:顯示操作系統的對應時間。
# 9.5. DateTimeToStr
function DateTimeToStr(DateTime:TDateTime):String;
- 該函式將TDateTime的值轉換為字串型別。
部分 | 說明 |
---|---|
DateTime | TDateTime日期時間型別 |
返回值:TDateTime值轉換后的字串型別。
示例:
begin
ShowMessage(DateTimeToStr(Now));
end;
2
3
- 運行結果:
返回目前的系統時間,例如 2020-01-20 12:30:05
# 9.6. DateToStr
function DateToStr(DateTime:TDateTime):String;
- 該函式將TDateTime的值轉換為字串型別。
部分 | 說明 |
---|---|
DateTime | TDateTime日期時間型別 |
返回值:TDateTime值轉換后的字串型別。
示例:
begin
ShowMessage(DateToStr(Now));
ShowMessage(DateToStr(Date()));
end;
2
3
4
- 運行結果:
返回目前的系統時間,例如 2020-01-20 返回目前的系統時間,例如 2020-01-20
# 9.7. DayOf
function DayOf(const AValue: TDateTime): Word;
- 該函式返回指定TDateTime值表示日期的值。
部分 | 說明 |
---|---|
AValue | 表示日期 |
返回值:返回指定日期的值(1-31)。
示例
begin
ShowMessage(IntToStr(DayOf(Now)));
end;
2
3
- 運行結果:顯示目前的日期數值。
# 9.8. DayOfTheMonth
function DayOfTheMonth(const AValue: TDateTime): Word;
- 該函式用於計返回指定月份的日期數值。
部分 | 說明 |
---|---|
AValue | 指定日期 |
返回值:返回指定日期的日的值(1-31)。
示例:
begin
ShowMessage(IntToStr(DayOf(StrToDate('2020-11-1'))) + ' ' + IntToStr(DayOfTheMonth(StrToDate('2020-11-11'))));
end;
2
3
- 運行結果:
1 11
# 9.9. DayOfTheWeek
function DayOfTheWeek(const AValue: TDateTime): Word;
- 該函式用於計算指定的日期為星期幾。此處以星期一開始計數。
部分 | 說明 |
---|---|
AValue | 待計算的日期型別 |
返回值:返回計算后的Word型別值(1-7)。
示例:
begin
ShowMessage(IntToStr(DayOfTheWeek(Date())) + ' ' + IntToStr(DayOfTheWeek(StrToDate('2020-3-11'))));
end;
2
3
- 運行結果:顯示目前日期的星期數,2020年3月11日顯示為3,表示為星期三。
# 9.10. DayOfTheYear
function DayOfTheYear(const AValue: TDateTime): Word;
- 該函式用於計算指定的日期為一年中的第幾天。
部分 | 說明 |
---|---|
AValue | 待計算的日期型別 |
返回值:返回計算后的Word型別值。
示例:
begin
ShowMessage(IntToStr(DayOfTheYear(StrToDate('2020-11-01'))));
end;
2
3
- 運行結果:
306
# 9.11. DayOfWeek
function DayOfWeek(const DateTime: TDateTime): Word;
- 該函式用於計算指定的日期為星期幾。以星期日為開始進行計數。
部分 | 說明 |
---|---|
Date | 待計算的日期型別 |
返回值:返回計算后的整數(1-7)。
示例:
begin
ShowMessage(IntToStr(DayOfWeek(Date())) + ' ' + IntToStr(DayOfWeek(StrToDate('2020-3-11'))));
end;
2
3
- 運行結果:顯示目前日期的星期數,2020年3月11日顯示為4,表示為星期三。
# 9.12. DaysBetween
function DaysBetween(const ANow, AThen: TDateTime): Integer;
- 該函式用於計算指定的兩個日期之間相差的天數。
部分 | 說明 |
---|---|
ANow | 待比較的日期時間表達式 |
AThen | 待比較的日期時間表達式 |
返回值:返回參數指定的兩個日期相差的天數。
示例:
begin
ShowMessage(IntToStr(DaysBetween(StrToDate('2010-3-29'),StrToDate('2020-11-1'))));
end;
2
3
- 運行結果:
3870
# 9.13. DaysInAMonth
function DaysInAMonth(const AYear, AMonth: Word): Word;
- 計算指定年份的指定月份的天數。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
- 運行結果:
30 29
# 9.14. DaysInAYear
function DaysInAYear(const AYear: Word): Word;
- 該函式獲得指定年份的總天數。
部分 | 說明 |
---|---|
AYear | 計算總天數的年份 |
返回值:返回指定年份的總天數,可以獲取閏年的天數。
示例:
begin
ShowMessage(IntToStr(DaysInAYear(YearOf(StrToDate('2020-11-1')))));
end;
2
3
- 運行結果:
366
# 9.15. DaysInMonth
function DaysInMonth(const AValue: TDateTime): Word;
- 該函式用於獲得一個月的總天數。
部分 | 說明 |
---|---|
AValue | 待計算月份總天數的日期 |
返回值:返回指定日期所在月份的總天數。
示例:
begin
ShowMessage(IntToStr(DaysInMonth(MonthOf(StrToDate('2020-11-1')))));
end;
2
3
- 運行結果:
30
# 9.16. DaysInYear
function DaysInYear(const AValue: TDateTime): Word;
- 該函式用於獲得指定日期時間型別的表達式所在的年份的總天數,如果是閏年,總天數為366。
部分 | 說明 |
---|---|
AValue | 待轉換的日期時間型別值 |
返回值:返回指定日期時間型別的表達式所在年份的總天數。
示例:
begin
ShowMessage(IntToStr(DaysInYear(StrToDate('2020-11-1'))));
end;
2
3
- 運行結果:
366
# 9.17. DaysSpan
function DaySpan(const ANow, AThen: TDateTime): Double;
- 該函式用於計算兩個日期時間型別表達式所描述的日期相差的天數。
部分 | 說明 |
---|---|
ANow | 待比較的日期時間表達式 |
AThen | 待比較的日期時間表達式 |
返回值:返回參數給定兩個日期相差的天數,是Double型變數。
示例:
begin
ShowMessage(FloatToStr(DaySpan(StrToDate('2010-11-1'),StrToDate('2020-11-1'))));
end;
2
3
- 運行結果:
3653
# 9.18. DecodeDateFully
function DecodeDateFully(const DateTime: TDateTime; var Year, Month, Day, DOW: Word): Boolean;
- 該函式用於分解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;
2
3
4
5
6
- 運行結果:
2020年11月1日 星期數1
# 9.19. EncodeDate
function EncodeDate(Year, Month, Day: Word): TDateTime;
- 該函式把指定的年、月、日轉換成對應的TDateTime值。
部分 | 說明 |
---|---|
Year | 待轉換的TDateTime型別日期值的年份 |
Month | 待轉換的TDateTime型別日期值的月份 |
Day | 待轉換的TDateTime型別日期值的日 |
返回值:日期值。
示例:
var
DateTimeIs: TDateTime;
begin
DateTimeIs := EncodeDate(2020,11,01);
ShowMessage(DateToStr(DateTimeIs));
end;
2
3
4
5
6
- 運行結果:
2020-11-01
# 9.20. EncodeDateDay
function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime;
- 該函式把指定年份的多少天轉換為對應的DateTime日期。
部分 | 說明 |
---|---|
AYear | 待轉換的TDateTime型別日期值的年份 |
ADayOfYear | 指定年份的第多少天 |
返回值:返回TDateTime日期值。
示例:
var
DateTimeIs: TDateTime;
begin
DateTimeIs := EncodeDateDay(2020,306);
ShowMessage(DateToStr(DateTimeIs));
end;
2
3
4
5
6
- 運行結果:
2020-11-01
# 9.21. EncodeDateMonthWeek
function EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word): TDateTime;
- 該函式把指定年份、月份、該月的第幾周和周值轉換成的日期時間型別。
部分 | 說明 |
---|---|
AYear | 日期表達式的年份 |
AMonth | 日期表達式的月份 |
AWeekOfMonth | 該日是當月的第幾周 |
ADayOfWeek | 當日的周值 |
返回值:TDateTime日期值。
示例:
var
DateTimeIs: TDateTime;
begin
DateTimeIs := EncodeDateMonthWeek(2020,12,8,12,33,333);
ShowMessage(DateTimeToStr(DateTimeIs));
end;
2
3
4
5
6
- 運行結果:
2020-05-17
# 9.22. EncodeDateTime
function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
- 把指定的年、月、日、時、分、秒和毫秒轉換成對應的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;
2
3
4
5
6
- 運行結果:
2020-12-08 12:33:33
# 9.23. EncodeDateWeek
function EncodeDateWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
- 該函式用於把指定年份的第幾周的周值轉換成對應的日期時間型別。
部分 | 說明 |
---|---|
AYear | 日期表達式的年份 |
AWeekOfYear | 日期表達式該日期是當年的第多少周 |
ADayOfWeek | 日期表達式的星期 |
返回值:返回TDateTime日期值。
示例:
var
DateTimeIs: TDateTime;
begin
DateTimeIs := EncodeDateWeek(2020,45,1);
ShowMessage(DateTimeToStr(DateTimeIs));
end;
2
3
4
5
6
- 運行結果:
2020-11-02
# 9.24. EncodeDayOfWeekInMonth
function EncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word): TDateTime;
- 該函式把指定年份、月份和該月的第幾周的某個周值轉換成TDateTime型別。
部分 | 說明 |
---|---|
AYear | 日期表達式的年份 |
AMonth | 日期表達式的月份 |
ANthDayOfWeek | 日期表達式的星期值在本月的序號 |
ADayOfWeek | 日期表達式的星期 |
返回值:TDateTime日期值。
示例:
var
DateTimeIs: TDateTime;
begin
DateTimeIs := EncodeDayOfWeekInMonth(2020,4,2,5);
ShowMessage(DateTimeToStr(DateTimeIs));
end;
2
3
4
5
6
- 運行結果:
2020-04-10
# 9.25. EncodeTime
function EncodeTime(Hour,Min,Sec,MSec: Word): TDateTime;
- 該函式把指定的小時、分、秒、毫秒轉換成對應的TDateTime型別值。
部分 | 說明 |
---|---|
Hour | 待轉換TDateTime型別日期值的小時 |
Min | 待轉換TDateTime型別日期值的分鐘 |
Sec | 待轉換TDateTime型別日期值的秒數 |
MSec | 待轉換TDateTime型別日期值的毫秒 |
返回值:TDateTime型別值。
示例:
begin
ShowMessage(TimeToStr(EncodeTime(15,33,35,999)));
end;
2
3
- 運行結果:
15:33:35
# 9.26. EndOfAMonth
function EndOfAMonth(const AYear, AMonth: Word): TDateTime;
- 該函式用於獲得指定月份最後一天的最後可表示時刻。
部分 | 說明 |
---|---|
AYear | 年份 |
AMonth | 月份 |
返回值:函式返回參數指定年份的月份最後一天的最後可表示時刻。
示例:
begin
ShowMessage(DateTimeToStr(EndOfAMonth(2020,11)))
end;
2
3
- 運行結果:
2020-11-30 23:59:59
# 9.27. EndOfAWeek
function EndOfAWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
- 該函式獲得指定年、周、周值的最後可表示時刻。
部分 | 說明 |
---|---|
AYear | 指定獲取最後時刻的年份 |
AWeekOfYear | 指定獲取最後時刻的周 |
ADayOfWeek | 指定獲取最後時刻的周值 |
返回值:返回參數指定年、周、周值的最後可表示時刻。
示例:
begin
ShowMessage(DateTimeToStr(EndOfAWeek(2020,23,3)));
end;
2
3
- 運行結果:
2020-06-03 23:59:59
# 9.28. EndOfTheDay
function EndOfTheDay(const AValue: TDateTime): TDateTime;
- 該函式獲取與指定TDateTime型別表達式相同日期的最後可表示時刻。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回指定TDateTime型別表達式相同日期的最後可表示時刻。
示例:
begin
ShowMessage(DateTimeToStr(EndOfTheDay(StrToDate('2020-11-1'))));
end;
2
3
- 運行結果:
2020-11-01 23:59:59
# 9.29. EndOfTheMonth
function EndOfTheMonth(const AValue: TDateTime): TDateTime;
- 該函式用於獲取參數指定的TDateTime日期時間表達式值所在的月份的最後時刻。
部分 | 說明 |
---|---|
AValue | TDateTime日期時間型別表達式 |
返回值:返回參數指定月份最後一天的最後可表示時刻。
示例:
Var
MyEndDay: TDateTime;
begin
MyEndDay := EndOfTheMonth(StrToDate('2020-11-1'));
ShowMessage(DateTimeToStr(MyEndDay));
end;
2
3
4
5
6
- 運行結果:
2020-11-30 23:59:59
# 9.30. EndOfTheWeek
function EndOfTheWeek(const AValue: TDateTime): TDateTime;
- 該函式用於獲取參數指定的TDateTime日期時間表達式值所在周的最後時刻。
部分 | 說明 |
---|---|
AValue | TDateTime日期時間型別表達式 |
返回值:返回參數日期所在周最後一天的最後可表示時刻。
示例:
Var
MyEndDay: TDateTime;
begin
MyEndDay := EndOfTheWeek(StrToDate('2020-11-1'));
ShowMessage(DateTimeToStr(MyEndDay));
end;
2
3
4
5
6
- 運行結果:
2020-11-01 23:59:59
# 9.31. EndOfTheYear
function EndOfTheYear(const AValue: TDateTime): TDateTime;
- 該函式用於獲取參數指定的TDateTime日期時間表達式值所在年份的最後時刻。
部分 | 說明 |
---|---|
AValue | TDateTime日期時間型別表達式 |
返回值:返回參數日期所在年份最後一天的最後可表示時刻。
示例:
Var
MyEndDay: TDateTime;
begin
MyEndDay := EndOfTheYear(StrToDate('2020-11-1'));
ShowMessage(DateTimeToStr(MyEndDay));
end;
2
3
4
5
6
- 運行結果:
2020-12-31 23:59:59
# 9.32. FormatDateTime
function FormatDateTime(const Format: String; DateTime: TDateTime): String;
- 該函式利用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;
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;
該函式用於返回目前系統時間。
返回值:TDateTime型別值。
示例:
begin
ShowMessage(TimeToStr(GetTime()));
end;
2
3
- 運行結果:顯示目前的系統時間。
# 9.34. HourOfTheDay
function HourOfTheDay(const AValue: TDateTime): Word;
- 該函式獲得參數給定的日期時間型別表達式的小數部分。
部分 | 說明 |
---|---|
AValue | TDateTime日期時間型別表達式 |
返回值:返回能表示參數給定的TDateTime日期時間型別表達式小時部分的Word型別數。
示例:
begin
ShowMessage(IntToStr(HourOfTheDay(StrToDateTime('2020-03-10 14:36:55'))));
end;
2
3
- 運行結果:
14
# 9.35. HourOfTheMonth
function HourOfTheMonth(const AValue: TDateTime): Word;
- 該函式用於獲得參數給定日期時間型別表達式與對應月份第一天零時之間已流逝的小時數。
部分 | 說明 |
---|---|
AValue | TDateTime型別表達式 |
返回值:返回參數給定日期時間型別表達式與對應月份第一天零時之間已流逝的小時數的Word型別值。
示例:
begin
ShowMessage(IntToStr(HourOfTheMonth(StrToDateTime('2020-03-10 14:36:55'))));
end;
2
3
- 運行結果:
230
# 9.36. HourOfTheWeek
function HourOfTheWeek(const AValue: TDateTime): Word;
- 該函式獲得參數給定日期時間型別表達式與對應週期的星期一零時之間已流逝的小時數。
部分 | 說明 |
---|---|
AValue | 待轉換的小時數的日期和時間 |
返回值:返回一個word值。
示例:
begin
ShowMessage(IntToStr(HourOfTheWeek(StrToDateTime('2020-03-10 14:36:55'))));
end;
2
3
- 運行結果:
38
# 9.37. HourOfTheYear
function HourOfTheYear(const AValue: TDateTime): Word;
- 該函式獲得參數目前時間到對應年份1月1日已流逝的小時數。
部分 | 說明 |
---|---|
AValue | 待轉換的小時數的日期和時間 |
返回值:返回參數目前時間到對應年份1月1日已流逝的小時數。
示例:
begin
ShowMessage(IntToStr(HourOfTheYear(StrToDateTime('2020-03-10 14:36:55'))));
end;
2
3
- 運行結果:
1670
# 9.38. HoursBetween
function HoursBetween(const ANow, AThen: TDateTime): Int64;
- 該函式用於獲取指定的兩個TDateTime型別日期時間表達式之間相差的小時數。
部分 | 說明 |
---|---|
ANow | 待比較的日期時間 |
AThen | 待比較的日期時間 |
返回值:返回指定的兩個TDateTime型別日期時間表達式之間相差的小時數的Int64型別值。
示例:
begin
ShowMessage(IntToStr(HoursBetween(StrToDateTime('2020-03-10 14:36:55'),StrToDateTime('2020-11-01 13:35:16'))));
end;
2
3
- 運行結果:
5662
# 9.39. HourSpan
function HourSpan(const ANow, AThen: TDateTime): Double;
- 該函式用於獲取指定的兩個TDateTime值之間相差的小時數。
部分 | 說明 |
---|---|
ANow | 待比較的日期時間 |
AThen | 待比較的日期時間 |
返回值:返回指定的兩個TDateTime型別日期時間表達式之間相差的小時數的Double型別值。
示例:
begin
ShowMessage(FloatToStr(HourSpan(StrToDateTime('2020-03-10 14:36:55'),StrToDateTime('2020-11-01 13:35:16'))));
end;
2
3
- 運行結果:
5662.972499999992
# 9.40. IncDay
function IncDay(const AValue: TDateTime; const ANumberOfDays: Integer = 1): TDateTime;
- 根據指定的天數來增加或減少TDateTime型別的日。
部分 | 說明 |
---|---|
AValue | TDateTime型別日期時間表達式 |
ANumberOfDays | 待增加或減少日的數量 |
返回值:返回該變后的TDateTime型別值。
示例:
begin
ShowMessage(DateToStr(IncDay(StrToDate('2020-11-1'),5)));
end;
2
3
- 運行結果:
2020-11-06
# 9.41. IncHour
function IncHour(const AValue: TDateTime; const ANumberOfHours: Int64 = 1): TDateTime;
- 該函式根據參數給定的值來增加或減少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;
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;
- 該函式根據參數給定的值來增加或減少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;
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;
- 該函式根據參數給定的值來增加或減少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;
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;
- 該函式根據參數給定的值來增加或減少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;
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;
- 該函式根據參數給定的值來增加或減少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;
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;
- 該函式根據參數給定的值來增加或減少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;
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;
- 該函式根據參數給定的值來增加或減少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;
2
3
4
5
6
7
8
- 運行結果:
2022-10-01 2018-10-01
# 9.48. IsInLepYear
function IsInLeapYear(const AValue: TDateTime): Boolean;
- 判斷參數給定的日期所在的年份是不是閏年。
部分 | 說明 |
---|---|
AValue | TDateTime型別日期時間的表達式 |
返回值:如果是閏年返回True,否則返回False。
示例:
begin
if IsInLeapYear(date()) then
ShowMessage('今年是閏年')
else
ShowMessage('今年不是閏年');
end;
2
3
4
5
6
- 運行結果:顯示今年是否為閏年,例如本示例製作年份為2020年,該年份內執行該程式碼顯示今年為閏年。
# 9.49. IsLeapYear
function IsLeapYear(Year: Word): Boolean
- 該函式用於檢驗所給的年份是否為閏年。
部分 | 說明 |
---|---|
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;
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;
- 檢驗參數的時間是否為下午。
部分 | 說明 |
---|---|
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;
2
3
4
- 運行結果:
-1(表示為True) 0(表示為False)
# 9.51. IsSameDay
function IsSameDay(const AValue, ABasis: TDateTime): Boolean;
部分 | 說明 |
---|---|
AValue | TDateTime型別日期時間的表達式 |
ABasis | TDateTime型別日期時間的表達式 |
返回值:如果兩參數列示同一日期函式返回True,否則返回False。
示例:
begin
if IsSameDay(StrToDateTime('2020-2-24'), StrToDateTime('2020-4-24 16:50')) then
ShowMessage('相同')
else
ShowMessage('不同');
end;
2
3
4
5
6
- 運行結果:
不同
# 9.52. IsToday
function IsToday(const AValue: TDateTime): Boolean;
- 該函式檢測發生的日期與系統日期是否相同。
部分 | 說明 |
---|---|
AValue | TDateTime型別日期時間的表達式 |
返回值:如果參數給定的日期與系統目前日期相同返回True,否則返回False。
示例:
begin
if IsToday(StrToDateTime('2020-2-24')) then
ShowMessage('是今天')
else
ShowMessage('不是今天');
end;
2
3
4
5
6
- 運行結果:
不是今天
# 9.53. IsValidDate
function IsValidDate(const AYear, AMonth, ADay: Word): Boolean;
- 該函式用於檢驗給定的年、月、日是否合乎規範。
部分 | 說明 |
---|---|
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;
2
3
4
5
- 運行結果:
-1 0 0
# 9.54. IsValidDateDay
function IsValidDateDay(const AYear, ADayOfYear: Word): Boolean;
- 檢查參數給定的天數是不是再指定年份的總天數範圍之內。
部分 | 說明 |
---|---|
AYear | 年 |
ADayOfYear | 待檢驗的天數 |
返回值:若參數給定的天數在指定年份的總天數範圍之內返回True,否則返回False。
示例:
begin
ShowMessage(BoolToStr(IsValidDateDay(2020,367)));
ShowMessage(BoolToStr(IsValidDateday(2020,0)));
ShowMessage(BoolToStr(IsValidDate(2020,4)));
end;
2
3
4
5
- 運行結果:
0 0 -1
# 9.55. IsValidDateMonthWeek
function IsValidDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word): Boolean;
- 該函式是檢驗參數給定的年份、月份、該月份第幾周和周值的合法性。
部分 | 說明 |
---|---|
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;
2
3
4
5
- 運行結果:
-1 0 0
# 9.56. IsValidDateTime
function IsValidDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): Boolean;
- 檢驗參數給定的年、月、日、小時、分鐘、秒和毫秒的合法性。
部分 | 說明 |
---|---|
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;
2
3
4
5
- 運行結果:
-1 0 0
# 9.57. IsValidDateWeek
function IsValidDateWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): Boolean;
- 檢驗參數給定的年份、週數,合法性。
部分 | 說明 |
---|---|
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;
2
3
4
5
- 運行結果:
-1 0 -1
# 9.58. IsValidTime
function IsValidTime(const AHour, AMinute, ASecond, AMilliSecond: Word): Boolean;
- 檢驗參數給定的小時、分鐘、秒、和毫秒的合法性。
部分 | 說明 |
---|---|
AHour | 待檢驗的小時 |
AMinute | 待檢驗的分鐘 |
ASecond | 待檢驗的秒 |
AMilliSecond | 待檢驗的毫秒 |
返回值:如果被檢驗值合法,函式返回True,否則返回False。
示例:
begin
ShowMessage(BoolToStr(IsValidTime(20,35,25,0)));
end;
2
3
- 運行結果:
-1
# 9.59. MilliSecondOf
function MilliSecondOf(const AValue: TDateTime): Word;
- 該函式獲得參數給定日期時間型別表達式的毫秒。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回能代表參數給定的日期時間型別表達式毫秒的Word型別值。
示例:
Var
MilliSecond: Word;
begin
MilliSecond := MilliSecondOf(Now);
ShowMessage(IntToStr(MilliSecond));
end;
2
3
4
5
6
執行上述程式碼,得到目前系統時間的毫秒值。
# 9.60. MilliSecondOfTheDay
function MilliSecondOfTheDay(const AValue: TDateTime): Cardinal;
- 該函式獲得TDateTime參數所在天已流逝的毫秒數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的毫秒數。
示例:
var
MilCount: Longword;
begin
MilCount := MilliSecondOfTheDay(Now);
ShowMessage(IntToStr(Milcount));
end;
2
3
4
5
6
- 運行結果:顯示當天已流逝的毫秒數。
# 9.61. MilliSecondOfTheHour
function MilliSecondOfTheHour(const AValue: TDateTime): Cardinal;
- 該函式用於獲得所在小時已流逝的毫秒數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的毫秒數。
示例:
var
MilCount: Longword;
begin
MilCount := MilliSecondOfTheHour(Now);
ShowMessage(IntToStr(Milcount));
end;
2
3
4
5
6
- 運行結果:顯示目前所在小時已流逝的毫秒數。
# 9.62. MilliSecondOfTheMinute
function MilliSecondOfTheMinute(const AValue: TDateTime): Cardinal;
- 該函式用於獲得參數指定的TDateTime值,與它同一分鐘的起點之間已流逝的毫秒數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的毫秒數。
示例:
var
MilCount: Longword;
begin
MilCount := MilliSecondOfTheMinute(Now);
ShowMessage(IntToStr(Milcount));
end;
2
3
4
5
6
- 運行結果:顯示目前分鐘已流逝的毫秒數。
# 9.63. MilliSecondOfTheMonth
function MilliSecondOfTheMonth(const AValue: TDateTime): Cardinal;
- 該函式用於獲取參數指定的TDateTime值與它同一月的起點之間已流逝的毫秒數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的毫秒數。
示例:
var
MilCount: Longword;
begin
MilCount := MilliSecondOfTheMonth(Now);
ShowMessage(IntToStr(Milcount));
end;
2
3
4
5
6
- 運行結果:顯示目前時刻所在月份已流逝的毫秒數。
# 9.64. MilliSecondOfTheSecond
function MilliSecondOfTheSecond(const AValue: TDateTime): Word;
- 該函式用於獲得參數指定的TDateTime值與它同一秒的起點之間已流逝的毫秒數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的毫秒數。
示例:
var
MilCount: Longword;
begin
MilCount := MilliSecondOfTheSecond(Now);
ShowMessage(IntToStr(Milcount));
end;
2
3
4
5
6
- 運行結果:顯示目前秒數中已流逝的毫秒數。
# 9.65. MilliSecondsBetween
function MilliSecondsBetween(const ANow, AThen: TDateTime): Int64;
- 該函式獲取參數指定的兩個日期時間型別表達式之間相差的毫秒數。
部分 | 說明 |
---|---|
ANow | 待比較的日期時間型別表達式 |
AThen | 帶比較的日期時間型別表達式 |
返回值:返回兩日期時間型別表達式相差的毫秒數(64位整型值)。
示例:
begin
ShowMessage(IntToStr(MilliSecondsBetween(Now,Now + 1)));
end;
2
3
- 運行結果:該段程式碼用於計算一天有多少毫秒數。
86400000
# 9.66. MinuteOf
function MinuteOf(const AValue: TDateTime):Word;
- 該函式獲取指定的日期時間表達式時鐘的分鐘數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回指定的日期時間表達式時鐘的分鐘數(Word型別值)。
示例:
begin
ShowMessage(IntToStr(MinuteOf(Now)));
end;
2
3
該段程式碼執行后,訊息對話方塊顯示系統目前分鐘。
# 9.67. MinuteOfTheHour
function MinuteOfTheHour(const AValue: TDateTime): Word;
- 該函式用於指定TDateTime值與它同一小時的起點之間已流逝的分鐘數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的分鐘數。
示例:
begin
ShowMessage(IntToStr(MinuteOfTheHour(StrToDateTime('2020-11-01 13:24:00'))));
end;
2
3
- 運行結果:
24
# 9.68. MinuteOfTheMonth
function MinuteOfTheMonth(const AValue: TDateTime): Word;
- 該函式用於獲得參數指定的TDateTime值與它同一月的起點之間已經流逝的分鐘數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的分鐘數。
示例:
begin
ShowMessage(IntToStr(MinuteOfTheMonth(StrToDateTime('2020-11-02 13:24:00'))));
end;
2
3
- 運行結果:
2244
# 9.69. MinuteOfTheWeek
function MinuteOfTheWeek(const AValue: TDateTime): Word;
- 該函式用於獲得參數指定的TDateTime值與它同一周的起點之間已經流逝的分鐘數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的分鐘數。
示例:
begin
ShowMessage(IntToStr(MinuteOfTheWeek(StrToDateTime('2020-11-04 13:24:00'))));
end;
2
3
- 運行結果:
3684
# 9.70. MinuteOfTheYear
function MinuteOfTheYear(const AValue: TDateTime): Cardinal;
- 該函式用於獲得參數指定的TDateTime值與它同一年的起點之間已經流逝的分鐘數。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回已流逝的分鐘數。
示例:
begin
ShowMessage(IntToStr(MinuteOfTheYear(StrToDateTime('2020-11-04 13:24:00'))));
end;
2
3
- 運行結果:
444324
# 9.71. MinutesBetween
function MinutesBetween(const ANow, AThen: TDateTime): Int64;
- 該函式獲得指定TDateTime值之間相差的分鐘數。
部分 | 說明 |
---|---|
ANow | 日期時間表達式 |
AThen | 日期時間表達式 |
返回值:返回參數給定的兩個TDateTime值之間相差的分鐘數的64位整型。
示例:
begin
ShowMessage(IntToStr(MinutesBetween(Now,StrToDateTime('2020-11-1 3:51'))));
end;
2
3
- 運行結果:返回目前時間與給定時間相差的分鐘數。
# 9.72. MinuteSpan
function MinuteSpan(const ANow, AThen: TDateTime): Double;
- 該函式獲得參數給定的兩個TDateTime型別值相差的分鐘數。返回的數據型別為double。
部分 | 說明 |
---|---|
ANow | 日期時間表達式 |
AThen | 日期時間表達式 |
返回值:返回參數給定的兩個TDateTime值之間相差的分鐘數的Double型別。
示例:
begin
ShowMessage(FloatToStr(MinuteSpan(Now,StrToDateTime('2020-11-1 3:51'))));
end;
2
3
- 運行結果:返回目前時間與給定時間相差的分鐘數。
# 9.73. MonthOf
function MonthOf(const AValue: TDateTime):Word;
- 該函式獲得參數給定日期時間型別表達式的月份。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回能代表參數給定的日期時間型別表達式月份的Word型別值。
示例:
var
Mon: Word;
begin
Mon := MonthOf(Now);
ShowMessage(IntToStr(Mon));
end;
2
3
4
5
6
執行上述程式碼,顯示系統目前月份。
# 9.74. MonthOfTheYear
function MonthOfTheYear(const AValue: TDateTime): Word;
- 該函式獲得參數給定日期時間型別表達式的月份。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回能代表參數給定的日期時間型別表達式月份的word型別值。
示例:
Var
Mon: Word;
begin
Mon := MonthOfTheYear(Now);
ShowMessage(IntToStr(Mon));
end;
2
3
4
5
6
- 運行結果:顯示系統目前月份。
# 9.75. MonthsBetween
function MonthsBetween(const ANow, AThen: TDateTime): Integer;
部分 | 說明 |
---|---|
ANow | 待比較的日期時間型別表達式 |
AThen | 待比較的日期時間型別表達式 |
返回值:返回參數給定的兩日期時間型別表達式之間相差的整月數的Word型別值。
示例:
begin
ShowMessage(IntToStr(MonthsBetween(Date,EndOfTheYear(now))));
end;
2
3
- 運行結果:顯示目前月份與年末月份的差值。
# 9.76. MonthSpan
function MonthSpan(const ANow, AThen: TDateTime): Double;
- 該函式獲取給定的兩日期時間型別表達式之間相差的月數。
部分 | 說明 |
---|---|
ANow | 待比較的日期時間型別表達式 |
AThen | 待比較的日期時間型別表達式 |
返回值:返回參數給定的兩日期時間型別表達式之間相差月數的Double型別值。
示例:
begin
ShowMessage(FloatToStr(MonthSpan(Date,EndOfTheYear(now))));
end;
2
3
- 運行結果:顯示目前日期與年末日期的月份相差浮點數值。
# 9.77. Now
function Now: TDateTime;
該函式用於獲取系統目前的日期和時間。
返回值:返回系統目前的日期和時間。
示例:
begin
ShowMessage(DateTimeToStr(now));
ShowMessage(DateTimeToStr(Now()));
end;
2
3
4
- 運行結果:
2020-01-01 13:25:35 2020-01-01 13:35:37
# 9.78. NthDayOfWeek
function NthDayOfWeek(const AValue: TDateTime): Word;
- 獲得參數指定日期時間表達式所在月份的周的序號。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:返回序號值。
示例:
var
MilCount: Longword;
begin
MilCount := NthDayOfWeek(StrToDateTime('2020-11-1 11:00:00'));
ShowMessage(IntToStr(Milcount));
end;
2
3
4
5
6
- 運行結果:
1
# 9.79. RecodeDate
function RecodeDate(const AValue: TDateTime; const AYear, AMonth, ADay: Word): TDateTime;
- 函式把參數指定的日期替換為參數Year、Month、Day所對應的日期。
部分 | 說明 |
---|---|
AValue | 被替換的日期時間型別表達式 |
AYear | 替換后的年份 |
AMonth | 替換后的月份 |
ADay | 替換后的日 |
返回值:返回變換后的日期。
示例:
begin
ShowMessage(DateToStr(RecodeDate(Now,2020,07,07)));
end;
2
3
# 9.80. RecodeDateTime
function RecodeDateTime(const AValue: TDateTime; const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
- 該函式把參數指定的日期時間型別表達式替換為參數給定的年、月、日、小時、分鐘、秒和毫秒所對應的日期時間值。
部分 | 說明 |
---|---|
AValue | 被替換后的日期時間型別表達式 |
AYear | 替換后的年份 |
AMonth | 替換后的月份 |
ADay | 替換后的日 |
AHour | 替換后的小時 |
AMinute | 替換后的分鐘 |
ASecond | 替換后的秒鐘 |
AMilliSecond | 替換后的毫秒 |
返回值:返回變換后的日期時間型別值。
示例:
begin
ShowMessage(DateTimeToStr(RecodeDateTime(Now,2020,07,07,12,25,25,0)));
end;
2
3
- 運行結果:
2020-07-07 12:25:25
# 9.81. RecodeDay
function RecodeDay(const AValue: TDateTime; const ADay: Word): TDateTime;
- 把參數指定的日期時間型別表達式替換為參數給定日所對應的日期時間值。
部分 | 說明 |
---|---|
AValue | 被替換的日期時間型別表達式 |
ADay | 替換后的日 |
返回值:返回變換后的日期時間型別值。
示例:
begin
ShowMessage(DateToStr(RecodeDay(Now,1)));
end;
2
3
- 運行結果:將目前日期的日改為1日。
# 9.82. RecodeHour
function RecodeHour(const AValue: TDateTime; const AHour: Word): TDateTime;
- 該函式將指定時間中的小時替換為另一個指定的小時。
部分 | 說明 |
---|---|
AValue | 被替換的日期時間型別表達式 |
AHour | 替換的小時 |
返回值:返回修改小時後的時間。
示例:
begin
ShowMessage(DateTimeToStr(RecodeHour(StrToDateTime('2020-11-1 12:00:00'),6)));
end;
2
3
- 運行結果:
2020-11-1 6:00:00
# 9.83. RecodeMilliSecond
function RecodeMilliSecond(const AValue: TDateTime; const AMilliSecond: Word): TDateTime;
- 該函式將指定時間中的毫秒替換成指定的數值。
部分 | 說明 |
---|---|
AValue | 被替換的日期時間型別表達式 |
AMilliSeconds | 替換的毫秒值 |
返回值:返回替換毫秒后的時間。
示例:
var
AValue: TDateTime;
begin
AValue := RecodeMilliSecond(now,100);
ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',AValue));
end;
2
3
4
5
6
- 運行結果:運行后返回參數指定的值0-999。
# 9.84. RecodeMinute
function RecodeMinute(const AValue: TDateTime; const AMinute: Word): TDateTime;
- 該函式將指定時間中的分替換稱為特定數值。
部分 | 說明 |
---|---|
AValue | 被替換的日期時間型別表達式 |
AMinute | 返回被替換分鐘的時間 |
返回值:返回替換后的時間。
示例:
var
AValue: TDateTime;
begin
AValue := RecodeMinute(now,10);
ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',AValue));
end;
2
3
4
5
6
- 運行結果:運行后返回參數特定的值(0-59)。
# 9.85. RecodeSecond
function RecodeSecond(const AValue: TDateTime; const ASecond: Word): TDateTime;
- 該函式將指定時間的秒替換為指定的數值。
部分 | 說明 |
---|---|
AValue | 被替換的日期時間型別表達式 |
ASecond | 替換秒指定的數值 |
返回值:返回替換秒后的時間。
示例:
var
AValue: TDateTime;
begin
AValue := RecodeSecond(now,10);
ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',AValue));
end;
2
3
4
5
6
- 運行結果:運行后返回參數的特定的值(0-59)。
# 9.86. RecodeTime
function RecodeTime(const AValue: TDateTime; const AHour, AMinute, ASecond, AMilliSecond: Word): TDateTime;
- 該函式將指定時間的時、分、秒和毫秒替換為指定的數值。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
- 運行結果:函式運行后,返回一個更改當前時間的時鐘為11、分鐘為12、秒鐘為13、毫秒為14的值。
# 9.87. RecodeYear
function RecodeYear(const AValue: TDateTime; const AYear: Word): TDateTime;
- 該函式用於將指定時間的年份替換為指定的數值。
部分 | 說明 |
---|---|
AValue | 被替換的日期時間型別表達式 |
AYear | 替換年份的指定值 |
返回值:返回替換后的時間。
示例:
var
AValue: TDateTime;
begin
AValue := RecodeYear(now,2021);
ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss:zzz',AValue));
end;
2
3
4
5
6
7
- 運行結果:函式運行后,返回一個更改當前時間的年份為2021年的值。
# 9.88. SameDate
function SameDate(const A, B: TDateTime): Boolean;
- 該函式比較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;
2
3
4
5
6
7
8
9
10
11
- 運行結果:
not Same
# 9.89. SameDateTime
function SameDateTime(const A, B: TDateTime): Boolean;
- 該函式比較兩個時間是否相同。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
10
11
- 運行結果:
not Same
# 9.90. SameTime
function SameTime(const A, B: TDateTime): Boolean;
- 該函式比較兩個時間是否相等,不包括日期部分。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
10
11
- 運行結果:
Same
# 9.91. SecondOf
function SecondOf(const AValue: TDateTime;): Word;
- 該函式返回指定時間中表示的秒數。
部分 | 說明 |
---|---|
AValue | 待操作的TDateTime型別的時間值 |
返回值:返回取得的秒數。
示例:
begin
ShowMessage(IntToStr(SecondOf(Now)));
end;
2
3
執行上述程式碼后,顯示目前系統的秒數。
# 9.92. SecondOfTheDay
function SecondOfTheDay(const AValue: TDateTime): Cardinal;
- 該函式用於返回指定時間與同一天00:00:00之間已流逝的秒數。
部分 | 說明 |
---|---|
AValue | 指定計算的時間 |
返回值:返回流逝的秒數。
示例:
var
ADate: TDateTime;
SecOf: Word;
begin
ADate := Now();
SecOf := SecondOftheDay(ADate);
ShowMessage(IntToStr(SecOf));
end;
2
3
4
5
6
7
8
- 運行結果:運行后返回流逝的秒數。
# 9.93. SecondOfTheHour
function SecondOfTheHour(const AValue: TDateTime): Word;
- 該函式用於返回指定時間與同一天同一時的起始時間之間流逝的秒數。
部分 | 說明 |
---|---|
AValue | 指定計算的時間 |
返回值:返回流逝的小時數。
示例:
var
ADate: TDateTime;
HOurOf: Word;
begin
ADate := Now();
HOurOf := SecondOftheHour(ADate);
ShowMessage(IntToStr(HOurOf));
end;
2
3
4
5
6
7
8
- 運行結果:顯示目前小時已流逝的秒數。
# 9.94. SecondOfTheMinute
function SecondOfTheMinute(const AValue: TDateTime): Word;
- 該函式返回指定時間與同一天同一分鐘的起始時間之間流逝的秒數。
部分 | 說明 |
---|---|
AValue | 指定計算的時間 |
返回值:返回流逝的秒數。
示例:
var
ADate: TDateTime;
HOurOf: Word;
begin
ADate := Now();
HOurOf := SecondOftheMinute(ADate);
ShowMessage(IntToStr(HOurOf));
end;
2
3
4
5
6
7
8
- 返回值:返回流逝的秒數。
# 9.95. SecondOfTheMonth
function SecondOfTheMonth(const AValue: TDateTime): Cardinal;
- 該函式返回指定時間與同一天同一分鐘的起始時間之間流逝的秒數。
部分 | 說明 |
---|---|
AValue | 指定計算的時間 |
返回值:返回流逝的秒數。
示例:
var
ADate: TDateTime;
HOurOf: Word;
begin
ADate := Now();
HOurOf := SecondOftheMonth(ADate);
ShowMessage(IntToStr(HOurOf));
end;
2
3
4
5
6
7
8
- 返回值:返回流逝的秒數。
# 9.96. SecondOfTheWeek
function SecondOfTheWeek(const AValue: TDateTime): Cardinal;
- 該函式返回指定的時間與其所在周首天00:00:00之間流逝的秒數。
部分 | 說明 |
---|---|
AValue | 指定計算的時間 |
返回值:返回流逝的秒數。
示例:
var
ADate: TDateTime;
HOurOf: Word;
begin
ADate := Now();
HOurOf := SecondOfTheWeek(ADate);
ShowMessage(IntToStr(HOurOf));
end;
2
3
4
5
6
7
8
- 返回值:返回流逝的秒數。
# 9.97. SecondsBetween
function SecondsBetween(const ANow, AThen: TDateTime): Int64;
- 該函式返回兩個間隔時間相差的秒數。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:該函式返回ADt與TADt之間相差的秒數。
# 9.98. SecondsSpan
function SecondSpan(const ANow, AThen: TDateTime): Double;
- 該函式返回兩個指定時間相差的秒數,包括分數秒。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:該函式返回ADt與TADt之間相差的秒數。
# 9.99. StartOfAWeek
function StartOfAWeek(const AYear, AWeekOfYear, ADayOfWeek: Word): TDateTime;
- 該函式返回指定日期中指定星期的第一個可表示時刻。
部分 | 說明 |
---|---|
AYear | 指定的年 |
AWeekOfYear | 指定周 |
ADayOfWeek | 指定周的第一天是哪天 |
返回值:返回一個時間值。
示例:
var
DT: TDateTime;
begin
DT := StartOfAWeek(2020,45,1);
ShowMessage(DateToStr(DT));
end;
2
3
4
5
6
- 運行結果:
2020-11-02
# 9.100. StartOfAYear
function StartOfAYear(const AYear: Word): TDateTime;
- 該函式返回指定年份的第一個可表示的時刻。
部分 | 說明 |
---|---|
AYear | 指定年份 |
返回值:返回獲得的時間。
示例:
var
DT: TDateTime;
begin
DT := StartOfAYear(2020);
ShowMessage(DateToStr(DT));
end;
2
3
4
5
6
- 運行結果:
2020-01-01
# 9.101. StartOfTheDay
function StartOfTheDay(const AValue: TDateTime): TDateTime;
- 該函式根據指定的日期返回當天的零時時間。
部分 | 說明 |
---|---|
AValue | 日期表達式 |
返回值:函式返回AValue所表示的某一天的開始時間。
示例:
begin
ShowMessage(FormatDateTime('yyyy-mm-dd hh:mm:ss',StartOfTheDay(Now)));
end;
2
3
- 運行結果:該函式顯示當天的零時時間。
# 9.102. StartOfTheMonth
function StartOfTheMonth(const AValue: TDateTime): TDateTime;
- 該函式根據指定的日期返回當月第一天的零時時間。
部分 | 說明 |
---|---|
AValue | 日期表達式 |
返回值:函式返回AValue所表示的某一天的開始時間。
示例:
begin
ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheMonth(Now)));
end;
2
3
執行上述程式碼,單擊按鈕,顯示本月初的零時時間。
# 9.103. StartOfTheWeek
function StartOfTheWeek(const AValue: TDateTime): TDateTime;
- 該函式根據指定的日期返回本週第一天的零時時間。
部分 | 說明 |
---|---|
AValue | 日期表達式 |
返回值:函式返回AValue所表示的某一天的開始時間。
示例:
begin
ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheWeek(Now)));
end;
2
3
顯示本週週一的零時時間。
# 9.104. StartOfTheYear
function StartOfTheYear(const AValue: TDateTime): TDateTime;
- 該函式根據指定的日期返回當年的第一天的零時時間。
部分 | 說明 |
---|---|
AValue | 日期表達式 |
返回值:函式返回AValue所表示的某一天的開始時間。
示例:
begin
ShowMessage(FormatDateTime('yyyy-mm-dd hh:nn:ss',StartOfTheYear(Now)));
end;
2
3
顯示本年第一天的零時時間。
# 9.105. StrToDate
function StrToDate(const S: String): TDateTime;
- 該函式將字串轉換為日期值。
部分 | 說明 |
---|---|
S | 字串表達式,表示待轉換的字串 |
返回值:函式返回轉換后的日期數據。
示例:
begin
ShowMessage(DateTimeToStr(StrToDate('2020-01-01')));
end;
2
3
- 運行結果:
2020-01-01
# 9.106. StrToDateDef
function StrToDateDef(const S: String; const Default: TDateTime): TDateTime;
- 該函式將字串轉換為日期值,如果字串不符合日期格式,返回預設值。
部分 | 說明 |
---|---|
S | 字串表達式,表示待轉換的字串 |
Default | 日期數據,表示為函式提供的預設值 |
返回值:函式返回轉換后的日期數據,如果S不符合日期格式,函式返回預設值。
示例:
var
ADate: TDateTime;
BDate: TDateTime;
begin
ADate := StrToDate('2008-01-01');
BDate := StrToDateDef('2008-01-0s',ADate);
ShowMessage(DateToStr(BDate));
end;
2
3
4
5
6
7
8
- 運行結果:
2008-01-01
# 9.107. StrToDateTime
function StrToDate(const S: String): TDateTime;
- 該函式將字串轉換為日期值。
部分 | 說明 |
---|---|
S | 字串表達式,表示待轉換的字串 |
返回值:函式返回轉換后的日期時間數據。
示例:
var
ADate: TDateTime;
begin
ADate := StrToDateTime('2020-11-01 13:25:28');
ShowMessage(DateTimeToStr(ADate));
end;
2
3
4
5
6
- 運行結果:
2020-11-01 13:25:28
# 9.108. StrToDateTimeDef
function StrToDateTimeDef(const S: String; const Default: TDateTime): TDateTime;
- 該函式將字串轉換為日期時間型別,如果字串不符合格式,則使用預設值。
部分 | 說明 |
---|---|
S | 字串表達式,表示待轉換的字串 |
Default | 日期數據,表示為函式提供的預設值 |
返回值:函式返回轉換后的日期時間數據,如果S不符合日期時間格式,函式返回預設值。
示例:
var
ADate: TDateTime;
begin
ADate := StrToDateTimeDef('2008-01-0D 12:59:59',Now);
ShowMessage(DateTimeToStr(ADate));
end;
2
3
4
5
6
上述函式運行后,字串表達式中的日期時間數據不符合格式要求,函式返回預設值。
# 9.109. StrToTime
function StrToTime(const S: String): TDateTime;
- 該函式將字串轉換為時間。
部分 | 說明 |
---|---|
S | 字串表達式,表示待轉換的字串 |
返回值:返回轉換后的時間數據。
示例:
var
ATime: TDateTime;
begin
ATime := StrToTime('12:59:59');
if ATime < 0.5 then
ShowMessage('早上好!')
else
ShowMessage('下午好!');
end;
2
3
4
5
6
7
8
9
- 運行結果:
下午好!
# 9.110. StrToTimeDef
function StrToDateDef(Const S: string; const Default: TDateTime): TDateTime;
- 該函式將字串轉換為時間,如果字串不符合要求,則返回預設值。
部分 | 說明 |
---|---|
S | 字串表達式,表示待轉換的字串 |
Default | 日期數據,表示為函式提供的預設值 |
返回值:函式返回轉換后的時間數據,如果S不符合時間格式,函式返回預設值。
示例:
var
ATime: TDateTime;
begin
ATime := StrToTimeDef('12:00:0s',Now);
ShowMessage(TimeToStr(ATime));
end;
2
3
4
5
6
該函式運行后,由於時間格式不符合要求,函式返回目前時間。
# 9.111. Time
function Time: TDateTime;
函式用於返回目前系統時間。
返回值:函式返回系統目前的時間數據。
示例:
begin
ShowMessage(TimeToStr(time));
end;
2
3
- 運行結果:該示例運行后,返回目前系統的時間。
# 9.112. TimeOf
function TimeOf(const AValue: TDateTime): TDateTime;
- 該函式用於去掉日期時間數據的日期部分,使其只包含時間部分,將日期設定為0。
部分 | 說明 |
---|---|
AValue | 日期時間型別表達式 |
返回值:函式返回轉換后的時間數據。
示例:
begin
ShowMessage(FormatDateTime('hh:mm:ss',TimeOf(Now)));
ShowMessage(FormatDateTime('yyyy-mm-dd',TimeOf(Now)));
end;
2
3
4
- 運行結果:顯示目前時間資訊,日期則顯示為1899-12-30
# 9.113. TimeToStr
function TimeToStr(Time: TDateTime): String;
- 該函式返回日期時間數據中時間部分的字串。
部分 | 說明 |
---|---|
Time | 日期時間型別表達式 |
返回值:函式返回時間部分的字串。
示例:
begin
ShowMessage(TimeToStr(Now));
end;
2
3
- 運行結果:該示例運行后,顯示目前系統的時間。
# 9.114. Today
function Today: TDateTime;
函式Today返回目前的日期數據,時間部分被設定為0。
返回值:返回目前系統的日期。
示例:
begin
ShowMessage(DateToStr(Today));
end;
2
3
- 運行結果:顯示目前的系統日期。
# 9.115. Tomorrow
function Tomorrow: TDateTime;
該函式返回明天的日期數據,時間部分被設定為0。
返回值:函式返回明天日期。
示例:
begin
ShowMessage(DateToStr(Tomorrow));
end;
2
3
- 運行結果:顯示目前系統的明天的日期。
# 9.116. TryEncodeDate
function TryEncodeDate(Year,Month,Day:Word; out Date: TDateTime): Boolean;
- 該函式根據參數中的年、月、日產生一個日期值,如果產生了日期值,函式返回True,否則返回False。
部分 | 說明 |
---|---|
Year | 整型表達式,用於表示產生日期值的年份 |
Month | 整型表達式,用於表示產生日期值的月份 |
Day | 整型表達式,用於某一月的第幾天 |
Date | 日期型表達式,用於儲存產生的日期 |
返回值:如果函式能夠產生合法的日期,返回值為True,否則返回值為False。
示例:
var
ADate: TDateTime;
begin
if TryEncodeDate(2020,11,01,ADate) Then
ShowMessage(DateToStr(ADate));
end;
2
3
4
5
6
- 運行結果:
2020-11-01
# 9.117. TryEncodeDateDay
function TryEncodeDateDay(const AYear, ADayOfYear: Word; out AValue: TDateTime): Boolean;
- 該函式根據指定的年份和該年已過的天數計算日期。
部分 | 說明 |
---|---|
AYear | 整型表達式,用於表示產生日期的年份 |
ADayOfYear | 整型表達式,用於表示已過的天數 |
AValue | 日期表達式,用於儲存產生的日期數據 |
返回值:如果函式能夠產生合規的日期,返回值為True,否則返回False。
示例:
var
ADate: TDateTime;
begin
if TryEncodeDateDay(2020,306,ADate) Then
ShowMessage(DateToStr(ADate));
end;
2
3
4
5
6
- 運行結果:
2020-11-01
# 9.118. TryEncodeDateMonthWeek
function TryEncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word; var AValue: TDateTime): Boolean;
- 該函式根據指定的年、月、每月的第幾周、每週的第幾天等資訊產生一個日期。
部分 | 說明 |
---|---|
AYear | 整型表達式,用於表示產生日期的年份 |
AMonth | 整型表達式,用於表示產生日期的月份 |
AWeekOfMonth | 整型表達式,用於表示月份的第幾周 |
ADayOfWeek | 整型表達式,用於表示某一週的第幾天 |
AValue | 日期表達式,用於儲存產生的日期數據 |
返回值:如果函式能夠產生合規的日期,返回值為True,否則返回False。
示例:
var
ADate: TDateTime;
begin
if TryEncodeDateMonthWeek(2020,11,2,2,ADate) Then
ShowMessage(DateToStr(ADate));
end;
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;
- 該函式根據參數中的年、月、日產生一個日期值,如果產生了日期值,函式返回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;
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;
- 該函式根據指定的年及該年的第幾周計算一個日期。
部分 | 說明 |
---|---|
AYear | 整型表達式,用於表示產生日期的年份 |
AWeekOfYear | 整型表達式,用於表示已過的星期數 |
AValue | 日期型表達式,用於儲存產生的日期 |
ADayOfWeek | 整型表達式,用於表示星期幾,預設為1 |
返回值:如果函式能夠產生合法的日期,返回值為True,否則返回值為False。
示例:
var
ADate: TDateTime;
begin
if TryEncodeDateWeek(2020,14,ADate,1) Then
ShowMessage(DateTimeToStr(ADate));
end;
2
3
4
5
6
- 運行結果:
2020-03-30
# 9.121. TryEncodeDayOfWeekInMonth
function TryEncodeDayOfWeekInMonth(const AYear, AMonth, ANthDayOfWeek, ADayOfWeek: Word; out AValue: TDateTime): Boolean;
- 該函式用於根據指定的年、月、星期以及星期在某一月中出現的次數等資訊產生一個日期值。
部分 | 說明 |
---|---|
AYear | 整型表達式,用於表示產生日期的年份 |
AMonth | 整型表達式,用於表示產生日期的月份 |
ANthDayOfWeek | 整型表達式,用於指定ADayOfWeek在某一月中出現的次數 |
ADayOfWeek | 整型表達式,用於表示星期幾 |
AValue | 日期型表達式,用於儲存產生的日期 |
返回值:如果函式能夠產生合法的日期,返回值為True,否則返回值為False。
示例:
var
ADate: TDateTime;
begin
if TryEncodeDayOfWeekInMonth(2020,11,1,2,ADate) Then
ShowMessage(DateTimeToStr(ADate));
end;
2
3
4
5
6
- 運行結果:
2020-11-03
# 9.122. TryEncodeTime
function TryEncodeTime(Hour, Min, Sec, MSec: Word; out Time: TDateTime): Boolean;
- 該函式根據指定的小時、分、秒、毫秒產生一個時間值。
部分 | 說明 |
---|---|
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;
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;
- 該函式能夠對指定的日期數據部分或全部內容進行修改。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
- 運行結果:
2020-11-01 12:33:45:122
# 9.124. TryStrToDate
function TryStrToDate(const S: String; out Value: TDateTime): Boolean;
- 該函式將字串轉換為日期。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
10
- 運行結果:運行上述程式碼,由於時間格式不正確,顯示字串不符合格式要求提示框。
# 9.125. TryStrToDateTime
function TryStrToDateTime(const S: String; out Value: TDateTime): Boolean;
- 該函式將字串轉換為日期。
部分 | 說明 |
---|---|
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;
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;
- 該函式將字串轉換為日期。
部分 | 說明 |
---|---|
S | 字串表達式,表示欲轉換的數據 |
Value | 日期表達式,用於儲存轉換后的數據 |
返回值:如果函式能夠將字串轉換為時間,返回值為True,否則返回值為False。
示例:
var
temp: TDateTime;
msg: String;
begin
if TryStrToTime('12:30',temp) Then
msg := TimeToStr(temp)
else
msg := '字串不符合格式要求';
ShowMessage(msg);
end;
2
3
4
5
6
7
8
9
10
- 運行結果:運行上述程式碼,顯示12:30。
# 9.127. WeekOf
function WeekOf(const AValue: TDateTime): Word;
- 該函式根據日期值返回日期值所在的周在一年中的週數。
部分 | 說明 |
---|---|
AValue | 日期表達式,用於指定日期數據 |
返回值:函式返回參數指定的日期在一年中的週數。
示例:
begin
ShowMessage(IntToStr(WeekOf(Now)));
end;
2
3
- 運行結果:運行后顯示當天的本年週數。
# 9.128. WeekOfTheMonth
function WeekOfTheMonth(const AValue: TDateTime): Word;
- 該函式根據指定的日期判斷本週是本月中的第幾周。
部分 | 說明 |
---|---|
AValue | 日期表達式,用於表示指定日期數據 |
AYear | 整型表達式,用於返回日期中的年份 |
AMonth | 整型表達式,用於返回日期中的月份 |
返回值:函式返回參數指定的日期在本月中的週數。
示例:
begin
ShowMessage(IntToStr(WeekOfTheMonth(Now)));
end;
2
3
- 運行結果:顯示當天在本月中的週數。
# 9.129. WeekOfTheYear
function WeekOfTheYear(const AValue: TDateTime): Word;
- 該函式根據日期值返回日期值所在的周在一年中的週數。
部分 | 說明 |
---|---|
AValue | 日期表達式,用於指定日期數據 |
AYear | 整型表達式,用於返回日期中的年份 |
返回值:函式返回參數指定的日期在所標識的年中的週數。
示例:
begin
ShowMessage(IntToStr(WeekOfTheYear(Now)));
end;
2
3
- 運行結果:顯示本週在一年中的週數。
# 9.130. WeeksBetween
function WeeksBetween(const ANow, AThen: TDateTime): Integer;
- 該函式用於計算兩個日期之間的週數。
部分 | 說明 |
---|---|
ANow | 待比較的日期 |
AThen | 待比較的日期 |
返回值:函式返回參數指定的時間段的週數。
示例:
begin
ShowMessage(IntToStr(WeeksBetween(Now , Now + 14)));
end;
2
3
- 運行結果:
2
# 9.131. WithinPastHours
function WithinPastHours(const ANow, AThen: TDateTime; const AHours: Int64): Boolean;
- 該函式判斷兩個時間段之間的差距是否在指定的小時之內。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:
差距小於等於3
# 9.132. WithinPastMilliSeconds
function WithinPastMilliSeconds(const ANow, AThen: TDateTime; const AMilliSeconds: Int64): Boolean;
- 該函式判斷兩個時間段之間的差距是否在指定的毫秒之內。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:
差距小於等於1000。
# 9.133. WithPastMinutes
function WithinPastMinutes(const ANow, AThen: TDateTime; const AMinutes: Int64): Boolean;
- 該函式判斷兩個時間段之間的差距是否在指定的分鐘數之內。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:
差距大於6
# 9.134. WithinPastMonths
function WithinPastMonths(const ANow, AThen: TDateTime; const AMonths: Integer): Boolean;
- 該函式判斷兩個時間段之間的差距是否在指定的月數之內。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:
差距大於28
# 9.135. WithinPastSeconds
function WithinPastSeconds(const ANow, AThen: TDateTime; const ASeconds: Int64): Boolean;
- 該函式判斷兩個時間段之內的差距是否在指定的秒數之內。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:
差距小於等於86400
# 9.136. WithinPastWeeks
function WithinPastWeeks(const ANow, AThen: TDateTime; const AWeeks: Integer): Boolean;
- 該函式判斷兩個時間段之間的差距是否在指定的週數之內。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:
差距小於等於2
# 9.137. WithinPastYears
function WithinPastYears(const ANow, AThen: TDateTime; const AYears: Integer): Boolean;
- 該函式用於判斷兩個時間段之間的差距是否在指定的年數之內。
部分 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
- 運行結果:
差距小於等於1
# 9.138. YearOf
function YearOf(const AValue: TDate): Word;
- 該函式返回指定日期的年份。
部分 | 說明 |
---|---|
AValue | 日期表達式,用於指定日期數據 |
返回值:函式返回AValue所標識的年份。
示例:
begin
ShowMessage(IntToStr(YearOf(Now)));
end;
2
3
- 運行結果:運行后顯示當天顯示的年份數。
# 9.139. YearsBetween
function YearsBetween(const ANow, AThen: TDateTime): Integer;
- 函式返回兩個日期數據之間大約的年數。
部分 | 說明 |
---|---|
ANow | 日期表達式 |
AThen | 日期表達式 |
返回值:函式返回兩個日期數據之間大約的年數。
示例:
begin
ShowMessage(FloatToStr(YearsBetween(Now,StrToDate('2077-10-11'))));
end;
2
3
- 運行結果:運行后顯示當天與2077年相差的年數。
# 9.140. YearsSpan
function YearSpan(const ANow, AThen: TDateTime): Double;
- 該函式返回兩個日期數據之間大約的年數,包含小數部分。
部分 | 說明 |
---|---|
ANow | 日期表達式 |
AThen | 日期表達式 |
返回值:函式返回兩個日期之間大約的年數,包含小數部分。
示例:
begin
ShowMessage(FloatToStr(YearSpan(Now,StrToDate('2077-10-11'))));
end;
2
3
- 運行結果:運行后顯示當天與2077年相差的年數,包含小數部分。
# 9.141. YesterDay
function Yesterday: TDateTime;
該函式返回昨天的日期。
返回值:函式返回昨天的系統日期。
示例:
begin
ShowMessage(DateToStr(Yesterday));
end;
2
3
- 運行結果:該函式返回昨天的系統日期。
# 10. 型別轉換函式
# 10.1. Bounds
function Bounds(ALeft, ATop, AWidth, AHeight: Integer): TRect;
- 該函式獲得某個矩形。
部分 | 說明 |
---|---|
ALeft,ARight,AWidth,AHeight | 轉換區域的規格大小 |
返回值:返回一個TRect型別的矩陣。
示例:
var
MyRect : TRect;
begin
MyRect := Bounds(10,10,50,50);
end;
2
3
4
5
- 運行結果:設定一個指定規格的矩形。
# 10.2. IntToHex
function IntToHex(Vlue:Integer;Digits:Integer):String;
- 該函式將一個數字轉換成一個字串,字串中包含該數字的十六進制表現形式。
部分 | 說明 |
---|---|
Value | 將要轉換的整形值 |
Digits | 轉換位數 |
- 返回值:返回轉換后的字串。
var
S: Integer;
begin
S := 2147483647;
ShowMessage(IntToHex(S,0));
ShowMessage(IntToHex(S,8));
ShowMessage(IntToHex(S,10));
end;
2
3
4
5
6
7
8
- 運行結果:
7FFFFFFF 007FFFFFFF
# 10.3. IntToStr
function IntToStr(Value: Integer): String;
- 該函式將一個指定整型值轉換成一個字串。
部分 | 說明 |
---|---|
Value | 將要轉換的整型值 |
返回值:返回轉換后的字串。
示例:
begin
ShowMessage(IntToStr(1982));
ShowMessage(IntToStr(-1982));
end;
2
3
4
- 運行結果:
1982 -1982
# 10.4. Point
function Point(AX,AY: Integer): TPoint;
- 該函式建立一個TPoint結構表示AX,AY指定的座標。
參數 | 說明 |
---|---|
AX,AY | 轉換座標 |
返回值:返回一個TPoint型別的值。
示例:
var
TP: TPoint;
begin
TP := Point(10,10);
end;
2
3
4
5
該端程式碼在座標(10,10)的位置建立一個TPoint型別的點。
# 10.5. Rect
function Rect(ALeft,ATop,ARight,ABottom: Integer): TRect;
- 該函式用一組座標建立一個TRect結構,此結構用指定的座標表示矩形。
參數 | 說明 |
---|---|
ALeft | 左邊界座標 |
ARight | 右邊界座標 |
ATop | 上邊界座標 |
ABottom | 下邊界座標 |
ATopLeft | 左上角的點 |
ABottomRight | 右下角的點 |
返回值:返回一個TRect型別的矩陣。
示例:
var
MyRect: TRect;
begin
MyRect := Rect(10,10,170,70);
end;
2
3
4
5
# 10.6. StrToBool
function StrToBool(const S: String): Boolean;
- 該函式將參數指定的字串轉化為Boolean型別的值,字串為非邏輯表達式時將引起異常。
參數 | 說明 |
---|---|
S | 將要轉換的字串,如"True"或"False" |
返回值:返回轉換后的Boolean型別值。
示例:
var
bools: string;
begin
bools := 'true';
if StrToBool(bools) Then
begin
ShowMessage('True');
End;
end;
2
3
4
5
6
7
8
9
- 運行結果:
True
# 10.7. StrToBoolDef
function StrToBoolDef(const S: String; const Default: Boolean): Boolean;
- 該函式將參數指定的字串轉化為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;
2
3
4
5
6
7
8
9
10
11
12
13
14
- 運行結果:
False True True
# 10.8. StrToInt
function StrToInt(const S: String): Integer;
- 函式將參數指定用的二進制或十六進制符號表示的一個整形字串轉換為一個整數值。
部分 | 說明 |
---|---|
S | 將要轉換的字串 |
返回值:返回轉換后的整形值。
示例:
var
si: String;
i: Integer;
begin
si := '19091103';
i := StrToInt(si);
end;
2
3
4
5
6
7
該端程式碼將字串si轉換為整型值,並存儲到變數i中,i的值為19091103。
# 10.9. StrToIntDef
function StrToIntDef(const S: String; const Default: Integer): Integer;
- 該函式將指定的一個表示整型數字的字串轉換為一個數值。
參數 | 說明 |
---|---|
S | 將要轉換的字串 |
Default | 預設返回值 |
返回值:返回轉換后的整型值,如果S不能夠轉換為整型值,則返回預設值Default。
示例:
var
i: Integer;
s: String;
begin
s := 'First';
i := StrToIntDef(s,18);
ShowMessage(IntToStr(i));
end;
2
3
4
5
6
7
8
- 運行結果:
18
# 10.10. TryStrToBool
function TryStrToBool(const S: String;out Value: Boolean): Boolean;
參數 | 說明 |
---|---|
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;
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.11. TryStrToInt
function TryStrToInt(const S: String;out Value: Integer): Boolean;
參數 | 說明 |
---|---|
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;
2
3
4
5
6
7
8
9
10
11
12
13
14
- 運行結果:
不為數字型。 34
# 11. 檔案處理函式
# 11.1. ExcludeTrailingBackslash
function ExcludeTrailingBackslash(const S: string): string;
- 改函式使用多位元組字符集,它刪除參數中結束路徑界定符
\
,並向後相容。
部分 | 說明 |
---|---|
S | 待轉換的字串 |
返回值:返回刪除界定符的字串。
示例:
var
s: String;
begin
s := ExcludeTrailingBackslash('D:\test\');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:
D:\test
# 11.2. ExcludeTrailingPathDelimiter
function ExcludeTrailingPathDelimiter(const S: string): string;
部分 | 說明 |
---|---|
S | 待轉換的字串 |
該函式使用多位元組字符集,它刪除參數中結束路徑界定符
\
,若參數中最後一個字元為界定符,則刪除該字元,否則參數無改變返回。返回值:返回刪除界定符的字串。
示例:
var
s: String;
begin
s := ExcludeTrailingPathDelimiter('D:\test\');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:
D:\test
# 11.3. ExpandFileName
function ExpandFileName(const FileName: string): string;
- 該函式將相對檔名轉換為完全標準化路徑。它不驗證產生的完全標準化路徑是否引用一個現有的檔案。
部分 | 說明 |
---|---|
FileName | 待查詢的檔名稱(相對檔名稱) |
返回值:返回一個標準化檔案路徑。
示例:
var
s: String;
begin
s := ExpandFileName('test.txt');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:顯示目前相對路徑的完全標準化路徑。
# 11.4. ExpandUNCFileName
function ExpandUNCFileName(const FileName: string): string;
- 該函式利用網路檔案的通用命名協議(NUC)返回一個完全標準化的路徑名。本地的檔名使用方式同ExpandFileName。
部分 | 說明 |
---|---|
FileName | 待查詢的檔名稱(相對檔名稱) |
返回值:返回一個標準化檔案路徑。
示例:
var
s: String;
begin
s := ExpandUNCFileName('test.txt');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:顯示目前相對路徑的完全標準化路徑。
# 11.5. ExtractFileDir
function ExtractFileDir(const FileName: string): string;
- 該函式從檔名中提取驅動器和目錄部分。
部分 | 說明 |
---|---|
FileName | 待查詢的檔名稱 |
返回值:返回一個目錄路徑。
示例:
var
s: String;
begin
s := ExtractFileDir('D:\test.txt');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:顯示目前相對路徑的目錄路徑。例如
D:\
# 11.6. ExtractFileDrive
function ExtractFileDrive(const FileName: string): string;
- 該函式返回完全標準化路徑名的驅動器部分。
部分 | 說明 |
---|---|
FileName | 待查詢的檔名稱 |
返回值:返回一個目錄路徑。
示例:
var
s: String;
begin
s := ExtractFileDrive('D:\test.txt');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:顯示目前路徑的驅動器名稱。例如
D:
# 11.7. ExtractFileName
function ExtractFileName(const FileName: string): string;
- 該函式用於從指定的字串中提取檔名。
部分 | 說明 |
---|---|
FileName | 待查詢的檔名稱 |
返回值:返回一個目錄路徑。
示例:
var
s: String;
begin
s := ExtractFileName('D:\test.txt');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:顯示路徑。例如
test.txt
# 11.8. ExtractFileExt
function ExtractFileExt(const FileName: string): string;
- 該函式返回FileName參數指定檔名的副檔名,產生的字串包含分隔檔名的副檔名和副檔名的句點符。
部分 | 說明 |
---|---|
FileName | 待查詢的檔名稱 |
返回值:返回一個檔案的副檔名。
示例:
var
s: String;
begin
s := ExtractFileExt('D:\test.txt');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:
.txt
# 11.9. ExtarctFilePath
function ExtractFilePath(const FileName: string): string;
- 該函式用於返回指定檔案的工作路徑。
部分 | 說明 |
---|---|
FileName | 指定的檔名 |
返回值:返回檔案的工作路徑。
示例:
var
s: String;
begin
s := ExtractFilePath('D:\test.txt');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:
D:\
# 11.10. ExtractRelativePath
function ExtractRelativePath(const BaseName, DestName: string): string;
- 該函式用於將完全標準化的路徑轉換為相對路徑名。
部分 | 說明 |
---|---|
BaseName | 基本目錄的完全標準化路徑,不一定包含檔名 |
DestName | 指定被轉換的檔名(包含路徑) |
返回值:返回指定的路徑。
示例:
var
s: String;
begin
s := ExtractRelativePath('D:\test\','D:\test.txt');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:
..\test.txt
# 11.11. FileAge
function FileAge(const FileName: string): LongInt; overload;
- 該函式返回指定檔案的操作系統時間。
部分 | 說明 |
---|---|
FileName | 指定的檔名 |
返回值:返回指定檔案的操作系統時間,如果返回-1則表示檔案沒有找到。
示例:
begin
ShowMessage(IntToStr(FileAge('D:\test.txt')));
end;
2
3
- 運行結果:執行該語句后,返回檔案的日期時間。
# 11.12. FileExists
function FileExists(const FileName: String): Boolean;
- 該函式用於測試指定的檔案是否存在。
部分 | 說明 |
---|---|
FileName | 指定檔案的名稱 |
返回值:如果指定的檔案存在返回True,否則返回False。
示例:
begin
if FileExists('sample.pdf') then
ShowMessage('檔案存在')
else
ShowMessage('檔案不存在');
end;
2
3
4
5
6
- 運行結果:
檔案不存在
# 11.13. FileIsReadOnly
function FileIsReadOnly(const FileName: string): Boolean;
- 該函式用於判斷指定檔案是否是隻讀的。
部分 | 說明 |
---|---|
FileName | 指定檔案的名稱 |
返回值:如果檔案為只讀則返回True,否則返回False。
示例:
begin
ShowMessage(BoolToStr(FileIsReadOnly('E:\test.txt'),True));
end;
2
3
- 運行結果:判斷指定檔案是否為只讀檔案,並彈窗顯示。
# 11.14. FileSetReadOnly
function FileSetReadOnly(const FileName: string; ReadOnly: Boolean): Boolean;
- 該函式設定檔案是否未只讀。
部分 | 說明 |
---|---|
FileName | 指定檔案的檔名 |
ReadOnly | 是否為只讀,如果為True則設定檔案為只讀,否則設定檔案為讀寫 |
返回值:設定成功則返回True,否則返回False。
示例:
begin
if FileSetReadOnly('D:\test.txt',True) then
ShowMessage('設定檔案為只讀屬性成功');
end;
2
3
4
- 運行結果:將對應的檔案設定為只讀屬性。
# 11.15. ForceDirectoris
function ForceDirectories(Dir: string): Boolean;
- 該函式在指定的目錄中建立一個目錄。
部分 | 說明 |
---|---|
Dir | 建立目錄的全名,必須包括上級目錄 |
返回值:如果建立成功則返回True,否則會返回False。
示例:
var
Dir: String;
begin
Dir := 'D:\test\sample';
if ForceDirectories(Dir) then
ShowMessage(Dir + '建立成功!' );
end;
2
3
4
5
6
7
- 運行結果:成功建立指定的目錄。
# 11.16. GetCurrentDir
function GetCurrentDir: string;
該函式返回目前目錄。
返回值:返回目前目錄名稱。
示例:
begin
ShowMessage(GetCurrentDir);
end;
2
3
- 運行結果:顯示目前的目錄名稱。
# 11.17. InCludeTrailingBackslash
function IncludeTrailingBackslash(const S: string): string;
- 該函式確保路徑名以路徑定界符
\
結束。
部分 | 說明 |
---|---|
S | 待檢查的字串路徑 |
返回值:返回檢查后的路徑。
示例:
var
s: String;
begin
s := IncludeTrailingBackslash('D:\test');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:
D:\test\
# 11.18. InCludeTrailingPathDelimiter
function IncludeTrailingPathDelimiter(const S: string): string;
- 該函式確保路徑名以路徑定界符
\
結束,若參數S表示的路徑名已經以路徑定界符\
結束,則返回的字串無變化;否則將S字串加上定界符返回。
部分 | 說明 |
---|---|
S | 待檢查的字串路徑 |
返回值:返回檢查后的路徑。
示例:
var
s: String;
begin
s := IncludeTrailingPathDelimiter('D:\test');
ShowMessage(s);
end;
2
3
4
5
6
- 運行結果:
D:\test\
# 11.19. IOResult
function IOResult: Integer;
該函式返回最後一次I/O操作的狀態資訊。
返回值:如果最後一次I/O操作執行成功則返回0,否則返回錯誤程式碼。
示例:
begin
if IOResult = 0 then
ShowMessage('上一次讀寫操作成功');
end;
2
3
4
- 運行結果:如果I/O運行操作無錯誤發生則顯示
上一次讀寫操作成功
。
# 11.20. MatchesMask
function MatchesMask(const Filename, Mask: string): Boolean;
- 該函式利用描述的Mask參數檢查FileName是否與過濾器指定的字串格式一致。一個有效的過濾器包含文字字元、字符集和萬用字元。
部分 | 說明 |
---|---|
FileName | 待檢查的字串 |
Mask | 匹配的字串 |
返回值:如果兩者匹配,返回True,否則返回False。
示例:
begin
if MatchesMask('Hello','Hello') then
ShowMessage('OK')
else
ShowMessage('no');
end;
2
3
4
5
6
- 運行結果:
OK
# 11.21. SetCurrentDir
function SetCurrentDir(const Dir: string): Boolean;
- 該函式能夠改變目前目錄。
部分 | 說明 |
---|---|
Dir | 改變后的目標目錄名稱 |
返回值:如果執行成功返回True,否則返回False。
示例:
var
Dir: String;
begin
Dir := 'D:\test';
if SetCurrentDir(Dir) then
ShowMessage(GetCurrentDir());
end;
2
3
4
5
6
7
- 運行結果:
D:\test
# 12. 格式化函式
# 12.1. Format
function Format(const Format: string; const Args: array of const): String;
- 該函式按照指定方式格式化一個陣列常量的字元形式。
部分 | 說明 |
---|---|
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=%' //得到"%"
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;
- 該函式按指定方式格式化一個陣列常量到緩衝區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;
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;
- 該函式將貨幣型別以指定的格式轉換成字串。
部分 | 說明 |
---|---|
Format | 用於指定格式化的字串 |
Value | 將要格式化的內容 |
返回值:返回將貨幣型別以指定格式轉換成的字串。
示例:
var
S: String;
begin
S := FormatCurr('#,##0.00;;Zero',0.5);
ShowMessage(S);
end;
2
3
4
5
6
- 運行結果:
0.50
# 12.4. FormatDateTime
function FormatDateTime(const Format: String; DateTime: TDateTime): String;
- 該函式用於格式化顯示日期時間。
部分 | 說明 |
---|---|
Format | 用於指定格式化的字串 |
DateTime | 格式化顯示的內容 |
返回值:返回用指定的格式來格式化日期時間的字串。
示例:
ShowMessage(FormatDateTime('"The Metting is on" dddd,mm mm d, yyyy," at " hh:mm AM/PM',Now +0.125));
- 運行結果:
The Metting is on 星期日,11 11 9 2020,at 01:44 AM。
# 12.5. FormatFloat
function FormatFloat(const Format: String; value: Extended): string;
部分 | 說明 |
---|---|
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;
- 該函式按指定方式格式化一個陣列常量的字元指針形式。
部分 | 說明 |
---|---|
Buffer | 是一個字元型別的指針,將格式化后的字串儲存在該變數中。 |
Format | 是一個字串表達式,指定格式化所使用的格式。 |
Args | 是一個陣列表達式,指定要格式化的內容 |
FormatSettings | 是一個記錄型別,包含了系統預定義的格式化方法 |
返回值:該函式返回格式化后的字元指針。
示例:
var
Str: PAnsiChar;
begin
GetMem(Str,255);
StrFmt(Str,'x=%.5d',[2]);
ShowMessage(Str);
FreeMem(Str,255);
end;
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;
- 該函式按指定方式和長度格式化一個陣列常量的字元指針形式。
部分 | 說明 |
---|---|
Buffer | 是一個字元型別的指針,將格式化后的字串儲存在該變數中 |
MaxLen | 是一個整型值,指定格式化時的字串長度 |
Format | 是一個字串表達式,指定格式化所使用的格式 |
Args | 是一個陣列表達式,指定要格式化的內容 |
返回值:該函式返回字串的指針地址。
示例:
var
Str: PAnsiChar;
begin
GetMem(Str,255);
StrLFmt(Str,8,'x=%d|1234',[1024]);
ShowMessage(Str);
FreeMem(Str,255);
end;
2
3
4
5
6
7
8
- 運行結果:
x=1024|1
# 12.8. WideFormat
function WideFormat(const Format: WideString; const Args: array of const): WideString;
- 該函式按指定方式格式化一個陣列常量的多位元組字元形式。
部分 | 說明 |
---|---|
Format | 是一個字串表達式,指定格式化所使用的格式 |
Args | 是一個陣列表達式,指定要格式化的內容 |
FormatSettings | 是一個記錄型別,包含了系統預定義的格式化方法 |
返回值:返回按指定方式格式化一個陣列常量的多位元組字元形式。
示例:
var
S: String;
begin
S := WideFormat('%1:s %0:s',['How Are You!','Hello!']);
ShowMessage(S);
end;
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;
- 該函式按指定方式格式化一個陣列常量至緩衝區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;
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;
- 該函式顯示一個帶有編輯元件的訊息對話方塊,為使用者提供輸入文字的功能。
部分 | 說明 |
---|---|
ACaption | 訊息對話方塊的標題 |
APrompt | 訊息對話方塊提示資訊 |
ADefault | 訊息對話方塊首次出現時編輯框中顯示的資訊 |
返回值:返回使用者在對話方塊中輸入的字串。
示例:
var
S: string;
begin
S := InputBox('提示','請輸入內容','');
ShowMessage('你輸入的內容是:' + S);
end;
2
3
4
5
6
執行上述語句后,在輸入框中輸入的內容會顯示在接下來彈出的訊息對話方塊中。
# 13.2. InputQuery
function InputQuery(const ACaption,APrompt: String; var Value: String):Boolean;
- 該函式顯示一個帶有編輯元件的訊息對話方塊,為使用者提供輸入文字的功能,並判斷使用者是否按下OK按鈕。
部分 | 說明 |
---|---|
ACaption | 訊息對話方塊的標題 |
APrompt | 訊息對話方塊提示資訊 |
AValue | 訊息對話方塊首次出現時編輯框中顯示的字串,並得到使用者在訊息對話方塊中輸入的字串 |
返回值:如果選擇了訊息對話方塊中的
OK
按鈕,函式返回True,否則返回False。示例:
var
S: string;
begin
InputQuery('提示','請輸入內容',S);
ShowMessage('你輸入的內容是:' + S);
end;
2
3
4
5
6
執行該語句后,如果訊息對話方塊中選的是OK
按鈕,則flag=True,S獲得使用者輸入的資訊。
# 13.3. LoginDialog
function LoginDialog(const ADatabaseName: string; var AUserName, APassword: string): Boolean;
- 產生標準的Login對話方塊,提示使用者輸入有效的使用者名稱和口令,以連線伺服器。
部分 | 說明 |
---|---|
ADatabaseName | 要求訪問的資料庫 |
AUserName | 對話方塊返回使用者輸入的使用者名稱 |
APassword | 對話方塊返回使用者輸入的密碼 |
返回值:如果使用者選擇對話方塊的OK按鈕返回True,否則返回False。
示例:
var
user,pass: String;
begin
if (LoginDialog('test',user,pass)) then
begin
ShowMessage('輸入的使用者名稱:' + user);
end;
end;
2
3
4
5
6
7
8
- 運行結果:運行後會彈出一個標準登錄對話方塊,輸入后返回使用者名稱資訊。
# 13.4. LoginDialogEx
function LoginDialogEx(const ADatabaseName: string; var AUserName, APassword: string; NameReadOnly: Boolean): Boolean;
- 該函式用於產生標準的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;
2
3
4
5
6
7
8
- 運行結果:運行後會彈出一個標準登錄對話方塊,輸入后返回使用者名稱資訊。
# 14. 視窗控制實用程式
# 14.1. FindControl
function FindControl(Handle: HWnd): TWinControl;
- 函式返回一個由視窗化控制代碼指定的視窗化元件,如果Handle不是一個有效的視窗化控制代碼,則返回Nil。
部分 | 說明 |
---|---|
Handle | 窗體可視元件的控制代碼 |
返回值:返回TWinControl可視類元件。
示例:
begin
ShowMessage(FindControl(FThis.Handle).Name);
end;
2
3
- 運行結果:顯示目前顯示視窗元件的名稱。
# 14.2. GetComCtlVersion
function GetComCtlVersion: Integer;
該函式返回安裝的ComCtl32.DLL版本號。
返回值:整數型別,返回安裝的版本號。
示例:
begin
ShowMessage(IntToStr(GetComCtlVersion));
end;
2
3
- 運行結果:運行結果根據各機器安裝軟體版本的不同而有所差異。
# 14.3. GetParentForm
function GetParentForm(Control: TControl; TopForm: Boolean = True): TCustomForm;
該函式返回包含指定空間的窗體屬性。
部分 | 說明 |
---|---|
Control | 窗體中包含的控制元件 |
返回值:返回包含指定空間的窗體屬性。
示例:
begin
ShowMessage(GetParentForm(FThis.Button1).Name);
end;
2
3
- 運行結果:
Main
# 15. 指針相關函式
# 15.1. FreeAndNil
function FreeAndNil(var Obj);
- 該函式用於釋放指定對象,並設定其為空。
部分 | 說明 |
---|---|
Obj | 任何類的實體 |
- 示例:
FreeAndNil(FThis.Button1);
FreeAndNil(s);
2
執行該語句后Obj對像將被釋放,並且設定其值為Nil。
# 16. 記憶體管理函式
# 16.1. New
procedure New(var P:Pointer);
- 該過程建立一個新的動態變數,並把指針P指向這個新建立的變數。分配的記憶體大小由P指針表示的型別決定。
部分 | 說明 |
---|---|
P | Pointer型別,表示任何指針變數 |
var
P: PInteger;
begin
New(P);
P^ := 12333;
ShowMessage(IntToStr(P^));
end;
2
3
4
5
6
7