中基网-信息技术-软件世界-应用实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中基网-信息技术-软件世界-应用实例
authorware中长文本输入四法
authorware提供的textentry文本输入交互类型,只能在预先定义的输入框内输入有限长度的文本。

经过实践,笔者总结出四种方法可以实现长文本的输入:activex控件法、外部编辑法、外部函数法和分页输入法。

一、activex控件法
authorware从4.0版开始支持activex控件,使authorware共享windows及其它应
用程序的资源成为可能,大大提高了用authorware进行高级程序设计的效率。

微软提供
的文本编辑控件常见的有两个:textbox控件(随windows95/98自动安装在系统中)和richtext控件(可以在visualbasic5.0/6.0中文版找到,即richtx32.ocx文件)。

经测试,textbox控件在authorware中不能正常显示中文文字,但可以接收。

笔者使用vb5中文版的richtext控件取得了满意的效果,方法如下:
通过选单命令insert/control…在authorware的流程线上填入richtext控件的一个实例(当然你的系统中应当加装登记注册了该控件,并加装了vb),并适度设置其属性值,主要存有:multiline为true,scrollbars为3-rtfboth等,然后通过一个可视化结构去同时实现对控件输入框的内容展开加载并留存在自定义变量textstr中。

在计算图标“确定”中置入:
textstr:=getspriteproperty(@"richtextcontrol",#text)
--用于读取richtext控件的text属性值。

值得注意的就是,欲并使填入该控件的程序装箱公布后能够恰当运转,须要文件activex.x32的积极支持,如果目标系统没加装登记注册该控件的话,应当同时公布该控
件richtx32.ocx并在目标机器上登记注册该控件。

利用xtraactivex函数对控件的检测
与动态登记注册可以参看authorware提供更多的例程activex.a4p(或activex.a5p)的
适当部分。

二、外部编辑法
在须要输出文本的时候,通过系统函数jumpoutreturn()调用windows的记事本程序
编辑等待输出的文本(并将其计算机上安装),然后用系统函数readextfile()加载该文件,第一个排序图标中植入:
jumpoutreturn("notepad.exe",recordslocation^"mystr.txt")
第二个排序图标中植入:
textstr:=readextfile(recordslocation^"mystr.txt")
这段程序还可以有效率些,比如说采用openfiledialog科学知识对象,通过一个关
上文件对话框追踪并回到(剥夺变量)文本编辑程序或文本文件。

三、外部函数法
采用随authorware加装光盘附带的一个ucd外部拓展函数文件:scrledit.u32,继
续执行其中的函数scrolledit()将移出一个可以翻转输出的文本编辑框,具体内容用法可以由下面的程序段同时实现。

在“设置变量”计算图标中置入:
left:=windowleft+100
top:=windowtop+100
right:=windowleft+500
bottom:=windowtop+300
在“等候输出”排序图标中植入:
teststr:=scrolledit("m","firstwindow",""^left^","^top^","^right^","^bottom^"
",tab,"","system",12)
--在演示窗口左上角(100,100)、右下角(500,300)的矩形区域开辟一个名为firstwindow的可编辑的滚动文本框,设置字体为system,字号为12,按tab键输入结束,输入的文本由textstr接收。

closewindow("firstwindow")
--关闭指定的firstwindow窗口。

在表明图标“提示信息”中输出提示语:恳请输出,按tab键输出完结!
需要提醒注意的是:在文件scrledit.u32中函数scrolledit()的位置参数的语法描
述(description)部分有一个小小的错误。

另外,scrledit.u32应随打包文件一同发布。

四、分页输入法
设计思路:虽然authorware的textentry交互响应一次不能实现长文本的输入,我
们可以将待输入的文本分解为若干页(段)分别输入,以回车键enter作为每页输入的结
束标志,即‘’作为页与页之间的间隔符。

变量textstr用以承接输入的文本,初值设为
空,它的一行对应一页;pagenum记录当前的页号码,初值为1;每一页的内容可随时进行增、删、改操作。

用一个交互结构生成分页文本编辑器:其中,在“分页输入”的附着计算图标中置入:
currentpage:=getline(textstr,pagenum)
presetentry:=currentpage
presskey("rightarrow")
--从串textstr中读取pagenum页/行的内容并在输入区显示。

在“*--输出”排序图标中植入:
textstr:=replaceline(textstr,pagenum,entrytext)
pagenum:=pagenum+1
--将当前输入页中的文本写入/替换textstr的对应页,进入下一页的编辑。

在“上一页”和“下一页”排序图标中分别植入:
textstr:=replaceline(textstr,pagenum,entrytext)
pagenum:=pagenum-1
textstr:=replaceline(textstr,pagenum,entrytext)
pagenum:=pagenum+1
在“删除本页”计算图标中置入:
textstr:=deleteline(textstr,pagenum)
pagenum:=linecount(textstr)
test(pagenum=0,pagenum:=1)
在交互图标中可以插入下列提示语:
当前就是第{pagenum}页(共{linecount(textstr)+1}页)
在“全文浏览”分支中用一个显示图标显示文本:{textstr}(选取选单项
text/scrolling),这样就可以对输入的文本进行全文预览,一个可输入任意长文本的简易编辑器制作完成。

结语:上面得出的这四种方法各存有长短,第一种方法同时实现的界面效果合乎windows规范,但亦须面向对象编程有所介绍;第二种方法在关上记事本程序时,应当特别注意本程序将放到后台运转;第三种方法同时实现较为简单,但须要布局不好函数scrolledit()的参数;第四种方法采用的就是一种同时实现短文本输出的“迂回战术”。

前三种方法若想正常运转依赖目标系统的布局(控件与否恰当加装、登记注册,外部编辑器或外部函数与否存有),而第四种方法与目标系统毫无关系,就是“氢铵”authorware 的。

相关文档
最新文档