1、HELP函数集 ●●●●●●● ---------- abs(x) 绝对值 arctan(x) 反正切 cos(x) 传回馀弦函数值 exp(x) e的x次幂 frac(x) 取小数部分 int(x) 取整 ln(x) 自然对数 sin(x) 传回正弦函数值 sqr(x) x*x sqrt(x) 平方根 其它 pred(x) pred('D')='C', pred(true)=1; succ(x) succ('Y')='Z', succ(pred(x))=x ord(x) 求x在字符集中的序号,
2、如ord('A')=65 chr(x) chr(65)='A' round(x) 四舍五入 trunc(x) trunc(4.8)=4,trunc('-3.6')=-3 upcase(x) upcase('a')='A' hi(I) hi($2A30)=$2A lo(I) lo($2A30)=$30 random(n) 产生[0,n)间的随机整数 sizeof(name) 求出某类型或变量在内存中占用的字节数 swap(num) swap($3621)=$2136 ========== Arithmetic routines 数学运算
3、 ========== Abs 绝对值 ---------- Unit System 函数原型 function Abs(X); 说明 X为整数or实数. 范例 var r: Real; i: Integer; begin r := Abs(-2.3); { 2.3 } i := Abs(-157); { 157 } end; ---------- ArcTan 三角函数 ---------- 范例 Cos var R: Extended; begin R := Cos(Pi); end; --------
4、 Sin ---------- 范例 var R: Extended; S: string; begin R := Sin(Pi); Str(R:5:3, S); Canvas.TextOut(10, 10, 'The Sin of Pi is ' + S); end; ---------- Unit System 函数原型 function ArcTan(X: Extended): Extended; 函数原型 function Cos(X: Extended): Extended; 函数原型 function Sin(X: Exte
5、nded): Extended; ---------- 说明 X为径度. Tan(x) === Sin(x) / Cos(x) ArcSin(x) = ArcTan (x/sqrt (1-sqr (x))) ArcCos(x) = ArcTan (sqrt (1-sqr (x)) /x) 左边这三个不是函数,而是右边运算求得. 范例 var R: Extended; begin R := ArcTan(Pi); end; 范例 var R: Extended; S: string; begin
6、 R := Sin(Pi); Str(R:5:3, S); Canvas.TextOut(10, 10, 'The Sin of Pi is ' + S); end; ---------- Frac 求一个实数的小数部份 ---------- Unit System 函数原型 function Frac(X: Real): Real; 说明 X为实数. 范例 var R: Real; begin R := Frac(123.456); { 0.456 } R := Frac(-123.4
7、56); { -0.456 } end; ---------- Int 求一个实数的整数部份 ---------- Unit System 函数原型 function Int(X: Real): Real; 说明 X为实数. 范例 var R: Real; begin R := Int(123.456); { 123.0 } R := Int(-123.456); { -123.0 } end; ---------- Pi 就是数学的Pi ---------- Unit Syste
8、m 函数原型 function Pi: Extended; 说明 它是一个函数,但我们就把它当作是预设的变数来用吧! Pi= 3.1415926535897932385 ---------- Sqr X的平方 ---------- 范例 var S, Temp: string; begin Str(Sqr(5.0):3:1, Temp); S := '5 squared is ' + Temp + #13#10; Str(Sqrt(2.0):5:4, Temp); S := S + 'The square root of
9、2 is ' + Temp; MessageDlg(S, mtInformation, [mbOk], 0); end; ---------- Sqrt X的平方根 ---------- Unit System 函数原型 function Sqr(X: Extended): Extended; 函数原型 function Sqrt(X: Extended): Extended; 范例 var S, Temp: string; begin Str(Sqr(5.0):3:1, Temp); S := '5 squared
10、 is ' + Temp + #13#10; Str(Sqrt(2.0):5:4, Temp); S := S + 'The square root of 2 is ' + Temp; MessageDlg(S, mtInformation, [mbOk], 0); end; ---------- Ln 自然对数 ---------- 范例 var e : real; S : string; begin e := Exp(1.0); Str(ln(e):3:2, S); S := 'e =
11、' + FloatToStr(e) + '; ln(e) = ' + S; Canvas.TextOut(10, 10, S); end; ---------- Exp 指数 ---------- Unit System 函数原型 function Ln(X: Real): Real; 函数原型 function Exp(X: Real): Real; 范例 var e : real; S : string; begin e := Exp(1.0); Str(ln(e):3:2, S); S
12、 'ln(e) = ' + S; Canvas.TextOut(10, 10, S); end; ---------- Date and time routines 日期及时间函数 ---------- Date 传回目前的日期 Unit SysUtils 函数原型 function Date: TDateTime; 范例 procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := 'Today is ' + DateToStr(Date)
13、 end; ---------- DateTimeToStr 日期时间转换成内定型字串(1996/12/20 09:12:20 PM) ---------- Unit SysUtils 函数原型 function DateTimeToStr(DateTime: TDateTime): string; 范例 procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := DateTimeToStr(Now); end; ---------- DateTimeT
14、oString 日期时间转换成自定型字串 ---------- Unit SysUtils 函数原型 procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime); 范例 procedure TForm1.FormCreate(Sender: TObject); var s:string; begin DateTimeToString(s,'dddd,mmmm d,yyyy "at" hh:mm AM
15、/PM',Now); Label1.Caption :=s; end; 结果 星期五,十二月 20,1996 at 09:20 PM ---------- **** Format格式叁考下面.FormatDateTime. ---------- DateToStr 日期转换成内定型字串.(1996/12/20) ---------- Unit SysUtils 函数原型 function DateToStr(Date: TDateTime): string; 范例 procedure TForm1.Button1Click(Sender: T
16、Object); begin Label1.Caption := 'Today is ' + DateToStr(Date); end; # Date, DateToStr Example ---------- DayOfWeek 求叁数日期是星期几. ---------- Unit SysUtils 函数原型 function DayOfWeek(Date: TDateTime): Integer; 说明 传回值是一整数,1~7. 星期日为1. 范例 procedure TForm1.Button1Click(Sender: TObject);
17、var ADate: TDateTime; days: array[1..7] of string; begin days[1] := 'Sunday'; days[2] := 'Monday'; days[3] := 'Tuesday'; days[4] := 'Wednesday'; days[5] := 'Thursday'; days[6] := 'Friday'; days[7] := 'Saturday'; ADate := StrToDate(Edit1.Text); ShowMessage(Edit1.Text
18、 + ' is a ' + days[DayOfWeek(ADate)]; end; # StrToDate, DayOfWeek Example ---------- DecodeDate 将TDateTime型态的日期变数,转为Word型态. ---------- 范例 procedure TForm1.Button1Click(Sender: TObject); var Present: TDateTime; Year, Month, Day, Hour, Min, Sec, MSec: Word; begin Present:= Now;
19、DecodeDate(Present, Year, Month, Day); Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of Month ' + IntToStr(Month) + ' of Year ' + IntToStr(Year); DecodeTime(Present, Hour, Min, Sec, MSec); Label2.Caption := 'The time is Minute ' + IntToStr(Min) + ' of Hour ' + IntToStr(Hou
20、r); end; # DecodeDate, DecodeTime Example ---------- DecodeTime 将TDateTime型态的时间变数,转为Word型态. ---------- Unit SysUtils 函数原型 procedure DecodeDate(Date: TDateTime; var Year, Month,Day: Word); 函数原型 procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec,MSec: Word); 范例 procedure TForm1.Butto
21、n1Click(Sender: TObject); var Present: TDateTime; Year, Month, Day, Hour, Min, Sec, MSec: Word; begin Present:= Now; DecodeDate(Present, Year, Month, Day); Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of Month ' + IntToStr(Month) + ' of Year ' + I
22、ntToStr(Year); DecodeTime(Present, Hour, Min, Sec, MSec); Label2.Caption := 'The time is Minute ' +IntToStr(Min) + ' of Hour ' + IntToStr(Hour); end; ---------- EncodeDate 将Word型态的日期变数,转为TDateTime型态. ---------- 范例 procedure TForm1.Button1Click(Sender: TObject); var My
23、Date: TDateTime; begin MyDate := EncodeDate(StrToInt(Edit1.Text), StrToInt(Edit2.Text), StrToInt(Edit3.Text)); Label1.Caption := DateToStr(MyDate); end; ---------- EncodeTime 将Word型态的时间变数,转为TDateTime型态. ---------- Unit SysUtils 函数原型 function EncodeDate(Year, Month, Day: Word): TDateTi
24、me; 函数原型 function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; 范例 procedure TForm1.Button1Click(Sender: TObject); var MyDate: TDateTime; MyTime: TDateTime; begin MyDate := EncodeDate(83, 12, 31); Label1.Caption := DateToStr(MyDate); MyTime := Enco
25、deTime(0, 45, 45, 7); Label2.Caption := TimeToStr(MyTime); end; 范例 procedure TForm1.Button1Click(Sender: TObject); var MyTime: TDateTime; begin MyTime := EncodeTime(0, 45, 45, 7); Label1.Caption := TimeToStr(MyTime); end; ---------- FormatDateTime 将日期时间依Format的格式转换给一字串. --
26、 Unit SysUtils 函数原型 function FormatDateTime(const Format: string; DateTime: TDateTime): string; **** 类似DateTimeToString. Format格式 c 内定值ShortDateFormat的格式.(1996/12/20 09:20:15 PM). d 日期,前面不补0.(1-31) dd 日期,前面补0.(01-31) ddd 星期.(星期日). Dddd 中文2.01版,同上. ddddd 日期.(1996/12/20)
27、 dddddd 日期.(1996年12月20日) m 月份,前面不补0.(1-12) mm 月份,前面补0.(01-12) mmm 中文显示.(十二月) mmmm 中文2.01版,同上. Yy 年度.(00-99) yyyy 年度.(0000-9999) h 小时.(0-23) hh 小时.(00-23) n 分钟.(0-59) nn 分钟.(00-59) s 秒钟.(0-59) ss 秒钟.(00-59) t 时间.(09:20 PM) tt 时间.(09:20:15 PM) am/pm 单独显示am or pm.(若大写,则显示大写)
28、 a/p 单独显示a or p. 范例 The following example assigns 'The meeting is on Wednesday, February 15, 1995 at 10:30 AM' to the string variable S. S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', StrToDateTime('2/15/95 10:30am'));//??? ---------- Now 传回目前的日期时间.
29、 ---------- Unit SysUtils 函数原型 function Now: TDateTime; 范例 procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := DateTimeToStr(Now); end; # Now, DateTimeToStr Example ---------- StrToDate 将字串转为TDateTime型态的日期. ---------- Unit SysUtils 函数原型 function StrToDate(cons
30、t S: string): TDateTime; 范例 procedure TForm1.Button1Click(Sender: TObject); var ADate: TDateTime; begin ADate := StrToDate(Edit1.Text); Label1.Caption := DateToStr(ADate); end; 范例 procedure TForm1.Button1Click(Sender: TObject); var ADate: TDateTime; days: arr
31、ay[1..7] of string; begin days[1] := 'Sunday'; days[2] := 'Monday'; days[3] := 'Tuesday'; days[4] := 'Wednesday'; days[5] := 'Thursday'; days[6] := 'Friday'; days[7] := 'Saturday'; ADate := StrToDate(Edit1.Text); ShowMessage(Edit1.Text + ' is a ' + days[DayOfWeek(ADate)];
32、 end; # StrToDate, DayOfWeek Example ---------- StrToDateTime 将字串转为TDateTime型态的日期时间. ---------- Unit SysUtils 函数原型 function StrToDateTime(const S: string): TDateTime; 范例 procedure TForm1.Button1Click(Sender: TObject); var ADateAndTime: TDateTime; begin ADateAndTime := StrToDateTime
33、Edit1.Text); Table1.FieldByName('TimeStamp').AsDateTime := ADateAndTime; end; ---------- StrToTime 将字串转为TDateTime型态的时间. ---------- Unit SysUtils 函数原型 function StrToTime(const S: string): TDateTime; 范例 procedure TForm1.Button1Click(Sender: TObject); var ATime: TDateTime; begin
34、ATime := StrToTime(Edit1.Text); if ATime < 0.50 then ShowMessage('Good Morning') else ShowMessage('Good Afternoon'); end; ---------- Time 传回目前的时间. ---------- Unit SysUtils 函数原型 function Time: TDateTime; 范例 procedure TForm1.Timer1Timer(Sender: TObject); var DateTime :
35、TDateTime; str : string; begin DateTime := Time; // store the current date and time str := TimeToStr(DateTime); // convert the time into a string Caption := str; // display the time on the form's caption { Note This could have been done with the following line of code: Caption
36、 := TimeToStr(Time); } end; # Time, TimeToStr Example ---------- TimeToStr 时间转换成内定型字串.(09:20:15 PM) ---------- Unit SysUtils 函数原型 function TimeToStr(Time: TDateTime): string; GetMem procedure 配置记忆体程序 New 配置指位器P的记忆体空间, 大小为P所指型态的大小. ---------- Dispose 释放New所配置的记忆体. --------
37、 Unit System 函数原型 procedure New(var P: Pointer); 函数原型 procedure Dispose(var P: Pointer); 范例 type PListEntry = ^TListEntry; TListEntry = record Next: PListEntry; Text: string; Count: Integer; end; var List, P: PListEntry; begin ... N
38、ew(P); P^.Next := List; P^.Text := 'Hello world'; P^.Count := 1; List := P; ... Dispose(P); … end; 范例 type Str18 = string[18]; var P: ^Str18; begin New(P); P^ := 'Now you see it...'; Dispose(P); { Now you don't... } end; ----------
39、 GetMem 配置指位器P的记忆体空间,大小可自行设定. ---------- 范例 var F: file; Size: Integer; Buffer: PChar; begin AssignFile(F, 'test.txt'); Reset(F, 1); try Size := FileSize(F); GetMem(Buffer, Size); try BlockRead(F, Buffer^, Size); ProcessFile(Buffer, Size); fi
40、nally FreeMem(Buffer); end; finally CloseFile(F); end; end; ---------- FreeMem 释放GetMem所配置的记忆体. ---------- Unit System 函数原型 procedure GetMem(var P: Pointer; Size: Integer); 函数原型 procedure FreeMem(var P: Pointer[; Size: Integer]); 范例 var F: file; Size: I
41、nteger; Buffer: PChar; begin AssignFile(F, 'test.txt'); Reset(F, 1); try Size := FileSize(F); GetMem(Buffer, Size); try BlockRead(F, Buffer^, Size); ProcessFile(Buffer, Size); finally FreeMem(Buffer); end; finally Clos
42、eFile(F); end; end; ========== File-management routines 档案管理常式 ========== ---------- ChangeFileExt 变更档案的副档名 ---------- Unit SysUtils 函数原型 function ChangeFileExt(const FileName, Extension: string): string; 范例 procedure TForm1.Button1Click(Sender: TObject); var
43、S: String; P1:String; P2:String; begin P1:='abc.txt'; P2:='.ini'; S := ChangeFileExt(P1,P2); Label1.Caption:=S; end; 结果 S== 'abc.ini' P1:='abc' P2:='.ini' S== 'abc.ini' P1:='c:\windows\abc.txt' P2:='.ini' S=='c:\windows\abc.
44、ini' P1:='abc.txt' P2:='ini' S=='abcini' **注意:P2的第一位元必须有一点'.ini' 范例 procedure TForm1.ConvertIcon2BitmapClick(Sender: TObject); var s : string; Icon: TIcon; begin OpenDialog1.DefaultExt := '.ICO'; OpenDialog1.Filter := 'icons (*.ico)|*.ICO'; OpenDialog1.Opt
45、ions := [ofOverwritePrompt, ofFileMustExist, ofHideReadOnly ]; if OpenDialog1.Execute then begin Icon := TIcon.Create; try Icon.Loadfromfile(OpenDialog1.FileName); s:= ChangeFileExt(OpenDialog1.FileName,'.BMP'); Image1.Width := Icon.Width; Image1.Height :=
46、 Icon.Height; Image1.Canvas.Draw(0,0,Icon); Image1.Picture.SaveToFile(s); ShowMessage(OpenDialog1.FileName + ' Saved to ' + s); finally Icon.Free; end; end; end; # SaveToFile, Create, Height, Width, Canvas, ChangeFileExt example ---------- ExpandFileNa
47、me 将档案名称加在目前所在之路径全名之後 ---------- Unit SysUtils 函数原型 function ExpandFileName(const FileName: string): string; 说明 设目前目录为 c:\windows 档案名称为 abc.txt 则结果为 c:\windows\abc.txt **** 此函数并不是求abc.txt的所在路径. 范例 procedure TForm1.Button1Click(Sender: TObject); var S: String; begin
48、 S:=ExpandFileName('abc.txt'); Label1.Caption:=S; end; 范例 procedure TForm1.Button1Click(Sender: TObject) begin ListBox1.Items.Add(ExpandFileName(Edit1.Text)); end; ---------- DirectoryExists 目录是否存在---------- Unit FileCtrl uses FileCtrl; procedure TForm1.Button1Click
49、Sender: TObject); begin if not DirectoryExists('c:\temp') then if not CreateDir('C:\temp') then raise Exception.Create('Cannot create c:\temp'); end; ---------- ForceDirectories 目录 ---------- Unit FileCtrl 函数原型 function ForceDirectories(Dir: string): Boolean; proced
50、ure TForm1.Button1Click(Sender: TObject); var Dir: string; begin Dir := 'C:\APPS\SALES\LOCAL'; if DirectoryExists(Dir) then Label1.Caption := Dir + ' was created' end; ---------- ExpandUNCFileName 同上(只是得到网路上的路径) ---------- Unit SysUtils 函数原型 function ExpandUNCFileName(const Fi






