系统函数
# Smart 系统函数
该手册内的内容用于编写脚本时作为参考,包含系统中使用的部分函数。
# 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. WithinPastMinutes
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. ReadIni
function ReadIni(filename,Section,Ident:String;Const Default:String = ''):String;
- 该函数可用于从
ini
配置文件中读取配置信息。
部分 | 说明 |
---|---|
filename | 配置文件的名称,需包含完整的目录路径 |
Section | 配置文件的分段名称 |
Ident | 配置文件的设置项名称 |
Default | 若配置文件中未查询到此设置项的名称,可设置默认的选项值 |
var
c:TTMSFNCMapsCoordinateRec;
begin
FThis.lblongitude.Caption:= ReadIni(GetCurrentDir+'/'+'demo.ini','Maps','CenterLongitude','121.562317141507');
FThis.lblatitude.Caption := ReadIni(GetCurrentDir+'/'+'demo.ini','Maps','CenterLatitude','25.037192618436');
end;
2
3
4
5
6
# 11.22. 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