basic_stmt.htm

来自「Delphi脚本控件」· HTM 代码 · 共 1,442 行 · 第 1/4 页

HTM
1,442
字号
<html>
<head>
<link rel=stylesheet type="text/css" href="styles.css">
</head>
<body>
<H3>
paxBasic Statements
</H3>
<hr>
<ul>
<li><a href="#Assignment Statements">Assignment Statements</a></li>
<li><a href="#Class Statements">Class Statements</a></li>
<li><a href="#Delete Statements">Delete Statements</a></li>
<li><a href="#Dim Statements">Dim Statements</a></li>
<li><a href="#Do-loop statements">Do-loop statements</a></li>
<li><a href="#Enum Statements">Enum Statements</a></li>
<li><a href="#Exit Statements">Exit Statements</a></li>
<li><a href="#For-Next Statements">For-Next Statements</a></li>
<li><a href="#Function Statements">Function Statements</a></li>
<li><a href="#If Statements">If Statements</a></li>
<li><a href="#Imports Statements">Imports Statements</a></li>
<li><a href="#Namespace Statements">Namespace Statements</a></li>
<li><a href="#Print Statements">Print Statements</a></li>
<li><a href="#Select-case Statements">Select-case Statements</a></li>
<li><a href="#Sub Statements">Sub Statements</a></li>
<li><a href="#Property Statements">Property Statements</a></li>
<li><a href="#Structure Statements">Structure Statements</a></li>
<li><a href="#Throw Statements">Throw Statements</a></li>
<li><a href="#Try-catch Statements">Try-catch Statements</a></li>
<li><a href="#Try-finally statements">Try-finally statements</a></li>
<li><a href="#While Statements">While Statements</a></li>
<li><a href="#With Statements">With Statements</a></li>
<//ul>
<a name="Assignment Statements"><h3>Assignment Statements</h3></a>
<!-------------------------------------------------------------------->
<blockquote>

<H4>
Grammar
</H4>
<blockquote>
<pre>
[<font color="blue"><b>Reduced</b></font>][<font color="blue"><b>TerminalOf</b></font>] Expr1 Op [<font color="blue"><b>AddressOf</b></font> [<font color="blue"><b>TerminalOf</b></font>]] Expr2
</pre>
</blockquote>
Op is one of asignment operators: '=', '+=', '-=', '*=', '/=', '&=', '~=', '^='. The reduced modifier is used to avoid a memory leak.


The reduced assignment 

<blockquote>
<pre>
<font color="blue"><b>reduced</b></font> A = E
</pre>
</blockquote>

means

<blockquote>
<pre>
<font color="blue"><b>Dim</b></font> temp = E
E = <font color="blue"><b>NULL</b></font>
<font color="blue"><b>delete</b></font> A
A = temp
</pre>
</blockquote>


if A is array and E is element of A. Otherwise it means:

<blockquote>
<pre>
<font color="blue"><b>delete</b></font> A
A = E
</pre>
</blockquote>

<p>
The TerminalOf at the left part of the assignment statement should be used only when Expr1 is alias and 
AddressOf is presented at the right part of the statement.  
(Because <font color="blue"><b>TerminalOf</b></font> Expr1 = Expr2 
produces the same assignment as Expr1 = Expr2 in all another cases). When AddressOf is presented at the right 
part, the use of TerminalOf in the left part allows you to assign alias of Expr2 to terminal of Expr1. For 
example:


<blockquote>
<pre>
<font color="blue"><b>Dim</b></font> A[10], B, C, P
B = 300
C = 500
P = <font color="blue"><b>AddressOf</b></font> A(5)
<font color="blue"><b>TerminalOf</b></font> P = <font color="blue"><b>AddressOf</b></font> B
MsgBox P
MsgBox A[5] 
P = <font color="blue"><b>AddressOf</b></font> C
MsgBox A[5] 
MsgBox P
</pre>
</blockquote>

It produces

<blockquote>
<pre>
300
300
300
500
</pre>
</blockquote>

The TerminalOf at the left part of the assignment statement should be used only when Expr2 is an alias.
In this case, the use of TerminalOf allows you to assign Expr1 as alias of terminal of Expr2. For example

<blockquote>
<pre>
<font color="blue"><b>Dim</b></font> P1 = <font color="Red">"X"</font>
<font color="blue"><b>Dim</b></font> P2 = <font color="Red">"Y"</font>
<font color="blue"><b>Dim</b></font> T1 = [<font color="Red">"R"</font>, [<font color="Red">"F"</font>, <font color="blue"><b>AddressOf</b></font> P1]]
<font color="blue"><b>Dim</b></font> T2 = [<font color="Red">"R"</font>, <font color="blue"><b>AddressOf</b></font> P2]
<font color="blue"><b>Dim</b></font> Q1 = <font color="blue"><b>AddressOf</b></font> T1[1]
<font color="blue"><b>Dim</b></font> Q2 = <font color="blue"><b>AddressOf</b></font> T2[1]
<font color="blue"><b>TerminalOf</b></font> Q2 = <font color="blue"><b>AddressOf</b></font> <font color="blue"><b>TerminalOf</b></font> Q1
</pre>
</blockquote>


This example illustrates how the search of most general unifier works (mechanical theorem proving). 
T1 and T2 represent terms, P1 and P2 are parameters of T1 and T2 accordingly. The last statement 

<blockquote>
<pre>
<font color="blue"><b>TerminalOf</b></font> Q2 = <font color="blue"><b>AddressOf</b></font> <font color="blue"><b>TerminalOf</b></font> Q1
</pre>
</blockquote>

changes parameters, not source terms. 

<H4>
See Also
</H4>
<blockquote>
<ul>
<li><a href="#Dim Statements">Dim Statements</a></li>
<//ul>
</blockquote>
</blockquote>


<a name="Class Statements"><h3>Class Statements</h3></a>
<!-------------------------------------------------------------------->
<blockquote>
Declares the name of a class, as well as a definition of the variables, properties, and methods that comprise the class.
<H4>
Grammar
</H4>
<blockquote>
<pre>
ClassStmt -> <font color="blue"><b>Class</b></font> Ident 
              [<font color="blue"><b>Inherits</b></font> AncestorClass]
              MemberStatement /...
             <font color="blue"><b>End</b></font> <font color="blue"><b>Class</b></font>
		 
MemberStatement -> DimStmt |
                   SubStmt |
                   PropertyStmt |
</pre>
</blockquote>
<H4>
Arguments
</H4>
<blockquote>
<i>Ident</i>
<blockquote>
Name of the class
</blockquote>
</blockquote>
<blockquote>
<i>AncestorClass</i>
<blockquote>
Optional. Name of the ancestor class.
</blockquote>
</blockquote>
<blockquote>
<i>MemberStatement</i>
<blockquote>
One or more statements that define the variables, properties, and methods of the class.
</blockquote>
</blockquote>
All constructors must have name New.
<H4>
Example
</H4>
<pre>
<font color="blue"><b>class</b></font> Point
  <font color="blue"><b>Dim</b></font> X <font color="blue"><b>As</b></font> <font color="blue"><b>Integer</b></font>, Y <font color="blue"><b>As</b></font> <font color="blue"><b>Integer</b></font>
  <font color="blue"><b>Sub</b></font> <font color="blue"><b>New</b></font>(X <font color="blue"><b>As</b></font> <font color="blue"><b>Integer</b></font>, Y <font color="blue"><b>As</b></font> <font color="blue"><b>Integer</b></font>)
    <font color="blue"><b>Me</b></font>.X = X
    <font color="blue"><b>Me</b></font>.Y = Y
  <font color="blue"><b>End</b></font> <font color="blue"><b>Sub</b></font>
<font color="blue"><b>End</b></font> <font color="blue"><b>Class</b></font>

<font color="blue"><b>Class</b></font> Circle
  <font color="blue"><b>Inherits</b></font> Point
  <font color="blue"><b>Dim</b></font> R
  <font color="blue"><b>Sub</b></font> <font color="blue"><b>New</b></font>(X <font color="blue"><b>As</b></font> <font color="blue"><b>Integer</b></font>, Y <font color="blue"><b>As</b></font> <font color="blue"><b>Integer</b></font>, R <font color="blue"><b>As</b></font> <font color="blue"><b>Integer</b></font>)
    <font color="blue"><b>MyBase</b></font>.<font color="blue"><b>New</b></font>(X, Y)
    <font color="blue"><b>Me</b></font>.R = R
  <font color="blue"><b>End</b></font> <font color="blue"><b>Sub</b></font> 
<font color="blue"><b>End</b></font> <font color="blue"><b>Class</b></font>

<font color="blue"><b>Dim</b></font> P <font color="blue"><b>As</b></font> Point = <font color="blue"><b>new</b></font> Point(3, 5), C <font color="blue"><b>As</b></font> Circle = <font color="blue"><b>new</b></font> Circle(3, 5, 7)
<font color="blue"><b>print</b></font> P, C
</pre>
<H4>
See Also
</H4>
<blockquote>
<ul>
<li><a href="#Function Statements">Function Statements</a></li>
<li><a href="#Sub Statements">Sub Statements</a></li>
<li><a href="#Property Statements">Property Statements</a></li>
<li><a href="#Structure Statements">Structure Statements</a></li>
<//ul>
</blockquote>
</blockquote>




<a name="Delete Statements"><h3>Delete Statements</h3></a>
<!-------------------------------------------------------------------->
<blockquote>
Destroys variable or its terminal
<H4>
Grammar
</H4>

<blockquote>
<pre>
DeleteStmt -> <font color="blue"><b>Delete</b></font> [<font color="blue"><b>TerminalOf</b></font>] Expression
</pre>
</blockquote>
</blockquote>




<a name="Dim Statements"><h3>Dim Statements</h3></a>
<!-------------------------------------------------------------------->
<blockquote>
Declares a variable.
<H4>
Grammar
</H4>
<blockquote>
<pre>
DimStmt -> [<font color="blue"><b>Shared</b></font>] <font color="blue"><b>Dim</b></font> Variable [<font color="Red">'('</font> Subscripts <font color="Red">')'</font>] [ = Value ] /,... 
Subscripts -> Upperbound /<font color="Red">','</font>...
</pre>
</blockquote>
<H4>
Arguments
</H4>
<blockquote>
<i>Variable</i>
<blockquote>
The name of the <font color="black"><i>variable</i></font> being declared.
</blockquote>
</blockquote>
<blockquote>
<i>Value</i>
<blockquote>
The initial <font color="black"><i>value</i></font> assigned to the <font color="black"><i>variable</i></font>.
</blockquote>
</blockquote>
<blockquote>
<i>Subscripts</i>
<blockquote>
Dimensions of an array <font color="black"><i>variable</i></font>.
</blockquote>
</blockquote>
<blockquote>
<i>Upperbound</i>
<blockquote>
Upper bound. The lower bound of an array is always zero.
</blockquote>
</blockquote>
<blockquote>
<i>Shared</i>
<blockquote>
Optional. The class keyword specifies a static (<font color="black"><i>shared</i></font>) field of a class. Can be used only inside of a class body.
</blockquote>
</blockquote>
Use the dim statement to declare variables. These variables can be assigned values at declaration or later in your script.
<H4>
Example 1
</H4>
<pre>
<font color="blue"><b>Dim</b></font> A(30, 4)
<font color="blue"><b>Dim</b></font> X = [10, 20, 30]
<font color="blue"><b>Dim</b></font> Y
<font color="blue"><b>Dim</b></font> Z = <font color="blue"><b>New</b></font> TObject()
</pre>
You can use the dim statement inside of a class body. In such case the statement declares a field of a class instance or a static (<font color="black"><i>shared</i></font>) field of the class.
<H4>
Example 2
</H4>
<pre>
<font color="blue"><b>Class</b></font> <font color="blue"><b>MyClass</b></font>
  <font color="blue"><b>Dim</b></font> A(10, 2)
  <font color="blue"><b>Dim</b></font> X  
  <font color="blue"><b>Dim</b></font> Y = [100, 200, 300]
  <font color="blue"><b>Shared</b></font> <font color="blue"><b>Dim</b></font> Z = 5
<font color="blue"><b>End</b></font> <font color="blue"><b>Class</b></font>
</pre>
<H4>
See Also
</H4>
<blockquote>
<ul>
<li><a href="#Assignment Statements">Assignment Statements</a></li>
<li><a href="#Class Statements">Class Statements</a></li>
<//ul>
</blockquote>
</blockquote>
<a name="Do-loop statements"><h3>Do-loop statements</h3></a>
<!-------------------------------------------------------------------->
<blockquote>
Repeats a block of statements while a condition is True or until a condition becomes True.
<H4>
Grammar
</H4>
<blockquote>
<pre>
DoStmt -> DoStmt1 | DoStmt2

DoStmt1 -> <font color="blue"><b>Do</b></font> [{<font color="blue"><b>While</b></font> | <font color="blue"><b>Until</b></font>} Condition]
             [Statements]
             [<font color="blue"><b>Exit</b></font> <font color="blue"><b>Do</b></font>]
             [Statements]
           <font color="blue"><b>Loop</b></font> 

DoStmt2 -> <font color="blue"><b>Do</b></font>
            [Statements]
            [<font color="blue"><b>Exit</b></font> <font color="blue"><b>Do</b></font>]
            [Statements]
           <font color="blue"><b>Loop</b></font> [{<font color="blue"><b>While</b></font> | <font color="blue"><b>Until</b></font>} Condition]
</pre>
</blockquote>
<H4>
Arguments
</H4>
<blockquote>
<i>Condition</i>
<blockquote>
A Boolean expression. If <font color="black"><i>condition</i></font> is null or undefined, <font color="black"><i>condition</i></font> is treated as false.
</blockquote>
</blockquote>
<blockquote>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?