Các hàm

Các câu lệnh hàm thông dụng được sử dụng trong ngôn ngữ DelphiScript sẽ được trình bày dưới đây. Các hàm của DelphiScript được chia thành các phần riêng biệt dành cho các hàm xử lý tệp (FileIO), các hàm toán học (Math), các hàm chuỗi (String) và các hàm mở rộng (Extension).

Tính toán biểu thức bằng hàm Evaluate

Hàm tích hợp Evaluate giải thích một chuỗi chứa biểu thức toán học hợp lệ trong quá trình chạy và trả về kết quả. Ví dụ, bạn có thể viết một kịch bản như sau Evaluate(ProcNames[ProcIndex]); và thủ tục được chỉ định trong ProcNames[ProcIndex] sẽ được gọi.

Để tính toán biểu thức như vậy, bạn có thể sử dụng Evaluate phương thức, trong đó biểu thức được chỉ định bởi tham số Expr tham số. Ví dụ, bạn có thể tính toán các biểu thức như sau:

Evaluate('2+5');
Evaluate('((10+15)-5)/2*5');
Evaluate('sin(3.1415926/2)*10');
Evaluate('2.5*log(3)');

Truyền tham số cho hàm và thủ tục

Cả hàm và thủ tục được định nghĩa trong tập lệnh đều có thể được khai báo để chấp nhận tham số. Ngoài ra, các hàm được định nghĩa để trả về một giá trị. Các kiểu tham số trong khai báo thủ tục/hàm sẽ bị bỏ qua và có thể được bỏ qua. Ví dụ, đoạn mã sau đây là đúng:

Function sum(a, b) : integer;
Begin
  Result := a + b;
End;

Thoát khỏi thủ tục

DelphiScript cung cấp ExitBreak để buộc một thủ tục thoát ra trước khi nó kết thúc một cách tự nhiên. Ví dụ: nếu giá trị của một tham số không phù hợp, bạn có thể muốn hiển thị cảnh báo cho người dùng và thoát ra, như ví dụ dưới đây cho thấy.

Procedure DisplayName (s);
Begin
  If s = '' Then
  Begin
    ShowMessage('Please enter a name');
    Exit;
  End;
  ShowMessage(S + ' is shown');
End;

Các hàm xử lý tệp

DelphiScript có các hàm IO sau:

Append

AssignFile

ChDir

CloseFIle

Eof

Eoln

Erase

GetDir

MkDir

Read

Readln

Reset

Rewrite

RmDir

Write

Writeln

 

 

DelphiScript cho phép bạn ghi thông tin vào tệp văn bản, và vì DelphiScript là ngôn ngữ không phân loại, tất cả các giá trị phải được chuyển đổi thành chuỗi trước tiên.

Ở đây, ReadReadLn các hàm này tương đương nhau — chúng đọc một dòng cho đến trước dòng tiếp theo (không bao gồm dòng đó). Một Writeln(String) hàm tương đương với một Write(S) và một Write(LineFeed + CarriageReturn) thủ tục.

Để ghi ra một tệp văn bản, hãy sử dụng hàm AssignFile, ReWrite, WritelnCloseFile . Để đọc từ một tệp văn bản, hãy sử dụng thủ tục AssignFile, Reset, Readln, và CloseFile các thủ tục. Ví dụ dưới đây ghi vào một tệp văn bản và thêm dấu kết thúc dòng. Nên sử dụng khối Try / Finally / End được khuyến nghị để đảm bảo an toàn cho tập lệnh trong trường hợp xảy ra lỗi IO.

Example:

Var
  InputFile : TextFile;
  OutputFile : TextFile;
  I          : Integer;
  Line       : String;
Begin
  AssignFile(OutputFile,eConvertedFile.Text);
  Rewrite(OutputFile);
  AssignFile(InputFIle,eOriginalFIle.Text);
  Reset(InputFile);
 
  Try
  While not EOF(InputFile) do
  Begin
    Readln(InputFile,Line);
    For I := 1 to Length(Line) Do
      Line[I] := UpperCase(Line[I]);
      Writeln(Outputfile, Line);
    End;
  Finally
    CloseFile(InputFile);
    CloseFile(OutputFile);
  End;
End;

Các hàm toán học

DelphiScript có các hàm toán học sau:

Abs

ArcTan

Cos

Exp

Frac

Int

Random

Randomize

Round

Sin

Sqr

Sqrt

Trunc

 

 

Hàm chuỗi

DelphiScript có các hàm xử lý chuỗi sau đây, cho phép thao tác với chuỗi hoặc ký tự. Chỉ một phần nhỏ các hàm xử lý chuỗi (hầu hết các hàm xử lý chuỗi được DelphiScript sử dụng đều được nhập từ đơn vị SysUtils của Embarcadero Delphi) được liệt kê trong bảng dưới đây:

AnsiCompareStr

AnsiCompareText

AnsiDequotedStr

AnsiExtractQuotedStr

AnsiLowerCase

AnsiPos

AnsiQuotedStr

AnsiSameStr

AnsiSameText

AnsiUpperCase

CompareStr

CompareText

Copy

Delete

FloatToStr

FloatToStrF

Format

Frac

Insert

Int

IsDelimiter

LastDelimiter

Length

LowerCase

Ord

Pos

Pred

QuotedStr

Round

SameText

SetLength

StringOfChar

StringToGUID

Succ

Trim

TrimLeft

TrimRight

UpCase

UpperCase

WideUpperCase

WideLowerCase

WideSameStr

WideSameText

 

 

Các hàm xử lý chuỗi được not được DelphiScript hỗ trợ được liệt kê trong bảng dưới đây:

AnsiContainsStr

AnsiContainsText

AnsiEndsStr

AnsiEndsText

AnsiIndexText

AnsiMatchStr

AnsiMatchText

AnsiReplaceStr

AnsiReplaceText

AnsiResemblesProc

AnsiResemblesText

AnsiStartsStr

AnsiStartsText

Concat

DecodeSoundExInt

DecodeSoundExWord

DupeString

LeftStr

MidStr

NullStr

ReverseString

RightStr

SetString

SoundEx

SoundExCompare

SoundExInt

SoundExProc

SoundExSimilar

SoundExWord

Str

StuffString

Val

 

Các hàm mở rộng

Các hàm mở rộng được sử dụng khi xử lý các quy trình máy chủ (một lệnh là một quy trình máy chủ được đóng gói kèm theo các tham số, nếu có) trong các tập lệnh, đặc biệt là khi bạn cần trích xuất hoặc thiết lập các chuỗi cho các tham số của quy trình. Một số hàm được liệt kê dưới đây.

Để thực thi các tham số của quy trình trong tập lệnh, có thể cần đến các hàm sau:

AddColorParameter

AddIntegerParameter

AddLongIntParameter

AddSingleParameter

AddWordParameter

GetIntegerParameter

GetStringParameter

ResetParameters

RunProcess

Useful functions:

SetCursorBusy

ResetCursor

CheckActiveServer

GetActiveServerName

GetCurrentDocumentFileName

RunApplication

SaveCurrentDocument

 

 

Useful dialogs:

ConfirmNoYes

ConfirmNoYesCancel

ShowError

ShowInfo

ShowWarning

 

Sử dụng tập hợp (Sets) trong DelphiScript

Embarcadero Delphi's SetIn , cùng các toán tử tập hợp +, -, *, = >= không được hỗ trợ trong DelphiScript. Các từ khóa toán tử tập hợp tương đương được liệt kê trong bảng dưới đây.

DelphiScript không có kiểu tập hợp. Để sử dụng tập hợp trong các tập lệnh DelphiScript, hãy sử dụng các hàm tích hợp sẵn; MkSet, MkSetRange, InSet, SetUnion, SetDifference, SetIntersection, và SubSet các hàm cho phép thao tác với tập hợp trong một kịch bản DelphiScript. Các hàm này được mô tả chi tiết hơn dưới đây.

Các toán tử tập hợp

Embarcadero Delphi Set Operator keyword

Equivalent DelphiScript Set Operator keyword

+

SetUnion

-

SetDifference

*

SetIntersection

=

SubSet

=

=

>

>

In

InSet

Hàm MkSet

Hàm MkSet là một hàm tạo tập hợp với số lượng đối số thay đổi. Ví dụ:

Font.Style = MkSet(fsBold,fsItalic);

Dấu MkSet(fsBold,fsItalic) ở đây chỉ biểu thị hai phần tử tập hợp; fsBoldfsItalic.

Hàm MkSetRange

Hàm MkSetRange là một hàm tạo tập hợp với một dãy các đối số. Ví dụ:

LayerSet := MkSetRange(eTopLayer,eBottomLayer);

Hàm MkSetRange(eTopLayer,eBottomLayer) hàm này biểu thị một phạm vi các lớp từ eTopLayer đến eBottomLayer.

Hàm InSet

Hàm InSet được sử dụng để thay thế cho toán tử In . A in B bằng InSet(A, B).

If InSet(A,B) then
  ShowMessage('A is in B set')
Else
  ShowMessage('A not in B set');

Hàm SetUnion

Hàm SetUnion được sử dụng để thay thế cho toán tử + . A + B bằng SetUnion(A, B).

ASet := BSet + CSet;
// should be changed to:
ASet := SetUnion(BSet,CSet);
// in order to achieve the desired script result.

Hàm SetDifference

Hàm SetDifference được sử dụng để thay thế cho toán tử - . A - B bằng SetDifference(A, B).

Hàm SetIntersection

Hàm SetIntersection được sử dụng để thay thế cho toán tử * . A * B bằng SetIntersection(A, B).

Hàm SubSet

Hàm SubSet được sử dụng để thay thế cho toán tử = . A = B bằng SubSet(A, B).

Sử dụng trình xử lý ngoại lệ

Từ khóa Try giới thiệu câu lệnh Try-Except hoặc câu lệnh Try-Finally. Hai câu lệnh này có liên quan nhưng phục vụ các mục đích khác nhau:

Try-Finally

Với Try-Finally, các câu lệnh trong khối Finally luôn được thực thi bất kể có xảy ra ngoại lệ từ khối Try, lệnh Exit hay Break hay không. Sử dụng khối Try-Finally để giải phóng các đối tượng tạm thời và các tài nguyên khác, cũng như thực hiện các hoạt động dọn dẹp.

Thông thường, chỉ cần một câu lệnh Try-Finally trong một hàm con.

Example:

Reset(F);
Try
  // process file F
Finally
  CloseFile(F);
End;

Try-Except

Sử dụng Try-Except để xử lý các trường hợp ngoại lệ. Ví dụ: để bắt các ngoại lệ cụ thể và thực hiện các thao tác hữu ích với chúng, chẳng hạn như ghi chúng vào nhật ký lỗi hoặc tạo một hộp thoại thân thiện. Vì On không được hỗ trợ trong DelphiScript, câu lệnh Raise câu lệnh này được sử dụng bên trong khối Except khối.

Example:

Try
  X := Y/Z;
Except
  Raise('A divide by zero error!');
End;

Raise

Từ Raise từ khóa này có liên quan đến Try . Từ khóa Raise có thể được sử dụng mà không cần tham số để tái ném ngoại lệ cuối cùng. Nó cũng có thể được sử dụng với một tham số chuỗi để ném ngoại lệ với một thông báo cụ thể.

Example:

Raise(Format('Invalid Value Entered : %d', [Height]));

Lưu ý rằng vì On không được hỗ trợ, các Exception (có sẵn trong Embarcadro Delphi) không thể được sử dụng.

AI-LocalizedBản địa hóa bằng AI
Nếu bạn phát hiện vấn đề, hãy chọn văn bản/hình ảnh và nhấnCtrl + Enterđể gửi phản hồi cho chúng tôi.
Tính khả dụng của tính năng

Các tính năng bạn có thể sử dụng phụ thuộc vào giải pháp Altium mà bạn đang có – Altium Develop, Altium Agile Teams, Altium Agile Enterprise, hoặc Altium Designer (đang trong thời hạn hiệu lực).

Nếu bạn không thấy một tính năng được nêu trong tài liệu có trong phần mềm thực tế của mình, liên hệ Bộ phận Kinh doanh của Altium để tìm hiểu thêm.

Tài liệu cũ

Tài liệu Altium Designer không còn được phân phiên bản. Nếu bạn cần truy cập tài liệu cho các phiên bản cũ hơn của Altium Designer, hãy truy cập mục Tài liệu cũ trên trang Trình cài đặt khác.

Nội dung