TC官方合作论坛

标题: 手机帮助文档建立 [打印本页]

作者: zhtnh007    时间: 2013-5-19 08:23
标题: 手机帮助文档建立
因为上班的时候有会有空想学习一下TC,但是没有电脑,也想看看TC的帮助文档,不知在哪里看,我想人多力量大,大家一起把帮助文档考贝过来吧,有过的信息就不用发第二遍了!

作者: zhtnh007    时间: 2013-5-19 08:26
我先来
tc语法说明:
1.TC语法概要



TC所有的语法都是由语句来构成的,这里包含了:

预定义语句:       #include "c://anothercode.t"

命名空间定义语句: 空间 命名空间名称

函数定义语句:     功能 函数名称()

变量定义语句:     我是(变量定义的时候 可以包含关键字 例如:var我是)

赋值语句:         我是= "给变量赋予的一个值"

函数调用语句:     辅助.消息框()

流程控制语句:     这里包含(if<如果>,while<循环>,select<选择>,continue<继续>,break<跳出>,for<遍历>等语句)

功能结束 //函数定义结束语句

空间结束 //命名空间定义结束语句

这上面就是TC所有的语句,只要把上面这些语句都理解了,也就等于熟练掌握了TC这门开发工具的语法,下面我们会对语法知识进行逐一介绍.
作者: zhtnh007    时间: 2013-5-19 08:27
2命名空间定义语句



命名空间语句的定义:

空间 我的程序

空间结束

命名空间就相当于一个名称,命名空间里面包含的是函数定义和全局变量的定义

如果在不同名称的命名空间中有相同的函数名,则表示的是不同的含义.

但是同一个命名空间中,不能有相同的全局变量名和函数名.



空间 我的程序 这条语句就是定义了一个我的程序的命名空间,在这个命名空间中定义的所有的函数都需要通过这个命名空间名来访问.

例如:

空间 我的程序

//定义一个命名空间

功能 测试()      

//定义一个名为测试,返回类型为 的函数

辅助.消息框("调用测试函数成功!")

功能结束

   

功能 开始_点击()      

我的程序.测试()

功能结束

空间结束



当我们在两个命名空间中各自定义了一个函数,虽然他们使用了相同的函数名时,但表示不同的含义:

比如:



//空间A.t

空间 空间A                  

//定义一个命名空间

功能 测试A()         

//定义一个名为测试A,返回类型为 的函数

辅助.消息框("这是空间A,的测试A方法")

//调用系统支持的辅助空间里的消息框函数

功能结束

空间结束



//空间B.t

空间 空间B            

//定义一个命名空间

功能 测试A()   

//定义一个名为测试A,返回类型为 的函数

辅助.消息框("这是空间B,的测试A方法")

//调用系统支持的辅助空间里的消息框函数

功能结束

空间结束



当我们访问他们时

//测试.t

#include "空间A.t"

//因为我们需要访问我的程序A空间里的测试A函数.所以需要用#include语句包含它所在的源代码,

#include "空间B.t"

//如果是调用系统支持的空间里的API,则不用使用#include语句

空间 我的程序

功能 开始_点击()

空间A.测试A()           

空间B.测试A()

功能结束

空间结束



执行这段代码可以看出我们会弹出两个对话框一个是显示"这是空间A,的测试A方法",一个是显示"这是空间B,的测试A方法".



不可以在不同的源文件中使用同一个命名空间:

//测试A.t

空间 我的程序A

//定义一个命名空间

功能 测试A()

//定义一个名为测试A,返回类型为 的函数

辅助.消息框("这个是测试A")

//调用系统支持的辅助空间里的消息框函数

功能结束

空间结束



//测试B.t

空间 我的程序A

//定义一个命名空间

功能 测试B()

//定义一个名为测试B,返回类型为 的函数

辅助.消息框("这个是测试B")

//调用系统支持的辅助空间里的消息框函数

功能结束

空间结束



#include "空间A.t"

#include "空间B.t"



空间 我的程序

功能 开始_点击()

我的程序A.测试A()      

我的程序A.测试B()

功能结束

空间结束





然后我们不能在同一命名空间定义相同的函数名

空间 我的程序

功能 开始_点击()

返回 真

功能结束



功能 测试A()

辅助.消息框("测试A")

返回 真

功能结束



功能 测试A()                                               

辅助.消息框("测试B")      

//编译这里会出错,在testsp中定义了相同的函数名

返回 真

功能结束

空间结束

把上面源代码放到源文件里面去编译,是无法编译通过的.
作者: zhtnh007    时间: 2013-5-19 08:28
3函数定义语句



功能 功能执行(a)



功能结束

这是一个简单的函数定义,定义了一个名为功能执行的函数 ,参数列表为 a.

函数就是一个功能块,里面放了你需要操作的执行语句,说的简单点就是告诉计算机需要帮助你做什么.



函数定义的原型:



功能 函数名(参数名1,参数名2,…)



功能结束



参数列表: 是指调用函数的时候需要给函数传进去的参数.就像当你要一个人做一个事情

需要告诉他的相关信息.

举例说明:

空间 我的程序

功能 相加(a,b)

//定义 函数

求和=a+b         

//2个数相加

返回 求和      

//返回 sum

功能结束

功能 开始_点击()

//开始执行的事件函数

求和=我的程序.相加(100,100)

辅助.消息框(求和)

功能结束

空间结束



功能 相加(a,b)

//定义返回类型为 函数,调用此函数时,需要给它传2个 的数据

求和=a+b         

//2个数相加

返回 求和      

//返回 sum

功能结束



返回值 TC4.0之后 函数的返回值 不再强制要求了,用户可以根据自己的需求来确定

如果要函数有结果返回 就需要加个 返回 这个关键字
作者: zhtnh007    时间: 2013-5-19 08:36
4.变量定义语句

TC定义的定义支持两种方式 一种是显示定义 一个是隐式定义

//中文变量定义

方式1:变量 变量1,变量2

//英文变量定义

var a,b,c,d

//TC支持一行定义多个,每个变量之间用逗号”,”隔开,不含引号,逗号必须是半角的(半角逗号即英文输入状态下的逗号)

方式2:变量1,变量2

//英文变量定义

a,b,c,d,value

//TC支持一行定义多个,每个变量之间用逗号”,”隔开,不含引号,逗号必须是半角的(半角逗号即英文输入状态下的逗号)



下面是定义数组的举例

空间 数组说明

//默认空间

//全局定义

我是数组=数组[10]

// 注意,这里定义的数组是全局的 所以数组大小必须是常量

test=array[10]

// 注意,这里定义的数组是全局的 所以数组大小必须是常量



//开始按钮_点击操作

功能 开始_点击()

// 这里是局部数组的定义 ,局部数组跟全局数组不一样,数组的大小可以支持变量

大小=10

我是数组1=数组[大小]//这个地方注意了哦,用变量做为定义的数组大小是不能加关键字的哦



// 这里是局部数组的定义 ,局部数组跟全局数组不一样,数组的大小可以支持变量

size=10

test1=array[size]//这个地方注意了哦,用变量做为定义的数组大小是不能加关键字的哦



//接下面是数组的赋值操作 用循环将 0-9 这个数 赋值给数组成员

遍历(i=0;i<10;i++)

    test=i

遍历结束



功能结束



//退出按钮_点击操作

功能 退出_点击()

//下面是对数组成员的访问,注意:在TC里面数组成员的下标是以0开始的

辅助.消息框(test[0])//这里将弹出的是0 因为第一个成员赋值的时候i=0

//对数组的访问 下标可以是 例如

i=5

辅助.消息框(test)



功能结束



空间结束

//空间结束语句
作者: zhtnh007    时间: 2013-5-19 08:37
5.赋值语句



strHelp="this is a test"  

//这就是一个简单的赋值语句,strHelp为变量名

赋值语句的格式为:

变量名=计算表达式(必须是变量名,这里可以是常量、函数调用、计算表达式)





赋值举例:

strHelp=123

value="hello world"

strHelp="123"& strHelp
作者: zhtnh007    时间: 2013-5-19 08:38

6.
函数调用语句



示例: 鼠标.移动(4,4)

函数调用: 是指调用用户定义的或者系统自带的一个函数

函数调用的基本格式为: 空间名.函数名(实参1,实参2,…)

举例说明:

空间 我的程序

功能 相加(a,b)

//定义 函数

求和=a+b         

//2个数相加

返回 求和      

//返回sum

功能结束

功能 开始_点击()  

//开始事件函数

求和= 我的程序.相加(100,100)

辅助.消息框(求和)

功能结束

空间结束

说明:

功能 相加(a,b)

定义 函数 相加 将形参a,b传进去,将形参a和形参b相加,所得和作为返回值



在开始_点击()函数中

求和 =我的程序.相加(100,100),将实参100,100传进去,求出的和赋予求和,通过对话框打印出来
作者: zhtnh007    时间: 2013-5-19 08:38
7.流程控制语句:      



这里包含(if<如果>,while<循环>,select<选择>,continue<继续>,break<跳出>,for<遍历>等语句)

流程控制语句: 用来控制语句执行的流程

例如:

空间 我的程序

功能 开始_点击()

a=10

循环(a>0)

a=a-1  

遍历(i=0;i<10;i++)   

跳出

辅助.消息框("这里应该不会执行")

遍历结束

如果(a==5)

继续

如果结束

辅助.消息框(a)

循环结束

功能结束

空间结束



整个程序的结果是 陆续弹出几个对话框分别显示是: 9,8,7,6,4,3,2,1,0. 但是没有打印出遍历(i=0;i<10;i++)循环中 "这里应该不会执行"对话框.

说明了这里的继续语句只会中断离它最近的一层循环体(遍历块),而不会影响循环块.

只要a的值大于0,a的值就会减1,直到a=0. 结束整个循环.

循环(a>0)是第一个循环体,遍历(10)是镶套在循环(a>0)中的一个循环体.



遍历(i=0;i<10;i++)

跳出

辅助.消息框("遍历")

遍历结束  这一段表明虽然是遍历循环,但是一开始就是跳出,强制中断整个遍历循环,所以下面弹出"遍历"对话框没有执行.



如果(a==5)

继续

如果结束



这一段表明,当a的值等于5时,暂时停止当前循环,也就是a=5的值是不能打印出来.

然后继续从循环开始,继续往下循环,也是就是当a等于4时,再继续往下打印a值,一直到a=0.

跳出只是强制结束了属于当前的遍历,但是外层的循环还是继续循环,所以,外层的打印a的值继续执行,所以我们看到了循环中打印a的值,而没有看到遍历中弹出"遍历"对话框.
作者: zhtnh007    时间: 2013-5-19 08:39
运算符



TC中的算数运算符有“+” “-” “*” “++” “--” “+=” “-=” “/=” “*=”“/” “%” “&” “&=”



加法运算符(+):

a=4+3

执行结果7

加法运算符(+=):

a=3

a+=4

执行结果7



减法运算符(-):

b=4-3

执行结果1

减法运算符(-=):

b=4

b-=3

执行结果1



乘法运算符(*):

c=4*3

执行结果12

乘法运算符(*=):

c=4

c*=3

执行结果12



除法运算符(/):

d=10

d=10/3

执行结果3.3333

除法运算符(/=):

d=10

d/=3

执行结果3.3333



取模运算符(%)用于计算两个整数相除所得的余数:

a=5%4

最终a的结果是1,因为5/4的余数是1。



连接运算符(&)

b="aa"&"bb"&"我是一个连接符"

连接运算符(&=)

b="aa"

b&="bb"

最终结果b="aabb"

TC中的关系运算符有“>”大于  “<”小于  “>=”大于等于  “<=”小于等于  “==”等于  “!=”不等于

>大于,如果运算符左边值大于右边值,返回真

例如:

a=4

if(a>2)

help.messagebox("a大于2")

endif



<小于,如果运算符左边值小于右边值,返回真

例如:

a=3

if(a<4)

help.messagebox("a小于4")

endif



>=大于等于,如果运算符左边值大于或等于右边值,返回真

例如:                  

a=3

b=4

if(a>=3)

help.messagebox("a大于等于3")

endif

if(b>=3)

help.messagebox("b大于等于3")

endif



<=小于等于,如果运算符左边值小于或等于右边值,返回真

例如:                  

a=3

b=4

if(a<=3)

help.messagebox("a小于等于3")

endif

if(b<=3)

help.messagebox("b小于等于3")

endif



==等于,如果运算符两边相等,返回真

例如:

a=3

if(a==3)

help.messagebox("a等于3")

endif

注意: 这里的a等于3所以为真,执行if语句!



!=不等于,如果运算符两边不相等,返回真

例如:

a=3

if(a!=4)

messagebox("a不等于4")

endif

注意: 这里的3不等于4所以为真,执行if语句!





TC中的逻辑运算符有 “&&”逻辑与  “||”逻辑或 “!”逻辑非



当表达式进行“&&”(逻辑与)运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。

例如:

   (7<8) && (3==3);

//7小于8返回真,3等于3返回真,两边都为真,返回真



   (10<8) && (3==3);

//10小于8返回假,3等于3返回真,一边为假,返回假





当表达式进行“||”(逻辑或)运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。

例如:

   (7<8) || (3==3);

//7小于8返回真,3等于3返回真,两边都为真,返回真



   (7<8) || (4==3);

//7小于8返回真,4等于3返回假,一边为真,返回真



   (10<8) || (4==3);

//10小于8返回假,4等于3返回假,两边都为假,返回假



当表达式进行“!”(逻辑非)运算时,把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。

例如:

    !(3<2)

//先计算括号里的小于操作符,3小于2返回假,在计算逻辑非操作,返回真

   

    !(3>2)

//先计算括号里的大于操作符,3大于2返回真,在计算逻辑非操作,返回假



注意: 当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。

例如:

a=2,b=1;

a==2||b-1;

因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。



关系运算符和逻辑运算符的优先级都低于算术运算符。例如,5>4+3的计算与5>(4+3)运算顺序是一样的,即先计算4+3,再执行关系运算。此表达示的结果为“假”,即,将返回0。





TC中运算符顺序优先级



(最高)   () . 自左向右

      * / % 自左向右

       + - 自左向右

         < <= > >= 自左向右

== != 自左向右

&& 自左向右

(最低)   || 自左向右

注意: 优先级代表同一表达式中运算符的运算顺序,从高到低!



例如:

if(((5+5)*4)/2 > 5+5*4/2 && (4==6 || 4!=6))

help.messagebox("最终返回值是真")

else

help.messagebox("最终返回值是假")

endif

//根据运算符顺序优先级先计算 ((5+5)*4)/2 结果为20,再计算 5+5*4/2 结果为15,再计算20 > 15 返回“真”,接着计算“&&”右边括号里(4==6 || 4!=6),4==6返回“假”,4!=6返回“真”,假||真返回“真”,最后计算 真&&真 返回“真”。
作者: zhtnh007    时间: 2013-5-19 09:09
9.预定义语句



示例: #include "F:\\add.t"

//这里的.t结尾的文件是TC项目保存的源文件格式

预定义语句: 用来调用我们需要另一个用户写的一些功能时,把他所写的代码文件包含进来,

#include 就提供了这个功能,这样我们就能调用另一个用户写的一些功能,从而达到了代码的重用.



例如:

在F盘创建了一个名为"add.t"的文件,文件里保存了一个实现简单的加法的运算,代码如下

//add.t



空间 求和空间

功能 求和(ia,ib)

返回 ia+ib

功能结束

空间结束



现在我们在脚本里编写代码,之后需要调用到这个add的方法,那我们就可以通过预定义语句来实现跨文件的引用.代码如下:

#include  "F:\\add.t"

空间 我的程序

功能 开始_点击()

求和=求和空间.求和(10,20)

功能结束

空间结束



这样我们就成功的达到效果了.



预定义语句的用法很强大,要掌握它,读者还得多多练习.
作者: zhtnh007    时间: 2013-5-19 09:09
10.注释说明



注释就是对代码的解释和说明.目的是为了让别人和自己很容易看懂.

在第一章运行"我的程序"程序时,我们就对代码进行了详细的注释,目的是让大家容易看懂代码的意思.

注释的方法就是在要写的内容前加上"//"(不包括引号),// 之后的内容将被解析器当做注释,编译时会跳过.

空间 我的程序               

//定义testsp的命名空间  

功能 开始_点击()

//开始执行事件函数               

字符串="hello world"        

//变量名help赋值为"hello world"

辅助.消息框(字符串)   

//弹出一个为"hello world"的对话框

功能结束

//事件函数结束语句

空间结束              

//命名空间结束语句
作者: zhtnh007    时间: 2013-5-19 09:10
11.转义字符



转义字符是在字符串中做一些特殊处理所用到的功能.

比如我们要在字符串中输入一个双引号“ " ”可是大家都知道这个符号是字符串的开始与结束符,如果我们在字串中输入它,字符串就会误以为字符串结束了,

这时候我们就可以通过转义字符来处理这样的输入.如("_\"ABC\"_\"EFG\"_",这里的字串就等于  _"ABC"_"EFG"_)



TC支持的转义字符如下:



1、 \" 转义双引号  ("_\"ABC\"_\"EFG\"_",用辅助.消息框()输出  _"ABC"_"EFG"_)



2、 \&#39; 转义单引号  ("_\&#39;ABC\&#39;_\&#39;EFG\&#39;_",用辅助.消息框()输出  _&#39;ABC&#39;_&#39;EFG&#39;_)



3、 \\ 转义斜杠    ("c:\\tc",用辅助.消息框()输出  c:\tc,如果这里只用单斜杠就变成制表符\t了)



4、 \n 换行符      ("123\n456",用辅助.消息框()输出  123

456  这里自动换行了)



5、 \r 回车符      ("123\r456",用辅助.消息框()输出  123

456  这里自动换行了)



6、 \t 转义制表符  ("123\t456",这里的字串就等于  123    456,中间会把\t替换成4个空格)
作者: zhtnh007    时间: 2013-5-19 09:12
调试输出



在你想输入调试信息位置加入代码:

调试输出(要输出内容)

调试输出("要输出的调试信息")
作者: laowantong    时间: 2013-5-19 11:43
把TC的帮助文档转换成手机能读的电子书格式---TXT。。。。。放到手机里就好了




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1