TMSScripter工作室开发者向导Word下载.docx

上传人:b****7 文档编号:22360000 上传时间:2023-02-03 格式:DOCX 页数:34 大小:26.77KB
下载 相关 举报
TMSScripter工作室开发者向导Word下载.docx_第1页
第1页 / 共34页
TMSScripter工作室开发者向导Word下载.docx_第2页
第2页 / 共34页
TMSScripter工作室开发者向导Word下载.docx_第3页
第3页 / 共34页
TMSScripter工作室开发者向导Word下载.docx_第4页
第4页 / 共34页
TMSScripter工作室开发者向导Word下载.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

TMSScripter工作室开发者向导Word下载.docx

《TMSScripter工作室开发者向导Word下载.docx》由会员分享,可在线阅读,更多相关《TMSScripter工作室开发者向导Word下载.docx(34页珍藏版)》请在冰豆网上搜索。

TMSScripter工作室开发者向导Word下载.docx

脚本结构

脚本结构用2个主要的块组成:

1、过程和函数声明;

2、主要的块。

两个块是可选择的,但是在脚本中至少要有一个。

主要的块不需要begin...end。

它可以是一个单一的声明。

一些例子:

脚本1:

procedureDoSomething;

begin

CallSomething;

end;

CallSomethingElse;

脚本2:

脚本3:

functionMyFunction;

result:

='

Ok!

'

;

脚本4:

和Pascal一样,声明应该由“;

”结尾。

begin...end块是允许集合一批声明。

标识符

在脚本的标识符名字(变量名字,函数和过程名字,等等。

)跟随Pascal最普通的规则:

应该从一个字符开始(a..z或A..Z),或“_”,和继之以包含数字字母的字符或“_”字符。

不能包含任何别的字符或空格。

有效的标识符:

VarName

_Some

V1A2

无效的标识符:

2Var

MyName

Some-more

This,is,not,valid

赋值声明

赋值语句和Pascal一样,赋值语句是使用“:

=”。

例子:

MyVar:

=2;

Button.Caption:

This'

+'

isok.'

字符串

字符串是同pascal一样使用单引号('

)字符。

双引号("

)不能使用。

你也能使用(#)字符宣布一个字符在一个字符串的内部,不需要使用(+)操作符增加一个字符到一个字符串。

A:

Thisisatext'

Str:

Text'

+'

concat'

B:

StringwithCRandLFcharattheend'

#13#10;

C:

Stringwith'

#33#34'

charactersinthemiddle'

注释

在脚本内能插入注释。

你能使用//字符或(**)或{}。

使用//字符注释只能注释一行。

//ThisisacommentbeforeShowMessage

ShowMessage('

Ok'

);

(*Thisisanothercomment*)

Moreok!

{Andthisisacomment

withtwolines}

Endofokays'

变量

不需要在脚本中声明变数类型。

这样,你宣布变量只需要使用var命令和变量的名字。

如果脚本的OptionExplicit属性被设置为false,那么就不需要声明变量。

在这种情况下,变数是暗示声明。

如果你想要脚本上有更多的控制,设置OptionExplicit属性为true。

如果OptionExplicit属性为true,而在脚本中使用了变量但不进行声明,将会唤醒一个编译错误。

procedureMsg;

varS;

S:

Helloworld!

ShowMessage(S);

脚本2:

varA;

=0;

=A+1;

脚本3:

HelloWorld!

如果脚本属性OptionExplicit被设置为false,那么var声明不需要出现在任何脚本的上方。

索引

字符串,数组和数组属性可以使用索引“[”并且“]”字符。

更多例子:

MyChar:

=MyStr[2];

MyStr[1]:

A'

MyArray[1,2]:

=1530;

Lines.Strings[2]:

Sometext'

数组

脚本支持数组和variant数组,使用方法参考Pascal。

注意:

数组的索引是从0开始的。

NewArray:

=[2,4,6,8];

Num:

=NewArray[1];

//Numreceives"

4"

MultiArray:

=[['

green'

'

red'

blue'

],['

apple'

orange'

lemon'

]];

=MultiArray[0,2];

//Strreceives'

MultiArray[1,1]:

neworange'

If语句

if语句有2种形式:

if..then和if..then..else。

ifJ<

0thenResult:

=I/J;

ifJ=0thenExitelseResult:

0then

Result:

Count:

=Count+1;

end

else

Done:

=True;

While语句

同Pascal。

whileData[I]<

XdoI:

=I+1;

whileI>

0do

ifOdd(I)thenZ:

=Z*X;

I:

=Idiv2;

X:

=Sqr(X);

whilenotEof(InputFile)do

Readln(InputFile,Line);

Process(Line);

repeat语句

repeat

K:

=ImodJ;

=J;

J:

=K;

untilJ=0;

Write('

Enteravalue(0..9):

'

Readln(I);

until(I>

=0)and(I<

=9);

for语句

脚本1:

forc:

=1to10do

a:

=a+c;

fori:

=atobdo

j:

=i^2;

sum:

=sum+j;

case语句

caseuppercase(Fruit)of

lime'

:

ShowMessage('

black'

函数和过程说明

函数和过程的宣告同Delphi的非常相似,唯一的差别只在于不需要指定变量的类型。

函数的返回值是使用暗示的Result变量。

参数传地址也能被使用,只是不需要规定变量类型。

procedureHelloWord;

procedureUpcaseMessage(Msg);

ShowMessage(Uppercase(Msg));

functionTodayAsString;

=DateToStr(Date);

functionMax(A,B);

ifA>

Bthen

=A

=B;

procedureSwapValues(varA,B);

VarTemp;

Temp:

=A;

=Temp;

 

Basic的语法

TatBasicScripter组件执行Basic语法的脚本。

Basic语法支持:

∙sub..endandfunction..enddeclarations

∙byrefanddimdirectives

∙if..then..else..endconstructor

∙for..to..step..nextconstructor

∙do..while..loopanddo..loop..whileconstructors

∙do..until..loopanddo..loop..untilconstructors

div,mod,xor,shl,shroperators

∙try..exceptandtry..finallyblocks

∙selectcase..endselectconstructor

∙exitstatement

∙accesstoobjectpropertiesandmethods(ObjectName.SubObject.Property)

同Pascal的脚本结构。

SUBDoSomething

CallSomething

ENDSUB

CallSomethingElse

FUNCTIONMyFunction

MyFunction="

"

ENDFUNCTION

同正常Basic一样,所声明的一个单行能由“:

”字符分开。

同Basic,标识符一些例子:

使用“=”字符。

MyVar=2

Button.Caption="

This"

+"

isok."

使用("

A="

Thisisatext"

Str="

Text"

+"

concat"

使用('

)或(REM)字符。

ThisisacommentbeforeShowMessage

ShowMessage("

Ok"

REMThisisanothercomment

Andthisisacomment

withtwolines

Endofokays"

这样,你宣布变量只需要使用DIM命令和变量的名字。

SUBMsg

DIMS

S="

ShowMessage(S)

DIMA

A=0

A=A+1

ShowMessage(A)

如果脚本属性OptionExplicit被设置为false,那么DIM声明不需要出现在任何脚本的上方。

MyChar=MyStr[2]

MyStr[1]="

A"

MyArray[1,2]=1530

Lines.Strings[2]="

Sometext"

脚本支持数组和variant数组,同Pascal脚本的一样。

NewArray=[2,4,6,8]

Num=NewArray[1]//Numreceives"

MultiArray=[["

green"

"

red"

blue"

],["

apple"

orange"

lemon"

]]

Str=MultiArray[0,2]//Strreceives'

MultiArray[1,1]="

neworange"

If声明

if...then..endif和if...then...else..endif。

IFJ<

0THENResult=I/JENDIF

IFJ=0THENExitELSEResult:

=I/JENDIF

0THEN

Result=I/J

Count=Count+1

ELSE

Done=True

ENDIF

While声明

同Basic。

WHILE(Data[I]<

X)I=I+1ENDWHILE

WHILE(I>

0)

IFOdd(I)THENZ=Z*XENDIF

X=Sqr(X)

ENDWHILE

WHILE(notEof(InputFile))

Readln(InputFile,Line)

Process(Line)

Loop声明

支持loop语句,功能同Basic中的loop语句。

可能的语法是:

DOWHILEexprstatementsLOOP

DOUNTILexprstatementsLOOP

DOstatementsLOOPWHILEexpr

DOstatementLOOPUNTILexpr

DO

K=ImodJ

I=J

J=K

LOOPUNTILJ=0

DOUNTILI>

=0

Write("

"

Readln(I)

LOOP

LOOPWHILEJ<

0

DOWHILEI<

For声明

FORc=1TO10STEP2

a=a+c

NEXT

FORI=aTOb

j=i^2

sum=sum+j

Select声明

功能同Basic中的Select语句。

SELECTCASEselectorExpression

CASEcaseexpr1

statement1

CASEcaseexprn

statementn

CASEELSE

elsestatement

ENDSELECT

SELECTCASEuppercase(Fruit)

CASE"

lime"

ShowMessage("

black"

函数和过程声明

函数和附属的声明与Basic相似。

函数的返回值是使用暗示的变量,该变量同函数名一样。

参数传地址也能被使用,使用BYREF命令。

一些例子:

SUBHelloWord

SUBUpcaseMessage(Msg)

ShowMessage(Uppercase(Msg))

FUNCTIONTodayAsString

TodayAsString=DateToStr(Date)

FUNCTIONMax(A,B)

IFA>

BTHEN

MAX=A

MAX=B

SUBSwapValues(BYREFA,B)

DIMTEMP

TEMP=A

A=B

B=TEMP

脚本的工作

现在我们讲到了脚本的具体使用方法。

开始

开始脚本,只需要把脚本赋值给TatCustomScripter组件的SourceCode属性,并调用Execute方法。

下面是一个简单的例子:

Scripter.SourceCode.Text:

Scripter.Execute;

现在我们变得灵活一点。

在窗口上放一个Tmemo组件,并把代码改为下面这样:

Scripter.SourceCode:

=Memo1.Lines;

现在你可以在程序运行的时候在Memo组件中输入脚本,并运行它了。

公共任务

在脚本中调用程序中的子程序

如果脚本要直接调用程序中的一个或多个函数和过程,你只要使用ExecuteSubRouti方法就可以了:

Pascal示例

脚本:

procedureDisplayHelloWorld;

procedureDisplayByeWorld;

Byeworld!

Basic示例

subDisplayHelloWorld

ShowMessage(“Helloworld!

”);

endsub

subDisplayByeWorld

ShowMessage(“Byeworld!

代码:

Scripter.ExecuteSubRoutine('

DisplayHelloWorld'

DisplayByeWorld'

上面的代码将显示“Helloword!

”和“Byeworld!

”消息框。

取得脚本返回的值

如果Delphi要取得脚本中的过程或函数返回的值,使用ExecuteSubRoutine方法。

见下例:

functionCalculate;

=(10+6)/4;

functionCalculate

Calculate=(10+6)/4

endfunction

FunctionValue:

=Scripter.ExecuteSubRoutine('

Calculate'

如果Delphi要取得脚本所返回的值。

代码:

=Scripter.Execute;

在Basic中要达到同样的效果,就要使用保留字“MAIN”:

MAIN=(10+6)/4"

传递参数到脚本

如果要把Delphi变量的值传递给脚本,还是同样使用ExecuteSubRoutine方法见下例:

functionDouble(Num);

=Num*2;

functionDouble(Num)

Double=Num*2

Endfunction

CODE:

Double'

5);

FunctionValue接收到10。

如果你要传递更多的变量,就要使用一个Variant数组:

functionMaxValue(A,B);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1