// VDS 7 “Renaissance”

示例

一个完整的 Visual DialogScript 示例:WinTouch,一款拖放式实用工具,用于修改文件的日期与时间,附带注释代码。

下面是一个用 Visual DialogScript 能做出什么的例子。下图所示是一个 Windows 版的 "touch" 实用工具,它能把一组文件的日期和时间戳设为你指定的值。

WinTouch 实用工具

该程序采用拖放操作,因此你只需把想要修改时间戳的文件拖入列表框,输入日期和时间,再按下 Touch 即可。

WinTouch 实用工具

代码

TITLE WinTouch
DIALOG CREATE,WinTouch,-1,0,268,180,DRAGDROP,SAVEPOS
DIALOG ADD,TEXT,TEXT1,10,10,,,Files to touch:
DIALOG ADD,LIST,FileList,30,10,240,80
DIALOG ADD,TEXT,TEXT2,120,10,,,Date:
DIALOG ADD,TEXT,TEXT3,140,10,,,Time:
DIALOG ADD,EDIT,Date,120,40,60,,@datetime(ddddd)
DIALOG ADD,EDIT,Time,140,40,60,,@datetime(t)
DIALOG ADD,BUTTON,Touch,120,110,140,40,Touch!
DIALOG SHOW
:again
dialog disable,Touch
:evloop
wait event
goto @event()
:TouchBUTTON
list seek,FileList,0
repeat
%F = @item(FileList)
file setdate,%F,@dlgtext(time),@dlgtext(date)
list delete,FileList
until @zero(@count(FileList))
goto again
:DragDrop
list DROPFILES,FileList
dialog enable,Touch
goto evloop
:CLOSE
exit

工作原理

首先值得指出的是,如果你先用对话框编辑器设计好对话框,再用对话框向导生成程序,那么在本程序总共 29 行代码中,实际上你只需亲手写其中十行。

title 命令仅仅是为应用程序设置标题。dialog create 命令定义对话框本身,它由对话框编辑器创建而成。唯一的改动,是在两个 EDIT 对话框元素中插入两处 @datetime 函数调用,用以把两个编辑字段设为初始的日期和时间。DRAGDROP 与 SAVEPOS 参数表示:我们希望程序响应拖放操作,并希望对话框记住我们上次把它放在屏幕上的位置。

dialog disable 命令禁用 Touch 按钮,这样当列表中没有文件时它就无法被按下。:again:evloop 这两行是标签。:evloop 之后的两行会等待某事发生(称为一个事件),然后跳转到名称与该事件类型相对应的标签。事件共有三种可能类型:TouchBUTTON,在按下 Touch 按钮时发生;DRAGDROP,在发生拖放操作时发生;以及 CLOSE,在用户关闭对话框时发生。DialogScript 处理标签时不区分大小写。所有标签及事件处理骨架代码都由对话框向导生成(如果你使用它的话),因此你自己要做的,只是在各事件标签之后插入一些代码,来定义程序应当做什么。

DRAGDROP 事件只需用 list DROPFILES,FileList 这一条命令即可搞定,它会把被拖放进来的文件名添加到列表框中。随后程序返回 :evloop,等待下一个事件。:TouchBUTTON 之后的六行,会逐个把文件名从列表框中移除,并用 file setdate 命令把日期和时间改为两个编辑字段中所指定的值。全部处理完毕后,程序循环回到 :again。CLOSE 事件的默认动作是退出程序。

运行脚本

Visual DialogScript 的个人版(Personal)专为编写将在同一台 PC 上运行的脚本而设计。借助 Windows 内置的文件关联机制,当你双击脚本图标时,脚本便会运行。程序还附带一个工具,让你能为自己创建的脚本生成"开始"菜单图标。

标准版(Standard)和专业版(Professional)则能生成可执行文件,这些文件可连同运行时引擎一起分发,从而在未安装授权版 Visual DialogScript 的 PC 上运行。分发运行时无需支付任何版税。当脚本程序需要在整个组织内分发时,这一点令 Visual DialogScript 成为最具性价比的工具:大多数 Windows 批处理语言都得按系统逐台授权。

关于 Visual DialogScript 的功能还有其他疑问?请访问支持页面

用 VDS 7 构建它。

完整的 IDE + 语言。Windows & Linux · 32/64 位 · Unicode。