封面

此网页使用了框架，但您的浏览器不支持框架。


欢迎使用易语言

三分钟就能编程序

    一位根本不懂英语的普通电脑用户，只要使用易语言，可以在短短三分钟内编写出视窗（Windows）系统下的电脑程序，您相信吗？不信，请随我一试：

    1、 启动易语言，在右边工具箱中选中“标签”，用鼠标拖动绘制到设计窗口上部中央；

    2、 在工具箱中选中“按钮”，用鼠标绘制到窗口下部中央；

    3、 双击所绘制的“按钮”，输入以下文字后回车：
        bq1.bt = "祖国您好！"

    至此，恭喜您，这个程序已经编写完毕，可以随时运行。

    上面所提及的易语言，是由飞扬软件工作室推出的全中文全可视化电脑程序编写语言。她的诞生结束了外国编程语言长期垄断中国市场的局面，使中国人终于可以使用自己的母语来编写各种实用电脑程序。她具有最彻底的中文支持，从程序显示到程序输入，用户不需要接触半点英文。输入程序时只要懂得拼音就行了，譬如上面输入“bq1.bt”，系统将自动转换为对应的“标签1.标题”程序语句（“bq1.bt”为“标签1.标题”中每个汉字声母的组合）。程序全部以中文方式显示，运算符号全部显示为对应的中文符号，日期时间以中文格式呈现，以便于我国用户理解、阅读程序。语言中专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额处理等等。

    更酷的是，为方便初级用户入门，易语言使用流程图显示并编辑程序。用户在编写的过程中可以随时看到运行时程序所将经过的路线，有助于培养编程思路，提高解决问题的能力。图示：在易语言中编辑返回两个数值中较大值的程序的画面：

    还值得一提的是，易语言提供全程帮助跟踪支持，编程时用户可随时看到有关当前操作详细且全面的帮助信息。系统还可以将用户程序编译为 EXE 可执行文件，脱离语言环境单独运行。

另外，易语言提供多用户数据库支持，用户可以使用她来编写各种实用的数据库应用程序。

    为支持中高级用户，易语言提供了诸如对象、数据类型自定义、子程序指针、参考容器、常量、外部动态连接库命令调用等等很多高级语言特性。目前已包含数百条命令、数十类窗口单元数据类型、数百个常量。用户可以使用她来满足几乎所有的编程需求，具有极强的实用、适用及易用性，丝毫不逊于国外的同类软件。

欢迎使用易语言

    欢迎使用此款由飞扬工作室吴涛出品的 Windows 环境下的全中文实用电脑程序编写语言，她支持现今所有的 Windows 32 位操作系统，即：Windows 9X、ME、2000、NT 等，提供了中国电脑用户开发 Windows 应用程序最方便直观、快捷实用的方法，适合于初中级别电脑用户使用。尤其是根本不懂英文或者英文了解很少的初级用户，可以通过使用本语言极其快速地进入 Windows 程序编写的大门。

易语言与其它编程语言相比，具有以下主要优点：

  1. 全可视化支持。一般的可视化编程语言，仅支持图形用户界面的可视化设计操作，而易语言除了支持此类可视化，还支持程序流程的即时可视化呈视。即：用户在编写程序的过程中，可以即时看到当前程序的运行流程及路线，以助于培养编程思路，提高解决编程问题的能力；

  2. 全中文支持。作为一款由中国人自己设计的编程语言，易语言在中文处理方面做了大量的工作。用户在编写程序的过程中如果愿意，可以不接触任何英文。根本不懂英文或者英文了解很少的用户可以直接使用本语言来编写程序，不存在任何障碍。
    <1>、中文名称的快速录入。易语言内置四种名称输入法：首拼、全拼、双拼、英文。 三种拼音输入法均全面支持南方音。使用这些输入法用户能够以英文语句的录入速度来录入全中文程序语句。详情请参阅《程序的输入方法》节；
    <2>、程序全部以中文方式显示，运算符号全部显示为对应的中文符号，日期时间以中文格式呈现，以便于我国用户理解、阅读程序；
    <3>、语言中专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额处理等等。以后此方面将会继续得到大量扩充及增强。

  3. 易语言由基本系统和运行支持库两部分组成，两者之间通过使用自行定义的接口技术进行协作。运行支持库内提供了易语言的所有语言要素，如：命令、窗口单元数据类型、普通数据类型、常量等等，还可以通过提供“加入（AddIn）”功能来扩充易语言基本系统。运行支持库可以被随意增减、抽换或升级，基本系统对运行支持库提供了详细的版本控制。本技术给用户带来的最大好处是：
    <1>、用户可以根据行业或自身需要定制易语言；
    <2>、由于运行支持库的不断增多、升级，易语言的功能将被迅速扩充；
    <3>、由于运行支持库可以仅包含声明而不包含实际的运行支持代码，并且可以随时被更新或抽换，这样可使人们通过国际互联网与服务器进行远程易语言交流（譬如复杂型电子商务、远程控制等等）成为可能，此是以后易语言互联网版本的发展方向。

  4. 即时编译并自动规范格式的语句录入方式。在输入程序的过程中，每条程序语句被录入后，都将被立即进行初步编译，一些通常的语法错误，将及时得到报告并要求进行修改。所录入语句被自动规范为统一格式后存放，因此任何人所编写的任何程序其呈现格式都完全一致。对于应用程序的协作开发、交流和维护非常有利。

    5.

  5. 系统内置的自动名称管理器能够对用户所定义的各类名称进行跟踪管理。譬如：假设程序中现存在一个名为“取最大值”的子程序，而且在很多地方都调用了该子程序。现在用户根据需要想把该子程序更改为另外一个名称，在传统的编程语言中，用户需要先更改该子程序的名称，然后搜寻整个应用程序，逐一找到使用了该子程序的地方，把名称相应地改变过来。在易语言中，用户只需更改子程序名称即可，程序中其它所有使用了该子程序的地方，其名称都将被自动快速地更改过来。

  6. 贯穿全程的即时且全面的信息帮助。用户在进行任何操作的过程中，均能够在状态行上或提示夹中获得有关当前操作位置的详细相关信息。譬如：如果用户移动光标到某程序行，马上就能够得到此程序行上所有命令的定义、参数、使用方法等等信息。

寻求合作

    飞扬工作室愿意与其它公司、机构、个人在以下方面寻求合作：

  • 为您的软件系统制作基于易语言的子系统，譬如类似于 Word 的宏语言，能够极大地提高软件的灵活性，让用户能够自主配置或组合使用您的软件功能。

  • 可以根据行业或特定需要为您定制易语言；

  • 承接国内外各类软件开发业务；

    飞扬工作室联系方式：

  电话／传真：0717-4222233

  联系人：吴涛

  电子信箱：fly@eyuyan.com


第六章

第一章、易语言概述 | 第一节：易语言的安装与卸载 7 上一页 下一页 8

第一章、易语言概述

第一节、易语言的安装与卸载

1.1 安装步骤。

从易语言网站（http://www.eyuyan.com/）上下载易语言的最新版本，如图1-1所示。

图1-1

以易语言3.1正式注册版为例，将易语言3.1正式注册版另存为“易语言3.1正式注册版.exe”下载，下载后的安装文件如图1-2所示。

图1-2

2．执行目录下的“易语言3.1正式注册版.exe”。

3．弹出安装窗口，如图1-1-3所示。然后点“下一步”按钮。

图1-1-3

4．弹出许可协议窗口，如图1-4所示。点“是”按钮。

图1-4

5．自述文件里介绍易语言新版本的新增功能，如图1-5所示。再按“下一步”。

图1-5

6．弹出安装目录选择窗口，如图1-1-6所示。按“浏览”选择安装的目标目录，选择好后按“下一步”。

图1-6

7．安装到目标目录的所有文件如图1-7所示。其中e.exe是易语言主程序，ecom文件夹用于存放易模块，help目录用于存放帮助文件，lib目录用于存放易语言支持库，samples用于存放易语言的一些实例，tools目录用于存放编程相关工具软件，Readme.txt用于记录新版本的信息。

图1-7

2.2 卸载易语言

执行图1-7中的UNWISE.EXE，即可完整地将易语言从操作系统中卸载掉。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第一章、易语言概述 | 第二节、熟悉易语言可视化图形界面 7 上一页 下一页 8

第二节、熟悉易语言可视化图形界面

易语言之所以称为全可视化编程语言，就是因为它的开发界面和DOS界面下的一般编程界面相比，是图形化的；它所制作的应用程序图形，就是日后运行时看到的程序界面。整个编程过程都是可视的，可以称之为“所见即所得”。下面，我们就启动易语言的画面，来验证一下。

易语言目前的版本都是正式版，可到http://www.eyuyan.com/查看易语言的版本变动信息。安装后直接执行E.EXE文件即可运行。点击安装目录下的E.EXE，启动易语言，程序启动后出现图1-1所示的画面。

图1-2

在“新建”对话框中，选择“程序”，再单击“确定”，将自动建立一个新程序，该程序可在保存时命名。如图1-2所示。

初学者可能会说：哗，怎么界面这么复杂啊。其实你如果接触过word等办公软件或网页编辑工具，易语言的界面是不难理解的，因为里面的元素都是差不多的。下面，本书将为你一一解说在这个界面上出现的东西。

图1-2

程序窗口由上往下依次是标题栏、菜单栏和工具栏。这3个栏和所有的windows应用程序都是一样的，不必多说。

中间的窗口称为“界面窗口”，也可以称之为“设计窗口”，因为我们的应用程序的界面就在此设计。如果中间那个窗口称为“_启动窗口”，就是该程序的主窗口。

右边为“窗口单元工具箱”，又可称“控件工具箱”。这是一个很重要的窗口，通常在这里往应用程序的界面上添加各种控件。

左边为“工作夹”，在工作夹中包括三个子夹，名为：“支持库”、“程序”、“属性”。这三个子夹的功能如下：

1．我们通常在“支持库”里配合状态夹的提示子夹查看易语言的即时帮助知识，又可点击相关命令使代码行自动生成代码；

2．在“程序夹”中可以查看到当前程序的所有组成部分，双击某项目可以跳转到该项目所对应的程序部分。在某项目上单击鼠标右键可以弹出一个跳转、插入或删除对应程序项目的菜单；

3．“属性夹”用来显示或编辑当前被选中窗口单元的属性值。在属性夹的顶部有一个组合框，用作选择当前设计窗口中的某窗口单元。在属性夹的底部也有一个“事件组合框”，用作自动加入或跳转到当前被选择窗口单元的某事件处理子程序。

下边为“状态夹”，在状态夹中包括三个子夹，名为：“提示”、“输出”、“调用表”。这三个子夹的功能如下：

1．“提示夹”中始终具有针对于当前用户操作的提示，比如你在“属性夹”里点击“高度”属性，在“提示夹”里会出现提示：“本属性记录当前窗口的高度，单位为像素点。”；

2．“输出夹”中提供当前系统输出给用户的信息。比如编译易程序的全过程；

3．“调用表夹”中提供调试时当前被中断运行的易程序的子程序调用过程记录。

我们在新建一个程序之后，首先进入的画面为“界面编辑窗口”，若想切换到“代码编辑窗口”，选中并双击中间的窗口即可。“代码编辑窗口”如图1-3所示。

图1-3

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第一章、易语言概述 | 第三节、学习使用易语言的菜单栏和工具栏 7 上一页 下一页 8

第三节、学习使用易语言的菜单栏和工具栏

3.1 易语言的菜单栏

易语言目前共有九个菜单项，下面我们逐一作简单的介绍，至于深入的理解，还要通过日后的练习来多加熟悉。

1．“程序”菜单

相当于其他应用程序的“文件”菜单，这个菜单主要负责文件操作，例如“新建”、“打开”、“保存”、“另存为”等等，还包括“程序配置”、“易模块管理”等。值得初学者注意的是，在易语言的“程序”菜单中还包括“编译独立发布版本”的菜单项。通过这个菜单命令，用户可以把编制好的程序打包成exe可执行文件。

2．“编辑“菜单

和其他应用程序的编辑菜单一样，这个菜单集成了所有的文本编辑命令，例如“剪切”、“复制”、“粘贴”、“查找”等，还包括“菜单编辑器”，用来编制程序的菜单。“编辑”菜单主要是针对代码编辑窗口而言的。

3．“查看”菜单

主要用于对程序的表格型代码部分进行访问，如“自定义数据类型表”、“全局容器表”、“资源表”等。“查看”菜单还包括控制主窗口布局方式的工具条等。

4．“插入”菜单

“插入”菜单也是主要是针对代码编辑窗口而言的。用于在代码编辑窗口插入各种类型的程序成分和代码。

5．“数据库”菜单

用于对易数据库进行操作。包括创建易数据库的“结构编辑器”和直接编辑易数据库的“记录编辑器”等。

6．“调试”菜单

这个菜单集中了各种调试命令。例如“单步跟踪进入”、“单步跟踪”、“清除所有断点”等。其中的“查改容器内容”可以编辑变量或者表达式。

7．“运行”菜单

这个菜单的命令主要控制程序的运行、暂停、终止等。通常用它们来演示程序效果。

8．“窗口”菜单

和其他应用程序的窗口菜单一样，用于含有多个子窗口之间的互相切换，也可以选择子窗口的分布方式，水平/垂直平铺、层叠、排列图标等。

9．“帮助”菜单

包括切换到“即时帮助”提示子夹、“易语言知识库”等。

3.2 易语言的工具条

工具条，也有称为工具栏的。众所周知，工具栏就是菜单条的快捷方式，为了避免多次选择菜单而把常用的一些菜单命令用图标的形式集中在一起，就成了工具条。因此，工具条中的所有命令大多都可以在菜单栏中找到原型。

目前易语言的工具条有两类：“标准工具条”和“对齐工具条”。

在“查看”菜单中选“工具条”，或者在工具条上单击鼠标右键，都会出现如图1-4所示的菜单。

在菜单中选中指定的工具栏前打“√”号，则该工具栏就会出现在主窗口上；消去“√”号，则该工具栏会隐去。下面就逐一介绍这两个工具条。

1．“标准”工具条

主要包括最常用的十余个命令，包括程序操作、编辑操作、执行命令、窗口布局等。标准状态条如图1-3-1所示。

图1-31 “标准”工具条

在标准工具条中的各个图标的意义如下表1-1所示。

表1-1

图标 | 名称 | 意义
 | 新建 | 新建一程序文件
 | 打开 | 打开现有的程序文件
 | 保存 | 保存程序文件
 | 剪切 | 输出到剪切板，并删除原件
 | 复制 | 输出到剪切板，不删除原件
 | 粘贴 | 将剪切板中的内容复制到指定地区
 | 重复 | 重复撤消的命令
 | 撤消 | 撤消本步命令
 | 工作夹 | 切换并显示工作夹
 | 状态夹 | 切换并显示状态夹
 | 组合夹 | 将工作夹和状态夹综合在一起
 | 上次编辑 | 返回到上次编辑的状态
 | 运行 | 运行程序
 | 终止 | 停止运行程序

2．“对齐”工具条

包括左/右/顶/底/中对齐，分布间距，等高度/宽度等。对齐工具条如图1-3-2所示。

图1-2 “对齐”工具条

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第一章、易语言概述 | 第四节、代码行鼠标右键项目 7 上一页 下一页 8

第四节、代码行鼠标右键项目

象其它应用软件一样，在易语言系统中，将代码编辑窗口的部分功能赋予了鼠标的右键，使您可以在程序开发过程中方便的运用这些功能。在代码编辑窗口单击鼠标右键，弹出快速菜单。快速菜单具有插入新子程序、文本编辑、代码行编辑、代码行转换、复制程序文本等五组功能。效果如图1-41所示。

图1-41

4.1 “新子程序”菜单

执行此功能在当前窗口程序集里插入一新子程序代码框架。

4.2 代码行编辑项目

在代码行上选右键菜单“修改备注”可以加入该代码行的注解；选“置为草稿”使该代码行不执行；选“向后插入新行”可以在当前代码行后面添加一空代码行，相当于在当前代码行上按回车键；选“插入新行”可以在当前代码行前面插入一空代码行。

4.3代码块编辑项目

代码块指多行代码的集合。选中一代码块，然后选右键菜单“加到当前块首尾”可以将该代码块转化为流程控制命令内执行的代码；选“转换为→”可以转换当前流程控制命令的类型。

4.4 “复制程序文本”菜单

选中并复制一代码块，再选右键菜单“复制程序文本”可以将该代码块转换输出到剪切板。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第一章、易语言概述 | 第五节、第一个易程序—“祖国，您好！” 7 上一页 下一页 8

第五节、第一个易程序—“祖国，您好！”

在这一节，我们结合前面学过的知识，来编写一个最简单的程序。

中文编程的先驱吴涛先生在他那著名的易语言帮助系统中，用了一个“祖国，你好！”的著名例子，从此“祖国，您好！”就成了易语言文化的一部分。这个例子的内层意义是这样的：如果使用C语言在DOS界面下编写一个程序，显示一行“祖国，您好！”的文字，那么它只需要一行代码（程序头尾不计）。而如果使用C++语言在Windows环境下编写一个程序，显示一行“祖国，您好！”，则需要大约200行代码。这个例子可见编程的不易。在这里，我们用易语言同样编写一个“祖国，您好！”，大家猜猜需要多少行代码？

程序是这样的：当按下一个默认名为“按钮1”的按钮时，在窗口上方的“标签1”中出现一行字：“祖国，您好！”，如图1-51所示。

图1-51

下面，我们就来编写这个小小的程序。

一位根本不懂英语的普通电脑用户，只要使用易语言，可以在短短三分钟内编写出视窗（Windows）系统下的电脑程序，您相信吗？不信，请随我一试：

1、启动易语言，在右边工具箱中选中“标签”控件（易语言又称控件为窗口单元），如图1-5-2所示。

用鼠标拖动绘制到设计窗口上部中央，此标签的系统默认名称为“标签1”，如图1-53所示。

图1-5-2

图1-53

2．在工具箱中选中“按钮”控件，用鼠标绘制到窗口下部中央，此按钮的系统默认名称为“按钮1”，如图1-54所示。

图1-54

3．双击所绘制的“按钮”，切换到代码编辑窗口，这时系统已自动生成一子程序代码框架，意思是该子程序由单击“按钮1”所触发。图中用虚线方框及向下箭头标示一空代码行，如图1-55所示。

图1-55

4、点击该空代码行，使虚线方框变成实线方框，输入以下代码，如图1-5-6所示。

图1-5-6

然后按回车键（Enter键）。注意要按回车键该行代码才被确认，否则代码行前面会带※草稿字样而不能运行，如※草稿：标签1.标题=“祖国，您好！”。要使草稿代码行被确认，双击该代码行虚线方框变成实线方框，然后再按回车键即可。确定后的代码行如图1-5-7所示。

图1-57

至此，恭喜您，这个程序已经编写完毕，可以随时运行。如前面图1-5-1所示，按F5可以运行该程序。具体操作过程也可以看随书所附光盘中的一个无声录象《“祖国，您好！”编写演示》。

为了使大家通过这个例程多学到一点知识，下面继续深入讲解编写这个程序的操作方法和一些原理。

5.1 设计程序界面

1．启动易语言，在“新建”对话框中选择“程序”，再单击“确定”，如图1-5-8所示。

图1-58

2．然后将会出现对象设计窗口，而我们将要设计的程序主界面就在这个窗口上，该窗口默认名为“_启动窗口”，如图1-59所示。注意一个程序要有一个“_启动窗口”才能运行，一般将它作为程序的主窗口。

图1-59

3．如果想把该启动窗口调整到合适大小，可以这样：在窗口的四周共有8个方柄（小方点），其中左上方的5个是白色的，表示不可拖动；而右下方的3个是黑色的，表示可以拖动。将鼠标移动到方柄的上方时，鼠标指针会变成双箭头。此时可以拖动鼠标，而该窗口就可以随着鼠标的拖动而放大或缩小了。如图1-50所示。

图1-5-0

4．下一步就是往该窗口添加控件。在右边的控件工具箱上选择一个按钮模样的图案，鼠标停留在上面片刻就会出现“按钮”的提示文字。单击它，则该图案会凹陷下去，如图1-51所示。

图1-51

此时再把鼠标移到启动窗口上，鼠标指针会变成十字形，在窗口合适的位置上拖动出一个矩形框，松开鼠标后，一个大小相当的按钮就画出来了。如图1-52所示。系统先将其自动命名为“按钮1”，按钮面显示的标题为“按钮”。

图1-52

可以看出，该控件四周也有8个小方柄，说明该控件也可以移动位置或调整大小。

5．我们再按照上面的方法添加一个标签（工具箱第三行的第一个控件，有字母“A”字样的图案），系统自动命名为“标签1”，标题为“标签”。如图1-53所示。

图1-53

经过以上步骤，本程序的界面已布置好了，下面我们来学学更改窗口上的控件的属性（外观特征）。

5.2 设置控件的属性值

1．单击“按钮1”，该按钮周围就会出现8个小句柄，表示该控件已经被选中。此时，我们再选中左边工作夹中的“属性”子夹，就会在属性窗口出现“按钮1”的属性设置，属性窗口的上方有该按钮的名称“按钮1”。

控件（窗口单元）的名称很重要，因为它提供了该控件在窗口上的唯一标记，编写代码时将通过这个名称来表示这个控件，名称变了，在代码中的名称也要改变。

程序编辑窗口的最下面是状态夹，当我们选中“按钮1”的某个属性，再选中状态夹的提示子夹，就会出现该属性的提示信息。比如对于“名称”的解释是：“本属性记录当前所选择对象的名称”。如图1-54所示。

图1-54

拖动属性窗口中的滚动条，找到“按钮1”的“标题”属性，将该属性的属性值由“按钮”改为“按我”，在右边的属性值一栏中直接输入即可，然后再按回车键确认本操作。此时，所做的属性值修改已经直接反映在启动窗口上，如图1-55所示。

图1-55

2．再选中“标签1”，其属性值的设置参考“按钮1”。我们还可以在属性窗口设置该标签的字体、字色等其他属性。如图1-5-16所示。

图1-56

5.3 编写程序代码

双击“按我”按钮，此时会切换到代码编辑窗口，并且系统会自动生成一个程序过程，其名称为“子程序：_按钮1_被单击”。如图1-57所示。

图1-57

在该子程序表格下有一个虚线的方框，该子程序的第一行代码就在此输入。双击该虚线方框，使该方框虚线变为实线，就可以输入代码了。若要插入一行代码，可以点鼠标右键选“插入新行”或“向后插入新行”。下面我们就编写一行代码，如图1-58所示。

图1-58

最后按回车键确认以消去代码行前面的“※草稿：”字样，这样我们这个程序就编写完成了。可以用[Ctrl]+[Tab]键切换回到界面编辑窗口，如图1-59所示。

图1-59

5.4 测试运行程序

编好一个程序后，怎样运行它呢？一般有三种方法：

方法一：从菜单栏中选“运行→运行”来启动程序。

方法二：按F5键。

方法三：从工具条中选图案为“”的按钮并单击。

图1-50就是启动这个程序之后的结果。

单击“按”按钮，程序将会变成如图1-51的样子。看来，我们的程序确实达到了预期目的。

我们先要终止该程序的运行才能退出易语言系统，终止程序运行的方法是选菜单“运行→终止”，或在工具栏中点击图案为“■”的按钮。

如果这个小程序你制作不成功，可以参考第八章等一节（错误种类）的内容。

图1-50

图1-51

5.5 代码编写原理

1．程序代码

这个子程序的完整代码为：

这个子程序用中文表达，意思就是：当单击按钮1时，标签1的标题就变成“祖国，您好！”。我们可以把“标签1.标题”理解为“标签1的标题”。可以看出易语言很接近人类的自然语言尤其是中国人自己的语言。

2．我们添加的这个代码行在易语言中被称为赋值语句，因为它的中间有一个“=”号，赋值语句的含义就是把等号右边的表达式的属性值赋给等号左边的变量（不固定的量）。

等号的右边是一个文本，在易语言中要引用文本类型的数据时，这个文本要用双引号包围起来作为标识符以区别其他类型的数据，它的属性值就如“祖国，你好！”之类。

3．操作该程序的人与“按钮1”的关系是“单击”与“被单击”的关系，从而两者发生联系，该按钮也就成了人们操作程序、发送指令的一个接口。按照“事物的相互联系构成事物的运动”的物理学原理，本程序就在“单击”的条件下产生相应的运动，如标签1.标题=“祖国，您好！”之类。“单击”或“被单击”在程序语言中被称为“事件”。windows程序都是由事件驱动的，一个事件就构成一个子程序。在本书的第二章将对这些编程语言作详细的解释。

4．窗口和控件的名称是很重要，因为它提供了该控件在窗口上的唯一标记，编写代码时将通过这个名称来表示这个控件。计算机不会识别控件，只认识控件的名称。如果控件名称改了，则包含该控件名称的相关代码也要改动计算机才能识别。比如我们将上例中名称为“标签1”的控件改名为“显示标签”，则代码也要改动，如图1-52所示。

图1-52

为什么要这样呢？道理很简单。打个比方，你叫：“高三（1）班的张三同学，请过来一下”，但高三（1）班没有张三这个同学，是不是出错了？程序也是这样，没有了“标签1”这个控件，你再调用“标签1”当然会出错。

5．从上例可知，所谓程序或子程序可以简单理解为在一定的事件（如上例的“_按钮1_被单击”）指令驱动下，计算机完成一定的运行功能（如上例的“标签1”出现“祖国，您好！”的文本）。我们平常所说的“软件”主要是指编译成可以脱离编程环境（比如易语言）独立运行的程序，广义的“软件”是指除硬件外的东西，包括程序在内的磁盘文件。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第一章、易语言概述 | 第六节、运用对象进行编程的意义 7 上一页 下一页 8

第六节、运用对象进行编程的意义

对于初学者来说，怎样理解用易语言来编程？象VB、DELPHI、VC++等编程工具一样，可视化编程都是围绕对象、运用现成的对象来进行编程的。我们理解了对象的含义及其作用，就能很好地理解可视化编程，包括易语言，更能使我们培养编程思路，并培养独立完成程序编写的能力。比如前面的例程“祖国，您好!”，就是先设计好按钮、标签这两个对象，用“单击按钮”这个对象事件来作为执行指令的依据，然后就围绕这两个对象来进行编程。

所谓对象，指窗口、控件、数据库等之类的东西。所谓运用对象进行编程，其程序设计是以对象为中心，以事件作为执行程序的依据，一般是指用具体的控件（即对象）来发出指令、接收指令、传送指令并反馈指令的一种编程方法。这种编程方法由于具有形象性和具体性，故易于为人们所理解。比如单击一下某个按钮（对象）就可以开始或结束一个程序，“单击”这个指令为某一个“事件”，点击后程序怎样运行（“移动”、“关闭”、“加入内容”之类）为“命令”或“方法”，“过程”（包括结果）通常表现为对象的属性（变量或常量）的变化（如“编辑框3.内容=（变为）“祖国，你好！”）。也即说运用对象进行编程的方法主要是运用对象（一般表现为具体的控件，有时也不一定）的属性（实质就是变量或常量）、事件、方法（动作）和过程来完成程序的一种编程思想和方法。

在易语言中我们就经常提及“对象”，并且通过改变对象的属性来设置各对象。

可能有朋友要问运用对象、创建对象有什么好处？不运用对象行吗？这我们要从头说起。人类初期的编程语言都是面向过程的，由于没有任何现成的对象（窗口、控件、数据库等）可供编程时运用，单是创建一个控件可能就要用到数百行代码，并且大量的时间耗费在创建对象中。有一个著名的等式：数据结构+语法=程序，就是形容这种面向过程的编程方式的。

后来编程界出现运用现成的对象进行编程的方法，将常用的程序过程和数据结构模块化、对象化，以便供人们在编程时引用。用这种方式进行编程，你不必再去编写冗长的界面程序（如绘制坐标轴、绘制按钮及其按钮下陷的效果等等），你的重点完全在程序功能的实现上，而不是在界面的绘制上，这样的编程方式大大缩短了软件的开发时间，提高了程序员的开发效率，也使编程就象网页设计或画画一样简单。随着软件不断向复杂性、大规模、多功能性发展，加上某些发展成熟的编程语言既能使用对象，又能创建对象，使这种运用对象的编程方式越来越显示它的强大魅力。

打个比方来说明，人们一般在吃饭的时候用到筷子、碗、叉子等，但你想一想，如果人们都在吃饭的时候才去用原料制造一些器具，那么情况又如何呢？明白了运用对象的意义了吗？当然如果你是编程天才，那么你也可以开发自己的“对象”甚至是开发自己的编程语言，像吴涛先生那样运用面向底层、面向对象的编程方式，也就是相当于自己使用筷子、碗、叉子来吃饭，也给别人制造筷子、碗、叉子，或者可以比喻成“既建楼房，又开砖厂”。这种编程方式又比单纯运用对象的方式更高了一层次。

至于运用对象进行编程的含义，试举一例说明：

子程序：_按钮1_被单击

※由对象名和事件名构成该子程序名称

如果(编辑框1.内容＝“”或编辑框1.内容＝“金善喜”)

※判断该对象的内容属性值是否为空或"金善喜"

编辑框1.内容＝“朱茵”

※该对象的内容属性值变为"朱茵"

否则

编辑框1.内容＝“金善喜”

※该对象的内容属性值变为"金善喜"

如果结束

以上代码在易语言代码编辑区里如下表示，注意虚线及箭头方向：

以上例子通过“单击”事件触动“按钮1”对象发出指令，而“编辑框1”对象接收并反馈该指令，使其属性值发生变化，,从而完成程序。程序运行效果如图1-61所示。

图1-6-1

再看下一例：

子程序：_按钮1_被单击

编辑框2.内容＝编辑框1.内容

※当单击按钮1时，把编辑框1的内容传给编辑框2

编辑框1.内容＝“”

※然后再清空编辑框1，为下次输入内容作准备

在这一例中，“编辑框1”的内容属性值和“编辑框2”的内容属性值都不是固定的。没有固定值的数据类型或在程序运行过程中可以随时发生变化的量我们就称为“变量”（即易语言所说的“容器”）。一般我们先要声明变量（即建立容器），以便跟常量区别开来，然后再赋予属性值（范围）。如果没有声明变量就运行程序，一般会提示：“对不起，没有找到相关容器”。就象你填履历表，如果你没有把你的属性（年龄、性别、学历等）填好填正确，上面就发下来让你重填，道理一样。

但上面例子没有经过声明就可以赋予属性值（即“编辑框2.内容＝编辑框1.内容），这是为什么？因为易程序已经通过将属性型变量预先封装到对象中建立好了属性变量。什么时候要建立容器？什么时候不用建立容器？且看第八章第一节的分解。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第一章、易语言概述 | 第七节、易语言常用语句 7 上一页 下一页 8

第七节、易语言常用语句

对于初学者来说，即使代码是全中文的，也需要别人讲解才能明白其中的意思。如果我们能够理解其中大多数的代码的意思，那我们学习易语言就会相对容易。为此下面列举易语言常见的各类语句供大家学习或编程时参考。

7.1 赋值型语句

赋值型语句的特征：有一个“=”号将左右两边连起来。

这是我们学易语言首先会接触的一类语句。比如：标签1.标题＝“祖国，您好！”，这句代码的意思是：标签1的标题是“祖国，你好！”—即将标签1的标题属性值设置为“祖国，你好！”（所谓赋值也）。我们所见的给变量赋值就是用此类语句。赋值语句常见有以下几类：

1．将某一对象的某种属性值赋给另一对象

比如：标签1.标题=编辑框5.内容。意思即是“标签1的标题跟编辑框5中的内容一样”。比如我们在编辑框5中输入“易语言使英语盲也学会了编程”，那么在相关事件（比如单击按钮）的驱动下，标签1的标题也相应显示为“易语言使英语盲也学会了编程”。

2．将某一类型的属性值赋予某个对象

比如：标签1.标题=“祖国，你好！”，将“祖国，你好！”赋给标签1的标题。

所赋予的属性值可以是各种类型的，比如：窗口1.可视=真，这个“真”是一个逻辑型数值。如果是文本型数值要用双引号识别，比如刚才的例子：标签1.标题=“祖国，你好！”即是。

又如，我们会发现这类句子：标签2.标题＝到文本(取小时(取现行时间()))＋“:”＋到文本(取分钟(取现行时间()))＋“:”＋到文本(取秒(取现行时间()))。因为标签类对象只接受文本型数据，所以要把时间型数据转化为文本型，否则测试时会提示：“所接受的数据类型与传递给它的数据类型不一致”。

有时我们会发现此类句子：容器1=容器1+10，这个语句的意思是：“将容器1加10之后，再将新值传回给容器1”。从这里可以看出，这里的“=”号跟数学中的“=”号在含义上是不同的，在数学中不可能出现b=b+2之类的表达式，而在易语言中这种表达式却是允许的，而且是经常运用的。举例：1+1=2和“1”+“1”=“11”，前者是两个数值型数据相加，后者是两个文本型数据相连接。

另外，我们又会看到这类句子：编辑框1.高度=取用户区高度（）。“=”号的右边表示操控程序的命令，也即是说有时可以将系统命令、执行条件、项目、常量、子程序、函数、资源乃至其他对象的方法等，只要具有运算结果（返回值），都可以当作是属性值赋给对象。编辑框1.高度=取用户区高度（）可以理解为取得“取用户区高度（）”的返回值（运算结果），然后将此值赋给编辑框1的内容属性。

7.2 非运行语句

非运行语句包括以下几种。

1．注释型语句。

易语言的注释型语句的格式是：

※具体注释语句

注释语句不能执行程序，只是用来解释上一行代码的意思。易语言是把注释代码隐藏起来的。显示某行代码的注释语句的方法是：选中某行代码，如果在该行代码前出现“+”号，说明该行代码有注解，点击该“+”号可以打开该行代码的注解，点击“-”可以重新隐藏注解。

上述注释型语句是易程序中固有的，我们也可以自己添加注释型语句。方法：直接改动某一备注或用右键选“修改备注”。

除了上述的备注方法外，在下方的“提示夹”里有对该行代码更详细的解释。

我们也可以把下面的草稿型语句作为备注。

2．草稿型语句。

易语言的草稿型语句的格式是：

※草稿：程序代码

草稿型语句也不能被程序执行，有两种情况会出现草稿型语句：

（1）没有转为正式语句，在代码前会有“※草稿：”字样，转化为可以运行的正式代码的方法：双击该行代码使之变灰，然后按回车键（即Enter键）。

（2）该行代码有错误，不能转化为正式语句。处理：修改错误，然后确定代码。

3．测试型语句。测试型语句仅在易程序的调试版本中被执行，在发布版本中将被直接跳过，在编译发布程序中不运行的语句包括“输出调试文本”、“暂停”、“检查”这三个命令。

7.3 方法型语句

如果我们理解了控件的属性、事件和方法，就会理解方法是一个具体对象能够执行的动作。有的方法会有参数表，有的方法则不用参数，“参数”大概相当于调用这个方法的各种相关数据，包括相关对象属性值、系统命令、执行条件、项目、常量、子程序、函数乃至其他对象的方法等，只要具有返回值，都是可以调用的参数。不同的方法有不同的参数，一种方法可以有多种类型的参数。执行、调用一个对象的方法的一般格式如下：

对象名.方法名(参数1,参数2,...)

例如需要在一个名为“购物篮”的列表框里添加一个叫“苹果”的列表项目，其语句如下：

购物篮.加入项目（”苹果”,）

上面这句话的意思可以理解为：将购物篮的加入项目（方法）定为“苹果”。在这个例句中，“加入项目”是“购物篮”的方法，“苹果”是其参数。其中调用列表框的“加入项目”方法的句式是：

列表框.加入项目(欲加入项目的文本,[与欲加入项目相关的数值])

同时我们又会发现另一类句式，比如“销毁()”，这个句式跟命令型句式很象，但其实它是下面这个句式的省略表达：窗口单元.销毁（）。也即是说调用当前窗口单元的方法句式可省略前面的对象名前缀，它仍然是一种方法型语句。再举另一例子，窗口单元.弹出菜单（欲弹出的菜单，［水平显示位置］，［垂直显示位置］），可以省略表达成：弹出菜单（欲弹出的菜单，［水平显示位置］，［垂直显示位置］）。

欲查看某类窗口单元具有哪些方法、这些方法的详细解释以及有哪些可用参数等，请到易语言设计界面的支持库夹中的“数据类型”分枝中寻找。譬如：想了解画板的所有方法，可以到“数据类型->画板”下查看。

下面列举几个调用对象方法的例子，以便让各位菜鸟举一反三：

1．在程序中使用常量时其名称前必须加上“#”符号,所以如果调用的参数中有常量,就在常量前面加上“#”符号,比如：

列表框1.调整层次(#底层)

2．调用系统命令作为参数。例句：

画板1.滚动写行(数值到人民币(100,假))

这句的意思是，调用“画板1”的“滚动写行”方法。而其欲写出的数据（参数）是数值到人民币(100,假)（这句的语法请看帮助），这是一种数值转换命令语句。

3．调用相关对象的属性值作为方法的参数。

例句：

列表框．加入项目(编辑框1.内容,)

其他用法就不一一列举了。

7.4 命令型语句

命令型语句跟方法型语句差不多，看看下面两者的对比就知道它们的差别了—方法型语句：对象名称.方法名称(参数,......)，而命令型语句的基本格式是：

命令名称(参数,......)

“命令”的意思也跟“方法”差不多，都是一种程序运行动作指令，只不过“方法”是某个具体对象所具有的能供调用的指令，而“命令”则是整个易语言系统固有的、可以供任何程序任何对象调用的指令，所以命令名称前面没有前缀的对象名。

有时候命令的参数不是必需的（即“可选的”），比如：取随机数（［欲取随机数的最小值］，［欲取随机数的最大值］），“［］”表示该参数不是必需的。如果是这种情况，该参数可为空，比如：取随机数（）。

那么，我们怎样调用命令呢（怎样编辑命令代码）？怎样查找易语言系统提供的命令呢？也是有两种方法：①、请到易语言设计界面的支持库夹中的“数据类型”分枝中寻找。譬如：想了解文件读写的“插入文本”命令，可以到“核心支持库->文件读写->插入文本”查看。点击该命令名称可以快速地在代码编辑区插入该命令的代码；②、选“帮助→易语言知识库→目录→参考手册首页→系统核心支持库”，我们会发现那里列举了易语言提供的所有命令类别，可以选中某类命令类别来查看。

通过查找，我们会发现易语言提供以下几种类型的命令可供调用：

1．核心支持库命令

包括以下几大类型：

流程控制算术运算逻辑比较位运算

容器操作数组操作环境存取拼音处理

文本操作字节集操作数值转换时间操作

磁盘操作文件读写系统处理媒体播放

程序调试其他数据库网络通信

比如取现行时间()是属于时间操作命令，而数值到人民币(100,假)是一种数值转换命令。

2．调用其他程序、易模块、API函数等的命令

也里也包括窗口程序集、子程序等。

有时候我们会发现某个命令在核心支持库里找不到，那可能是调用以上的东西，比如在某一个例子中有一个“添加用户（）”的命令，这个命令在系统命令列表里找不到，我们再看下面有一个子程序叫“添加用户”，原来该命令是调用“添加用户”子程序。

下面再列举一些常见的命令以便举一反三：

1．载入窗口命令。

我们想通过一个窗口启动其他窗口，可用此命令，其句式是：

载入(欲载入的窗口，［父窗口］，是否采用对话框方式)

它的意思请查看有关说明。

2．运行命令。使本程序或其他程序运行，其句式为：

运行(欲运行的命令行，是否等待程序运行完毕，［被运行程序窗口显示方式］)

示例：运行（”E:\易语言\e.exe”,假）。

3．信息框命令。有时我们想使系统反馈指令，比如弹出相关提示，但又找不到有“信息框”这个控件（窗口单元），原来易语言是通过命令调用信息框的（类似的还有输入框命令），其格式是：

信息框(提示信息，按钮，［窗口标题］)

4．关闭命令。这是一种数据库操作命令，当指定数据库操作完毕后，关闭已经被打开的指定数据库，以便清空数据变量，节约系统资源，其句式是：

关闭(［数据库别名或名称］)

5．结束命令。本命令结束当前易程序的运行，参数为空（无返回值），其格式是：

结束()

最后要说的是，我们只介绍了命令型的基本语句，我们在以后的学习中将会继续讲解命令型基本语句中的各类语句，包括流程控制语句中的条件语句、选择语句、循环语句等，还有容器操作、逻辑比较等命令语句都要继续讲解。

7.5 表格型语句（声明型语句）

学过其他编程语言的朋友初次用易语言一般会不太适应，因为代码都是用中文表示的，呵呵。其实易语言的语法规则跟其他编程语言是差不多的，可能他们比较不习惯的是声明型语句是用表格来表达。

比如VB中声明变量的句式是“dim变量名as变量类型”之类，而易语言是用表格声明容器来表示，表格所要填写的内容包括容器名（变量名）、容器类型（变量类型）等项目。用表格能更直观地了解、查找或插入所要声明的东西，例如变量、子程序、常数、dll函数、声音或图片资源等数据类型。

如果我们把易语言的表格型代码复制粘贴到记事簿等文件中，会发现表格型代码转化为文字型代码，比如其他编程语言对子程序的声明类似下面的语句：

子程序：哈哈哈

返回值类型：逻辑型

而以上代码在易语言中是这样表示：

其中第一行表格代码在创建该子程序时已自动生成，不用再填写，我们只需填写第二行表格中的代码，包括“哈哈哈”和“逻辑型”。

易语言声明各种类型的数据的方法很简单，选菜单“插入”，再选要声明的数据类型即可，如图1-71所示。

图1-71

下面来列举一下声明型语句的几种类型和声明方法：

1．建立（声明）容器（变量）

需要声明（定义）的项目包括容器名、容器类型、是静态容器还是非静态容器、数组、备注等。

建立容器的方法：

（1）局部容器—在子程序下面按下“Ctrl+L”加入一个空容器；

（2）窗口程序集容器—在窗口程序集下面按回车键；③、全局容器—在工作夹里选“程序→全局容器”，或在菜单里选“插入→新全局容器”。

2．建立子程序

声明项目包括子程序名、返回值类型、参数名等。

建立子程序的三种方法：①、在菜单里选“插入→新子程序”；②、或者按“Ctrl+N”插入一个新子程序；③、也可以选定需要对其事件进行编程的控件对象（如按钮1）然后在属性夹里选取相关事件（如“被单击”），会同时在代码编辑区插入“按钮1.被单击”之类的子程序。

3．建立dll命令（api函数）

跟其他编程语言一样，易语言本身提供的系统命令是有限的，但在易应用程序中可以直接调用系统外部动态连接库（即Dll库）中的命令。在VB里声明api函数的语句类似于下面的句子：

DeclareFunctionClipCursor&Lib"user32"(lpRectAsRECT)

这句话翻译成中文是：

声明函数：ClipCursor函数所在库：user32(函数参数名：lpRect参数类型：RECT)

那么在易语言里，声明dll命令也包括api函数名、函数所在库、函数参数名和参数类型等项目，如下面的空表格型代码所示。

建立dll命令来调用api函数有两种方法：

（1）在工作夹里选“程序→dll命令”；

（2）菜单里选“插入→新dll命令”。

4．其他的表格型语句还包括建立程序集、建立新数据类型、建立常量、建立声音或图片资源等。一般来说用表格来插入以上这些东西的方法有两种：

（1）在工作夹里选“程序→”；

（2）菜单里选“插入→”。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第一章、易语言概述 | 第八节、如何编写程序代码 7 上一页 下一页 8

第八节、如何编写程序代码

有人说，编写程序代码不是很简单吗？切换到代码编辑区，把代码填上去就行了啊。说是这么说，但真正精通还不是很简单的。如果我们精通了，就可以减少代码的编写时间，提高程序效率和工作效率，不用查来查去，或老是要引用别人的代码。还是让我们对代码的编辑多了解一些吧。

8.1 了解程序的构成及其操作

在可视化编程还没有产生之前，对于程序有一个著名的公式：程序=数据结构+算法。现在易语言已经将数据结构封装为程序窗口、程序集、子程序、变量等各种数据类型（对象）；算法是解决问题的过程和步骤，具体地把各种数据类型联系起来构成程序代码块或子程序，算法是一个程序的灵魂；而语法则是代码的语素单位，代码行由语法所构成。在一个易程序中，各种数据类型相当于程序的框架，当我们按照上一节的方法建立好一个程序中所有需要的数据类型时，程序或子程序的框架就已经建好；而语法就是我们在上一节所讲的各种语法句式，它具体地通过各种数据类型之间的关系使这些数据类型发生变化，从而达成该程序所需要的功能。下面我们随便举一例来说明数据结构与语法的关系：

在上一例的程序中有两种数据类型：启动窗口和成绩变量。这两者的关系是这样：当启动窗口被创建于程序中时（事件），成绩变量的值发生变化（响应事件）。那么成绩变量怎样发生变化？用两个语法句式来确定：赋值句式、信息框命令句式。用赋值句式使变量发生变化，用信息框命令句式来显示这种变化。用“销毁()”这个语法句式关闭启动窗口，使被建立起来的数据类型同归于灭亡以释放系统资源。

理解了易程序的构成及其语法，对于我们学会开发易模块、开发支持库等也都会带来重要的帮助。

易程序的各种数据类型包括程序窗口、程序集、子程序、自定义数据类型、全局容器、DLL命令定义、常量、资源等。下面解释其中的一些数据类型：

1．程序窗口

程序窗口分为启动窗口和其他窗口等。

启动窗口的名称固定为“_启动窗口”不可改变，缺少启动窗口的程序不能运行。其他窗口的名称可以改变，当然我们也可以把其他窗口变为启动窗口，只要把它的名称改为“_启动窗口”、原来的启动窗口改为其他名称就行了。

操作：若要在各个窗口之间切换，可以在左边的属性区选“程序→程序数据→窗口”，点击某个窗口名称可以切换到该窗口编辑界面。如图1-8-1所示。

图1-81

若要开一个新窗口，可在菜单中选“插入→新窗口”，或在左边的属性区选“程序→窗口”，再点右键插入。以下新程序、新容器、新常量等的插入与此一样。

2．程序集

一个程序窗口常常对应一个程序集名。比如有一个窗口叫“_启动窗口”，那它所对应的程序集名称可能为“窗口程序集1”。如图1-82所示。

（图1-8-2）

3．子程序

是一个窗口程序集内的分程序，在程序中有独立的功能，常常由事件所触发。事件型子程序的名称由“_对象名_事件名”构成。

4．窗口单元数据类型

封装在窗口单元里的数据类型包括属性、事件和方法。对象常常通过控件（窗口单元）来表现，或者说很多对象都表现为具体的控件。

操作：选“工作夹→支持库子夹→系统核心支持库→数据类型→”可以查看各种窗口单元数据类型。选中某一数据类型，会在提示夹里显示详细解释，对于我们编写代码带来不可缺少的即时帮助。如图1-83所示。

图1-83

具体查找各种窗口单元数据类型可用的属性、事件和方法应参看《易语言知识库及例程》，如图1-8-4所示。

图1-84

5．用户自定义数据类型。

在程序中的任何位置，只要可以使用系统基本数据类型（如：整数型、文本型等），就可以使用自定义数据类型。用户自定义数据类型由用户自行在自定义数据类型表中加入。如图1-8-5所示。

图1-85

6．变量（易语言称为“容器”）。变量在一个程序中就象人体的血液一样不可缺少，它是程序中临时储存数据的地方。至于详细的解释请看以后的章节。

变量分为局部变量（只在某一子程序中应用）、程序集变量和全局变量三种。比如在一例子中有一个叫“密码”的变量在程序集1的各个子程序中都有应用，即是程序集变量。三种变量中以全局变量损耗的资源最多，所以一般尽量避免使用。

7．其他程序部分。在以后的章节中会逐步解释。

8.2 了解语法的种类及其操作

打开易语言编辑界面，在左边有“支持库”，里面列举了多种表达式和语法，即是易语言代码的主要种类。所谓命令其实就是算法的封装。

若要在程序中插入某个种类的代码，可在左边是属性区选“支持库”，再点击某个代码种类，就会在代码编辑区显示该类型代码的框架。比如你想输入条件式流程控制命令，可先在要插入该代码的地方点一下左键，再选“支持库→流程控制→如果”，点“如果”后就会在代码编辑区出现该类型代码的框架，你将代码填上去就行了。如图1-86所示。

图1-86

8.3 编写代码的一般步骤和思路

就象第五节（第一个易程序）所说，设计一个程序通常包括设计程序界面、编写程序代码、测试运行等步骤。

1．设计程序界面。设计程序界面包括绘制控件到界面，并结合属性区设置对象的属性值。当然我们也可以用代码来设置对象的属性。

2．编写程序代码。

（1）确定整个程序的各个构成部分。前面说过程序的实质就是用语法来确立各种数据类型之间的关系及其属性变化，所以我们先要确定程序中需要用到的数据类型。首先初步确定有哪些窗口，然后初步确定有用哪几个程序集及子程序来达成程序所需的功能，再分别建立变量（容器）及常量。一建全局变量，二建程序集变量，三建各子程序中的局部变量，在确定变量的的过程中需要确定其数据类型。

如果你缺少了哪个部分，在编写代码或调试程序时，系统会给予相关的错误提示。

（2）运用核心支持库来编写语法代码。如前面所说。

3．测试运行程序

在编写代码或调试时假如出现错误，会在用信息框或在左下方的状态区显示提示，并且在代码编辑区用指针指示出错的地方。虽然初学者不太明白它的错误提示的意思，但也大体能够知道出错的地方，马马虎虎知道出错的类型是子程序还是变量还是常量等。具体的调试方法请看第八章的内容。

可在菜单中选“调试”或“运行”来进行调试。

另外选中某行代码，如果在代码前有“+”号，点击“+”号可以打开该行代码的注解，你可以自己修改这注解，点击“—”号可以隐藏注解。

另外初学者容易出现一个问题：在子程序中添加的语句怎么总是显示“草稿”这两个字？因为它是草稿，所以不能在程序中运行。按一下回车键“草稿”两字就会消失。一般该行代码有错不能确定时，也显示为草稿。

第九节、易程序的文件组成

与一个易程序相关的文件格式常用的有以下几种，一个易程序中的某些功能可能要依赖于下面的某些文件来实现。一个易程序在编译发布时可能会附带上其他需要的文件，但只有后缀名为“.e”的易程序主文件才是每一个易程序都需要的。现罗列相关文件类型如下：

1．主程序：后缀名为“.e”。

2．易模块：后缀名为“.ec”，是易语言外部子程序文件之一，类似于中文“DLL”。

3．内部数据库文件：

.edb数据库主文件

.edt数据库辅助数据文件，仅在数据库中存在备注型或者字节集型字段时才存在，文件名称除了后缀外与数据库主文件相同，它必须与.edb文件放在同一目录中。

.enx数据库索引文件。使用B+树结构，由用户根据需要自行创建，用作加快记录的查找速度。

4．支持库文件：

.fne：带编辑信息、有运行支持代码的支持库。

.fnl：带编辑信息、无运行支持代码的支持库。

.fnr：不带编辑信息、有运行支持代码的支持库。

5．专用报表文件：后缀名为“.grd”。

6．其他依赖文件：如“.dll”（动态链接库—包含外部应用子程序）、“.ocx”（外部控件）、“.opk”（外部控件汉化文件）、“.txt”（文本文件）、“.htm”（网页文件）、“.chm”（帮助文件）、“.mdb”（外部数据库文件类型之一）等。

以上各种文件类型中，易主程序（.e）、易模块（.ec）、易数据库（.edb）、易支持库（.fne）、易报表（.grd）、易组件汉化（.opk）等是易语言的专用文件类型。

本章内容到此结束。最后告诫大家，学习编程千万不要寻捷径。那些所谓一个月学会编程、三个月学会编程之类都是骗人的，在这些培训班和所谓的入门捷径书里你所能学到的知识最多只相当于本书的前两章。没有经过一年以上的学习你就不要说已经入门了。从最基本学起，打好基础，那你以后的编程就会比寻捷径容易得很多。如果你基础没有打好，想编写个大程序，那是不可能的。耍功夫要扎马步，学吉他要练和弦，学电脑先学打字。学习任何东西都是少不了基础的。

但是，既然编程学习很困难，我们就一定要想办法降低难度，尽量使一般人也能学会编程。我想说的是，对于中国人来说，易语言入门和开发速度都远胜于其他语言，用户无需掌握任何英文知识，轻松迈过这道进入电脑编程的最大门槛！有了易语言，就可以大大减少你的学习难度，使作为一般爱好者的你都可以在编程的天地里自由翱翔！

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第1节 简单的MP3播放器

第二章：跟我来编程 | 第一节：简单的MP3播放器 7 上一页 下一页 8

第二章：跟我来编程 [上一章 下一章]

现在进入实战状态！大家一定要亲自动手跟着做，这样才有立杆见影的效果。
本章有以下主要内容：
本章的任务是：完成一个转变——从不会编程到会编程！

第一节：简单的MP3播放器 [上一节 下一节]

小引：大家不要觉得MP3播放器是很复杂的东东，也不要以为编程是很神秘的事情，其实都是“毛毛雨啦——”。我教大家编的第一个程序就是一个简单的MP3播放器，以此来证明编程的简单、易语言的强大。例程下载。

做这个程序，大约需如下几步：1、启动易语言，新建一个程序； 2、设计程序界面； 3、写代码；4、运行编好的程序；5、生成可执行文件。这也是编写一个易语言程序的通用步骤，其中第2、3步可能重复交叉多次，这是后话。
[注：这个例程是非常简单的。。。]

第1步：启动易语言，新建一个程序 [上一步 下一步]

这一步应该是最简单的。从“我的电脑”或“资源管理器”中切换到易语言所在目录，双击易语言的图标 [image] 即可启动易语言。

易语言启动之后，会自动弹出一个“新建”对话框，如下图所示：

关于这个对话框，说明如下几点：

1、直接点击“确定”或选中“程序”图标后点击“确定”，将新建一个空的易语言程序；
2、选中“易模块”图标后点击“确定”，将新建一个易模块（以后讲）；
3、点击“取消”则直接关闭本对话框；
4、切换到“打开例程”子夹，可选择打开易语言附带的源程序。
5、还可以切换到另一子夹填写用户反馈信息。

在上图所示的对话框中，我们选择“取消”，即不通过该对话框新建程序。我们的目的是要演示怎样手动新建一个程序——也是很简单的：选择菜单 “文件->新建” 或 单击工具栏上的“新建”按钮 [image] 仍然会弹出上图所示的“新建”对话框，直接点击“确定”就完成了“新建一个程序”的任务。
[注：工具栏上的“新建”按钮位于第一排最左边。易语言工具栏如右图所示：]

至此，第1步“启动易语言，新建一个程序”就完成了。让我们回顾一下：双击易语言图标启动易语言；通过菜单或工具栏调出“新建”对话框；单击“确定”新建程序。看，多简单呀！这跟在Delphi, C++Builder, VB, VC, WPS, Word, PhotoShop, DreamWeaver, FrantPage,记事本...中新建一个文件没什么两样！——有什么两样吗？你告诉我。
新建一个程序的结果是：在易语言主窗口中央出现了一个“周围有小方框、内部有小黑点的”空窗口，这就是第一章所提到的“窗体设计区”。下一步我们要在“窗体设计区”中设计我们自己的程序界面。
[提示：现在就单击工具栏上的“运行”按钮 [image] （位于第一排倒数第二个），运行一下本程序，看看效果如何？运行的结果是弹出一个窗口。不要太过于惊奇，虽然我们还没有做过什么，但它确确实实是一个完整的程序了！（欣赏完之后，单击右上角的 [image] 结束程序，重新回到易语言开发环境，继续下面的工作。）]
[注：运行程序还有两种方法：选择菜单“运行->运行”、按热键 F5 。]

第2步：设计程序界面 [上一步 下一步]

本步的任务是：在设计窗体上“画”一个按钮，并做适当调整。请按以下步骤进行：

①移动鼠标到易语言主窗口右侧的工具箱中，单击“按钮”控件 [image] 。
[注：“按钮”位于工具箱二排四列。当鼠标指向控件时，会有黄色小框提示其名称：

②移动鼠标到主窗口中央的窗体设计区（这时鼠标指针变为 [image] ），单击一下设计窗体，窗体上在鼠标单击位置就会出现了一个默认大小（80*32象素）的按钮，同时鼠标指针恢复为 [image] 。
[注：也可以在设计窗体上按下鼠标左键并向右下拖动（扯动一个虚框），然后释放鼠标左键。这样能画出指定大小的按钮（大小与虚框相同）。所谓“拖动”，就是在保持鼠标左键被按下的状态下，移动鼠标指针。]
[注：刚画出来的“按钮”周围会有八个蓝色小方框（襄有白边），鼠标移动到它们上面时，指针形状会改变。随意点击按钮以外的区域，会发现八个蓝色小方框从按钮周围消失，而出现在设计窗体周围；再点击一下按钮，八个蓝色小方框又从设计窗体周围消失，出现在按钮周围。（提示：周围有八个蓝色小方框表示该控件“被选定”，是当前控件。所有的操作都是针对当前控件的，任何操作之前都需指定操作对象——指定的方法就是单击一下该控件，使其周围出现八个蓝色小方框。判断某控件是否为当前控件的方法也很简单，就看它周围有没有八个蓝色小方框。另外，利用这八个蓝色小方框还可以调整控件的大小，下面要讲到。）]

③在按钮上任意位置按下鼠标左键(不要松开)，向任意方向拖动，待松开鼠标左键时，会发现按钮的位置被移动了！ [注：所谓“拖动”，就是在保持鼠标左键被按下的状态下，移动鼠标指针。]

④移动鼠标到按钮右下角的蓝色小方框上，待鼠标指针变为 [image] 时按下鼠标左键，并向左上或右下拖动。拖动的结果是按钮的大小被改变了！
[注：待鼠标变形后按下鼠标左键，拖动结束后再放开。]
[注：拖动八个蓝色小方框，都可以达到改变按钮大小的目的。但有一些不同：角上的四个，可同时改变按钮的宽和高；而边上的四个，却只能改变按钮的宽或高。]
[注：用类似的方法，同样可以调节其它控件的大小。]

⑤您可能早已发现了，刚才“画”的按钮上写着两个字：“按钮”。能不能改成别的什么字呢？当然是可以的！下面请看修改控件属性的操作方法。
现在把目光移向易语言主窗口左侧的工作夹，用鼠标点击其右下角的“属性”切换到属性子夹（如果属性子夹已经在前台，则自然不必切换）。具体如左图所示：
先看一下属性子夹的总体结构，可分为三部分：最上面一行(是个下拉列表)是一部分，指明当前被选择的控件；最下面一行(也是个下拉列表)是一部分，以后会提到；最重要的是两者之间的部分——
中间这一部分根据底色的不同，又被分为两栏：左栏以灰底黑字列出了当前被选择控件所有的属性名称，右栏白底黑字是对应属性的值。要改动某个属性的值，只需在右栏原值处双击鼠标左键。

并不是所有的属性都必须由我们指定，相反，大多数属性都有缺省值，需要我们修改的，只是其中的少数几个。下面 Liigo 给大家介绍“按钮”控件的重要属性。
·名称和标题 这是最最重要的两个属性。名称指明了按钮的名子，写代码时要用到的。[注：易语言会自己为控件命名，如我们刚才画的按钮被命名为“按钮1”，如果再画几个按钮，则依次被命名为“按钮2”“按钮3”……] 标题指明了显示在按钮上的文字。例如我们可以把按钮1的标题由“按钮”改成“播放MP3”。
·可视、禁止和字体 [image] 可视控制按钮是否显示在窗口上(能否被看见)；禁止控制按钮是否变灰；字体指定了标题文字的字体。效果见右图：
·左边、顶边、宽度和高度 四者配合确定了按钮的位置和大小。我们前面通过拖动来调整按钮的位置和大小的时候，其实是隐含地设置这几个属性的值。一般情况下，不必直接改动这几个属性——在窗体设计区用鼠标拖动更来的简单快捷。但若要精确控制控件的位置和大小的时候，直接改动这四个值就更方便了。（毕竟用鼠标拖动是有些误差的，不是吗？）左边、顶边、宽度和高度四个属性的具体含义见右图：（此图花了我两个多小时，妈妈的，PhotoShop牛刀宰鸡，就是耍不开！ Liigo,2002/4/20）
[注：以上属性一概不动也是可以的，但最好把标题改过来，这样使用您程序的人一看标题就知道按钮的作用了。至于没提到的属性，有机会自己尝试着改一下，不明白的时候，用鼠标点一下属性名称，然后看状态夹的提示子夹（状态夹位于易语言主窗口下边，提示夹是它的三个子夹之一），里面会有解释的。]

好了，先不管自己接受了多少，目前重中之重是确保正确地把按钮的标题改为“播放MP3”。我再重复一遍修改按钮标题的操作方法：1.选中按钮 2.切换到工作夹的属性子夹 3.找到左栏的“标题”，并双击右栏空白处 4.将原来的“按钮”两个字删除，写上“播放MP3”，打回车后发现按钮上的文字已经是“播放MP3”了。[注：标题是显示在按钮上的文字。“选中”的目的指定操作对象，选中的方法是单击窗体设计区中的欲操作控件，选中的结果(或标志)是控件周围出现八个蓝色小方框。]

经过前面五小步，终于完成了程序界面的设计。怎么样，还满意吧？再运行一次看看效果吧。[不记得如何运行程序了？前面已经说过好几遍了。不过没关系，我再给大家说一遍。要运行正在编写的程序，至少有三种方法：㈠ 选择菜单“运行->运行”；㈡ 单击工具栏按钮 [image] ；㈢ 按热键F5 。这三种方法是等效的。]
[注：本程序运行的结果是：弹出一个窗口，窗口上有个按钮，按钮的标题是“播放MP3”。]
[注：赶快存盘吧 [image] ，这可是我们的劳动成果啊！不妨把文件名定为“MP3播放器”。]
[注：到现在为止，我们还没写一行代码，所作的只不过是点了几下鼠标和输了几个汉字而已。很简单，不是吗？有朋友可能着急地问：单击按钮怎么没有播放MP3呢？哈哈，我们不是还没写一行代码嘛！只要写一行代码（没错，是一行），立刻就能播放MP3！不信您看着——]

第3步：写代码 [上一步 下一步]

本步的任务就是要在易语言的代码编辑区输入这样一行代码：
播放MP3（1，“d:\e.mp3”）
这行代码的功能是播放指定的MP3文件“d:\e.mp3”。需要解释的可能是上述代码中括号内逗号之前的数字“1”，其含义是播放1遍。（如果是“2”呢？播放2遍。如果是“3”呢？播放3遍……“0”呢？当然是不播放了！要想循环播放，改为“-1”就是了。）当然，一切的前提都是指定的MP3文件必须存在。

考虑到代码是程序的灵魂，而在易语言中输入代码的方式与平常打字大不相同，我会非常详细地介绍具体的操作方法。大家只要耐心地读下去，并亲自照着去做，一定很快就能学会！说话的功夫，心急的朋友可能尝试着自己输入代码了，可是——没找到代码编辑区！哈哈，代码编辑区我们第一章也介绍过的，还是看我的吧——
双击设计窗体上的按钮，即可进入代码编辑区，界面如下图所示：

窗口中央深绿色区域就是易语言的代码编辑区，所有的代码都要在这里输入。
图中比较醒目的闪烁的黄色虚框，这是易语言特有的光标。[其它编辑器(如记事本)的光标多是闪烁的竖线。]图中光标所在的行有个“◇”符号，这表示该行是空行。
易语言中的代码编辑区被分为多个“窗口程序集”（简单的程序只有一个程序集，如本程序）。程序集都有一个名称，如果不专门为其命名，则被自动顺序命名为“窗口程序集1”“窗口程序集2”……等。所谓程序集，顾名思义也就是“程序的集合”，它是由多个子程序（或者说是函数）组成的。例如“_按钮1_被单击”就是“窗口程序集1”中的一个子程序。子程序中的代码，就写在子程序名称（函数名）所在表格的下方（具体到上图，子程序“_按钮1_被单击”的代码，要从光标所在行依次向下写起）。
我们现在不忙着写代码，先按上箭头键将光标上移一行，即移到“_按钮1_被单击”处（用鼠标单击也可将光标移过去）。然后看状态夹（位于易语言主窗口下边）的提示子夹，里面有提示：“当单击按钮后即产生此事件。本子程序为事件处理子程序，请不要修改此子程序的名称、返回值及参数定义，否则将导致对应事件不能传递到此事件处理子程序。”意思是：一旦“按钮1”被单击，就立刻自动执行子程序“_按钮1_被单击”中的代码。按照我们的设想，在按钮1被单击的时候，要播放一首MP3，所以实现播放功能的代码只要放在该子程序中就可以了。[为什么按钮被单击的时候，会自动执行特定子程序(函数)中的代码？这涉及到Windows编程中一个很重要的概念：事件驱动，有兴趣的请看这里，否则跳过。]
[注：如果提示子夹不在前台，可用鼠标点击切换，或者直接按F1键也可以。我在第一章说过请随时关注提示夹，还记得吗？这里随时都有您想知道的提示，不要吝啬您的眼光。]
[注：“_按钮1_被单击”中的“按钮1”是什么？就是我们先前“画”到窗口中的那个按钮呀！易语言把它的名称自动命名为“按钮1”。您可能说“不是已经改为‘播放MP3’了吗？” 错误！概念混淆！我们只是把标题属性改为“播放MP3”，却没有改名称属性！名称给写程序的人用的，用于唯一标识控件；而标题（按钮上的文字）是给使用程序的人看的（想一想如果窗口上有五六个按钮，并且标题(按钮上的文字)都是“按钮”，你的用户会不会头晕？）。]

费话了那么多，现在开始实际的代码输入！

①把光标重新定位到“_按钮1_被单击”所在表格的下面一行(如前图所示)，按一下键盘上的空格键。这时代码编辑区起了变化，如右图。看到了吗？原来光标所在处出现一个浅灰色区域，在这里面就可以直接输入代码了！
[注：键盘上的上下箭头键、鼠标单击都能起到移动光标的作用。]
[注：我们已经知道要输入的代码了：播放MP3（1，“d:\e.mp3”），怎么，要一个汉字一个汉字的打进去吗？当然是可以的，但是还有更简单的方法——]

②在前图所示的灰色区域输入：bfMP3(1,"d:\e.mp3")，按回车键，易语言会自动将它转换为我们实际想要的代码：
播放MP3（1，“d:\e.mp3”）
效果如图所示：
[注：聪明的您已经发现，代码中有汉字的地方，输入时只要键入其汉语拼音的声母就行了！（本行代码只有两个汉字，节省的时间不够明显，但以后您会惊奇地发现，以这种方法输入，效率非常之高——比直接输入英文快多了。这是汉语的好处，也是易语言充分发挥汉语优势，为国内用户贴心考虑的结果。）]

[注：不会出现“重码”吗？会，但是极少！因为易语言中的系统库函数是有限的，就好比总词组数比较少，重码率自然就低，绝不会像拼音输入法那样有大量的重码。以我个人的使用经验来看，平均每输入一千行，也不见得出现一次“重码”。当然这个数字是不精确的。]

[一定要注意的是：以此种方法输入时，原本是字母的地方要大写（比如上面的“播放MP3”中的“MP”，如果在输入时写为“mp”，易语言就会弹出一个对话框告诉您那是错误的）。还有一点需要注意的是，引号中的文本（如上面的“d:\e.mp3”），即使里面有汉字，也不能以首拼法输入——因为它不属于易语言的内部词组，系统不能识别。详细情况，请参考《易语言知识库》中的“程序的输入方法”：在易语言主窗口中选择菜单“帮助->易语言知识库”，或在易语言目录中双击e.chm文件，均可调出易语言知识库，如图：]
[注：Liigo 建议，如果有机会，一定要通读一遍《易语言知识库》。虽然有很多初学易的朋友抱怨它晦涩难懂，并且没有图片，但它毕竟提供了用易语言编程最全面最权威的资料。在《易语言零起点》出现之前，《易语言知识库》几乎是学习易语言的唯一途径。现在有了《易语言零起点》这个最最初级的入门教程，入门是容易多了，但要想更深入的了解掌握易语言，《易语言知识库》必不可少。其实，《易语言知识库》也是非常通俗的，大家觉得它“晦涩难懂”，只不过是因为大家初学编程、许多概念都很陌生的缘故。]

到此为止，代码输入就彻底完成了！很简单嘛，不过就是—— 1.双击按钮进入代码编辑器；2.在“_按钮1_被单击”表格下面的空行处按空格键（空行的标志是“◇”）；3.输入“bfMP3(1,"d:\e.mp3")”后打回车。就这么几步。
下一步就要运行我们的大作了！在运行程序之前，请先存盘。存盘的方法至少有三种：㈠选择菜单“程序->保存”；㈡单击工具栏上的保存按钮 [image] （位于工具栏左边数第三个）；㈢按热键Ctrl+S 。三种方法是等效的，您只要选择其中之一即可。[注：随时存盘是一个好的习惯，易语言并不强制要求必须存盘。]

第4步：运行编好的程序 [上一步 下一步]

还记得怎样运行程序吗？要运行正在编写的程序，至少有三种方法：㈠ 选择菜单“运行->运行”；㈡ 单击工具栏按钮 [image] ；㈢ 按热键F5 。程序运行之后，其界面如图所示：

是不是发现，运行时的界面与设计时的界面非常的相似？这就是所谓的“可视化编程”，所见即所得（WYSIWYG - What you see is what you get）。很酷吧？
现在用鼠标单击窗口中央的按钮“播放MP3”，听听是否音乐响起？可别忘了打开音箱哟^_^（如果您没有音箱，可别怪我！——没有音箱就不能学易语言了吗？当然不是！）
[注：如果确实听不到音乐，很有可能是输入代码的时候，您把MP3的路径弄错了。请检查一遍，重新运行再试一次。]

第5步：生成可执行文件 [上一步 下一步]

前面的所有操作，都不是为了最后这一步么？如果不能生成EXE文件，那编程还有什么意义？！
在易语言中，生成EXE文件是再容易不过了！
请看菜单“程序”(如右图)：只要选择菜单项
B.编译独立发布版本 F7 或
D.编译非独立发布版本
就可以将本程序编译为可执行文件(*.exe)。

二者的区别是：
1。前者生成的是独立发布版，后者生成的是非独立发布版；（废话！）
2。独立发布版可在任何机器上独立运行，无需任何文件支持；而非独立发布版则只能运行于安装有易语言的机器上（如果非独立发布版要在未安装易语言的机器上运行，必须有易语言支持库的支持）
3。独立发布版的文件尺寸相应地比非独立发布版大500K左右。

大家可根据需要选择要生成的可执行文件的版本。如果自己用，或易友之间交流，编译为非独立发布版就可以了(文件比较小)；如果给亲朋网友使用，而又不确信他(她)已安装易语言，则编译为独立发布版比较保险(可确保程序能够运行)。`
[注：易语言支持库，就是文件krnln.fne，在易语言安装目录下。]

结束语：——第一节 简单的MP3播放器

（一） 这一节中，我带领大家完成了一个简单的MP3播放器。在详细介绍各步操作的过程中，还顺便附带着讲解了许多所涉及到的相关知识。为了帮助大家对易语言编程有一个总体的把握，下面我再概括总结一下本程序的编写过程：
·启动易语言（双击易语言图标）
·新建一个程序（菜单“程序->新建” 或工具栏按钮 [image] ）
·从工具箱中拖动一个“按钮”控件到窗体设计区
·在工作夹的属性子夹中修改按钮的标题属性
·双击按钮，进入代码编辑区
·在代码编辑区按空格键，以“首拼法”输入代码，并打回车
·运行编好的程序（菜单“运行->运行” 或工具栏按钮 [image] 或热键F5）
·生成可执行程序EXE文件（菜单“程序->编译独立发布版本 或编译非独立发布版本”）

（二） 在本节所有操作中，共生成了两个文件：
播放MP3.e ——易语言源程序，可再次用易语言打开并编辑它
播放MP3.exe ——最后的可执行程序，可随时运行
其中，播放MP3.e文件大小是1.5K，播放MP3.exe文件大小是44K(非独立发布版本)或552K(独立发布版本)。独立版与非独立版的区别是：非独立版只能在安装有易语言的机器上运行，而独立版则可以在任何机器上运行（当然是在Windows操作系统下）；独立版的可执行文件相应地比非独立版大500K左右。

（三） 聪明的您可能已经发现本程序的缺陷了：只能播放同一首MP3，而不能在程序运行中由用户选择想听的MP3。下一节我们将升级这个MP3播放器，以解决其缺陷。

本章导航——第二章 跟我来编程
1. 2. 3. 4. 5. 6. 7.

（2002/4/23初步完成第二章第一节，第一节用时约一周，40小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第2节 MP3播放器升级版

第二章：跟我来编程 | 第二节：MP3播放器升级版 7 上一页 下一页 8
第二节：MP3播放器升级版 [上一节 下一节]

小引：
上一节，我们制作了一个简单的MP3播放器，并且通过这个完整的程序，学习了易语言的基本操作。在本节中，我们将完善该程序，使其能在运行中，由用户自行指定欲播放的MP3。下载例程。
[注：通过上一节的学习，给您印象最深的恐怕是按钮吧？本节将引入另一个最基本的控件：编辑框。]

做这个程序，大约需如下几步：1、启动易语言，新建一个程序； 2、设计程序界面； 3、写代码；4、运行编好的程序；5、生成可执行文件。这也是编写一个易语言程序的通用步骤，其中第2、3步可能重复交叉多次，这是后话。[这五步跟第一节中完全相同，不是吗？]

第1步：启动易语言，新建一个程序 [上一步 下一步]

从“我的电脑”或“资源管理器”中切换到易语言所在目录，双击 [image] 图标即可启动易语言。

如果易语言启动后弹出“新建”对话框，则直接单击该对话框中的“确定”按钮，就新建了一个程序。如果没有弹出“新建”对话框，可以通过菜单“程序->新建”新建一个程序，也可单击工具栏最左边的新建按钮 [image] 来新建一个程序。
[注：是否自动弹出“新建”对话框，是可由用户设定的。如果您曾经在“以后不再显示此对话框”前的方框中打了对钩，“新建”对话框就不会再自动弹出。]

新建一个程序的结果是：在易语言主窗口中央出现了一个“周围有八个蓝色小方框、内部有密集小黑点”的空窗口，这就是第一章所提到的“窗体设计区”。下一步我们要在“窗体设计区”中设计我们自己的程序界面。

第2步：设计程序界面 [上一步 下一步]

所谓“设计程序界面”，有两个任务：一是把控件“画”到窗体设计区，二是在调整控件属性。好，下面我们开始。

①单击工具箱中的“编辑框”控件（位于第一排第二列，其图标是 [image] ），然后在窗体设计区中单击鼠标左键，“编辑框”控件便以默认大小（80*20象素）出现在窗体设计区。
[注：工具箱在易语言主窗口的右侧。当鼠标指向工具箱中的控件时，鼠标下方会出现一个黄色小框提示该控件的名称。窗体设计区位于易语言主窗口中央，就是那个“周围有八个小方框，内部有密集小黑点”的特殊窗口。]
[注：也可通过拖动鼠标画出控件。具体操作是：单击工具箱中的控件后，移动鼠标到窗体设计区，按下鼠标左键不放并向左下方向拖动，最后放开左键。在鼠标拖动过程中，会一直有一个虚框随着鼠标移动而不断变化大小，当最终结束拖动时，控件就会以该虚框的大小“画”到窗体设计区。]

无论是用“点击”还是用“拖动”的方法，“画”到窗体设计区中的控件的位置和大小可能都无法令我们满意，这时就需要调整。用鼠标拖动控件周围的“八个蓝色小方框”，直接改动属性夹中的左边、顶边、宽度、高度等属性，这两种调整控件位置和大小的方法第一节已经介绍过了，下面再介绍另一种用键盘精密调整控件大小的方法。
首先“选中”欲调整的控件（在窗体设计区点击它一下就可选中，如果它周围有了“八个蓝色小方框”，则表示它已经被“选中”），按键盘上的四个箭头键可以一个象素一个象素地移动控件，Shift+箭头键 可以一个象素一个象素地改变控件的宽度和高度。如果您是一个追求完美的人，不妨用这种方法试一试。当然，如果不是要求特别严格，鼠标拖动的方法也基本上能够满足需要。
请按任一种方法，调整新“画”上的“编辑框”控件，使它位于窗体设计区中央偏上的位置，并且宽度大约是窗口宽度的80%。

②按照同样的方法，在窗体设计区中“编辑框”的下方，再“画”两个“按钮”控件。然后分别将这两个按钮的标题属性改为“播放MP3”和“停止播放”。
[注：修改控件的属性要在工作夹的属性子夹中进行。工作夹位于易语言主窗口左侧，属性夹是其三个子夹之一（另外两个子夹是“程序”“支持库”，还记得吗？）。]

设计程序界面的任务，到此基本完成。（在以后的操作中，如果对界面不满意，还可以返过来继续调整。）最后的设计窗口是这样的：

第3步：写代码 [上一步 下一步]

双击标题为“播放MP3”的按钮，进入代码编辑区后输入以下代码：
        播放MP3（1，编辑框1．内容）
输入代码的方法，不管大家还记不记得，我再重复一遍。1、定位光标到“_按钮1_被单击”表格下方的空行上；2、按一下空格键，输入：bfMP3(1,bjk1.nr) 后回车。您肯定看出来了，“bjk1.nr”分别对应“编辑框1．内容”中各汉字拼音的声母。

下面介绍一下代码的意义。“编辑框1”就是我们刚才“画”到窗体设计区的那个编辑框（还记得易语言自动为控件编号命名吗？），“编辑框1．内容”是指在该编辑框中输入的文字。当程序运行时，在编辑框中输入一个MP3的文件名后，代码“播放MP3（1，编辑框1．内容）”就相当于播放该MP3文件了。
[注：内容是编辑框的最常用属性之一。]

下面一步就要双击标题为“停止播放”的按钮，为它写代码了。可问题是，我们正处于代码编辑区中，根本看不到窗体设计区，更不要说双击其中的按钮了！所以，目前的当务之急就是，切换到窗体设计区。切换的方法有三：
1、利用工作夹（工作夹位于易语言主窗口左侧）
首先将工作夹中的程序子夹切换到前台，然后单击“窗口”前的 [image] 使其变为 [image] ，这时会发现“窗口”下面又出现了一个分枝：“_启动窗口”，用鼠标双击它，就可以将操作环境从代码编辑区切换到窗体设计区。见右图：
[注：这里的“_启动窗口”就是指我们设计的那个窗口，易语言自动把它命名为“_启动窗口”。所有的易语言程序都必须有一个“_启动窗口”，并且它的名称不可改动。还记得该窗口是怎么产生的吗？是“新建“程序的时候易语言自动生成的。]
2、利用“窗口”菜单
易语言主菜单中的“窗口”菜单如右图所示，选择“窗口：_启动窗口”即可切换到窗体设计区。
[注：“窗口”菜单的下半部分（分隔条以下）列出了当前程序存在的所有可操作区——包括“程序集”和“窗口”，以及“全局容器表”“自定义数据类型表”“DLL命令表”“资源表”等等。本程序因为比较简单，只涉及到一个窗口和一个程序集。菜单项前打√号的表示该操作区是当前操作区。]
3、利用热键Ctrl+Tab 也可以在代码编辑区和窗体设计区之间切换。

请通过上述三种方法之一，将当前操作区从代码编辑区切换到窗体设计区。然后——

双击标题为“停止播放”的按钮，在光标所在行输入：
停止播放（）
具体输入方法参考前面的讲述。提示：输入字可以是“tzbf”“tzbf()”“tingzhibofang”“tingzhibofang()”“停止播放”“停止播放（）”等等。这一行代码的意思是，停止正在播放的MP3。和“播放MP3（）”一样，“停止播放（）”也是系统支持库中的易语言内置库函数。
[注：易语言中内置了500多个系统库函数，可在任何时间任何地点随意调用。利用它们能够轻松地完成众多复杂的功能。一个复杂的程序通常是由许多系统库函数组合而成。]
[提示：在工作夹的支持库子夹中，所有的系统库函数被分为20类依次列出，如右图所示。单击某个分类前的 [image] 使其变为 [image] ，即可查看该分类中的所有系统库函数。而点击其中的任意一个函数名称，立刻就可以在状态夹的提示子夹中看到关于该函数的详细帮助。这是在易语言中寻求帮助的很重要的方法。]
[Liigo同时提醒您，尽量抽时间多浏览浏览这些系统库函数，只要平时有了一些印象，用的时候再查找就快捷多了。我初学易语言的时候，就曾经花了整整一个晚上的时间，把所有的库函数全都抄了下来——包括函数名称、参数及函数功能。事实证明，这种方法是行之有效的。现在我编程时，要实现什么功能，虽有时不能立刻准确地记起要用到的函数，也总能很快地在支持库中查到它。]
[注：支持库的最下面还有两个分支“数据类型”和“常量”。其中“数据类型”分支也是非常重要的，里面包含易语言中所有控件的属性、方法、事件等信息。]
[总之，支持库是易语言中的帮助信息汇集中心。在编程的过程中，是经常要到这里来查找所需要的信息的。记往，所有的帮助信息都被显示在状态夹的提示子夹中。——这也是我一直提醒您多关注提示夹的原因。]

第4步：运行编好的程序 [上一步 下一步]

好，现在可以运行程序了！选择主菜单“运行->运行”，或单击工具栏上的“运行”按钮 [image] ，或者按热键F5都可以编译运行当前的程序。
当我们设计的窗口弹出时，在编辑框中输入某个MP3的文件名（包含全路径，千万别写错哟），然后单击按钮“播放MP3”，听听是否音乐响起？单击按钮“停止播放”后再输入另一个MP3文件名，再单击“播放MP3”，是不是又一首MP3响起？够爽吧？
[提醒：存盘了吗？选择菜单“程序->存盘”，或单击工具栏按钮 [image] 。]

第5步：生成可执行文件 [上一步 下一步]

选择菜单“程序->编译独立发布版本”或“程序->编译非独立发布版本”即可编好的程序编译为可执行文件（EXE文件）。一般编译为“非独立发布版本”就可以了，这样生成的可执行文件比较小。
[注：“独立版”与“非独立版”的区别，在本章第一节中有详细的介绍。]

-------------------------------------

结束语：——第二节 MP3播放器升级版
 本节在上一节所编程序的基础上，又引入了一个“编辑框”控件，使程序有了一定程度的通用性——可以通过输入文件名指定欲播放的MP3。
本节用五步完成了这个完整的程序的编写：1、启动易语言，新建一个程序； 2、设计程序界面； 3、写代码；4、运行编好的程序；5、生成可执行文件。这跟第一节中的五个步骤是完全相同的。由此我们可以总结出：编写任何一个完整的易语言程序，都需要这五个步骤。[注：在这五步中，很显然第2、3步核心，是我们以后讲解的重点；而其余三步，不但非常简单，而且在所有程序的编写中操作都是完全一样的，故今后将尽量简化对这三步的介绍，甚至取消。这样做的目的也是为了突出重点。]
本节完成后，也生成了两个文件：一个是源程序*.e (2K)，另一个是可执行程序*.exe (44K或632K)（文件名是您个人指定的）。
本节编写的虽然是一个“升级”过的MP3播放器，但它仍然有一个致命的缺陷：必须手工输入MP3文件名——这非常繁索，也非常容易出错，而且在Windows时代，几乎没有人愿意这么做。看来，下一节还要继续对其升级——

本章导航——第二章 跟我来编程
1. 2. 3. 4. 5. 6. 7.

（2002/4/27初步完成第二章第二节，第二节用时约四天，30小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第3节 MP3播放器黄金版

第二章：跟我来编程| 第三节：MP3播放器黄金版 7 上一页 下一页 8
第三节：MP3播放器黄金版 [上一节 下一节]

小引：
本节将在第二节所做的“MP3播放器升级版”的基础上，通过增加一个“通用对话框”控件，使其功能更加完善、操作更加简单（黄金版耶^_^）。本节的所有操作将直接在“MP3播放器升级版”上面进行，而不再完全从头开始。点击下载本节例程。

本节内容： 1.打开已有源程序 2.调整界面 3.添加、修改代码 4.调试运行 5.生成可执行程序。此外以“附录”的形式补充了一些内容（包括窗口的标题和图标，提示性文字，主菜单，“关于”对话框等）。
如果准备好了，那我们就开始吧！

第1步：打开已有源程序 [上一步 下一步]

启动易语言后，选择菜单“程序->打开”，或单击工具栏上的“打开”按钮 [image] （第一排第二个），或按热键Ctrl+O 都能够调出一个打开文件对话框，如下图所示。

在对话框中，选择上一节存盘的易语言源程序（*.e），单击“打开”按钮即可。（平常在WPS或Word中，不是也经常这么打开已有的文件吗？本节所编的程序，当用户选择欲播放的MP3时，也将弹出一个类似的对话框。）
另外，在“资源管理器”中双击某个*.e文件，易语言将自动启动并打开该文件。
下图是打开了“MP3播放器升级版”后的易语言主界面：

窗体设计区中的界面，就是我们上一节设计的结果。直接在这上面修改，比新建一个程序从头开始要省不少劲。（您不这么认为吗？）
下面我们要对该程序的界面和代码做一些改动，首先是调整界面——

第2步：调整界面 [上一步 下一步]

①首先在窗体设计区中放上一个“通用对话框”控件 [image] 。
[注：通用对话框控件是“非可视”控件，也就是说，当程序运行的时候是看不到它的（当然设计时能看到）。既然程序运行时看不到它，那要它有什么用呢？当然有用了！虽然不用它的“外表”，却要用到它的功能。所以“非可视控件”还有另一个叫法是“功能类控件”（同样“可视控件”还可称为“界面类控件”）。易语言中还有几个很常用的非可视控件：时钟 [image] 、打印机 [image] 、数据源 [image] 等。]
[注：既然运行时不可视，“非可视控件”的位置和大小就无关紧要了。]
[提示：本教程中所说的“控件”，也就是《易语言知识库》中所说的“窗口单元”，只不过是同一事物的两种不同叫法而已。同样，本教程中的“变量”“函数”，在《易语言知识库》则分别被称为“容器”“子程序”，其实还是同一种事物的两种说法。相比较而言，还是本教程所采用的“控件”“变量”“函数”的提法更通用一些，也更易为人所接受。大家知道了这一点，以后读到《易语言知识库》就不至于感到迷惑了。]

②将原来的“编辑框”控件向左移动一些（必要时可减小其宽度），并在其右边“画”一个新的“按钮”控件。然后在属性夹中将新“画”上的按钮控件的标题属性改为“...”，将宽度和高度调的稍小一些。

调整界面的工作就基本上完成了。最终界面如图：

第3步：添加、修改代码 [上一步 下一步]

就本程序而言，只需添加几行代码而无需修改已有代码。

双击编辑框右边的标题为“...”的按钮（按钮3），进入代码编辑区后，在“_按钮3_被单击”子程序`中输入：
通用对话框1.打开（）
编辑框1.内容 = 通用对话框1.文件名
先说一下代码的含义。通用对话框1.打开（）的功能是打开一个“通用对话框”；编辑框1.内容 = 通用对话框1.文件名 的功能是把用户在对话框中选择的文件名(含全路径及扩展名)写到“编辑框1”中。
输入方法：
第一行输入字为：tydhk1.dk()
第二行输入字为：bjk1.nr=tydhk1.wjm
[注：移动光标到已存在的代码行上，按回车键将在该行后插入一个空行；按Ins键将在该行前插入一个空行。（空行的标志是“◇”）]
输入完成后的界面如图。

代码输入工作至此完成。

 第4步：调试运行程序 [上一步 下一步]

菜单“运行->运行”；工具栏按钮 [image] ；热键F5。
运行程序后，单击编辑框右侧的“...”按钮，就可以在“打开文件对话框”中选择欲播放的MP3了！这是运行时的截图：

第5步：生成可执行程序 [上一步 下一步]

菜单“程序->编译独立发布版本” 或“程序->编译非独立发布版本”。

附录：

首先声明，经过上面五步，本节的任务已经圆满完成了！此处再稍微“雕琢”一下。

1、窗口的标题、图标
心细的朋友已经发现了，程序虽然经历了三次“升级”，窗口标题栏上却仍然没有标题，图标也不是自己的。其实要为窗口加上标题和自己的图标是非常容易的。
“窗口”是一个特殊的控件（说它特殊是因为它不在工具箱中），和普通控件一样，它也有自己的属性。选中窗口（单击窗体设计区的空白处）后，就可以在属性夹中看到它的所有属性。我们发现，标题和图标是窗口的其中两个属性，只要设置这两个属性，即可改动窗口标题和图标。（设置图标属性时，会弹出一个标准的打开文件对话框，选择一个喜欢的图标文件(*.ico)就可以了。）
[注：对控件属性的修改可以在工作夹的属性子夹中进行，也可以用代码来实现，如前面用到的“编辑框1.内容 = 通用对话框1.文件名”。在属性夹中修改是静态设置，改动立刻生效；而用代码改动控件属性是动态设置，需代码执行后才生效。]

2、提示性文字
 我们目前设计的这个窗口，里面有一个编辑框，但一点提示性文字都没有，换了别人，可能根本不知道编辑框是干什么用的。解决方案就是再增加一个“标签”控件。方法如下：从易语言主窗口右侧的工具箱中选择“标签”控件 [image] ，并把它“画”到编辑框的上面；适当调整标签的大小和位置（如果编辑框上面的空间不够，可将编辑框向下移动）；在属性夹中设置标签的标题属性为“请指定欲播放的MP3文件名：”。设计好的界面如图。

3、主菜单
 很多专业软件都有主菜单。但本程序比较简单，功能又单一，完全可以不要主菜单。然而考虑到各位可能都想知道怎样为自己的程序加上主菜单，我们也不妨画蛇添足一回。操作如下——
选择易语言主菜单“编辑->菜单编辑器”，就进入了菜单编辑器。（还有两种方法可以进入菜单编辑器：一、在窗体设计区单击鼠标右键，从弹出的快捷菜单中选择“菜单编辑器”；二、按热键Ctrl+E 。）菜单编辑器的界面如下图：

请按以下步骤进行：
①在标题编辑框中输入“文件(&F)”，在名称编辑框中输入“文件”，然后单击“向后插入”按钮；
②在标题编辑框中输入“播放MP3(&P)”，在名称编辑框中输入“播放MP3”，选择快捷键为Ctrl+M，然后单击“右移”按钮，再单击“向后插入”按钮；
③在标题编辑框中输入“停止播放”，在名称编辑框中输入“停止播放”，然后单击“向后插入”按钮；
④在标题编辑框中输入“-”，然后单击“向后插入”按钮；
⑤在标题编辑框中输入“退出(&X)”，在名称编辑框中输入“退出”，然后单击“向后插入”按钮；
⑥在标题编辑框中输入“帮助(&H)”，在名称编辑框中输入“帮助”，然后单击“左移”按钮，再单击“向后插入”按钮。
⑦在标题编辑框中输入“关于MP3播放器(&A)”，在名称编辑框中输入“关于MP3播放器”，然后单击“右移”按钮。

经过以上七小步之后，菜单编辑器的界面如下图：

我们主要把目光对准左下的列表框：其中前面有四个点("....")的表示该菜单项是子菜单项，而没有点的则是顶层菜单。
现在设计的主菜单，共有两个顶层菜单：文件和帮助，其余都是子菜单。
知道四个点是怎么出来的吗？答：当单击“右移”按钮时自己出现的。（单击“右移”按钮两次会怎样？前面出现八个点，表示该菜单项是子菜单的子菜单。）
设计过程中，多次用到了字符“&”，它表示将跟在它后面的一个字母以下划线的形式显示，如“文件(&F)”显示为 “文件(F)”。
在菜单编辑器中还可以设置菜单项的快捷键、选中(是否在菜单项前打勾)、允许操作(是否变灰)、可视(是否隐藏)等。

单击上图右上角的“确定”按钮，我们的菜单条就设计完成了。请看——

如果现在运行程序，选择菜单项不会有任何反应。很简单，还没有给菜单项写代码嘛！（如果新画上的按钮，不给它写代码，运行时单击它不也是没反应吗？一个道理。）那怎么给菜单项写代码呢？等一会马上告诉您！

4、“关于”对话框
 几乎所有的软件都有“关于”对话框，我们也不能例外。请一步步的跟我做——

①选择易语言主菜单“插入->新窗口”，这时的易语言主窗口如下图：

我们发现，窗体设计区中原来的窗口（叫“_启动窗口”）不见了，却另外出现了一个空的窗口。这就是新插入的窗口，它被自动命名为“窗口1”（如果再插入一个就是“窗口2”了）。下一步要设计“窗口1”的界面。

②在“窗口1”上画一个“标签”控件，并将标签的标题属性改为“***同志的大作！”，将字体属性设置为您认为漂亮的字体，将文本颜色属性设置为您喜欢的颜色，这时的“窗口1”界面如下面左图。还可尝试着把标签的边框属性改为“6.渐变镜框式”（从下拉列表中选择），这时的“窗口1”界面如下面右图。

上面的右图是不是比左图漂亮一些？如果再把标签的渐变背景方式改为“1.从上到下”（从下拉列表中选择），界面就更漂亮了！如右图。
标签控件还有很多有意思的属性，比如：效果、背景颜色、底图、渐变边框宽度、渐变边框颜色1、渐变边框颜色2、渐变边框颜色3、渐变背景颜色1、渐变背景颜色1、渐变背景颜色2、渐变背景颜色3……等等，都尝试着改一改，效果肯定不会让您失望！可惜Liigo的想象力和美工水平都非常有限，已无力为您做演示了！

至此，我们的“关于”窗口（窗口1）就基本上设计的差不多了。但如果您迫不及待地运行程序，却发现，无论如何也调不出新设计的“窗口1”！为什么呢？！
一般情况下，每一个易语言程序都必须有名称为“_启动窗口”的窗口（新建程序时由易语言自动产生），当运行程序时，易语言会自动显示“_启动窗口”。而对于用户插入的其它窗口，易语言不会主动显示它们（试想假设一个程序包含十多个窗口，如果程序启动时全都显示出来，岂不天下大乱？）。那到底怎样才能调出新插入的窗口呢？当然要靠代码了！请继续向下看。
[注：前面遗留了一个问题，是关于如何为菜单项写代码的，现在将顺便把它解决掉。我们的设想是，为“帮助”菜单的“关于MP3播放器”子菜单项配上代码，使该子菜单项被用户选择时，弹出我们的“关于”窗口（窗口1）。]

③切换到“_启动窗口”，选择“_启动窗口”的主菜单（刚才设计的）“帮助->关于MP3播放器”，进入代码编辑区，如右图：
[注：从“窗口1”切换到“_启动窗口”的方法有三：1、通过工作上夹的程序子夹，双击“窗口”下的分枝“窗口1”即可；2、通过易语言主菜单“窗口->窗口：窗口1”；3、通过热键Ctrl+Tab 。]
[Ctrl+Tab的使用：按下 Ctrl 键后不放，然后反复按 Tab 键可以在所有的编辑区（窗口或程序集或其它）之间顺序切换；按下 Ctrl 键后同时按下 Tab 键，然后都放开，可以在最近两个编辑区（窗口或程序集或其它）之间切换。]

[注：在上图所示的代码编辑区，将光标上移一行（即移动到“_关于MP3播放器_被选择”处），看状态夹中提示子夹内的解释（如果提示夹不在前台，请用鼠标切换之）：“当菜单项被用户选择后即产生此事件。本子程序为事件处理子程序，请不要修改此子程序的名称、返回值及参数定义，否则将导致对应事件不能传递到此事件处理子程序。”它的意思是，当菜单项“关于MP3播放器”被用户选择时，就自动执行子程序“_关于MP3播放器_被选择”中的代码。很显然，显示“关于”窗口的代码应该写在这里。]

④移动光标到子程序“_关于MP3播放器_被选择”表格下面的空行处，按一下空格键，输入：zr(ck1) 然后打回车，发现输入字被转换为：载入 (窗口1, , 真) 。输入后的界面如下图：
这一行代码的含义是把“窗口1”显示到屏幕上。跟您想象的一样，“zr”对应“载入”，“ck1”对应“窗口1”，可是输入字和最终代码又不完全对应——多出两个逗号和一个汉字“真”——这就得益于易语言的代码补充功能了。在易语言中，很多系统库函数的部分参数是可省的。
要了解系统库函数载入的详细帮助，只需将光标移至“载入 (窗口1, , 真)”代码行，看状态夹中的提示子夹，里面就有您需要的解释。[注：状态夹在易语言主窗口的下面，提示夹是其三个子夹之一。]

好了，运行程序，选择菜单“帮助->关于MP3播放器”，窗口1就会显示出来了，爽吧？

补充：为其它菜单项写代码

在前面，我们用菜单编辑器制作了两个顶层菜单（文件和帮助），共包含5个子菜单，只为其中一个子菜单“关于MP3播放器”写了代码，再除去文件菜单中有个分隔条，还有另外三个子菜单需要响应代码。但是——很显然，“文件->播放MP3”与按钮“播放MP3”的功能是一样的，“文件->停止播放”与按钮“停止播放”的功能是一样的，既然我们已经给按钮“播放MP3”和“停止播放”写过代码了，只消把代码复制过去就可以了。复制的方法也很简单，只要在单击鼠标右键，选择“复制”“粘贴”即可（Ctrl+C、Ctrl+V也行）。
下面就只为“文件->退出”写代码。选择设计窗口的主菜单“文件->退出”，进入代码编辑区后，输入：xh，打回车键，代码自动转化为“销毁 ()”。如下图：

这一句代码在这里等效于“_启动窗口.销毁()”。它的意思自然是把“_启动窗口”彻底“销毁”了！当“_启动窗口”被“销毁”时，也就意味着程序结束了。因为几乎每一个应用程序都要响应“退出”菜单或“退出”按钮，“销毁 ()”函数是经常要用到的，请大家记住它。

结束语：——第三节 MP3播放器黄金版
“黄金版”是这样做出来的：在“升级版”的基础上，增加了一个“通用对话框”控件，使指定MP3时不必再手写输入了，极大地减少了操作复杂度。另外，还以附录的形式补充了一些内容，包括：为窗口指定标题和图标、提示性文字（标签）、主菜单制作、“关于”对话框制作等。

·播放MP3的代码是： 播放MP3（播放次数，MP3文件名）
·停止播放MP3的代码是： 停止播放（）
·打开“通用对话框”的代码是： 通用对话框1.打开（）
·显示自定义窗口的代码是： 载入（窗口名称， ，真/假）
·结束应用程序的代码是： 销毁（） 或 _启动窗口.销毁() 或 结束（）

“黄金版”做到这个份上，已经相对比较完善了，可别忘了这是我们的第一个程序呀！如果非要再给它找一些不足，那恐怕就是界面了——方方正正，灰头土脸——说好听了是“标准”，说难听了就是“呆板、死板”！不过别担心，用易语言也完全可以做出具有超级豪华界面的程序，不信请看下一节——

（2002年4月30日下午初步完成第二章第三节，第三节用时约3天，20小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第4节 MP3播放器超白金版

第二章：跟我来编程 | 第四节：MP3播放器超白金版 7 上一页 下一页 8
第四节：MP3播放器超白金版 [上一节 下一节]

本节将完成一个具有超级豪华界面的MP3播放器——MP3播放器超白金版！
本节是选学内容，不要求大家一定跟着做——这并不意味着它难，而是因为它涉及到一些编程以外的东西如图片处理，而且其中用到的编程知识也不具备通用性。如果您有特别浓厚的兴趣，也不妨跟着做一做，否则简单地浏览一下就行了。
本节的任务是：向您证明，用易语言做的程序也可以很漂亮。

-------------------------------------

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第5节 小结1

第二章：跟我来编程 | 第五节：小结1 7 上一页 下一页 8
第五节：小结1 [上一节 下一节]

前面我们用了四节的篇幅，分别完成了四个逐步升级的MP3播放器版本。这四个程序虽然简单，但具有一定的代表性，它们涉及到了易语言编程中的许多基本操作。但是，我们介绍这四个程序时，是按照开发步骤依次进行的，只是在遇到问题时才顺便讲解一番，在理论上不够系统性。是该总结一下了。
本节有两大任务：1、总结前面涉及到的所有重要环节；2、探讨进一步学习易语言的方法(推荐)

一、总结前面涉及到的所有重要环节

◆易语言程序的结构
 易程序 = 窗口 + 窗口程序集 + 全局容器(变量)表 + 常量数据表 + 自定义数据类型表 + DLL命令定义表 + 资源表。（其中前两者一般是必须的，其余为可选。）
通常，一个标准的易语言程序，总要有一个名称为“_启动窗口”的特殊窗口。说它特殊，是因为它必须存在，并且其名称不可改动；程序运行时，“_启动窗口”首先被自动显示于屏幕上；“_启动窗口”被销毁就意味着程序结束。（当新建一个程序时，出现在窗体设计区的那个空窗口就是“_启动窗口”。）用户还可以通过选择易语言主菜单“插入->新窗口”来插入其它的窗口，用户插入的窗口在程序运行时不会自动显示（可通过系统库函数类 载入() 显示之）。
易语言为程序中的每一个窗口（包括“_启动窗口”和用户插入的窗口）自动配备一个“窗口程序集”。窗口中所有事件处理子程序（所有代码）都被放在与该窗口对应的“窗口程序集”中。这样做的好处是使程序的结构更加清晰。
在工作夹的程序子夹中，可以清楚地看到整个程序的整体结构。

◆易语言的源程序(*.e)
 虽然易程序是由“窗口”“窗口程序集”等多个逻辑部分组成，但在存盘的时候，所有的内容都被存到一个扩展名为“.e”的文件中，这个文件就是易语言的源程序。源程序和可执行程序的关系，就好比工程上设计图纸与建筑物之间的关系。源程序的作用是保存我们设计的结果。只要拥有了源程序，就可以对程序进行任意修改（我们知道，直接修改可执行程序是很困难的）。

◆“控件”是易语言编程的基础
 我们前面用到的像“按钮”“编辑框”“通用对话框”等都是易语言中的控件，同时它们也是 Windows 操作系统的标准控件。控件在程序中扮演着极为重要的角色。我们知道，写程序时，总要在窗口上放几个控件（窗口也是特殊的控件），离开了控件，写程序就好比是做无米之炊。
控件的作用一个是提供程序界面，另一个是提供某种特定功能。作用之一自然不用说了，一个窗口加一个按钮，就是比DOS下的黑屏好看的多。控件“提供某种特定功能”是什么意思？拿“编辑框”来说吧：按钮键盘上的字母或数字键，编辑框会显示它们；按下“退格键”或Del键会自动删除；按下左右箭头键，又会自动移动光标。所有这些功能，编程者都没有用代码控制，显然这是“编辑框”控件的固有功能。

◆控件都有自己的“属性”、“方法”和“事件”
属性、方法和事件，是“控件的”属性、方法和事件。属性静态地描述控件的特征（包括外观及内在特征）；方法动态地执行特定的动作（完成特定的功能）；事件则通知外部它的状态发生了变化。
[注：这里说的“控件”，是指“放到程序中的控件”，更严格的叫法应该是“对象”。所谓对象，就是“实例化”的控件。还是举个例子吧：“人类”，一个抽象的宏观的概念，它不是对象；只有具体到“某个人”时，才称之为对象。对象拥有它所属控件的所有属性方法和事件，正如“某个人”拥有人类的所有特征。]
前面虽然没有直接提到过属性、方法和事件这三个重要概念，其实也都用过了。比如：标题是按钮的属性，内容是编辑框的属性；“通用对话框1.打开()”中的打开()是通用对话框的方法；“_按钮1_被单击”中的“被单击”是按钮的事件，“_关于MP3播放器_被选择”是菜单项的事件。
调用对象属性的语法是：对象名称.属性名称 例：按钮1.标题 编辑框1.内容
调用对象方法的语法是：对象名称.方法名称（参数） 例：通用对话框1.打开() （无参数）
对象的事件是自动产生的，一般不必自行调用。

◆“事件驱动”
也许很多朋友还在迷惑中：为什么程序知道“按钮1”被用户单击，并会自动去执行相关代码？这就涉及到 Windows 编程中一个很重要的概念——事件驱动了。
在事件驱动的背后，操作系统(Windows)是主角，它扮演了“经纪人”的角色。有一点应该是明确的：用户的所有操作、所有程序的运行，一切都是在操作系统的“监视”下进行的。这个毫无疑问。当用户做出某个动作（比如单击按钮），操作系统首先捕获并分析之（如果不能识别，将忽略它），然后通过“消息”的方式通知给按钮所属的程序，程序接到通知后才去执行相关的动作（调用“_按钮x_被单击”子程序）。在这个过程中，如果我们故意忽略操作系统的存在，那么，就好象是“按钮”把自身被单击的事件通知给了其所在程序。（这也是控件(对象)事件的由来。）
所以，“事件驱动”可以这样来描述：由控件(对象)根据自身状态的改变，产生特定的“事件”，程序检测到该“事件”后，自动转去执行与该“事件”对应的“事件处理子程序”中的代码（如果有的话）——如果程序员没有为该“事件”配备“事件处理子程序”，那么程序自动忽略收到的“事件”，什么也不做。（注：用户的动作(如单击、双击、移动鼠标等)和代码的执行，都有可能引发控件(对象)状态的改变。控件(对象)的状态一旦改变，即产生相应的“事件”。至于控件(对象)的状态什么时候改变，什么时候产生什么样和“事件”，这因不同的控件(对象)而异，以后会讲到。）
应用程序在收到对象事件的同时，还会收到一些附注信息。如所有的可视控件对象都有“鼠标位置被移动”事件（只要鼠标指针被移动，立刻产生此事件），程序响应此事件时，会收到鼠标的坐标、功能键的状态等附注信息，并将这些附注信息提供给编程者使用。

◆易程序的运行过程
程序开始运行后，首先自动创建“_启动窗口”及其中的控件，创建完毕后产生“创建完毕”事件，如果程序员为该事件配置了代码，则自动执行之，接着显示“_启动窗口”到屏幕。然后程序即进入循环等待状态，等待“事件”的发生。等待期间，一旦有某个事件发生，则程序检查该事件的“事件处理子程序”中是否有代码，如果有就执行，执行完仍然是等待，如此往复循环，直到程序被关闭。（如果同时发生了多个“事件”呢？程序会根据事件的优先级别自动选择处理事件的先后顺序，这个不要用户关心。）
可以说，易程序的运行过程，也就是等待“事件”、处理“事件”的过程。（这不就是典型的“事件驱动”吗？）

◆操作提示
·新建程序 选择主菜单“程序->新建”或单击工具栏上的“新建”按钮 [image] ，在弹出的“新建”对话框中，直接单击确定即可。
·向设计窗体拖放控件 方法一：单击工具箱中的某个控件图标，移动鼠标到设计窗体，再单击一下鼠标即可。方法二：单击工具箱中的某个控件图标，移动鼠标到设计窗体，按下鼠标左键不放并向左下方拖动鼠标，最后松开左键。（注：工具箱位于易语言主窗口的右侧。）
·调整窗体中控件的位置和大小 调整控件位置的方法有三：1、用鼠标拖动；2、在工作夹的属性子夹中改动控件的左边、顶边属性；3、按键盘上的箭头键←↑↓→或Ctrl+箭头键。 调整控件大小的方法有三：1、用鼠标拖动控件周围的八个蓝色小方框；2、在工作夹的属性子夹中改动控件的宽度、高度属性；3、按Shift+箭头键或Shift+Ctrl+箭头键。
·设置控件的属性 首先切换到工作夹的属性子夹，在属性夹的左栏中找到欲设置的属性名称，然后双击右栏对应处。（属性夹分为左右两栏：左栏列出了当前选中控件的所有属性名称，灰底黑字；右栏是对应属性的属性值，白底黑字。） 属性值的修改基本上有三种模式：1、直接在属性夹的右栏输入；2、从下拉列表中选取；3、从弹出的对话框中设置。（注：工作夹位于易语言主窗口的左侧，属性夹是其三个子夹之一(另外两个子夹是程序和支持库)。）
·响应控件的“事件” 双击窗体中的控件，即可进入代码编辑区，并自动将光标定位到该控件“默认事件”的事件处理子程序中。（每个控件都有一系列的事件，其中必然有一个是“默认事件”。直接双击控件，将自动加入控件“默认事件”的事件处理子程序。） 如果要加入控件其它事件（非默认事件）的事件处理子程序，需：1、选中该控件；2、在属性夹最底部的下拉列表中（见右图）选择并单击欲处理的事件名称（此时，光标将自动定位到事件处理子程序中）。 当某事件发生时，程序会自动执行该事件的“事件处理子程序”中的代码（如果有的话）。
·输入/修改代码 进入代码编辑区后，移动光标到一个空行处（空行的标志是“◇”），按一下键盘上的空格键（或用鼠标点击该行）即可进入编辑模式，此时可用易语言内置的四种输入方法——首拼、全拼、双拼、英文——输入代码（当然也可以直接输入汉字）。输入结束后，要按一下回车键锁确认输入——这时易系统会自动检查输入的正确性，正确则将其转换成完整的代码，不正确将给出警告——如果不按回车键，则系统不会接受输入内容，而直接将输入内容置为“草稿”。 要修改某一行中的代码，请双击该行，或将光标移至该行后按一下空格键，进入编辑模式后直接修改——修改后仍需回车确认。 当处于非编辑模式时，按回车键将在光标所在行的下面插入一个空行，按Ins键将在光标所在行的上面插入一个空行。 复制(Ctrl+C)、粘贴(Ctrl+V)、删除(Del)、剪切(Ctrl+X)等在易语言的同样有效。
·代码输入方法 易语言内置四种输入方法，最常用的就是“首拼法”——只输入词组中每个汉字的汉语拼音的声母。用“首拼法”可输入易语言中涉及到的所有名称——包括函数名，窗口、控件名，变量名，数据类型名，资源名等等。 注意：对于没有声母的汉字(如“按”)，输入字为该汉字的韵母（如“按钮1”的输入字为“ann1”，其中前两个字母“an”是汉字“按”的韵母）；对于单字词组(如“真”“假”等)，输入字为该汉字的完整拼音（如“真”的输入字为“zhen”，“假”的输入字为“jia”）。 输入实例：1、按钮1.标题 =“我爱你！”的输入字为ann1.bt="我爱你！"；2、_启动窗口.可视 = 真的输入字为_qdck.ks=zhen；3、播放MP3（1，“e.mp3”）的输入字为bfMP3(1,"e.mp3")。（注1：括在引号中的文本不属于易语言的系统词组，不能应用首拼法，需完整写出；输入字中用大写字母匹配目标代码中的字母(如"MP")。注2：在代码编辑区中键入输入字，打回车，易系统自动将其转换为完整的代码。）
·在不同操作区域之间切换（窗体设计区<—>代码编辑区） 切换方法有三：1、通过工作夹的程序子夹——双击不同的分枝即可切换到不同的操作区域；2、通过“窗口”菜单——选择不同的菜单项即可切换到不同的操作区域；3、通过热键Ctrl+Tab——连续按Ctrl+Tab可在不同的操作区域间切换。（注：Ctrl+Tab的使用：按下 Ctrl 键后不放，然后反复按 Tab 键可以在所有的操作区域（窗口或程序集或其它）之间顺序切换；按下 Ctrl 键后同时按下 Tab 键，然后都放开，可以在最近两个操作区域（窗口或程序集或其它）之间切换。）（注：易语言中的操作区域主要包括：设计窗口、窗口程序集、全局容器(全局变量)表、常量表、自定义数据类型表、Dll命令定义表、资源表等，最常用的是设计窗口和窗口程序集。）
·打开/保存/编译源程序 打开：选择主菜单“程序->打开”，或单击工具栏中的“打开”按钮 [image] ，或按热键Ctrl+O，从弹出的打开文件对话框选择欲打开的易源程序(*.e)即可。 保存：选择主菜单“程序->保存”，或单击工具栏中的“保存”按钮 [image] ，或按热键Ctrl+S，都可以保存源程序。 编译：选择主菜单“程序->编译为独立发布版本”，或按热键F7，可将当前已打开的易源程序编译为“能够在任何机器上独立运行的”可执行程序；选择主菜单“程序->编译为非独立发布版本”，可将当前已打开的易源程序编译为简化版的可执行程序（需借助易语言支持库才能运行）。

◆应用提示
·播放MP3的代码是： 播放MP3([播放次数]，mp3文件名)
·停止播放MP3的代码是： 停止播放()
 ·打开通用对话框的代码是： 通用对话框1.打开()
·退出应用程序的代码是： _启动窗口.销毁() 或 结束() （前者更常用一些）

二、探讨进一步学习易语言的方法

初学易语言的朋友，学到这一步为止，肯定有这么一种感受：跟着教程一步一步的做，觉得很容易；但想自己编个程序吧，立刻又觉得无从下手！ 这是完全正常的，大不必为此苦恼——Liigo当初就是这样子的。
首先让我们分析一下为什么会这样。一、设计程序界面时，要用到“控件”及其属性，如果对控件（易语言中有40个控件）不熟悉，设计界面就不会觉得顺手。二、输入代码时，要用到“控件的方法与事件”及“系统库函数”，如果对它们不熟悉，可能就一时想不出写什么代码。
所以，此后的学习重点就是：1、熟悉控件的属性、方法与事件；2、了解系统库函数。 看样子内容很多，其实根本不用怕：首先，易语言中的控件是有限的(40个)，常用的更少，并且控件都是很有趣的（还记得第三节中“关于窗口”里面的那个渐变颜色的“标签”吗？）。其次，系统库函数的数量虽然很大(500多个)，但并不要求全部掌握，只要对“某个函数能完成某项功能”有一定的印象就可以了——要做到这一步很容易。
当然，“阅读别人的源程序”也是提高编程水平的一个行之有效的方法。但是问题是，到目前为止，我们对控件不熟悉、对系统库函数也不了解，根本读不懂代码，如果盲目地去看别人的源程序，肯定会“这里看不清楚、那里也读不明白”，时时碰壁，处处受打击，丝毫找不可一点学习的乐趣。（很显然嘛，＋ － × ÷ 都不认得，给他看 1＋2×3－4÷5 他能明白吗？） 这不是我们所追求的，我们的目标是：轻松学习易语言！ 所以，大家不要着急，一步一步地跟着我来，保证您在不知不觉间，易语言编程水平已经提高了一大截！（注1：在《易语言零起点》教程出现之前，易友们学习易语言没有好的指导，不得已而去读别人的源程序，这是没有办法的办法。注2：我并不是反对“阅读别人的源程序”——相反我大力提倡——只不过现在还不是读源代码的最佳时机，以后我会亲自带领大家去读源程序。）

-------------------------------------

结束语：

本节结束了。在这一节中，我们：1、总结前面涉及到的所有重要环节；2、探讨进一步学习易语言的方法(推荐)。其中，第1部分讲到了一些理论基础，需仔细理解。
本节结束后，您有了两个选择：一、继续阅读本章后续几节，继续学习一些简单程序的编写。二、直接跳过本章（第二章），去 1、熟悉控件的属性、方法与事件；2、了解系统库函数。

（2002/5/2下午初步完成第二章第五节，第五节用时约四天，15小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第6节 时钟应用

第二章：跟我来编程 | 第六节：时钟应用 7 上一页 下一页 8
第六节：时钟应用 [上一节 下一节]

本节主要包括以下几个简单的、应用“时钟”控件的小程序：1、连续鸣叫；2、动态显示时间；3、会变色的窗口；4、旋转的文字。

以上程序无一例外地使用了易语言中一个很简单又很常用的控件：时钟。为什么说它简单呢？因为它的属性和事件极少（没有方法）——它只有一个重要属性：时钟周期，只有一个事件：周期事件。
时钟控件的作用：每隔一定的时间（由其属性时钟周期指定）产生一个“周期事件”。一时不明白没有关系，先看下面的例子。

程序一：连续鸣叫 下载例程

本程序的功能：每隔一秒，使机箱喇叭或音箱“叫”一声。

1、打开易语言，新建一个程序；
2、把“_启动窗口”的标题属性改为“连续鸣叫”；（这一步不是必需的。）
3、向“_启动窗口”中拖放一个“时钟”控件 [image] （它被自动命名为“时钟1”），如右图：

这时，请看一下工作夹的属性子夹（首先选中“时钟1”）——它只有八个属性：名称、备注、左边、顶边、宽度、高度、标记和时钟周期。

[注：时钟控件是非可视控件，即程序运行时是看不到它的，所以它的位置和大小无关紧要。时钟控件的最重要的属性只有一个：时钟周期。]

4、把“时钟1”的时钟周期属性改为 1000 （它的单位是：毫秒）；<这一步关键>
5、双击“时钟1”，在“_时钟1_周期事件”子程序中，输入以下代码：
鸣叫（）
 [注：输入字可以是：mj，mj()，鸣叫，鸣叫（）等。]
[注：系统库函数“鸣叫”功能是，使机箱喇叭或音箱发出一个简单的声音。]
[注：因为我们已经把时钟周期属性设为1000，所以，时钟1的“周期事件”将每1000毫秒（1秒）产生一次。换个说法，就是子程序“_时钟1_周期事件”每隔1秒被自动调用一次。再换个说法，就是函数鸣叫()每秒执行一次。由此我们不难想象本程序的执行效果：每隔一秒，喇叭或音箱就“鸣叫”一下。]

输入代码后的易语言主窗口如下图所示：

好了，这个程序就编好了！下载例程。
本程序运行的效果是：每隔1秒，喇叭或音箱就“鸣叫”一声，如果不关闭程序，就一直叫下去。运行界面如右图（窗口里什么也没有）：
亲自感受一下，看看效果怎么样？如果喜欢，就把它存盘吧（不妨存为beep.e）。[提示：把“时钟1”的时钟周期属性改一下，比如改为500或1000，再运行程序，发觉“鸣叫”的时间间隔变了，是吗？]

现在分析一下，为什么会这样。首先要明确的是，时钟控件有这样的功能：每隔一定时间自动产生一个“周期事件”——间隔时间是由时钟的时钟周期属性指定的（单位是毫秒）。其次，我们在时钟1的“周期事件”的事件处理子程序“_时钟1_周期事件”中写入了代码。所以，程序会每隔一秒执行其中的代码，执行的结果当然是使喇叭或音箱就“鸣叫”了。
（注：如果追根究底，非要问“为什么时钟控件能每隔一定时间产生一个周期事件”的话，我建议您去问微软。呵呵，初学者不用研究那么深的，只要记住“时钟控件能每隔一定时间产生一个周期事件”就可以了。千万要记住呀，很常用的。）

程序二：动态显示时间 下载例程

本程序的功能：在窗口上显示系统时间，并每隔一秒更新一次。
运行效果如右图：

编写步骤如下：

1、新建一个程序，把“_启动窗口”的标题属性改为“动态显示时间”；
2、向“_启动窗口”中拖放一个标签控件，和一个时钟控件，并把时钟控件的时钟周期属性改为1000；（程序设计界面见右边下图：）
3、双击“时钟1”，输入如下代码：
标签1.标题 ＝ 到文本 (取现行时间 ())
 输入字为：bq1.bt=dwb(qxxsj()) 其中“dwb”对应“到文本”，“qxxsj”对应“取现行时间”。

代码有点复杂，让我们分析一下。首先容易明白的是，代码的目的是为“标签1”的标题属性赋值——把“=”号右边的值赋给“=”号左边（“=”是赋值运算符）。那“=”号右边又是什么呢？是系统库函数之一，其功能是从计算机中读取当前的系统时间。到文本()也是系统库函数之一，它的功能是卖掉数据类型——把非文本型的转换为文本型。综合起来，这行代码的意思就是：读取当前的系统时间，并把时间转换为文本型，然后赋值给“标签1”的标题属性。

为什么不直接把取现行时间()的返回值赋给“标签1.标题”，而要经过一次转换？答：取现行时间()的返回值的数据类型是“日期时间型”，而“标签1.标题”的数据类型是“文本型”，数据类型不一致是不能直接赋值的。
[注：“x=y”是易语言中典型的赋值语句。 这里的“=”是“赋值运行符”，而不是“等于”的意思。所谓“赋值”，就是把“=”左边的内容擦掉，换成“=”右边的值。举个例子：标签1.标题=“易语言”，就是把标签1的标题属性改为“易语言”——如果原来有内容，当然覆盖掉。这跟在属性夹中修改是等效的。]
[注：我初学编程时，就对“赋值”二字非常迷惑——可能与“赋”字笔画比较多并且意义不鲜明有关吧——用了很长时间才搞清楚。如果各位有同样的迷惑，不妨先放一放，也许不久会不点自明。放心吧！]

程序已经编写完了。运行一下看看效果！这里下载例程。

程序三：会变色的窗口 下载例程

本程序的功能：窗口每隔一定时间会自动改变颜色。
运行效果如右图：

1、新建一个程序，把“_启动窗口”的标题改为“会变色的窗口”；
2、在“_启动窗口”上放一个时钟控件，并把其时钟周期改为500（或其它）；
3、双击“时钟1”，在“_时钟1_周期事件”子程序中输入如下两行代码：
置随机数种子 ()
_启动窗口.底色＝取颜色值( 取随机数(0,255), 取随机数(0,255), 取随机数(0,255) )

第一行的输入字：zsjszz 第二行的输入字：_qdck.ds=qysz( qsjs(0,255),qsjs(0,255),qsjs(0,255) )
先不管第一行，第二行的意思是：改变“_启动窗口”的底色属性。“=”右边当然是获取一种颜色值了——通过系统库函数：取颜色值(r,g,b)。
取颜色值(r,g,b)的功能是：通过指定红(R)绿(G)蓝(B)分量来获取颜色值。
取随机数(a,b)的功能是：取得介于a和b之间的随机数。调用本函数之前，一般都要先调用置随机数种子 ()函数，这好比抓阒之前要先摇一摇“色子”。
通过取颜色值(r,g,b)和取随机数(a,b)配合就可以随机地得到任意一种颜色值。

程序编完了。效果很不错吧？ 下载例程

程序四：旋转的文字 下载例程

本程序的功能：汉字会自动旋转。 运行界面如下面左图：

程序编写步骤如下：

1、新建一个程序，把“_启动窗口”的标题改为“旋转的文字”；
2、在设计窗口上放一个标签控件，把标题改为“易”（或其它），设置它的字体属性，把字体改大一些（此处是楷体初号），再变一下文本颜色属性。注意标签的宽度和高度尽量大一些，以免文字旋转时跑到外面去。
3、再拖放一个时钟控件，修改其时钟周期属性为100（或其它）；

设计界面如上面的右图所示：

4、双击时钟控件，在“_时钟1_周期事件”子程序中输入如下代码：

上面代码的意思是：每隔0.1秒（100毫秒），让“标签1”中的文字倾斜5度（50×0.1度），当倾斜度数大于360度时，恢复为0度。[注意：标签1.字体.角度的单位是0.1度。]

其实在上述代码中，只要有第一行代码，就足以完成欲定功能，下面的判断语句可有可无——倾斜365度与倾斜5度是一样的，再说标签1.字体.角度也未要求必须小于3600——那为什么要加上后两句呢？主要是让大家多学一点嘛。我们编的程序也不少了，该接触一下“流程控制语句”了。

如果真（）流程控制语句之一，也属于系统库函数。它的功能是，控制代码的执行顺序。具体地说，如果它后面括号里的逻辑为“真”（即条件成立），则向下执行；否则将（沿着左边的虚线）绕过部分代码再向下执行。
仔细看如果真（）前面的小图片 [image] ，当光标移动到这一行时，小图片将会动态地显示，在 [image] 和 [image] 之间来回切换（图片中有箭头和×√号。）图片很鲜明地指示了语句的执行流程：当条件成立时，沿着√号旁的箭头向下执行；当条件不成立时，则顺着×号旁的的箭头先向左走，再沿着带箭头的灰色虚线向下（绕过部分代码），直到遇到灰色虚线的箭头才开始执行。
[提示：上面提到的“带箭头的灰色虚线”是易语言中的“流程指示线”，它的作用是更清晰地显示代码的执行顺序，帮助初学者迅速理清程序结构。一般当代码中涉及到判断、分支、循环等语句时，易语言将自动画出“流程指示线”。]

程序编完了，在这里可以下载例程。

结束语：——第六节 时钟应用

一、本节包括以下几个应用“时钟”控件的小程序：1、连续鸣叫；2、动态显示时间；3、会变色的窗口；4、旋转的文字。重点是掌握“时钟”控件的应用。
二、“时钟”控件的重要特点：每隔一定时间，自动产生一次“时钟事件”。
三、“时钟”控件的使用时机：当每隔一定时间需要重复执行某个动作时。
四、“时钟”控件的使用方法：1.设置时钟周期属性（可在设计阶段指定，也可在运行阶段用代码设置）；2.在时钟控件的“时钟事件”中输入事件响应代码。
五、重要提示：欲阻止“时钟事件”的继续产生，只需置时钟周期为0，相应代码为：时钟1.时钟周期 = 0 。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第7节 万年历

第二章：跟我来编程 | 第七节：万年历 7 上一页 下一页 8
第七节：万年历 [上一节 下一节]

现在用易语言编一个万年历。下载例程

1、新建一个程序，把“_启动窗口”的标题属性改为“万年历”；

2、向“_启动窗口”拖放一个“月历”控件 [image] ，适当调整大小和位置。设计界面见右图：

程序编完了！不用写一句代码！

运行效果见下图：

-------------------------------------

结束语：——第七节 万年历

1、本节用易语言的“月历”控件，编写了一个功能强大的“万年历”程序——可以查看从1752年到9999年共计8248年的月历。
2、编写过程简单的不得了——仅仅是拖放了一个控件，调整了一下位置和大小，没写一句代码。
3、“月历”控件的外观（主要是各项颜色）是可以调节的，只要设置一下相应的属性即可。
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第8节 记事本

第二章：跟我来编程 | 第八节：记事本 7 上一页 下一页 8
第八节：记事本 [上一节 下一节]

我们都知道，Windows中自带了一个“记事本”程序，平时多用它来编辑一些简单的文本。今天，我就带领大家一起来编一个“记事本”程序。下载例程

1、新建一个程序，把“_启动窗口”的标题属性改为“记事本”；

2、在“_启动窗口”中按鼠标右键，从弹出菜单中选择“菜单编辑器”，并按下图所示设计菜单：
[注：选择易语言主菜单“编辑->菜单编辑器”，或按热键Ctrl+E，均可进入菜单编辑器。]

关于菜单设计，说明以下几点：

①每一个菜单项都要有“标题”和“名称”，尤其要注意不要忘记输入“名称”（一般跟标题相同即可）。[注：标题即显示于菜单中的文字，名称用于代码控制。]
②顶格写的是顶层菜单（如文件、编辑、帮助），前面有“....”的为子菜单（如打开等）。这由“左移”“右移”按钮控制。
③一般输入完一个菜单项后，要单击“向后插入”按钮以继续输入下一个菜单项。

设计好的菜单如下图所示：

3、在“_启动窗口”上放一个“编辑框”控件，和两个“通用对话框”控件。并作如下设置：
编辑框1：是否允许多行=<真> 滚动条=<2.纵向滚动条> （位置和大小如右图：）
通用对话框1：过虑器=“文本文件（*.txt）|*.txt|所有文件|*.*” 默认文件后缀=“txt”
通用对话框2：类型=<1.保存文件> 过虑器=“文本文件（*.txt）|*.txt” 默认文件后缀=“txt”
通用对话框3：类型=<2.字体选择>
[注：以上属性值，引号均不需输入；以<>括住的表示该属性值可直接从下拉列表中选取。]
[注：“通用对话框1”用作打开文件；“通用对话框2”用作保存文件；“通用对话框3”用作选择字体。]

4、选择“_启动窗口”中的设计菜单“文件->打开”，这时将进入代码编辑区，并且光标自动定位于“_打开_被选择”子程序中。请输入如下代码：

现在，需要返回到“_启动窗口”——方法有三：1、双击工作夹的程序子夹中的“窗口-_启动窗口”；2、选择易语言主菜单“窗口->窗口：_启动窗口”；3、按热键Ctrl+Tab。回到“_启动窗口”后——

5、选择“_启动窗口”中的设计菜单“文件->保存”，这时将进入代码编辑区，并且光标自动定位于“_保存_被选择”子程序中。请输入如下代码：

6、回到“_启动窗口”，选择设计菜单“文件->退出”，这时将进入代码编辑区，并且光标自动定位于“_退出_被选择”子程序中。请输入如下代码： _启动窗口.销毁()

7、回到“_启动窗口”，选择设计菜单“编辑->字体”，这时将进入代码编辑区，并且光标自动定位于“_字体_被选择”子程序中。请输入如下代码：

8、选择易语言主菜单“插入->新窗口”（新插入的窗口被自动命名为“窗口1”），在“窗口1”上放一个“标签”控件，和一个“颜色选择器”控件，并把“标签1”的标题改为“请选择背景颜色：”。
“窗口1”的设计界面如右图：

9、双击“颜色选择器1”，在“_颜色选择器1_颜色被改变”子程序中，输入以下代码：
_启动窗口.编辑框1.背景颜色 ＝ 颜色选择器1.颜色
代码中的“_启动窗口.”必不可少，因为这是在“窗口1”中设置“_启动窗口”中的控件，如果不声明一下，程序还以为“编辑框1”是在“窗口1”中呢。（生活中我们还常听到“‘开发部的’老张”呢！）

10、再次切换到“_启动窗口”——方法有三：1、双击工作夹的程序子夹中的“窗口-_启动窗口”；2、选择易语言主菜单“窗口->窗口：_启动窗口”；3、按热键Ctrl+Tab（按住Ctrl不放连续按Tab）——选择设计菜单“编辑->颜色”，在“_颜色_被选择”子程序中输入：
载入(窗口1, , 真)
输入字：zr(ck1)

11、切换到“_启动窗口”，选择设计菜单“帮助->使用说明”，这时将进入代码编辑区，并且光标自动定位于“_使用说明_被选择”子程序中。请输入如下代码：
信息框 (“跟Windows记事本使用完全一样。”, 0, )
输入字：xxk("跟Windows记事本使用完全一样。")

12、切换到“_启动窗口”，选择设计菜单“帮助->关于记事本”，这时将进入代码编辑区，并且光标自动定位于“_关于记事本_被选择”子程序中。请输入如下代码：
信息框 (“Liigo版权所有，翻印随便！”, 0, )
输入字：xxk("Liigo版权所有，翻印随便！")

全部结束了。请看下面的运行效果图。（别忘了存盘！在这里下载例程。）

-------------------------------------

结束语：

1、程序中最核心的一个控件是“编辑框”；另外还用到了三个“通用对话框”控件，分别用于打开文件、保存文件和选择字体；“颜色选择器”控件用于选择颜色；程序菜单在“菜单编辑器”中设计。
2、打开、保存文件使用的代码，如果不能理解，可暂时放一放。（把光标移至代码行处，状态夹的提示子夹中会出现有关的解释，看不明白就算了，反正以后还会讲到。）

（2002/5/6 初步完成第二章第八节，第八节约用时两天，计8小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第9节 在鼠标单击处画圆

第二章：跟我来编程 | 第九节：在鼠标单击处画圆 7 上一页 下一页 8
第九节：在鼠标单击处画圆 [上一节 下一节]

本节所编的程序运行效果如右图：

程序的使用非常简单，只要用鼠标直接单击窗口即可。可以选择线的颜色和填充颜色，及圆的直径；如果对画的结果不满意，可“清除”之；如果满意呢，当然需要“保存”为BMP图片文件了。下载例程。

也许您最关心的是，怎样编出这个程序。其实也很简单，请看——

编写步骤：

1、新建一个程序，把“_启动窗口”的标题属性改为“在鼠标单击处画圆”；

2、在“_启动窗口”上放一个“画板”控件、一个“通用对话框”、一个“编辑框”、两个“颜色选择器”、两个“按钮”和三个“标签”；

3、对控件作如下设置：
画板1：边框=<5.单线边框式> 自动重画=<真>
编辑框1：内容=“20” 调节器方式=<1.自动调节器>
通用对话框1：类型=<1.保存文件> 过虑器=“BMP图片|*.bmp” 默认文件后缀=“bmp”
其它控件的设置见设计窗口（如图）；

4、首先选中“画板1”（窗口右边最大的一个），然后切换到工作夹的属性子夹：

在上面左图中，单击最下一行的“在此处选择加入事件处理子程序”下拉列表，在弹出的下拉列表中单击“鼠标左键按按下”（如上面右图）。这时，易语言自动进入代码编辑区，并将光标定位于“_画板1_鼠标左键被按下”子程序中，如下图：

注意：该子程序有三参数：横向位置、纵向位置和功能键状态。这是易语言自动为我们提供的，可以在代码中直接读取。（后面输入代码时使用了其中的前两个参数。）

5、在“_画板1_鼠标左键被按下”子程序中输入如下代码：

前两行代码分别为“画板1”的画笔颜色、刷子颜色属性赋值。在画板中画图时，画笔颜色、刷子颜色分别控制线的颜色和填充颜色。第三行的作用是在“画板1”的指定位置画指定大小的椭圆（圆是椭圆的特殊情况，因为我们为画椭圆的后两个参数使用相同的值，所以画出的是圆）。
第三行中的“横向位置”、“纵向位置”是“_画板1_鼠标左键被按下”子程序的参数。子程序的参数可以在本子程序内使用。

6、返回窗体设计区（“_启动窗口”）——方法有三：1、双击工作夹的程序子夹中的“窗口-_启动窗口”；2、选择易语言主菜单“窗口->窗口：_启动窗口”；3、按热键Ctrl+Tab ——
双击“按钮1”（标题为“清除”的按钮控件），在“_按钮1_被单击”中输入：
画板1.清除 (, , , )
 输入字：hb1.qc 或 hb1.qc()。
 清除()是画板控件的“方法”（属性方法事件之方法），其功能是清除画板中的内容。
[注：上面代码，为什么括号中有三个逗号呢？——因为省略了(四个)参数。]

7、双击“按钮2”（标题为“保存”的按钮控件），在“_按钮2_被单击”中输入：

首先判断“通用对话框1”打开了没有——如果这一行执行失败，后两行就不用执行了——然后从“画板1”中取出图片，写到用户在“通用对话框1”中指定的文件中，最后弹出一个信息框告诉用户“保存成功”。

大功告成！请看下面的运行效果图。在这里下载例程。

-------------------------------------

结束语：——第九节 在鼠标单击处画圆

1、本节用到的核心控件是“画板”。画板是易语言中很重要的控件，属性方法事件都很多。它的功能非常强大，当然占用内存也比较多，一般不要滥用。如果相同的功能可以由标签或编辑框等控件实现，则尽量不用画板。
2、“画板”的属性中，画笔颜色控制画出的线的颜色，刷子颜色控制填充颜色。用画板的画椭圆(x1,y1,x2,y2)方法，可以画出椭圆（或圆）——需指定椭圆所在的矩形的左上、右下点的横纵坐标。用画板的取图片()方法可以“取出”画到画板上的图片（取图片()有两个参数，但通常省略之）。
3、通过本节，还应学会响应控件的“非默认”事件。方法是：从属性夹最下面的“事件列表”中选择并单击欲响应的事件名称。（画板的默认事件是“绘画”，即如果在设计阶段双击“画板1”，则会自动进入“_画板1_绘画”子程序。）

（2002/5/6 初步完成第二章第九节，第九节约用时一下午，5小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


待续...

第二章：跟我来编程 | 第十节：*** 7 上一页 下一页8

第十节：XXX [上一节 下一节]

注:本章待续,欢迎投稿或提供相关资料.

提供本章中的编程资料时,请严格按以下格式:

1.每节一个完整的程序编写过程,尽量用一个文件(*.htm),尽量多用图片.

2.每节新建一个子目录(下又有一images子目录).子目录的命名约定:a0,a1,a2,..a9(10到19节) b0,b1,..b9(20到29节)......
例,要编写第13节,请在本章目录下建a3子目录,网页文件*.htm均在该目录下(源程序也可置于该目录下),用到的图片全部放到a3的子目录images中.

3.页面,文字,格式等等,一概以本章前面几节为标准,不许私自改动.最好将Liigo写的某一篇作为"模板文件"保存起来,新建网页时直接调用模板.

4.以上要求只是为了保证教程外在的一致性,其它的皆可自由发挥.

凡是自行撰写教程超过一万字的,将把作者作为"编者"列到本教程封面上.

  ——作者：Liigo

Liigo@sina.com

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页8


第0节 初识控件

第三章：易语言控件 | 第一节：初识控件 7上一页 下一页 8
第0节：初识控件 [上一节 下一节]

控件，也称组件、部件，是一个个独立的功能模块。把多个控件组合起来，就是程序。控件是编程技术发展的产物（早些年是没有控件的），它的作用是简化程序的编写，增加代码的可重用性。

这样说也许太枯燥了！举了例子：盖房子，总要事先买好楼板、砖（空心砖）、水泥、钢筋、门、窗等，把它们按一定的规则“摆放、组合”到一起，房子也就出来了。您可曾想过不用这些半成品（楼板、砖……）而完全从零开始盖房子吗？当然也不是不可以，只不过难度或复杂性恐怕要成指数增长。
如果把“在易语言中编写程序”比作“盖房子”的话，那易语言中的“控件”就相当于盖房子时用到的楼板、砖……等，它的作用也就不言自明了吧？在当今Windows编程领域，如果没有控件，就好象盖房子没有楼板、砖……，根本令人无法忍受。

我们都知道，建筑领域的楼板、砖（空心砖）、水泥、钢筋、门、窗……等，机械领域的螺母、螺栓、轴、键……等，汽车制造领域的轮胎、发动机、变速箱……等，都有专门的行业标准。用户只要选择标准的部件，就不会出现使用上的“不克扣”等问题。
同样在编程领域，“控件”也有所谓的“标准控件”，象： 按钮、编辑框、标签、画板、图片框、分组框、组合框、列表框、选择框、单选框、外形框、选择夹、时钟、滚动条、滑块条、进度条……等等，因为这些控件是由操作系统的老大——微软——定义的，所以被称为“标准控件”。在易语言中，除了提供这些标准控件外，还另外配备众多其它控件。
[也许您会问，“非标准”控件在使用中是否有诸多限制？不是的。因为，程序不象卖出去的汽车，需要考虑部件更换问题；程序编好之后通常是不会“坏”的，所以根本不必考虑更换部件。故，对所有控件——无论标准与否——都可以放心使用。事实上，“标准控件”之所以称为“标准控件”，不是因为它有多“标准”，只是因为它是由微软定义的。]

控件都有自己的属性、方法和事件。

为了使大家对“控件”有一些直观的印象，下面请跟我来“寻宝”——

1、

2、

3、

-------------------------------------

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7上一页 下一页 8


第1节 控件的通用属性方法和事件

第三章：易语言控件 | 第一节：控件的通用属性方法和事件 7 上一页 下一页 8
第一节：控件的通用属性方法和事件 [上一节 下一节]

本节内容：1、控件的通用属性 2、控件的通用方法 3、控件的通用事件

强调：“属性、方法、事件”是“控件的”属性、方法、事件。“属性、方法、事件”总是依附于某个控件的。离开了控件，“属性、方法、事件”根本无从谈起。
本章所说的“控件”，是指“放到程序中的”控件，因此，更严格的叫法应该是“对象”。但“控件”的提法也许大家更容易理解一些，而且很多专业人士也这么讲。

我已经分类的很详细（但不是很准确^_^）：红色是最重要的，绿色次之，黑体更次之。首先要把红色的搞清楚，理解了，其它的都可以忽略过去。用到时再回来查嘛。

一、控件的通用“属性”

控件的通用属性主要有：名称、标题、禁止、可视、鼠标指针、字体、边框、可停留焦点、左边、顶边、宽度、高度、标记、备注等。
上述列出的属性中，只有名称、左边、顶边、宽度、高度、标记、备注是每个控件都拥有的属性，其它属性虽不是每个控件都有，但也非常常见，故也认为它们是控件的通用属性。通用属性中除了名称和标题外，一般不必刻意设置——易语言自动为其取最常见的值。
除了通用属性外，控件一般都还有自己的特有属性。

下面逐个讲解控件的通用“属性”：

1、名称
控件的唯一标识。好比现实中人的身份证。放到程序中控件必须有名称——如果程序员未特别命名，易语言自动为它按序号命名（如：按钮1、按钮2……编辑框1、编辑框2……等）。要想在代码中操作控件的属性方法和事件，就必须指定目的控件的名称（如：按钮1.标题）。
[注：如果程序较为复杂——用到的控件较多，最好自己为控件命名。为控件取一个有意义的名称是一个好的习惯。我个人认为，一个好的名称 = 功能 + 控件类型，如“确定按钮”“取消按钮”“密码编辑框”等等。另外，切不可用代码改动控件的名称！]

2、标题
显示于控件上的文字。主要是给程序的使用者看的，通常作为某种提示。因控件的不同，标题出现的出现的位置可能也不一样。如：窗口、通用对话框等有标题栏的控件，标题出现在标题栏中；而按钮、标签、单选框、选择框、分组框、菜单等没有标题栏的控件，标题出现在控件中央（或偏上下左右）。

3、禁止
控制控件可否被程序使用者操作。它的值只能为真或假，默认为假，即不禁止。被禁止的控件一般表现为：上面的文字（即标题）变为灰色，单击它没有任何反应。

4、可视
控制控件可否被程序使用者看到。它的值只能为真或假，默认为真，即可以被看到。

5、鼠标指针
当鼠标移动到控件上方时，鼠标指针的形状。本属性一般不必改动——易语言根据控件的不同，会自动为其取一个默认值(最常见的)，如：按钮上为 [image] ，编辑框上为 [image] 等。

6、字体
标题文字的字体：包括字体名称、字体大小、加粗、倾斜、下划线、删除线等。注意，字体颜色一般是不生效的，标题文字的颜色由另外的属性（文本颜色）控制。

7、边框
控制边框的样式。边框一般有：0.无边框、1.凹入式、2.凸出式、3.浅凹入式、4.镜框式、5.单线边框式等几种样式。对标签控件而言，它还有另外一个样式：6.渐变镜框式。而对于窗口来说，它的样式就完全不同：0.无边框、1.普通可调边框、2.普通固定边框、3.窄标题可调边框、4.窄标题固定边框、5.镜框式可调边框、6.镜框式固定边框等。

8、可停留焦点
设置当用户使用 TAB 或光标键在各单元之间移动焦点时是否允许在本单元上停留。它的值只能为真或假，默认为真。如果控件的可停留焦点属性为真，则控件还有另外一个属性（停留顺序）控制焦点停留的顺序——即当按TAB或光标键时，窗口上各控件获得输入焦点的顺序。（如果按钮上有一个黑色细点组成的虚框，或者编辑框中有光标在闪烁，表示它正在拥有输入焦点。）

9、左边、顶边、宽度、高度
 左边、顶边分别是控件左上角点的横纵坐标，宽度、高度就分别是控件的宽度和高度。四者的单位均为象素。注意左边、顶边是相对于控件的“父控件”而言的，比如我们在画板中“画”一个按钮，它的左边、顶边就是相对于画板左上角的坐标——这里画板充当了“父控件”（或称容器控件）。易语言中可以充当父控件的控件，除了窗口和画板，还有选择夹、分组框、图片框、外形框等。
（父控件和子控件的关系：1、如果父控件被销毁、禁止或者隐藏，其内部的所有控件将会自动被销毁、禁止或者隐藏；2、子控件始终被限制在父控件的内部，其坐标位置相对于父控件的左上角；3、父控件内的所有子控件之间存在层次关系，但是父控件与子控件之间不存在层次关系。）
（当任一可视控件被“画”到或“粘贴”到某“容器控件”——可充当父控件的控件——中时，父子关系就自动形成。要解除控件的父子关系，可将父控件中的子控件删除或剪切掉。）

10、标记、备注
标记：记录控件的附加文本信息。备注：对控件的备注信息，主要是程序员自己使用。二者的不同在于，标记可以在程序中使用，而备注不可以——类似调用“控件名.备注”是非法的。
二者在实际编程中很少使用。标记还偶尔用到；备注，我敢说，99%的易友是从来不用的。

二、控件的通用“方法”

控件的通用方法主要有：取窗口句柄()、销毁()、获取焦点()、可有焦点()、取用户区宽度()、取用户区高度()、刷新()、移动()、调整层次()、弹出菜单()、发送信息()、投递信息()、取标记单元()等。其中销毁()、获取焦点()、移动()、弹出菜单()等较为常用。此外还有五个关于“重画”的方法，很少用到。相关例程
注：所谓“方法”，说白了也是函数（子程序），只不过“方法”是与特定控件相关联的。“方法”与普通函数（如系统库函数和自定义函数）在调用的语法上是不一样的——“方法”的调用：控件名称.方法名称([参数...])，如 _启动窗口.销毁()；普通函数的调用：函数名称([参数...])，如 取系统时间()。
注：“方法”是“控件的”方法，“方法”总是依附于某个控件的。离开了控件，“方法”根本无从谈起。同样的道理，“属性”是“控件的”属性，“事件”是“控件的”事件。属性、方法、事件，都和控件密切相关。

下面逐个讲解控件的通用“方法”：

1、取窗口句柄()
 功能：取控件的“窗口句柄”，并以返回值的形式返回。
语法：控件名称.取窗口句柄()
 应用实例：1、窗口句柄 = _启动窗口.取窗口句柄()
2、窗口句柄 = 编辑框1.取窗口句柄()
//分别取得“_启动窗口”“编辑框1”的窗口句柄，并存到整数型变量“窗口句柄”中。
[注：是 取“窗口句柄”，而不是 取“窗口的”句柄。“窗口句柄”是一个专有名词，一般在API调用时使用。。取窗口句柄()不但能够取“窗口”的“窗口句柄”，也能取“控件”的“窗口句柄”（窗口本身就是一个特殊的控件。）][另注：只有可视控件才有“窗口句柄”；非可视控件是没有“窗口句柄”的，不能应用取窗口句柄()方法——比如“窗口句柄 = 时钟1.取窗口句柄()”是非法的。]

2、销毁()
 功能：销毁控件：使其从屏幕上消失，并在内存中彻底删除。
语法：控件名称.销毁()
 应用实例：1、_启动窗口.销毁()
2、按钮1.销毁()
//分别销毁“_启动窗口”和“按钮1”。第二种用法少见，因为普通控件总是某个窗口的子控件，当窗口被销毁时，子控件也被自动销毁，所以一般不去专门销毁普通控件（只要销毁窗口就可以了）。

3、获取焦点()
 功能：使控件获得输入焦点。
语法：控件名称.获取焦点()
 应用实例：1、编辑框1.获取焦点()
//使“编辑框1”获得输入焦点。这一句编程中经常用到。（如果编辑框中有光标——通常是闪烁的黑色竖线——则表示它已经获取输入焦点，否则表示还没有获取输入焦点。）

4、可有焦点()
 功能：判断控件是否拥有输入焦点，返回真或假。
语法：控件名称.可有焦点()
 应用实例：1、x = 编辑框1.可有焦点()
//如果“编辑框1”当前拥有输入焦点，x的值为真，否则为假——x要事先定义为逻辑型变量。

5、取用户区宽度()、取用户区高度()
功能：取得控件“用户区”的宽度/高度。
语法：控件名称.取用户区宽度()/取用户区高度()
 应用实例：1、宽 = _启动窗口.取用户区宽度()
2、高 = _启动窗口.取用户区高度()
//分别取得“_启动窗口”的“用户区”宽度和高度，并存到整数型变量“宽”和“高”中。
[注：“用户区”——对窗口而言，用户区域为窗口区域减去标题栏、菜单栏、边框后的区域；对普通控件而言，用户区域等同于其窗口单元区域。]

6、刷新()
功能：重新显示控件中的内容。与“刷新”屏幕是一个道理。
语法：控件名称.刷新()
 应用实例：1、_启动窗口.刷新()
2、画板1.刷新()
//分别刷新“_启动窗口”和“画板1”。如果画板的自动重画属性为假(默认值)，则经常刷新画板是必要的。如果嫌麻烦，干脆把画板的自动重画设为真——只是多占用些系统资源而已。

7、移动()
 功能：改变控件的位置和尺寸。
语法：控件名称.移动([左边]，[顶边]，[宽度]，[高度])
 参数：分别对应移动后控件的左边、顶边、宽度和高度。四个参数均可省略。
 应用实例：1、_启动窗口.移动(0，0，100，200)
2、按钮1.移动(，，100，50) 等效于 按钮1.移动(-1，-1，100，50)
//把“_启动窗口”移动到(0,0)，且把其宽度和高度改为100和200；不移动“按钮1”的位置，只把其宽度和高度改为100和50。（单位是象素。）
[注：移动()可同时设置控件的四个属性，如果省略某参数(或置为-1)则不改变原来的值。本“方法”的执行效率，与“分别为各属性赋值”相比，要高出许多倍，特别是在循环中。推荐使用。]

   8、调整层次()
 功能：调整控件所处层次。
语法：控件名称.调整层次([欲调整到的层次])
 参数：整数型，可以为以下常量之一： 1、#顶层； 2、#底层； 3、#最高层； 4、#次高层。如果被省略，默认为“#顶层”。
应用实例：1、_启动窗口.调整层次(#最高层) 或 _启动窗口.调整层次(3)
2、按钮1.调整层次(#顶层) 或 按钮1.调整层次(1)
//把“”调整到最高层；把“按钮1”调整到顶层。
[注：做个实验，在窗口上画一个“按钮1”，再画一个“按钮2”，然后把“按钮2”拖到“按钮1”上，会发现“按钮2”把“按钮1”遮住了！这就说明了两者的层次关系：“按钮2”在“按钮1”的上方，高一个层次。][注：#最高层——机器中所有程序的所有窗口的最前面；#顶层——本程序内所有控件的最前面。#底层 与#顶层 相对；#次高层 位于#最高层 下一层。][注：对于普通控件，通常调整到#顶层 就可以了；对于窗口这个特殊控件，有时需要调整到#最高层——在所有窗口的最前面。]

9、弹出菜单()
 功能：弹出菜单（通常是右键菜单）
语法：控件名称.弹出菜单( 欲弹出的菜单，[水平显示位置]，[垂直显示位置])
 参数：第一个参数是欲弹出的菜单；后两个是菜单弹出后左上角的横纵坐标，如省略将自动使用当前鼠标位置。
应用实例：1、弹出菜单（文件，，）
//在当前鼠标所在位置弹出“文件”菜单。这种写法最常见。这行代码通常都放在某控件的“鼠标右键被按下”或“鼠标右键被放开”事件处理子程序中。弹出菜单()前面通常不必带控件名称。

10、发送信息()、投递信息()
 功能：将指定信息发送到控件。
语法：控件名称.发送信息(信息值，参数1，参数2)
 控件名称.投递信息(信息值，参数1，参数2)
 参数：第一个参数是欲发送或投递的信息值；后两个是辅助信息。
应用实例：1、编辑框1.发送信息(769,0,0) //复制“编辑框1”中被选中的文本。
2、编辑框1.发送信息(770,0,0) //把剪贴板中的文本粘贴到“编辑框1”。
[注：发送信息、投递信息的区别：前者并等待且取回信息反馈值；后者不等待直接返回。]

11、取标记单元()
 功能：前窗口中具有指定标记数值文本的单元（控件）。
语法：控件名称.取标记单元(标记数值)
 参数：整数型，欲寻找单元的“标记”属性的数值形式。（“123”->123）
应用实例：1、取标记单元(123)
//如果此前令“按钮1”的“标记”属性为“123”，则上述代码的返回值为“按钮1”。

三、控件的通用“事件”

控件的通用“事件”主要有：1、鼠标左键被按下；2、鼠标左键被放开；3、被双击；4、鼠标右键被按下；5、鼠标右键被放开；6、鼠标位置被移动；7、按下某键；8、放开某键；9、字符输入；10、获得焦点；11、失去焦点。易语言中的可视控件，都有上述事件。除了这些通用事件，控件一般都还有自己的专有事件。

事件的产生由易语言系统全权负责。当某一事件产生时，系统将自动调用该事件所对应的“事件处理子程序”。编程者所要做的，只是根据需要选择要响应的事件，并在该事件的“事件处理子程序”中输入代码即可。
每一个事件都有它的产生时机。有的事件其产生时机非常明显，如鼠标左键被按下、鼠标左键被放开……等，就是在鼠标左键被按下或放开时产生；而有的事件其产生时机就不太明显，这个到时我会分别介绍。

在《易语言知识库》中，除了获得焦点和失去焦点，对其它事件的解释都有这么一句：“处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。” 相信大家会比较迷惑，让我们做个试验：在设计窗口中放一个编辑框控件，在“_编辑框1_鼠标右键被放开”中输入： 鸣叫() 再加一行代码： 返回(假) 运行程序，在编辑框中按右键时，只会有喇叭或音箱叫一声，却不再弹出快捷菜单了。（我们都知道，在编辑框中按下鼠标右键并放开时，通常会弹出一快捷菜单。） 分析一下为什么会这样呢？因为编辑框的“鼠标右键被放开”事件被我们半路拦截了，编辑框根本没有收到“鼠标右键被放开”事件，也就是说，被我们做了手脚，它还蒙在鼓里呢^_^ （再考虑一下，如果前面代码只写鸣叫()而不加返回(假)呢？结果是，在编辑框中右键放开时，先叫一声再弹出菜单。不信您试一试！例程）

下面逐个讲解控件的通用“事件”：

1、鼠标左键被按下
 事件的产生时机：鼠标左键被按下时。
 语法：逻辑型 _控件名称_鼠标左键被按下(横向位置，纵向位置，功能键状态)
 参数：前两个参数指示当前鼠标相对控件左上角的横纵坐标；最后一个参数“功能键状态”描述事件产生时功能键(Ctrl,Shift,Alt)的状态，其值可能为以下之一或之和：1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。例程。

2、鼠标左键被放开
 事件的产生时机：鼠标左键被放开时。
 语法/参数：同上

3、被双击
 事件的产生时机：被鼠标双击时。
 语法/参数：同上

4、鼠标右键被按下
 事件的产生时机：鼠标右键被按下时。
 语法/参数：同上

5、鼠标右键被放开
 事件的产生时机：鼠标右键被放开时。
 语法/参数：同上
//通过在此事件中，用弹出菜单()“方法”弹出右键菜单。例程。

6、鼠标位置被移动
 事件的产生时机：鼠标位置被移动时。
 语法/参数：同上
//当鼠标指针在控件上移动时，将连续产生一系列本事件。例程。

7、按下某键
 事件的产生时机：用户按下键盘上的任意键时。
 语法：逻辑型 _控件名称_按下某键(键代码，功能键状态)
 参数：“键代码”——被按下的键的ASCII码，均已被定义为常量，见常量表。
“功能键状态”——见“鼠标左键被按下”事件中的描述。
//常量表：见《易语言知识库》或 系统支持库。

8、放开某键
 事件的产生时机：用户放开键盘上的任意键时。
 语法：逻辑型 _控件名称_按下某键(键代码，功能键状态)
 参数：同上

9、字符输入
 事件的产生时机：用户按下键盘上的可打印字符键（包括回车、退格键）时。
 语法：整数型 _控件名称_字符输入(字符代码)
 参数：“字符代码”——被按下的字符键的ASCII码，均已被定义为常量，见常量表。
//本事件与按下某键、放开某键的区别：前者只接受可打印字符键；而后两者可接受所有键。
//“在用户事件处理子程序中，将事件处理完毕后可返回一个字符代码，用于替换将继续传递到所属对象上字符键事件中的字符代码；如果返回 0 ，则取消此事件，不再将此事件传递到所属对象上去；如果事件处理完毕后没有返回值，则将本字符键事件继续原样传递到所属对象上去。”——这是《易语言知识库》中的原话，不易理解。Liigo给大家举个例子：扔一个香蕉给猴子，它会高兴的大叫。但如果这个香蕉在半空被程咬金拦截了呢，猴子还会高兴的大叫吗？显然不会，而且它什么反应也没有，因为它压根儿就不知道有香蕉扔过来。有兴趣的请看例程。

10、获得焦点
 事件的产生时机：当控件获得输入焦点时。
 语法：_控件名称_获得焦点()
 //如果按钮上有一个黑色细点组成的虚框，或者编辑框中有光标在闪烁，表示它正在拥有输入焦点。其它控件类似。一台机器上的所有程序的所有窗口中，同一时刻有且只有一个控件拥有输入焦点。
 //本事件和下面失去焦点的事件一样，只有“可停留焦点的”控件才拥有，如：编辑框、画板、按钮、选择框、单选框、组合框、列表框、选择列表框、横向滚动条、纵向滚动条、滑块条、日期框、月历、驱动器框、目录框、文件框、颜色选择器、超级链接框、调节器、表格、数据源、图形按钮等。

11、失去焦点
 事件的产生时机：当控件失去输入焦点时。
 语法：_控件名称_失去焦点()

结束语：——第1节 控件的通用属性、方法和事件

1、我们逐个讲解了控件的通用属性、方法和事件。这些属性、方法和事件并不一定是每个控件都拥有，但多数都有，具有一定的通用性。了解、理解了通用属性、方法和事件后，以后接触某个控件时，就可以把学习重心移向它的“专有”属性、方法和事件了。

2、如果对个别的（甚至很多）属性、方法和事件一时不能理解，也是很正常的，不要担心。如果它很常用，后面一定还会出现；如果它不大常用，即便不懂又有什么关系呢！

3、属性、方法和事件是“控件的”属性、方法和事件，离开了控件，它们无从谈起。

4、“窗口”是一个特殊的控件。说它特殊是因为它不出现在工具箱中（插入新窗口要选择菜单“插入 ->新窗口”）。但它却和普通控件一样，拥有自己的属性、方法和事件。（而且您还会发现，控件的通用“方法”，全都是“窗口”控件的“方法”。）也可以这么说，编辑框、按钮、标签等等这些可视控件，都是广义上的“窗口”——了解API的朋友可能理解更深刻。

5、本节中提供了一些例程，多是演示某一个特征。但有时总会不可避免地涉及到其它方面的知识，请不必深究。

6、从下一节开始，我们将逐个学习易语言中的各个控件。控件是可视化编程的基础，不了解、不熟悉它们，编程时很难得心应手。学习的重点将是它们的“重要”和“常用”的属性、方法和事件。

（2002/5/10 初步完成第三章第一节，本节约用时两天，计20小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第2节 窗口

第三章：易语言控件 | 第二节：窗口 7 上一页 下一页 8
第二节：窗口 [上一节 下一节]

前面不只次的提到了，窗口是特殊的控件。说它特殊是因为它不出现在工具箱中（插入新窗口要选择菜单“插入 ->新窗口”）。但它却和普通控件一样，拥有自己的属性、方法和事件。（而且您还会发现，控件的通用“方法”，全都是“窗口”控件的“方法”。）也可以这么说，编辑框、按钮、标签等等这些可视控件，都是广义上的“窗口”——了解API的朋友可能理解更深刻。
每一个程序，至少有一个窗口。可见掌握它是有必要的。

本节内容：1、窗口的重要属性 2、窗口的重要方法 3、窗口的重要事件

一、窗口的重要属性
 窗口的重要属性有：名称、标题、边框、控制按钮、位置、图标、底色、底图、背景音乐、Esc键关闭、可否移动、随意移动、总在最前等等。

   ◆名称
程序的第一个窗口必然是“_启动窗口”，它是由易语言自动生成的，它的名称必须是“_启动窗口”，编程者不可改动。通过易语言主菜单“插入->新窗口”插入的窗口，将被自动命名为“窗口1”“窗口2”……，编程者可为它们重新命名。
易语言中的所有控件，除了“_启动窗口”，编程者都可以为其重新命名。为控件取一个有意义的名称，是一个好的习惯。我个人认为，一个好的名称 = 功能 + 控件类型，如“密码校验窗口”“关于窗口”等等。另外，切不可用代码改动控件的名称！

◆标题
显示于窗口标题栏上的文字。主要是给程序的使用者看的。

◆边框
窗口的边框有以下七种可选样式：0.无边框、1.普通可调边框、2.普通固定边框、3.窄标题可调边框、4.窄标题固定边框、5.镜框式可调边框、6.镜框式固定边框等。默认值为 2.普通固定边框。
所谓“可调”即窗口的大小可由程序使用者通过拖动鼠标调整；“固定”即固定窗口的大小，不允许程序使用者调整；“窄标题”即窗口的标题栏比常见的稍窄一些，且最左端没有图标、最右端只有 [image] ；“镜框式”即窗口的边框类似生活中的镜框。`
因为窗口的边框属性默认为是 2.普通固定边框，所以其大小不可调整——不可用鼠标拖动窗口边框的方法调整，如果单击最大化/最小化按钮，或者在代码中改变窗口的宽度和高度属性，窗口的大小还是会变的。

◆控制按钮、最大化按钮、最小化按钮
三个属性的值都只能为真或假。只有当控制按钮属性为真时，最大化按钮和最小化按钮才有意义。如果控制按钮为真，则最大化按钮和最小化按钮分别控制窗口的标题栏右端是否出现 [image] 和 [image] 按钮。如果控制按钮为假，则窗口连标题栏也不显示了。
默认情况下，控制按钮的值为真，而最大化按钮和最小化按钮的值为假，所以窗口的标题栏上只显示 [image] 按钮（没有 [image] 和 [image] ）。

◆位置
有三个可选值：0.通常 1.居中 2.最小化 3.最大化。默认值为1.居中。
0.通常——根据窗口的左边和顶边属性确定窗口在屏幕上的的显示位置，根据宽度和高度属性确定窗口的大小；1.居中——忽略窗口的左边和顶边属性，直接把窗口显示于屏幕中央（默认值）；2.最小化——最小化窗口到任务栏中（相当于单击了标题栏中的 [image] 按钮）；3.最大化——忽略窗口的左边、顶边、宽度和高度属性，以全屏方式显示窗口（相当于单击了标题栏中的 [image] 按钮）。

◆图标
用于指定显示于窗口标题栏最左端的图标。目前只支持16*16、32*32十六色的图标。
//如果没有为整个程序设置图标（通过易语言主菜单“程序->程序配置”），则会以“_启动窗口”的图标属性指定的图标作为最后生成的可执行文件的图标——如果也没有给“_启动窗口”设置图标属性呢，就以易语言默认的图标作为程序的图标。

◆底色
用于指定窗口的背景颜色。通常窗口是浅灰色的。当窗口有底图时，本属性无效。

◆底图、底图方式
用于指定窗口的背景图片。如果设置了该属性——此时窗口的底色属性不再生效——还可以用底图方式属性来控制图片的显示方式。底图方式的可选值有：0.图片居左上 1.图片平铺 2.图片居中，默认值为1.图片平铺。

◆背景音乐、播放次数
为窗口指定背景音乐，在窗口显示后即开始播放。支持WAV、MIDI格式的音乐文件。如果设置了该属性，还可以通过播放次数属性来控制音乐的播放次数：0.循环播放 1.仅播放一次 2.不播放，默认值为0.循环播放。

◆Esc键关闭
如果其值为真，可以通过按键盘上的ESC键关闭本窗口；如果其值为假，则不可以。默认值为真。

◆可否移动
如果其值为真，可以通过拖动窗口的标题栏来调整窗口的位置；如果其值为假，则不可以。默认值为真。

◆随意移动
如果其值为真，可以通过拖动窗口任意位置来调整窗口的位置；如果其值为假，则不可以。默认值为假。

◆总在最前
如果其值为真，窗口永远显示在屏幕的最前面（谁也遮不住它！）。默认值为假。

除此之外，窗口还有其它一些属性，不再一一介绍。

二、窗口的重要方法

窗口的重要方法有：激活()、置托盘图标()、弹出托盘菜单()。

◆激活()
功能：激活窗口——如果原来标题栏是灰色则变为蓝色。
语法：窗口名称.激活()
 应用实例：1、_启动窗口.激活() //激活“_启动窗口”
2、窗口1.激活() //激活“窗口1”
//如果在窗口未激活状态下调用本方法，将会激活窗口，并产生“被激活”事件；如果在窗口激活状态下调用本方法，不会产生“被激活”事件。例程。

◆置托盘图标()
功能：设置本程序在系统托盘中的图标。
语法：窗口名称.置托盘图标([图标数据]，[提示信息])
 参数：图标数据——指定出现于托盘中的图标，其值可为图标资源、图标字节集数据或图标文件名，如果省略本参数，表示清除已经设置了的托盘图标；提示信息——当把鼠标放到托盘图标上时，出现的提示文本（如上图）。
 应用实例：1、置托盘图标 ( #图标1， “***程序”)
2、置托盘图标( 图片框1.图片，“***程序”)
3、置托盘图标 (“d:\liigo.ico”， “***程序”)
4、置托盘图标(，“***程序”)
//123分别以三种方式指定图标数据（图标资源、图标字节集数据、图标文件名），1例更多用；4清除已经设置了的托盘图标。
//本方法通常在“_启动窗口”的“创建完毕”事件中以上述123例之一设置托盘图标，在“_启动窗口”的“将被销毁”事件中以4例清除已经设置了的托盘图标。即使您设置了托盘图标后，退出程序前没有清除，易语言将为您扫尾，自动为您清除托盘图标。例程。

◆弹出托盘菜单()
功能：弹出托盘菜单。
语法：窗口名称.弹出托盘菜单(欲弹出的菜单)
 应用实例：1、弹出托盘菜单(文件) //弹出“文件”菜单
//实际应用中，一般先在窗口“托盘事件”的处理程序中判断用户的操作类型（左键单击、左键双击，还是右键单击）。如果经判断用户是单击了右键（或单击了左键），则用“弹出托盘菜单()”方法弹出托盘菜单（如果经判断用户是双击了左键，一般要显示程序主窗口）。
//例如，“网络蚂蚁”的托盘图标，双击时显示主窗口，右击弹出托盘菜单，左击则没有反应。

三、窗口的重要事件

创建完毕、位置被改变、尺寸被改变、将被销毁、可否被关闭、托盘事件、被激活、首次激活、被取消激活、空闲、被显示、被隐藏等等。

◆创建完毕
事件的产生时机：当窗口及其中的所有控件均被创建后在显示之前产生此事件。注意是在“窗口显示之前”产生本事件。
//“创建完毕”事件是窗口最重要的事件，也是最常用的事件。通常在本事件的“事件处理子程序”中做一些关于本窗口的初始化工作。“_启动窗口”的“创建完毕”事件尤其重要，通常在里面做整个程序的初始化工作。

◆位置被改变
事件的产生时机：当窗口的位置被改变时产生此事件。

◆尺寸被改变
事件的产生时机：当窗口的尺寸被改变时产生此事件。
//这里是“位置被改变”“尺寸被改变”两事件的例程。

◆将被销毁
事件的产生时机：当窗口被销毁之前产生此事件。
//用户单击窗口右上角的 [image] 按钮，或执行到代码销毁()时，就会自动产生此事件。如果有本事件的处理代码，则先执行之，然后销毁窗口；否则直接销毁窗口。
//编程者通常在本事件的“事件处理子程序”中做一些收尾工作，例如检查有没有存盘，如果没存盘，给他个对话框问他要不要存盘。例程。

◆可否被关闭
事件的产生时机：在窗口关闭之前产生此事件，稍早于“将被销毁”事件。
//本事件有一个逻辑型返回值。如果在在本事件的“事件处理子程序”中返回假，表示不允许关闭窗口；如果返回真或不返回值，表示允许关闭窗口。（窗口要先关闭(从屏幕上消失)再销毁(从内存中消失)，所以“可否被关闭”稍早于“将被销毁”产生。）
//有时侯，程序的使用者是不小心按了 [image] 按钮，可能立刻就后悔了；而且有时侯程序可能因为某种原因不允许关闭窗口。这就是响应“可否被关闭”事件的时候了！例程。

◆托盘事件
事件的产生时机：当用户用鼠标单击或双击任务栏托盘中的图标——用“置托盘图标()”方法设置——时产生本事件。
//本事件有一个整数型参数“操作类型”，其值可能是如下之一：1.#左键单击；2.#左键双击；3.#右键单击。编程者可根据此参数判断出用户的击键动作，再做相应处理——比如是弹出菜单还是显示窗口等。例如，“网络蚂蚁”的托盘图标，双击时显示主窗口，右击弹出托盘菜单，左击则没有反应。例程。

◆被激活、首次激活、被取消激活
 事件的产生时机：当窗口被激活、首次激活、被取消激活时产生本事件。
//窗口的标题栏由灰色变为蓝色时，表示窗口被激活；由蓝色变为灰色时，表示被取消激活；首次激活即窗口被显示后第一次激活。首次激活事件在窗口被销毁之前只会产生一次，而被激活、被取消激活事件可能产生很多次。例程。

◆空闲
 事件的产生时机：当系统（CPU或操作系统或程序）空闲时产生本事件。
//本事件有一个整数型参数“已空闲时间”，用于告知编程者事件产生时，系统已经进入空闲状态的时间，单位为毫秒。用户程序在空闲状态下所进行的大工作量操作最好等到此值较大时进行。
//本事件有一个逻辑型的返回值。如果事件处理子程序返回假或者不返回值，在此次空闲期间系统将不再产生空闲事件（可以降低 CPU 占用率）。如果返回真，系统将继续产生空闲事件。
//“空闲”即系统（CPU或操作系统或程序）“有空了、清闲了”。通常在空闲事件的“事件处理子程序”中做一些后台处理工作。本事件不常用。

◆被显示、被隐藏
 事件的产生时机：当窗口被显示、被隐藏（比如令其可视属性为假）时产生本事件。
//被显示事件在窗口被销毁之前至少产生一次；被隐藏事件可能一次也不产生。例程。

结束语：——第二节 窗口

1、本节内容：窗口的重要属性、窗口的重要方法、窗口的重要事件。

2、再次声明，本节介绍的所有属性、方法、事件，没有必要全都一一搞清。学习要有重点。

（2002/5/12 下午初步完成第三章第二节，本节约用2天，计15小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第3节 按钮、标签、编辑框

第三章：易语言控件 | 第三节：按钮、标签、编辑框 7 上一页 下一页 8
第三节：按钮、标签、编辑框 [上一节 下一节]

本节主要内容：分别介绍按钮、标签、编辑框的重要属性方法与事件。

Ⅰ- 按钮
------------------------

按钮是Windows程序中最最常见的控件，几乎每一个窗口都少不了“确定”“取消”按钮，可见它的重要性。按钮在程序中所起的作用，通常是启动某一项动作或某一个功能。
按钮的重要“属性”有：名称、标题、禁止、可视、类型、图片、字体等。
按钮的重要“事件”有：被单击。
按钮没有专有“方法”。这个例程演示了按钮的大多数重要属性和事件。

一、按钮的重要属性

按钮的重要“属性”有：名称、标题、禁止、可视、类型、图片、字体等。下面将分别介绍：

◆名称
按钮的唯一标识。对任何控件的操作都要指定操作对象的名称。

◆标题
显示于按钮上的文字。

◆禁止
控制按钮可否被操作。其值只能为真或假，默认为假，即不禁止。

◆可视
控制按钮是否能被看到（是否显示在屏幕）上。其值只能为真或假，默认为真，即可被看到。

◆类型
有两个可选值：0.通常；1.默认。初始值为0。当在窗口上按下Enter键时，如果没有将窗口的“回车下移输入点”属性设置为真，则等同于按下了具有“默认”类型的按钮。因此具有“默认”类型的按钮在同一窗口上应当只有一个。“通常”类型的按钮无对应的操作默认键。类型=1 与 类型=2 的按钮在外观上有一些不同，如图。

◆图片
指定显示于按钮上的图片，支持BMP、JPEG、GIF、ICO、CUR等格式。如果设置了本属性，则按钮的标题属性无效——即图片将覆盖按钮上的文字。如果既想要图片，又想要文字呢？没有很好的办法，折衷的办法之一是做一个带文字的图片^_^。

◆字体
指定按钮标题文字的字体。注意文字颜色始终是黑色的，无法改变。

二、按钮的重要方法

按钮没有专有“方法”。

三、按钮的重要事件

◆被单击
事件的产生时机： 当按钮被鼠标左键单击时产生本事件。
//按钮“被单击”事件十分常用。前面也已经用了很多了。

Ⅱ- 标签
------------------------

标签也是非常常见的控件。它的作用主要是显示某些提示性文字，还可以用来美化程序界面。
标签的重要“属性”有：名称、标题、效果、边框、文本颜色、背景颜色、字体、底图、渐变背景方式、横向对齐方式、纵向对齐方式、是否自动折行、数据源、数据列。
标签没有专有“方法”，也没有专有“事件”。

一、按钮的重要属性

◆名称

◆标题

◆效果
有四个可选值：0.通常、1.凹入、2.凸出、3.阴影。描述标题文字，其外观如图。

◆边框
有七个可选值：0.无边框、1.凹入式、2.凸出式、3.浅凹入式、4.镜框式、5.单线边框式、6.渐变镜框式，默认为0，无边框。各样式外观如图所示。
当边框的值为6，即渐变镜框式时，以下几个属性将起作用：渐变边框宽度、渐变边框颜色1、渐变边框颜色2、渐变边框颜色3，分别指定渐变边框的三个颜色。其中渐变边框宽度默认为8，最小允许值为5。渐变边框颜色1/2/3分别指定渐变中的三种颜色。

◆文本颜色、背景颜色
指定标签上的文本的颜色，指定标签背景的颜色。

◆字体
指定标签上文本的字体。对字体颜色的设置无效，文本颜色由文本颜色属性指定。

◆底图
指定标签的背景图片，支持BMP、JPEG、GIF、ICO、CUR等格式。当为本属性指定了图片后，底图方式属性生效：0.图片居左上、1.图片平铺、2.图片居中，默认为1，图片平铺。
需要一提的是，当设置为“图片居中”时：如果图片的实际大小大于标签的大小，图片会自动缩放；如果图片小于标签则原样显示。

◆渐变背景方式
有九个可选值：0.无渐变背景、1.从上到下、2.从左到右、3.从左上到右下、4.从右上到左下、5.从下到上、6.从右到左、7.从右下到左上、8.从左下到右上。除0外，其余描述了背景颜色的渐变方向。默认值是0，无渐变背景。
当渐变背景方式为非0值时，以下几个属性将起作用：渐变背景颜色1、渐变背景颜色2、渐变背景颜色3，分别指定渐变背景的三个颜色。

◆横向对齐方式、纵向对齐方式
描述标签上的标题文字在标签中的位置。横向对齐方式有三个可选值：0.左对齐、1.居中、2.右对齐；纵向对齐方式也有三个可选值：0.顶对齐、1.居中、2.底对齐。这两个属性的默认值都是1，居中。

◆是否自动折行
控制是否自动换行，其值只能为真或假。默认情况下，该属性的值为假，即不会自动换行，如果标题文字太多，将截去两端（只显示中间）。
//如果要用标签控件显示大量文本，通常把是否自动折行属性置为真，并把横向对齐方式置为0.左对齐。（当是否自动折行为真时，文本在纵向上自动顶对齐，纵向对齐方式属性不再生效。）

◆数据源、数据列
通常在数据库操作中使用，用标签动态显示数据库中的数据。数据源属性用于指定一个与标签相连接的数据源控件的名称（该数据源控件通常应该拖放到程序界面中，它即代表了欲据操作的数据库）。数据列属性用于指定数据源中的数据列，可以是列名或以1开始的列序号文本。

标签没有专有“方法”，也没有专有“事件”。

Ⅲ- 编辑框
------------------------

编辑框控件是易语言中最基本的控件，很常用。它的作用通常是提供“可供程序使用者直接输入的”区域。
编辑框的主要属性有：名称、内容、起始选择位置、被选择字符数、被选择文本、是否允许多行、滚动条、调节器方式、转换方式、输入方式、最大允许长度、隐藏选择、文本颜色、背景颜色、字体、数据源、数据列等。
编辑框的主要方法有：加入文本()。
编辑框的主要事件有：内容被改变、调节扭被按下。

一、编辑框的重要属性

◆名称

◆内容
即编辑框中的文本。“内容”与“标题”的不同在于，前者可由程序使用者改动，而后者不可以。编辑框控件只有内容属性，没有标题属性。内容是编辑框控件最重要的属性。例程。

◆起始选择位置、被选择字符数、被选择文本
 当编辑框中的文本有一部分处于“反选”状态 [image] 时：起始选择位置属性描述了被选择文本的起始位置（从0开始）；被选择字符数属性描述了被选择文本的字符总数（汉字以两个字符计）；被选择文本属性包含了被选择的文本。如在上述编辑框中，起始选择位置=4，被选择字符数=5，被选择文本=“liigo”。（为什么起始选择位置=4呢？因为起始位置从0开始计，而每个汉字算两个字符。）
如果编辑框中没有文本被选中：则起始选择位置指出光标所在位置（从0开始）。
如果令起始选择位置 = -1，则将当前光标位置移动到文本尾部。如果令起始选择位置 = -1，则选择编辑框内的所有字符。如果在代码中为被选择文本赋值，则将编辑框中原来被选中的字符替换为新的字符串，如执行代码 被选择文本=“易语言” 后，原来被反选的“liigo”被替换为“易语言”。（注意：被选择文本属性只能在运行时设置，设计时不可改动。）例程。
默认情况下，起始选择位置、被选择字符数的值均为0，被选择文本的值为空文本（即“”）。

◆是否允许多行
 其值只能为真或假，默认为假。当本属性为假时，编辑框中只能输入一行文本。如果想要编辑框容纳多行文本，就需要把该属性改为真。

◆滚动条
 整数型，有以下4个可选值：0.无、1.横向滚动条、2.纵向滚动条、3.横向及纵向滚动条。默认为0，无滚动条。只有当编辑框的属性为真时，本属性才生效。
在多行编辑框中（即是否允许多行属性为真），我个人习惯把滚动条属性设为2，纵向滚动条。

◆调节器方式
 整数型，有三个可选值：0.无调节器、1.自动调节器、2.手动调节器。默认值为0，无调节器。本属性只有在单行方式（即是否允许多行属性为假）时才有效。
//调节器：如图所示，用鼠标单击上下箭头，即可自动变动编辑框中的数值。如果需要调节器，通常设置为1，自动调节器，这样单击上下箭头，编辑框中的数字会自动加减1，而且还可以用另外两个属性调节器底限值(默认为0)、调节器上限值(默认为100)来控制数字变化范围。如果自动调节器不能满足要求，还可以采用手动调节器（置调节器方式为2），这时需要响应编辑框的“调节钮被按下”事件。例程。

◆输入方式
整数型，有以下可选值：0.通常方式、1.只读方式、2.密码输入、3.整数文本输入、4.小数文本输入、5.输入字节、6.输入短整数、7.输入整数、8.输入长整数、9.输入小数、10.输入双精度小数、11.输入日期时间。默认值为0，通常方式。
//当输入方式=1时（只读方式），程序使用者无法编辑编辑框中的内容；当输入方式=2时（密码输入），输入编辑框中的字符将以“*”的形式显示（显示符号由编辑框的另一个属性密码遮盖字符控制）；当输入方式=3时，只有数字字符(0 1 2 3……9)和负号("-")才可以输入到编辑框中。其余值类推。

◆转换方式
整数型，有以下可选值：0.无、1.大写->小写、2.小写->大写。默认为0，不进行输入转换。
//如果转换方式=1，则输入到编辑框中的字母全都显示为小写；如果转换方式=2，则输入到编辑框中的字母全都显示为大写。所有输入转换只涉及字母，非字母字符原样显示，不进行任何转换。

◆最大允许长度
 整数型，控制编辑框中所能容纳的最大字符数。默认为0，表示不限制。

◆隐藏选择
 逻辑型，只能为真或假，默认为真。如果本属性设置为假，则即使编辑框失去输入焦点，原来反选的文字仍然反选。本属性通常无关紧要，一般不需设置。

◆文本颜色、背景颜色、字体
 分别控制编辑框的文本颜色、背景颜色和字体，不再一一介绍。

◆数据源、数据列
 跟标签的同名属性类似。

二、编辑框的重要方法

编辑框的重要方法只有一个：加入文本()。

◆加入文本()
功能：在编辑框的最后——而不管当前光标的位置——添加文本。
语法：编辑框名称.加入文本(欲加入文本，…)
 参数：参数可以是字符串（如“liigo”），或文本型变量。最后一个参数可重复添加。
 应用实例：1、编辑框1.加入文本(“爱情”)
2、编辑框1.加入文本(“爱情”，“如火”)
3、编辑框1.加入文本(“爱情”，“如火”，“燃烧”)
//加入文本()只是在编辑框尾部（最后一个字符后面）添加指定文本，不会自动另起一行。本“方法”在讲解编辑框的起始选择位置、被选择字符数、被选择文本属性时所提供的例程中已经用到了，此处不在另外举例。

三、编辑框的重要事件

编辑框的重要事件有：内容被改变、调节扭被按下。

◆内容被改变
 事件的产生时机：当编辑框中的内容被改变时产生此事件。
//用户向编辑框输入字符、或删除字符，或用代码改变编辑框的内容属性，都将引发“内容被改变”事件。例程。

◆调节扭被按下
 事件的产生时机：当用户按下编辑框的调节扭时产生此事件。
//本事件有一个整数型参数“按钮值”。如果用户按下的向上的箭头，按钮值=1；如果按下的是向下的箭头，按钮值=-1。这个例程是介绍调节器方式时已经提供了的。
//注：只有调节器方式=1(自动调节器)或2(手动调节器)时，编辑框才会出现调节扭。而只有按下了“手动调节器”的调节扭时，“调节扭被按下”事件才会触发。

结束语：——第三节 按钮、标签、编辑框

1、本节分别介绍了按钮、标签、编辑框的“主要”属性、方法和事件。
2、这三个控件在程序中出现的频率是最高的。
3、初学时，只要掌握最基本的就行：如按钮和标签的标题属性，编辑框的内容属性，按钮的被单击事件。只要会了这些，基本应用就不难。其它的属性方法事件可以放到后面陆续学习。
4、我看还有必要再声明一点：对控件的介绍这一章，讲的比较全，基本上属于资料汇集型。初学者没有必要一一搞懂，只要掌握最基本的就行。
5、我已经分类的很详细（但不是很准确^_^）：红色是最重要的，绿色次之，黑体更次之。首先要把红色的搞清楚，理解了，其它的都可以忽略过去。用到时再回来查嘛。

（2002/5/14 初步完成第三章第三节，本节约用2天，计15小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第4节 图片框、外形框、画板

第三章：易语言控件 | 第四节：图片框、外形框、画板 7 上一页 下一页 8
第四节：图片框、外形框、画板 [上一节 下一节]

本节主要内容：分别介绍图片框、外形框、画板的重要属性方法与事件。

Ⅰ- 图片框
------------------------

图片框的主要作用就是显示图片，用于装饰程序界面。
图片框的重要属性有：图片、显示方式、播放动画。其它如背景颜色、数据源、数据列等，前面都已涉及过，此后不再一一介绍。
图片框没有专有“方法”，也没有专有“事件”。

一、图片框的重要属性 [例程]

◆图片
指定要显示的图片，支持BMO、JPEG、GIF、ICO、CUR格式。可在设计期为该属性选择磁盘上的图片文件；也可在运行期为它赋值：1、图片框1.图片 ＝#图片1 2、图片框1.图片＝读入文件(文件名)。

◆显示方式
控制图片这图片框中的显示方式。整数型，可取以下值之一：0.图片居左上、1.缩放图片、2.图片居中，默认为0，图片居左上。

◆播放动画
控制播放GIF动画。逻辑型，只能为真或假，默认为真。在代码中设置该属性，可以控制动画的播放与否。本属性只在图片属性为GIF格式时有效。

图片框没有专有“方法”，也没有专有“事件”。

Ⅱ- 外形框
------------------------

外形框控件不是很重要，它主要用于装饰程序界面。
外形框的主要属性有：外形、线型、线宽、线条效果、线条颜色、填充颜色、背景颜色等。这些属性比较简单，在易语言设计窗口直接改动，就能立刻看到效果。见下图。[例程]

外形框没有专有“方法”和“事件”。

Ⅲ- 画板
------------------------

画板控件在易语言中十分重要，功能十分强大，充分发挥您的想象力，可以实现意想不到效果。当然，程序中不是非画板不可，离了它照样走路。初学者只要会最基本的用法就行了。
画板控件的主要属性有：自动重画、画笔颜色、刷子颜色、画笔类型、刷子类型、画出方式、画笔粗细、绘画单位、文本颜色、文本背景颜色、字体等。
画板控件的主要方法有：很多，见下面。
画板控件的主要事件有：绘画。

一、画板的重要属性

◆自动重画
控制画板是否自动重画其中的内容。逻辑型，只能为真或假，默认为假，即不自动重画。但在使用中，通常把该属性设为真。
//您可能对“自动重画”没有什么概念，没关系，先做下面的试验：在设计窗口放一个画板控件，保持默认属性；再放一个按钮，在按钮的“被单击”事件中向画板画图；运行程序，单击按钮后，画板中出现画图；可一旦画板被其它窗口遮住，里面的内容就消失了！例程。这是因为画板的自动重画属性默认为假的缘故，如果设置自动重画属性为真，就不会出现这种现象了。
//如果保持自动重画属性为假（默认值），一般都需要响应画板的“绘画”事件；通常为了省事，把它设为真。

画板的其它属性不再一一讲解。

二、画板的重要方法

画板的主要方法有：画图片、取图片、取图片宽度、取图片高度、写文本行、滚动写行、写出、定位写出、画点、画直线、画矩形、画圆角矩形、画渐变矩形、画多边形、画椭圆、画弧线、画弦、画饼、填充矩形、反转矩形区、取宽度、取高度、取点、取设备句柄、复制、置写出位置、清除等。

画板的方法很多，参数也通常较多，此处无法一一列出。另外，除了画图片、清除等少数方法外，其它都不大常用。这里有一个例程，演示了画板的大多数属性和方法的使用。本例程我费了很多心思的，其中注释是代码的２倍（不要想当然地认为教程中写的少，例程中就也很简单），如果您不看，我这一下午算白玩了！
//画板控件的方法，参数都是比较多的，难于记忆——记忆？这年头人越来越懒了，谁还愿记？！我教大家一个技巧：要使用哪个“方法”，先输入它的名称后回车（比如要画一条直线，先打上“hb1.hzx()”回车），然后，按键盘上的右箭头键，这时易语言会在该行下面分行列出所有的参数名称，再输入参数就方便多了。还有一个要记住，当打上“方法”的名称后，状态夹的“提示”子夹中立刻会出现相关的提示，请一定随时注意，多看几眼。
//画板是很好玩的东东，但没有必要钻到里面不出来。

三、画板的重要事件

画板的重要事件只有一个：绘画。

◆绘画
事件的产生时机：当画板中的全部或一部分区域需要被重新绘制时产生此事件。
//该事件的处理子程序有四个参数，分别提供目前画板中需要更新的矩形区域的左上角、右下角坐标。使用中通常可忽略这些参数（即一般不使用它们）。
//如果设置了画板的自动重画属性为假（默认值），则所有对画板的绘图操作，通常在本事件中进行。这样当画板被其它窗口遮住后又显示时，程序自动产生“绘画”事件，自动调用“绘画”事件的“事件处理子程序”，重新绘制画板中的内容，以确保画板中的内容永远不会消失。例程。

画板的使用就讲到这里，其它的全靠您自己摸索了——如果您有兴趣的话——虽然我很不情愿地说出这句话，但也是没办法的事，毕竟我的精力和时间也是有限的，我不可能讲遍所有的用法，再说我的想象力也一般，做出来效果也不会太好。说老实话，画板用好了可以使界面非常漂亮，但——总要一笔一笔的画，可视化几乎没有，所以要做的漂亮一些，往往需试验很多次。我做了一个用画板“画窗口”的例程（见右图，看像不像^_^），没什么实用价值，仅博您一笑。

作为画板控件的综合应用，我专门写一个较大的例程：围棋打谱程序。整个棋盘就是一个画板，一个个的棋子，都是作为图片逐一画上去的（画图片()）。

结束语：——第四节 图片框、外形框、画板

1、分别介绍了图片框、外形框、画板控件的属性方法和事件。

2、希望大家好好研究例程。

（2002/5/17 下午初步完成第三章第四节，本节约用3天，计15小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第5节 选择框、单选框、分组框

第三章：易语言控件 | 第五节：选择框、单选框、分组框 7 上一页 下一页 8

第五节：选择框、单选框、分组框 [上一节 下一节]

Ⅰ- 选择框
------------------------

选择框的重要属性有：标题、选中、标题居左、平面、按钮形式，此外还有：横向对齐方式、纵向对齐方式、文本颜色、背景颜色、字体、图片、数据源、数据列等。通常只用到标题和选中。
选择框的重要事件有：被单击。
选择框没有专有方法。

一、选择框的重要属性

◆标题 //显示于选择框中的文字，如图：

◆选中
逻辑型，只能为真或假，默认为假。如果选中=真，则选择框中打√号。在程序中既可以设置本属性，也可以读取本属性。

◆标题居左、平面、按钮形式
 三个属性都逻辑型的，只能为真或假，默认值都是假。
//其外观见右图：

选择框的其它属性，前面均已接触过，也不大常用，不再赘言。

二、选择框的重要事件

◆被单击
事件的产生时机：当选择框被单击时产生此事件。
//通常在该事件的“事件处理子程序”中读取选择框控件的选中属性。例程。

提示：如果同时使用多个“选择框”，通常把它们放在“分组框”中，作为一组——“分组框”控件本节就要讲到——这样界面更标准一些，更专业一些，如图。请下载这个例程看一下。

有一个跟“选择框”很相似的控件是“单选框”。与选择框不同的是，“单选框”在同一组中只能选择其中之一——单选，它的名字就说明了这一点。

Ⅱ- 单选框
------------------------

单选框的特点是：同一组单选框中，只能选择其中之一。

选择框的重要属性有：标题、选中、标题居左、平面、按钮形式，此外还有：横向对齐方式、纵向对齐方式、文本颜色、背景颜色、字体、图片、数据源、数据列等。通常只用到标题和选中。
选择框的重要事件有：被单击。
选择框没有专有方法。

   可以看到，单选框的属性事件与前面选择框的属性事件完全一致，外观类似，使用方法相同。请参考前面的介绍。这里仅提供一个使用单选框的例程。
//注：放在某个父控件（如“窗口”“分组框”）中的所有单选框被认为是同一组。如果需要把一系列单选框分为多组，则需要借助多个父控件（通常是分组框）。
//注：设计界面时，要先画分组框，然后把单选框画到分组框中。如果把单选框画到窗口上，再拖到不同的分组框上，是不对的，是不行的——因为这样的话，单选框仍是窗口的子控件而不是分组框的子控件，因而所有的单选框只是一组。如果不明白，就看这个例程吧。

Ⅲ- 分组框
------------------------

分组框的最大的作用就是充当选择框、单选框的父控件，用于形成不同的分组。
分组框的主要属性有：标题、对齐方式、文本颜色、背景颜色、字体等。
分组框没有专有方法，也没有专有事件。

一、分组框的重要属性

◆标题
显示于分组框左上角（也可能是右上角或上面中间，取决于对齐方式属性）的文字。

◆对齐方式
决定标题在分组框中的位置。整数型，有三个可选值：0.左边、1.居中、2.右边。各外观如图。默认值为0，通常不作改动。

在程序中，一般不对分组框做任何操作。前面讲选择框、单选框时，已多次用到了分组框，这里不再举例。

结束语：——第五节 选择框、单选框、分组框

1、选择框、单选框分别用于从一系列选项中选择多个或一个。

2、选择框、单选框一般需要设置标题、选中属性，并响应被单击事件。

3、分组框主要作为选择框、单选框的父控件，通常只需设置其标题属性。

（2002/5/17 初步完成第三章第五节，本节约用时1天，计6小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第6节 进度条、滑块条、横向滚动条、纵向滚动条

第三章：易语言控件 | 第六节：进度条、滑块条、横/纵向滚动条 7 上一页 下一页 8

第六节：进度条、滑块条、横向滚动条、纵向滚动条 [上一节 下一节]

Ⅰ- 进度条
------------------------

进度条指示操作的进度情况，通常用在耗时较长的操作（如拷贝文件或多重循环）中。
进度条的重要属性有：位置、最小位置、最大位置、方向、显示方式等。
进度条没有专有方法，也没有专有事件。

一、进度条的重要属性

◆位置
如右图所示，描述进度条的当前位置。整数型，它的值应该总在最小位置和最大位置之间。在程序中可以读取和设置该属性，注意为它赋值时，最好不

◆最小位置、最大位置
 如右上图所示，分别描述进度条的最小、最大位置。均为整数型，默认值分别为0和100。

◆方向
控制进度条是横向的还是纵向的。整数型，有两个可选值：0.横向、1.纵向，默认为0，横向。通常横向的比较多一些，纵向的也有，比如安装程序时界面左下角的三个进度条就是纵向的。

◆显示方式
控制进度条是分块显示还是连续显示。整数型，有两个可选值：0.分块、1.连续，默认为0，分块显示（外观见前图）。连续显示（显示方式=1）的外观如图：

这是一个使用进度条控件的例程。

Ⅱ- 滑块条
------------------------

滑块条的主要属性有：位置、最小位置、最大位置、行改变值、页改变值、方向、刻度类型、单位刻度值、允许选择、首选择位置、选择长度等。
滑块条的主要事件有：位置被改变。
滑块条没有专有方法。

一、滑块条的重要属性

◆位置
描述滑块条的当前位置，与进度条的同名属性含义类似。整数型。

◆最小位置、最大位置
如图所示，分别描述进度条的最小、最大位置。均为整数型，默认值分别为1和10。

◆行改变值、页改变值
行改变值——指定当用户拖动滑块（或滑块条拥有焦点时按箭头键）时滑块条位置每次增减的数值，整数型，默认为1。页改变值——指定当用户在滑块条的空隙处单击（或滑块条拥有焦点时按翻页键(PageUp,PageDown)）时滑块条位置增减的数值，整数型，默认为5。

◆方向
控制滑块条是横向的还是纵向的。整数型，有两个可选值：0.横向、1.纵向，默认为0，横向。

◆刻度类型、单位刻度值
刻度类型——控制刻度出现在滑块条中的位置。整数型，可为以下值之一：0.无、1.上/左、2.下/右、3.双向。各值的含义是：0-没有刻度，1-刻度在上边（当滑块条为横向滑块条时）或左边（当滑块条为纵向滑块条时），2-刻度在下边（当滑块条为横向滑块条时）或右边（当滑块条为纵向滑块条时），3-两边都有刻度。默认值为2，下/右。
单位刻度值——相邻刻度之间的位置差。整数型，默认为1。

◆允许选择、首选择位置、选择长度
默认情况下，允许选择为假，、均不生效（首选择位置、选择长度只有在允许选择=真时才有效）。右图是设置允许选择=真、首选择位置=0、选择长度=8后的滑块条外观。（我暂时想不出它有什么用^_^）

二、滑块条的重要事件

◆位置被改变
事件的产生时机：当滑块的位置被改变（如用户拖动滑块，或在滑块条拥有输入焦点时按箭头键或翻页键）时产生此事件。用代码改动滑块条的位置属性不会引发该事件。
通常在此事件的处理子程序中，读取滑块条的位置属性，并做相应操作。

这里有一个使用滑块条的例程（调色板程序）。

Ⅲ- 横向滚动条 [image] 、纵向滚动条
---------------------------------------------------

横向滚动条、纵向滚动条虽然是两个控件，但它们所有的属性都是一致的，使用方法也相同。它们之间所不同的，也就是一个横向、一个纵向而已。下面把它们放在一起介绍。

滚动条的主要属性有：位置、最小位置、最大位置、行改变值、页改变值、允许拖动跟踪。
滚动条的主要事件有：位置被改变。
滚动条没有专有方法。

一、滚动条的重要属性

◆位置、最小位置、最大位置
 各属性含义与进度条、滑块条的同名属性基本一致，如图。

◆行改变值、页改变值
行改变值——指定当用户拖动滑块（或滚动条拥有焦点时按箭头键）时滚动条位置每次增减的数值，整数型，默认为1。页改变值——指定当用户在滚动条的空隙处单击（或滚动条拥有焦点时按翻页键(PageUp, PageDown)）时滚动条位置增减的数值，整数型，默认为10。

◆允许拖动跟踪
控制当用户拖动滚动条的滑块过程中是否产生“位置被改变”事件。逻辑型，只能为真或假，默认为真。如果本属性为假，则用户拖动滚动条的滑块“过程中”不会产生“位置被改变”事件，只在拖动“结束后”才产生一次“位置被改变”事件。

二、滚动条的重要事件

◆位置被改变
事件的产生时机：当滚动条的位置被改变（如用户拖动滑块，或在滚动条拥有输入焦点时按箭头键或翻页键）时产生此事件。用代码改动滚动条的位置属性不会引发该事件。
通常在此事件的处理子程序中，读取滚动条的位置属性，并做相应操作。

这里有一个综合应用横向滚动条、纵向滚动条的例程（图片浏览程序，推荐）。

结束语：

1、进度条、滑块条、横向滚动条、纵向滚动条这四个控件在属性和事件上非常相似：都有位置、最小位置、最大位置等重要属性；除了进度条以外，还都有“位置被改变”事件。

2、至于哪种情况下用哪一个控件，就见仁见智了。首先进度条控件主要用于显示进度，程序使用者无法对它进行操作（编程者用代码操作当然可以），它只能用于输出，而不能用于输入（即只是给人看的）。滑块条、滚动条则多用于输入，通常的分工是滑块条用于取得某个值或系数，滚动条用于滚动其它控件。

（2002/5/18 初步完成第三章第六节，本节约用时1天，计6小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第7节 时钟、通用对话框、打印机

第三章：易语言控件 | 第七节：时钟、通用对话框、打印机 7 上一页 下一页 8

第七节：时钟、通用对话框、打印机 [上一节 下一节]

Ⅰ- 时钟
------------------------

   时钟可以说是最简单又最常用的控件之一。它是非可视控件，即在程序运行时，用户是看不到它的。时钟最大的特点（也是特色）是：每隔一定时间，自动产生一个“周期事件”事件。
 时钟的主要属性有：时钟周期。
时钟的主要事件有：周期事件。
时钟没有专有方法。

一、时钟的重要属性

◆时钟周期
控制相邻两“周期事件”的间隔时间。整数型，单位是毫秒。只有时钟周期属性大于0，时钟控件才会自动产生“周期事件”；如果该属性等于0，则时钟不再产生“周期事件”（即所说的“停止时钟”）；时钟周期不能为负值。
//时钟周期属性的值越小，“周期事件”就产生的越频繁。但是如果时钟周期太小(<55)就不同了，比如令时钟周期 = 1 与 令时钟周期 = 55 其实是等效的。为什么呢？——
//答：时钟控件是IBM PC硬件和ROM BIOS构造的定时器逻辑的一个相当简单的扩展。PC的ROM初始化Intel8259定时器芯片来产生硬件中断08H(这个中断有时称为"定时器滴答"中断)。中断08H每隔54.925毫秒产生一次(即大约每秒中断18.2次)。系统硬件决定了时钟控件的分辨率只有54.925（≈55）毫秒。

二、时钟的重要事件

◆周期事件
事件的产生时机：每隔一定时间（由时钟周期指定）自动产生此事件。
//程序运行后，会自动执行本事件的处理子程序中的代码——前提是时钟周期 > 0 。如果时钟周期 = 0 ，就意味着“停止时钟”，即停止产生“周期事件”。（当此后再次大时钟周期赋 >0 的值时，时钟又会重新“启动”。）例程(如图，通过使用此例程，可对时钟周期的大小有一定的感性认识)。
//响应本事件的代码，通常都是比较短小的（至少执行时间不能大于时钟周期）——因为这些代码要被连续重复执行。

时钟控件的应用提示：“周期事件”是必须响应的；时钟周期属性也是必须设置的——可以在设设期或运行期；时钟周期不要太小，否则会过多地占用系统资源；“周期事件”中的代码执行时间不能太长，否则可能引起程序崩溃（所谓的“程序没有响应，是否强行关闭……”）。

Ⅱ- 通用对话框
-----------------------------

通用对话框控件也是非可视控件。通过设置的“类型”属性，它可以被用作“打开文件对话框”“保存文件对话框”“字体选择对话框”“打开帮助对话框”等。它提供的对话框，是Windows的标准对话框。
通用对话框的主要属性有：类型、文件名、过滤器等。
通用对话框的主要方法有：打开。
通用对话框没有专有事件。

一、通用对话框的重要属性

◆类型
控制打开的对话框的类型。整数型，有四可选值：0.打开文件、1.保存文件、2.字体选择、3.打开帮助，默认为1，打开文件。类型是通用对话框控件最重要的属性，如果需要的不是“打开文件对话框”（默认类型），就必须事先设置该属性。

-----------------------------------------------------------

以下属性在类型 = 0，即为“打开文件对话框”时有效：

◆文件名：用户在打开文件对话框中指定的文件（含全路径及扩展名）。

◆标题：出现于打开文件对话框标题栏中的文字（默认为“打开”）。

◆过滤器、初始过滤器
首先说明什么是“过滤器”。请看右图：图中红线圈定的部分，就是由“过滤器”属性所控制的。
过滤器——文本型，由单个或多个“成对的文本串”组成。每对文本串由两部分组成：第一部分描述显示形式，第二部分指定实际的过滤匹配符。所有各文本串之间用“|”隔开。用文字形容起来太枯燥了，还是看下面的应用实例：
●通用对话框1.过滤器=“文本文件(*.txt)|*.txt”
●通用对话框2.过滤器=“文本文件(*.txt)|*.txt|所有文件(*.*)|*.*”
●通用对话框3.过滤器=“网页文件(htm/html)|*.htm;*.html|所有文件(*.*)|*.*”
[注：第3个应用实例中，“*.htm”“*html”之间的是半角分号“；”。各实例效果见下图：]

稍微做一些解释。实例1中定义了一个过滤器，过滤 *.txt 文件，即只有*.txt文件出现于对话框的主体显示区(当然还有子目录)，其它类型的文件全部被过滤掉。实例2和实例3中各定义了两个过滤器。其中实例3的第一个过滤器，过滤两种扩展名的文件。
大家都注意到了，每个过滤器是由“|”隔开的两部分组成的，前一部分描述显示形式，后一部分指定实际的过滤匹配符。各过滤器之间也是以“|”隔开的。
这里有应用上述实例的例程，请下载参考。

初始过滤器——对话框打开时，默认使用的过滤器的索引值（0为第一个过滤器）。整数型，默认为0。本属性只有在设置了过滤器属性后才有效。（如果为某个对话框设置了多个过滤器，就有可能需要设置初始过滤器。）

◆默认文件后缀
指定当用户没有输入文件的后缀名称时所自动使用的文件后缀名称。当通用对话框的类型=1（保存文件对话框）时，本属性更有用一些，因为有很多人没有输入文件扩展名的习惯。

◆初始目录
对话框第一次打开时，自动跳转到的目录。可通过在打开对话框前加上一行代码：通用对话框1.初始目录 = 取当前目录() 使对话框打开时自动处于当前目录。例程。

◆创建时提示
如果用户指定了一个不存在的文件名称，是否提示用户即将创建它。逻辑型，只能为真或假，默认为假。默认情况下，如果用户指定了不存在的文件名，只会警告说“找不到”指定文件。设置该属性为真后，如果用户指定了不存在的文件名，除了警告“找不到”指定文件外，还将询问是否创建新文件。

◆文件必须存在、目录必须存在
是否允许用户指定一个不存在的文件或目录。逻辑型，只能为真或假，默认值均为真。

◆不改变目录
在对话框关闭后再次打开时，是否自动返回到“第一次打开对话框时的”文件目录。逻辑型，只能为真或假，默认为假。

-----------------------------------------------------------

以下属性在类型 = 1，即为“保存文件对话框”时有效：

◆文件名、过滤器、初始过滤器、初始目录、默认文件后缀、目录必须存在、不改变目录等属性与“打开文件对话框”同名属性含义相同。这里仅提供一个在“保存文件对话框”中使用默认文件后缀的例程。

◆文件覆盖提示
如果用户指定了一个已经存在的文件，是否询问用户确定覆盖此文件。逻辑型，只能为真或假，默认值为真。

-----------------------------------------------------------

以下属性在类型 = 2，即为“字体选择对话框”时有效：

◆字体名称、字体大小、字体颜色、加粗、倾斜、下划线、删除线
使用时，通常不是为这些属性赋值，而是在程序使用者点击“字体选择对话框”中的确定按钮后读取它们的值。例程。

-----------------------------------------------------------

以下属性在类型 = 3，即为“打开帮助对话框”时有效：

◆帮助文件名

◆帮助命令

◆帮助标志值

二、通用对话框的重要方法

◆打开
功能：打开通用对话框（把对话框显示到屏幕上）。
返回一个逻辑值。对于类型为“打开文件”、“保存文件”、“字体选择”的对话框，如果为真，表示用户已通过该对话框输入了有效数据，否则表示用户取消了该对话框，且没有输入任何有效数据。对于类型为“打开帮助”的对话框，如打开帮助成功则返回真，否则返回假。
应用实例：如果真(通用对话框1.打开()) …[操作代码]… 如果真结束
 //关于打开()，前面的例程都用到了，请参考之。

Ⅲ- 打印机
------------------------

打印机是重要的输出控件。它是一个非可视控件。

一、打印机的重要属性

打印机的重要属性有：打印作业名、打印份数、多份打印方式、最小页号、最大页号、首页页号、末页页号、打印选择区、左边空、右边空、顶边空、底边空、当前页号、已打印份数、打印区宽度、打印区高度、打印被中止等，其它属性如：画笔颜色、刷子颜色、画笔类型、刷子类型、画出方式、画笔粗细、绘画单位、文本颜色、文本背景颜色、字体等，与画板控件的同名属性含义相同。

二、打印机的重要方法

打印机的重要方法有：开始打印、结束打印、取消打印、换页、开始下一份等，其它方法如：画图片、取图片宽度、取图片高度、写文本行、写出、定位写出、置写出位置、画点、画直线、画矩形、画圆角矩形、画渐变矩形、画多边形、画椭圆、画弧线、画弦、画饼、填充矩形、取宽度、取高度、取设备句柄等与画板控件的同名方法用法相同，只不过是一个“画”在画板上、一个“画”在打印纸上而已。

我们发现，打印机控件除了自己专有的属性和方法外，还有很多属性和方法与画板控件的属性方法完全一致。如果您画板用得比较好，打印机也就轻车熟路了。
[注：我这里没有打印机，所以从来没真正用过打印机控件，不敢盲目介绍它的用法。]

结束语：——第七节 时钟、通用对话框、打印机

（2002/5/20 初步完成第三章第七节，本节约用时1天半，计9小时。）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第8节 组合框、列表框、选择列表框

第三章：易语言控件 | 第八节：组合框、列表框、选择列表框 7 上一页 下一页 8

第八节：组合框、列表框、选择列表框 [上一节 下一节]

Ⅰ- 组合框
------------------------

组合框有很有用的控件
组合框的重要属性有：类型、列表项目、内容、现行选中项、列表数值、自动排序、行间距等。
组合框的重要方法有：取项目数、取项目文本、置项目文本、加入项目、插入项目、删除项目、取顶端可见项目、置顶端可见项目、取项目数值、置项目数值、选择、清空等。
组合框的重要事件有：列表项被选择、编辑内容被改变、将弹出列表、列表被关闭、双击选择等。

一、组合框的重要属性

◆类型
整数型，有3个可选值：0.可编辑列表式、1.可编辑下拉式、2.不可编辑下拉式，默认值为1，可编辑下拉式。通常用到的是“可编辑下拉式”“不可编辑下拉式”两种类型的组合框。
//“可编辑”即允许用户向组合框输入文本，“不可编辑”则不允许。

◆列表项目
指定组合框中各项目文本。本属性只能在设计期从弹出的“列表项管理对话框”中设置。本属性一般是必须设置的。也可以在程序运行时通过加入项目、插入项目、删除项目等方法维护组合框的列表项。
//所谓“项目”，也就是组合框中的“行”。

◆内容
组合框中的文本。类似于编辑框控件的内容属性。
//该属性在组合框类型为“不可编辑下拉式”时，只能读取而不能设置。

◆现行选中项
当前被选中的项目的索引，整数型。如果本属性为-1，则表示没有列表项被选中。（注：组合框的第一个项目的索引为0。）

二、组合框的重要方法

组合框控件的方法一般用的较少。下面就要介绍到的列表框控件，拥有跟组合框方法同名的所有方法。所以对于这些方法，将留到介绍列表框时一并讲解。

三、组合框的重要事件

◆列表项被选择 在选择了某个列表项时产生此事件。

◆编辑内容被改变 在用户向组合框中输入文本时产生此事件。

◆将弹出列表 在组合框的下拉列表部分即将弹出之前产生此事件。

◆列表被关闭 在组合框的下拉列表部分被关闭后产生此事件。

◆双击选择 在用户双击了组合框的某列表项时产生此事件。

对于组合框控件，一般不需要特别复杂的操作（通常都需要设置列表项目和现行选中项属性）。例程1，例程2。

Ⅱ- 列表框
------------------------

列表框的重要属性有：列表项目、现行选中项、允许选择多行、行间距、多列、自动排序、列表数值等。
列表框的重要方法有：清空、取项目数、取项目文本、置项目文本、加入项目、插入项目、删除项目、取焦点项目、置焦点项目、选择项目、是否被选择、取顶端可见项目、置顶端可见项目、取项目数值、置项目数值、取已选择项目数、取所有被选择项目、选择等。
列表框的重要事件有：列表项被选择、双击选择。

一、列表框的重要属性

◆列表项目 用于在界面设计阶段设置列表框的原始项目。

◆现行选中项
指定列表框中现行被选中列表项目的位置，位置值从0开始，-1表示现行没有被选中的列表项。如果“允许选择多项”属性为真，则本属性无效，其值恒为 -1。可在设计期设置或在运行期设置和读取该属性的值。

◆允许选择多行 逻辑型，只能为真或假，默认为假。

◆行间距 指定列表框的各行之间的间距。整数型，默认值为1。

◆多列 控制列表框是否以多列显示。逻辑型，只能为真或假，默认为假。

◆自动排序 控制是否对列表框中的各项目自动排序。逻辑型，只能为真或假，默认为假。

◆列表数值 指定与各列表项目相关联的数值，该数值在程序中可以被取出或修改。

以上属性中，除列表项目、现行选中项外，其它属性初学者都可以不与理会。

二、列表框的重要方法

以下各方法的参数中，有多处用到“项目索引”。所有“项目索引”，也就是为列表框中的所有项目（所有行）编制的一个序号。“项目索引”从0开始，如用0表示第一个项目，用1表示第二个项目……

◆清空 清除列表框中的所有项目。应用实例：列表框1.清空()

◆取项目数
 应用实例：x=列表框1.取项目数() //整数型变量x中保存了列表框1中的项目数（总行数）。

◆取项目文本、置项目文本
 s1=列表框1.取项目文本(0) s2=列表框1.取项目文本(列表框1.现行选中项)
//文本型变量s1、s2中分别保存了“第一个”和“当前选中”的项目的文本。
列表框1.置项目文本(0，“liigo”)
列表框1.置项目文本(列表框1.现行选中项，“liigo”)
//分别把列表框中的“第一个项目”和“当前选中的项目”的文本改为“liigo”。

◆加入项目、插入项目、删除项目

◆取焦点项目、置焦点项目

◆选择、是否被选择

◆取顶端可见项目、置顶端可见项目

◆取项目数值、置项目数值

◆取已选择项目数、取所有被选择项目

◆选择

三、列表框的重要事件

◆列表项被选择
事件的产生时机：当前所选择的列表项或区域被改变即产生此事件。例程。
//通常在此事件中读取列表框的现行选中项属性，然后作相应操作。

◆被双击
事件的产生时机：当用鼠标左键双击列表框时产生此事件。

列表框的综合应用：例程1、例程2、例程3。其中例程2是我以前写的“网页编辑器”的一部分，例程3是我写的“汇编编辑器”。

Ⅲ- 选择列表框
-------------------------------

选择列表框的重要属性有：列表项目、现行选中项、单选、多列、行间距、自动排序、项目数值等。
选择列表框的重要方法有：选中项目、是否被选中、允许、是否被允许等，其它方法与列表框控件的同名方法类似。
选择列表框的重要事件有：选中状态被改变、列表项被选择、被双击。

一、选择列表框的重要属性

◆列表项目
用于设置选择列表框的初始项目。

◆现行选中项
指定列表框中现行拥有焦点的项目的索引。索引值从0开始，-1表示现行没有被选择的列表项。可在设计期设置或在运行期设置和读取该属性的值。
//注意：本属性仅指定现行拥有焦点（被高亮显示）的项目的索引，与该项目是否被“被选中”无关（“被选中”即在项目前的方框或圆中打√或点·）。

◆单选、多列
均为逻辑型。效果如右图：

二、选择列表框的重要方法

◆选中项目
功能：使选择列表框中的某一项目（某一行）被选中（打√或点·）。
参数：第一个参数指定要进行操作的项目的索引（从0开始，即第一个项目的索引是0，依次类推）；第二个参数是逻辑型值，指定是“选中”（真）还是“取消选中”（假）。第二个参数可以被省略，省略时默认为真。
应用实例：1、选择列表框1.选中项目(0,真) 或 选择列表框1.选中项目(0,)
 2、选择列表框1.选中项目(1,假)
 //实例1：选中选择列表框的第一个项目；实例2：取消选中第二个项目。

◆是否被选中
功能：判断某一项目是否被选中，如果被选中返回真，否则返回假。
参数：指定要进行操作的项目的索引（从0开始，即第一个项目的索引是0，依次类推）。
应用实例：1、x=选择列表框1.是否被选中(0)
2、x=选择列表框1.是否被选中(3)
 //分别判断选择列表框1的第一项、第四项是否被选中。如果被选中则x的值为真，否则为假（x应事先定义为逻辑型变量）。

三、选择列表框的重要事件

◆选中状态被改变
 事件的产生时机：当点击某项目使其状态由“选中”变为“取消选中”或由取消选中”变为“选中”时产生此事件。（在程序运行时用代码改变项目的状态不会引发此事件。）

这里有一个例程演示了选择列表框控件的常用属性方法和事件。

结束语：——第八节

（2002/5/22 晚初步完成第三章第八节，本节用时约3天，计15小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第9节 颜色选择器、超级链接框、调节器

第三章：易语言控件 | 第九节：颜色选择器、超级链接框、调节器 7 上一页 下一页 8

第九节：颜色选择器、超级链接框、调节器 [上一节 下一节]

Ⅰ- 颜色选择器
-----------------------------

   颜色选择器控件在运行时提供一个下拉框，用户可在其中选择任意一种颜色。右图是其运行效果图。
颜色选择器的重要属性有：颜色、允许透明。
颜色选择器的重要事件有：颜色被改变。
颜色选择器没有专有方法。

一、颜色选择器的重要属性

◆颜色
本属性中保存了颜色选择器中当前被选择的颜色。可在程序运行中把它赋给其它控件的文本颜色、背景颜色等属性，如：标签1.文本颜色＝颜色选择器1.颜色，标签2.背景颜色＝颜色选择器1.颜色。
//颜色其实是一个整数型的值（可能有人根本不知道这一点），但通常并不关心它的值。

◆允许透明
控制下拉颜色表中是否出现透明色。逻辑型，只能为真或假，默认为假，即不出现透明色。
//因为目前易语言控件的大部分属性不支持透明色（画板的文本背景颜色除外），通常本属性保持默认值（假）就可以了。

二、颜色选择器的重要事件

◆颜色被改变
事件的产生时机：当用户从下拉颜色表中选择了一个颜色后即产生此事件。
在本事件的“事件处理子程序”中，读取颜色选择器的颜色属性，即可获得用户选择的颜色。如：标签1.文本颜色＝颜色选择器1.颜色，标签2.背景颜色＝颜色选择器1.颜色。

这是一个使用颜色选择器控件的例程。

Ⅱ- 超级链接框
----------------------------

通过超级链接框控件，可以从程序中链接到互联网（因特网）或本机中的其它程序、目录。
超级链接框的重要属性有：标题、类型、电子信箱地址、Internet地址、文本颜色、热点颜色、访问后的颜色，此外还有背景颜色、字体等。
超级链接框的重要方法有：跳转()。
超级链接框没有专有事件。

一、超级链接框的重要属性

◆标题
显示于超级链接框中的文字。文本型。如果未指定标题文本，则默认以电子信箱地址或 Internet地址文本作为标题文本。

◆类型
控制超级链接框的类型。整数型，有两个可选值：0.电子信箱地址、1.Internet地址，默认为0。当类型=0时，超级链接框的另外一个属性电子信箱地址有效；当类型=1时，Internet地址属性有效。
◆电子信箱地址——指定链接到的电子信箱地址。当用户点击超级链接框时，将自动启动默认的邮件发送程序（Foxmail、Outlook等），并将“收件人”地址置为本属性指定的文本。
◆Internet地址——指定链接到的Internet地址。当用户点击超级链接框时，将自动启动默认的网络浏览器（IE、Netscape、Opera等），并链接到本属性指定的网址。[注1：为本属性指定一个目录(如“C：\”)或一个程序(如“Notepad.exe”)，也能够自动切换或运行之； 注2：本属性的输入字为“INTERNETdz”(原为字母的全部大写，汉字声母小写)，如 超级链接框1.Internet地址 = “www.eyuyan.com”输入时可写为 cjljk1.INTERNETdz="www.eyuyan.com"；注3：本属性的英文名称是“url”，如上行代码也可这样输入 cjljk1.url="www.eyuyan.com"。]
[提示：每个属性除了中文名称外，还都有一个英文名称。绝大多数情况下，用中文名称的首拼输入是最简单的，但也有例外，比如Internet地址用英文名称输入就更简单一些。查看工作夹（位于易语言主窗口左侧）的支持库子夹，点击“数据类型”分类下的各控件名称，在状态夹（位于易语言主窗口下面）的提示子夹即可看到对所有属性的介绍，包括属性的英文名称。]

◆文本颜色、热点颜色、访问后的颜色
 文本颜色——通常情况下的标题文本颜色，默认为蓝色；热点颜色——当鼠标移动到超级链接框上方（这时鼠标指针变为手形）时标题文本的颜色；访问后的颜色——当超级链接框被点击过之后，标题文本的颜色，默认为红褐色。

二、超级链接框的重要方法

◆跳转()
功能：跳转到指定的邮件或 Internet 地址。
当超级链接框被鼠标点击时，它会自动跳转到相应地址，不必显式调用跳转()方法。
使用本方法，到达到用代码启动跳转的目的（比如可通过菜单或按钮中链接到网站或发邮件，这时通常把超级链接框隐藏起来(置可视属性为假)）。后面提供的例程有类似的例子。

超级链接框的使用例程。

Ⅲ- 调节器
------------------------

调节器控件不是很常用。（编辑框控件也有调节器，还记得吗？——设置调节器方式属性。）

一、调节器的重要属性

◆方向
控制调节器是横向还是纵向。整数型，可为以下值之一：0.横向、1.纵向，默认为1，纵向。见右图。

◆热点跟踪
逻辑型，只能为真或假，默认为假。如果调节器的热点跟踪属性为真，则当鼠标指针移动到调节器的按钮上时，箭头的颜色会由黑色变为蓝色，如图。

三、调节器的重要事件

◆调节钮被按下
 事件的产生时机：当调节器控件的调节钮被按下时产生此事件。
本事件有一个参数“按钮值”。如果按下的是调节器的向上/右箭头按钮，它的值为 1；如果按下的是调节器的向下/左箭头按钮，它的值为 -1。在本事件的处理子程序中可直接使用该参数。例程。
//使用调节器控件，本事件是必须响应的。

结束语：

（2002/5/24 中午初步完成第三章第九节，本节约用时两天，计5小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第10节 选择夹、图形按钮、影像框

第三章：易语言控件 | 第十节：选择夹、图形按钮、影像框 7 上一页 下一页 8

第十节：选择夹、图形按钮、影像框 [上一节 下一节]

Ⅰ- 选择夹
------------------------

   选择夹是重要的控件。一个选择夹可以拥有多个子夹，每一个子夹中都可以单独摆放其它控件，各子夹互不影响。利用选择夹可以在相对较小的空间内摆放相对较多的控件，这为我们充分利用空间提供了一套可选方案。（选择夹、选择框都是易语言控件，一字之差，外形却大不相同，如图所示。）
选择夹的重要属性有：子夹管理、现行子夹、表头方向、允许多行表头、隐藏自身等。
选择夹的重要方法有：取子夹数目()、取子夹名称()、置子夹名称()。
选择夹的重要事件有：子夹被改变、将改变子夹。

一、选择夹的重要属性

◆子夹管理
仅用于设计期，提供一个“子夹管理对话框”(右图)，以设置选择夹的各子夹。本属性通常是必须设置的。
右图所示的对话框，为选择夹设置了七个子夹，各子夹名称分别为“易语言”“C/C++”“Pascal”……等。

◆现行子夹
指定现行“被选中”子夹的索引，索引值从0开始。整数型。在程序中既可以读取该属性，也可以为该属性赋值（为其赋值相当于切换子夹）。本属性在设计期无效，仅用于运行期。例程。
//所谓“索引”，就是各子夹的编号，编号从0开始，即第一个子夹的索引是0。

◆表头方向
看右图就是了。整数型，有四个可选值：0.上、1.下、2.左、3.右，默认为0，表头方向向上。
右图所示的窗口中，四个选择夹控件的表头方向分别为左、上、下、右。这下您该知道什么是“表头”了吧？
我们平常见到的选择夹，当然是表头向上的，这也是它的默认设置。

◆允许多行表头
控制表头是否以多行显示。逻辑型，只能为真或假，默认为假，即不以多行显示（即单行显示，如果单行显示时宽度不够无法显示出所有子夹，则右上角(或右下角)出现 [image] ，见上图）。

◆隐藏自身
控制是否隐藏选择夹自身。逻辑型，只能为真或假，默认为假。
所谓“隐藏自身”，就是“在程序运行时”只能看到选择夹中的其它控件，但是看不到选择夹自己。有不少朋友在本属性上做文章，使得虽然窗口上有许多控件，但一点不显得拥挤。例程——模拟安装程序。
注意，设置隐藏自身属性为真后，再希望用户通过点击表头的方法在各子夹之间切换就不现实了——因为用户根本看不到选择夹——程序员必须用代码给选择夹的现行子夹属性赋值，以达到切换子夹的目的。见上面的例程。

二、选择夹的重要方法

◆取子夹数目
功能：取选择夹中子夹的个数。
应用实例：1、子夹数=选择夹1.取子夹数目()
 //上述代码执行后，整数型变量“子夹数”中保存了“选择夹1”中的子夹个数。

◆取子夹名称
功能：取选择夹中指定子夹的名称。
语法：选择夹名称.取子夹名称(子夹位置)
应用实例：1、名称=选择夹1.取子夹名称(1)
//上述代码执行后，文本型变量“名称”中保存了“选择夹1”中第一个子夹的名称。

◆置子夹名称
功能：设置选择夹中指定子夹的名称。
语法：选择夹名称.取子夹名称(子夹位置，名称)
 应用实例：1、选择夹1.置子夹名称(1，“Liigo”)
//上述代码执行后，“选择夹1”中第一个子夹的名称被改为“Liigo”。

选择夹的这几个方法，并不常用，初学者可以跳过。例程。

三、选择夹的重要事件

◆子夹被改变
事件的产生时机：当现行被选择子夹已经被改变时产生此事件。
//在本事件的处理子程序中读取现行子夹属性，即得当前被选择子夹。

◆将改变子夹
事件的产生时机：现行被选择子夹即将被改变时产生此事件。
本事件有一个逻辑型的返回值。如果在本事件的处理子程序中返回假，表示不允许改变子夹；返回真或不返回值则允许改变。

选择夹的两个事件也不大常用，初学者可以跳过。例程。

Ⅱ- 图形按钮
------------------------
正常情况下，按钮上显示图片1；当鼠标移动到按钮上方时，显示图片2；当按下鼠标时，显示图片3；当按钮被禁止时，显示图片4。这就是易语言的“图形按钮”控件。一般嫌麻烦不用它，但要做出漂亮、新奇的界面，却又非它不可了。
图形按钮的重要属性有：正常图片、点燃图片、按下图片、禁止图片、透明颜色、类型、选中等。
图形按钮的重要事件有：被单击。
图形按钮没有专有方法。

一、图形按钮的重要属性

◆正常图片、点燃图片、按下图片、禁止图片
分别指定图形按钮在不同的状态下图片：正常情况下，按钮上显示正常图片；当鼠标移动到按钮上方时，显示点燃图片；当按下鼠标时，显示按下图片；当按钮被禁止时，显示禁止图片。
可以在设计期，在属性夹中为各属性指定图片文件，也可以在运行期给各属性赋值，如： 图形按钮1.正常图片=#图片1 （“图片1”必须是事件定义好的图片资源名称）。

◆透明颜色
指定所有图片中透明部分的颜色。如果为“#默认底色”，则表示无透明色。
透明颜色请结合右图来理解。图中左边的图片周围是白色的背景，很难看，把透明颜色设定为白色后，显示的结果就如右边的图片了。可以看到周围的白色背景被滤掉了，这就是透明颜色的作用。（似乎易语言中的透明颜色还只能支持黑白两种——反正我试过红、蓝都不可以，真是奇怪。）

◆类型、选中
图形按钮的类型有两种：0.按钮、1.选择框，默认为0，按钮。当类型为选择框（类型=1）时，选中属性即开始有效，控制是否被选中（选中与否两种外观分别由正常图片(选中=假)、按下图片(选中=真)控制）。
当类型=0时（默认值），正常图片、点燃图片是必须的；当类型=1时，正常图片、按下图片是必须的。如果程序中不需要禁止图形按钮，可以不指定禁止图片。

二、图形按钮的重要事件

◆被单击 //与普通按钮的使用完全相同。

图形按钮通常要和其它控件（如标签、图片框等）配合使用，这样才能构造出全新的界面出来。

Ⅲ- 影像框
------------------------

到目前为止，易语言的影像框控件还只能播放AVI格式的动画光标文件，对更加有用的AVI影片支持却不够好(很不好，大部分AVI影片根本播放不出，少数能播放也没有声音，也许不久后会改善)，这就使得该控件的实用性大打了折扣。事实上，几乎没有人在程序中用到这个控件。
影像框的重要属性有：文件名、居中播放、透明背景、播放、播放次数等。
影像框没有专有方法，也没有专有事件。

一、影像框的重要属性

二、影像框的重要方法

三、影像框的重要事件

如果有很大的兴趣非要试一下，也容易，只要设置好文件名属性运行程序即可。我担心的不是您能不能做出这个程序，而是您能不能找到易语言影像框可以播放的出的AVI影片。这个压缩包中有一个AVI文件和易源程序，请下载试用。

结束语：

（2002/5/26 下午初步完成第三章第十节，本节约用时三天，计10小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第11节 日期框、月历、端口

第三章：易语言控件 | 第十一节：日期框、月历、端口 7 上一页 下一页 8

第十一节：日期框、月历、端口 [上一节 下一节]

日期框、月历是比较相似的两个控件，都是用来让用户选择输入日期的。日期框外观上跟颜色选择器、组合框类似，有一个下拉框，只有用户点击时手弹出，所以它占用的窗口空间很小；而月历虽然占用的空间较大，但其属性较多，可以有更多的控制。总的来说，二者都不是通用控件（应用范围很小），都不大常用。
端口控件的应用也有很大的局限性。对某些人它可能很有用，但对普通人来说，一般用不着。

Ⅰ- 日期框
------------------------

日期框的重要属性有：今天、附件类型、允许编辑等。
日期框的重要事件有：选择日期被改变。
日期框没有专有方法。

一、日期框的重要属性

◆今天
指出日期框中圈定的日期。本属性的数据类型是日期时间型。
通常从今天属性中读取用户选择的日期。如：
编辑框1.内容＝时间到文本(日期框1.今天，#日期部分)

其它属性保持默认值即可。

二、日期框的重要事件

◆选择日期被改变
 事件的产生时机：当用户选择了日期框中的某个日期后即产生此事件。
一般在本事件中读取日期框的今天属性。例程。

Ⅱ- 月历
------------------------

月历的重要属性有：
月历的重要事件有：选择日期被改变。
月历没有专有方法。

一、月历的重要属性

二、月历的重要方法

三、月历的重要事件

除了做一个简单的万年历程序(第二章第七节例程)外，我暂时想不出它有什么用！

Ⅲ- 端口
------------------------

一、端口的重要属性

二、端口的重要方法

三、端口的重要事件

结束语：

很抱歉这一节讲的很少！日期框、月历、端口这三个控件，我平常极少用到，不敢班门弄斧。
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第12节 驱动器框、目录框、文件框

第三章：易语言控件 | 第十二节：驱动器、目录框、文件框 7 上一页 下一页 8

第十二节：驱动器框、目录框、文件框 [上一节 下一节]

这三个控件一般要配合起来使用，其作用就是共同来定位一个文件。要使这三个控件相互关联起来，有两个要点：1、在驱动器框的“驱动器被改变”事件中为目录框、文件框的目录属性赋值（常见代码是：连续赋值( 驱动器框1.驱动器 + “:\”, 目录框1.目录, 文件框1.目录) ）；2、在目录框的“目录被改变”事件中为文件框的目录属性赋值（常见代码是：文件框1.目录 ＝ 目录框1.目录 ）。
在文件框的“选择文件被改变”或“双击选择”事件中，可以根据文件框的目录和被选择文件属性得到用户选择的全路径文件名（方法见后面）。有了全路径文件名，就可以对文件进行操作了。

Ⅰ- 驱动器框
------------------------

一、驱动器框的重要属性

◆驱动器
文本型，指定当前选择的驱动器，用大写字母A-Z表示各盘符。如果在驱动器控件的下拉列表中选择了C盘，则驱动器属性的值就是“C”；同样，选择了D盘则其值为“D”。本属性的默认值是当前盘的盘符（任一时刻，机器都有一个正在被操作的磁盘分区，称作“当前盘”；对应的还有“当前路径”。这都是DOS下的概念了，在Windows下它们渐渐被忽略。基本上没有用）。
驱动器属性在设计期是不可改动的。但在程序运行中，可以用代码来读取或设置（通常是读取）它的值。（读取：x=驱动器框1.驱动器；设置：驱动器框1.驱动器=“C” 例程）
驱动器是驱动器控件最重要的属性。

◆类型
整数型，指定可用的驱动器类型。共有6个可选值，默认值为0，表示列出全部驱动器。一般保持默认值即可，本属性通常不必设置。

二、驱动器框的重要事件

◆驱动器被改变
事件的产生时机：当用户选择了驱动器框下拉列表中的某个选项时产生本事件。
本事件的处理子程序的任务是，更新目录框和文件框的目录属性。常见代码是：连续赋值 (驱动器框1.驱动器 ＋ “:\”, 目录框1.目录, 文件框1.目录) 。
//当用代码改变驱动器属性的值时（如：驱动器框1.驱动器=“C”），并不会产生“驱动器被改变”事件。

Ⅱ- 目录框
------------------------

一、目录框的重要属性

◆目录
文本型，指出目录框中被选中的目录。本属性在设计期不可改动。通常在驱动器框的“驱动器被改变”事件中设置目录框的目录属性。

二、目录框的重要事件

◆目录被改变
事件的产生时机：当用户双击了目录框中的某个文件夹时产生本事件。
本事件的处理子程序的任务是，更新文件框的目录属性。常见代码是：文件框1.目录 ＝ 目录框1.目录 。

Ⅲ- 文件框
------------------------

一、文件框的重要属性

◆目录 文本型。文件框只显示指定目录中的文件。

◆被选择文件
文本型，指出文件框中被选择文件的文件名（有扩展名，但不含路径）；如果有多个文件被选择，各文件名之间用半角分号“;”隔开。

◆允许选择多项 逻辑型，是否允许同时选择多个文件。默认为假，不允许。

◆通配符
文本型，指定允许进入文件框的文件类型。可以同时指定多个通配符，各通配符之间用半角分号“;”隔开。
以下是两个通配符的实例：1、“*.txt”；2、“*.exe;*.com:*.bat”。当文件框的通配符为“*.txt”时，文件框中只显示TXT文件，其它的全被过滤掉；当文件框的通配符为“*.exe;*.com:*.bat”时，文件框中只显示EXE、COM、BAT三种类型的文件。
要注意在属性夹中与在代码中为其赋值的不同：在属性夹中，通配符不需要给引号，如只需输入*.txt；在代码中，要有引号，如：文件框1.通配符=“*.txt”。

文件框还有一些其它属性，都不是特别重要，一般不用，全部保持默认值即可。

二、文件框的重要事件

◆选择文件被改变
事件的产生时机：当用户选择了文件框中的另一个文件时产生本事件。

◆双击选择
事件的产生时机：当用户双击了文件框中的某一个文件时产生本事件。

在上述两个事件中，均可以通过如下代码来获取被选择文件的全路径文件名：

有了文件的全路径文件名，对文件进行操作就好说了（易语言提供了众多对文件操作的系统库函数，见易语言主界面左侧工作夹的支持库子夹中的“文件读写”分类）。

结束语：

（2002/6/9 下午初步完成第三章第十二节，本节约用时半天，约5小时。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第13节 数据报、客户、服务器

第三章：易语言控件 | 第十三节：数据报、客户、服务器 7 上一页 下一页 8

第十三节：数据报、客户、服务器 [上一节 下一节]

这是三个典型的网络控件，写网络程序少不了它们。
通过网络交互数据，首先要明白“连接”和“无连接”的概念。最简单的例子莫过于打电话和写信。两个人如果要通电话，得首先建立连接——即拨号，等待对方应答后才能相互传递信息，最后还要释放连接——即挂电话。写信就没有那么复杂了，地址姓名填好以后直接往邮筒一扔，收信人就能收到。用数据报控件进行数据交互，类似于写信，是基于“无连接”的；用客户、服务器进行数据交互，类似于打电话，是基于“连接”的。
根据提供服务类型的不同，端口分为两种，一种是TCP端口，一种是UDP端口。计算机之间相互通信的时候，分为两种方式：一种是发送以后就不管了，不去确认信息是否到达，这种方式大多采用UDP协议（我们熟悉的OICQ就是采用这种协议）；一种是发送信息以后，可以确认信息是否到达，也就是有应答的方式，这种方式大多采用TCP协议。（这两种交互方式分别类似于生活中的写信和打电话。）在易语言中，用数据报控件封装了UDP协议，用客户控件和服务器控件封装了TCP协议。

Ⅰ- 数据报
------------------------

数据报是一种不可靠、小数据量的网络数据交互方式。如果传递的数据量过大，有可能会失败，最好不要超过 127 字节。如需要大数据量或者可靠数据传送方式，请使用基于连接的其它网络组件（如客户、服务器）。
虽然数据报控件传递的数据量小，又不够可靠，但它简单易用，在对数据量、可靠性没有特别要求的情况下，还是有它充分发挥作用的领域。最后我将用该控件做一个网络聊天程序（数据报版），作为例程。
数据报的重要属性有：端口。
数据报的重要方法有：发送数据()、取回数据()。
数据报的重要事件有：数据到达。

一、数据报的重要属性

◆端口
端口属性是一个整数型的值，默认值是19730。如果要改动，尽量取大于1024的较大值。
端口是很重要的概念。首先需要明白的一点是，我们这里所说的端口，不是计算机硬件的I/O端口，而是软件概念上的端口。
服务器可以向外提供多种服务，比如，一台服务器可以同时是WEB服务器，也可以是FTP服务器，同时，它也可以是邮件服务器。为什么一台服务器可以同时提供那么多的服务呢？其中一个很主要的方面，就是各种服务采用不同的“端口”来分别提供不同的服务，比如：HTTP(超文本传送)采用80端口，FTP(文件传输)采用21端口，Telnet(远程登陆)采用23端口，POP3(邮件接收)采用110端口，SMTP(简单邮件传送)采用25端口，DNS(域名解析服务)采用53端口等。这样，通过不同端口，计算机与外界进行互不干扰的通信。可以这样说：端口是计算机与外部通信的途径，没有它，计算机便又聋又哑。
如果把计算机比成一个餐厅的话，那端口就是一个个卖饭的窗口。我们都知道餐厅里的窗口大都有详细的分工，要买馒头跑到卖鸡蛋汤的窗口前肯定是买不到的。如果要想和在餐厅工作的MM见见面，说说话，要通过哪个窗口呢？卖汤、卖菜、卖馍的窗口显然是不现实的。好在计算机这个“大”的餐厅有非常多的窗口，并且绝大多数都不常用，只要随便找一个（当然要避免卖汤、卖菜、卖馍的窗口）就可以和MM交流了。
计算机中总共有256×256即65536个端口（编号从0到65535），其中前1024个端口都有确切的定义，它们对应着因特网上常见的一些服务。1024号以后的端口是为应用程序保留的，可以随意选用（易语言中限32767以下）。这也提醒我们，在为数据报控件（包括以后的客户、服务器控件）指定端口属性时，尽量取较大的数值，以免冲突。[注：其实端口也不是特别的重要，只要能保证发送数据一方和接收数据一方都知道对方的端口即可。这就象餐厅外的GG和餐厅内的MM见面，通过哪一个窗口见面并不重要，重要的是他们去了同一个窗口。]

二、数据报的重要方法

◆发送数据
功能：发送数据到指定主机上的指定端口。
语法：数据报名称.发送数据([接收主机地址]，接收主机端口号，欲发送数据)
 参数：接收主机地址——文本型，可以为主机名、IP地址等。如果省略本参数或者提供空文本，则在指定端口广播欲发送数据。接收主机端口号——整数型，必须是对方（接收主机）数据报控件的端口属性指定的数值。欲发送数据——欲发送的数据，可以是文本型、整数型、小数型、逻辑型、日期时间型等（数据类型不限）。
返回值：逻辑型。如果数据发送成功，返回真；如果发送失败，返回假。
应用实例：1、数据报1.发送数据( 127.0.0.1，19730，123)
2、数据报1.发送数据(“liigo”，19730，“易语言”)
//实例1：向IP地址为127.0.0.1的主机19730端口发送整数型数据123；
//实例2：向主机名为“liigo”的主机19730端口发送文本数据“易语言”；
//通过语法介绍和应用实例，我们看到，要向对方发送数据，需要指定对方的主机地址和端口号。这有点类似写信要指定收信人地址和收信人姓名（如果不写或写错是邮不到的）。也许您仍然要问，数据究竟发送给谁了呢？答：发送给了另一个程序中的另一个数据报控件，这个程序必须是运行在指定主机上（IP地址为127.0.0.1，或主机名为“liigo”），这个数据报控件的端口属性必须是指定值（19730）。如果没有满足条件的接收对象，自然就不会有谁收到数据——这跟写信也很类似。
[注意：本方法的逻辑型返回值只是标志“发送”数据的成功与否，与数据能不能成功“到达”没有任何关系。事实上，数据报控件只管发送数据，而对数据是否到达毫不过问。这就是前面说的它的“不可靠性”。]

◆取回数据
功能：取回数据报控件所接收到的数据。
语法：数据报名称.取回数据()
 返回值：字节集型。注意是字节集型，使用时经常需要进行数据类型转换。
应用实例：1、x=数据报1.取回数据() //取回数据并存入字节集型变量x中
编辑框1.内容=从字节集转换(x，#文本型) //显示到编辑框1中
//“从字节集转换(x，#文本型)”表示将字节集型变量x转换成文本型（第二个参数“#文本型”指定目标数据类型，“#文本型”是易语言系统定义的常量）。
//[注：您可能非常熟悉“到文本()”函数了，但它只能将整数型、逻辑型、日期时间型转换成文本型，并不能转换字节集型。字节集是比较特殊的数据类型，易语言专门提供了针对它的类型转换函数“从字节集转换()”和“转换为字节集()”。]
//上述实例也可合写到一行中：“编辑框1.内容=从字节集转换(数据报1.取回数据(),#文本型)”。
//注意“取回数据”方法只能在数据报控件的“数据到达”事件的处理子程序中调用。在其它地方即使调用了也取不到正确的数据。
[补充：您可能正在感到奇怪，为什么非要返回字节集型的值呢，使用时还要多一步转换，直接返回文本型多好！答：因为在所有数据类型中，只有字节集型最具有通用性。比如要传递的是一张图片数据，除字节集外，其它数据类型都不合适。]

三、数据报的重要事件

◆数据到达
事件的产生时机：当有数据到达时自动产生此事件。
在本事件的处理子程序中，一个最重要的任务就是取回“到达的数据”——通过“取回数据()”方法。还得再提醒您一次，“取回数据()”返回的是字节集型的数据，通常需要用数据类型转换函数“从字节集转换()”将字节集数据转换为其它数据类型（最常用的数据类型无疑是文本型）。

我写了一个使用数据报控件进行网络聊天的程序。在已经连网的任意两台机器上分别运行该程序，指定对方机器的IP地址或主机名之后，就能互相对话了。（如果在单机上测试，则自己发的信息自己收到。）

Ⅱ- 客户 [image] 、服务器
--------------------------------------

客户控件和服务器控件是一对好搭挡。它们总是成对使用，分处于两个独立的应用程序中，一个充当客户端，一个充当服务器端。客户端的应用程序总是向服务器提出服务请求，而服务器端的应用程则根据客户端的请求提供服务。可以说客户端是主动方，服务器端是被动方。（当然也可以在一个应用程序中既使用客户控件，又使用服务器控件，这样它即充当客户端又充当服务器端。）
您可能听说过（甚至用过）国内著名的木马——冰河，它就是一个典型的客户服务器软件。该软件其实是两个程序（一个客户端，一个服务器端），通过各种途径让服务器端在欲监示的机器上运行后，就可以在客户端向服务器端程序发送指令，以达到操纵对方机器的目的。我最后将提供一个用易语言编写的简单的类似例程。
千万不要把客户服务器软件跟黑客、木马直接联系起来，它还有很多“正道”上的用途。您在电视上见过某老总在办公室里操纵家里的电脑吗？他用的那个软件就是客户服务器软件，这能叫木马吗？他的行动是黑客行动吗？显然不是的。（他用的软件还说不定就是某个著名的木马，但这至少说明木马不一定完全是骇客们搞破坏的工具，也可以为民造福，关键看怎么用它——同样是刀，凶手可以用来杀人，橱师却可以用来做菜，刀本身并没有过错。）

一、客户的重要属性

客户控件没有重要属性。

二、客户的重要方法

◆连接
功能：连接到指定主机上的指定端口。
语法：客户名称.连接(服务器地址，服务器端口号)
参数：服务器地址——文本型，可以为主机名、IP地址；服务器端口号——整数型，即服务器控件的端口属性指定的值。
应用实例：1、客户1.连接(110.0.0.1, 19730) //与IP地址为110.0.0.1的主机中的服务器控件进行连接。该服务器控件的属性必须是19730，且它所在的程序正在运行，否则连接不可能成功。
注意：同一时刻，一个客户控件只能连接一个服务器控件；一个服务器控件可以同时跟多个客户控件连接。

◆断开连接
功能：断开与服务器的连接。
语法：客户名称.断开连接()
 应用实例：1、客户1.断开连接()

◆发送数据
功能：向已经建立连接的服务器控件发送数据。
语法：客户名称.发送数据(数据)
 参数可以是各种类型的数据。
应用实例：1、客户1.发送数据(0) 2、客户1.发送数据(编辑框1.内容) 3、客户1.发送数据(图片框1.图片) //分别向服务器发送整数、文本、字节集数据。
[注：必须先跟服务器控件正确建立连接之后，才能发送数据。这就像和朋友打电话，您要先播号，待朋友应答后再讲话——如果没播号，或那边朋友还未拿起话筒，您就开始讲话，不是白讲吗？]

◆取回数据
功能：取回服务器发送来的数据。
语法：客户名称.取回数据()
 本方法返回字节集型的数据。使用时有可能需要进行数据类型转换（用“从字节集转换()”函数），这跟数据报控件的“取回数据”方法是完全一致的。

三、客户的重要事件

◆数据到达
当服务器端将数据发送过来后产生本事件。在本事件的处理子程序中调用“取回数据()”方法即可取回本次所收到的数据。

◆连接断开
当连接被服务器端断开后会产生本事件。连接断开后，不能继续发达数据，除非重新建立连接。

〓★〓 客户与服务器的交互：
1、首先由客户控件建立与服务器控件的连接（通过调用“连接()”方法），这时服务器控件产生“客户进入”事件，并在该事件中获得客户的地址（通过调用“取回客户()”方法）。此后双方可以互相发送、接收数据。
2、客户和服务器控件都可以在连接断开之前 的任何时间调用“发送数据()”方法向对方发送数据，此时对方产生“数据到达”事件。在“数据到达”事件中调用“取回数据()”方法即可取得对方发送来的数据。
3、客户控件可调用“断开连接()”方法断开与服务器控件的连接，此时服务器控件产生“客户离开”事件；服务器控件可调用“断开客户()”方法断开与客户控件的连接，此时客户控件产生“连接断开”事件。

一、服务器的重要属性

◆端口
整数型，指定监听数据到达的端口号，可以是大于 0 小于 32767 的任何自定数值。（应尽量取大于1024的较大值。）其含义与数据报控件的同名属性类似。

二、服务器的重要方法

◆取回客户
功能：取回与服务器连接的客户地址。
语法：服务器名称.取回客户()
 本方法返回一个文本型的值，其中记录了客户的地址（IP地址 + 端口）。当服务器控件向客户发送数据或断开客户时，都需要指定该地址。
应用实例：1、客户地址=服务器1.取回客户 //取回客户的地址，并保存到文本型变量“客户地址”中。“客户地址”要事先定义为全局变量或程序集变量，以供其它子程序使用。
[注：通常在服务器控件的“客户进入”或“客户离开”（特别是“客户进入”）事件的处理子程序中调用本方法。]

◆取回数据
功能：取回客户发送来的数据。
语法：服务器名称.取回数据()
 返回值为字节集型。

◆发送数据
功能：向指定客户发送数据。
语法：服务器名称.发送数据(接收客户，数据，[最长等待时间])
参数：客户地址——文本型，必须是调用“取回客户”方法获得的客户地址。数据——可以是各种类型的数据。最长等待时间——指定等待发送成功的最长时间，单位为秒。如果省略本参数，默认为无限等待。
应用实例：1、服务器1.发送数据(客户地址，123，) //向发送整数型数据123。这里的“客户地址”就是前面调用“取回客户()”时的返回值。

◆断开客户
功能：与指定客户断开连接。
语法：服务器名称.断开客户(欲断开客户)
 参数必须是调用“取回客户()”方法所返回的客户地址文本。
应用实例：1、服务器1.断开客户(客户地址) //与“客户地址”所指定的客户断开连接。这里的“客户地址”就是前面调用“取回客户()”时的返回值。

三、服务器的重要事件

◆数据到达
当服务器端将数据发送过来后产生本事件。在本事件的处理子程序中调用“取回数据()”方法即可取回本次所收到的数据。

◆客户进入
当有新客户连接入本服务器控件后产生本事件。本事件的事件处理子程序的一个重要的任务就是：调用“取回客户()”方法获得新客户的地址，并保存到文本型的全局变量或程序集变量中，供以后使用（服务器控件的方法“发送数据()”“断开客户()”都需要指定客户的地址）。

◆客户离开
当有已连接客户断开与本服务器组件的连接后，会产生本事件。在本事件的处理子程序中调用“取回客户”方法即可取回此客户的地址（IP地址 + 端口）。

客户与服务器的关系：一般情况下客户是主动者，是指令的发布者；服务器是被动者，是指令的执行者。仍以“木马”为例来解说：服务器端潜伏于某机器中，随时等待客户端与它建立连接。一旦连接成功，则客户端向服务器端发布指令（“发送数据”），服务器端接收到指令后执行相关程序语句，然后将执行结果发送到客户端，这就完成了一个交互。

我给大家提供三个例程。第一个例程是一个简单的网络聊天程序（客户服务器版），演示了客户与服务器最基本的交互；第二个例程，是一个“木马”的雏形，演示怎样做木马程序；第三个例程是“网络朋友”——一个网络交流程序，将例程二的客户端、服务器端合二为一，程序即可以是客户端也可以是服务器端（便于双向交流），功能上综合了前两个例程的功能且又有所扩展，能够互相聊天、互相发送文件和图片、能够互相截取对方屏幕图片，能够在对方机器上弹出信息框(如：严重警告！你的机子已被我黑掉了！哈哈……)，也能够互相关闭或重启对方机器。

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第14节 表格、数据源、通用提供者、数据库提供者

第三章：易语言控件 | 第十四节：表格、数据源、数据提供者 7 上一页 下一页 8

第十四节：表格、数据源、通用提供者、数据库提供者 [上一节 下一节]

编程序在很多时候是要使用数据（库）的，但常规情况下数据（库）的显示、浏览是比较困难的（如果用标签、编辑框等通用控件来逐个显示数据，则往往需要很多控件，编程也十分繁索）。为了简化易语言中的数据操作，飞扬软件工作室在易2.0版本之后提出了“数据应用框架”的概念。

“数据应用框架”最大的特点就是把数据、数据操作、数据显示分为三个不同的层次。每个层次由各自的控件完成相对独立的工作，至于各层次之间的千丝万缕的联系，则由易语言在内部实现。这三个层次由低到高分别是：数据提供者、数据源、数据处理者。（如图）其中，数据提供者用于存储、提供数据；数据源用于操作数据（仅提供操作接口，实际操作还是由数据提供者完成的，但这一节已被易隐藏，因而可以认为数据源是数据的操作者）；数据处理者用于显示数据。（注：这里所说的“数据”，不仅仅是指“数据库”，它的范围更广阔，而“数据库”只是“数据”的一部分而已。）

在易语言中，可充当数据提供者的控件有：通用提供者、数据库提供者、外部数据库提供者等（外部数据库提供者控件将在下一节介绍）；可充当数据源的就一个数据源控件；可充当数据处理者的控件就很多了，最重要的是表格控件，此外还有编辑框、标签、列表框等拥有数据源、数据列属性的所有控件。

数据提供者、数据源、数据处理者三者之间必须事先“关联”起来，互相协调配合，才能共同完成对数据的处理。“关联”的方法是：1、将数据源的数据提供者属性设置为某个数据提供者控件；2、将数据处理者控件的数据源属性设置为某个数据源控件。举个例子说——比如我们要浏览/管理某个数据库，可以这样来编程序：首先在设计窗体上放三个控件 数据库提供者，数据源，表格；其次，设置数据库提供者的数据库文件名属性，即选择数据库文件（*.edb）；再次，设置数据源控件的数据提供者属性为“数据库提供者1”（从下拉列表中选择）；然后，设置表格控件的数据源属性为“数据源1”（从下拉列表中选择）。经过上述设置之后，您会发现，指定的数据库中的内容已经自动显示到表格控件中了！此后如果对数据源进行操作，数据库中的内容也会被同时改动，并且表格中的数据也会同时更新。例程。

由于表格、数据源、通用提供者、数据库提供者的属性、方法、事件比较多，此处只介绍其中个别的几个。更详细的使用请参考易附带的“易之表”例程。

Ⅰ- 表格
------------------------

一、表格的重要属性

◆数据源
指定与表格相关联的数据源控件。在属性夹中设置本属性时，如果此时窗体上已经放置了某个（或多个）数据源控件，则会以下拉列表的形式列出，只需选择其中之一即可，如图。如果要在程序中用代码的方式为本属性赋值，只需赋数据源控件名称的文本形式即可，如：表格1.数据源 = “数据源1”。
数据源属性是表格控件最重要的属性，不设置该属性，表格基本上没有存在的必要。

◆缩放比
整数型，指定表格在显示数据时所采用的显示比例，可以是20到1000内的任意整数值，默认值是100。

表格的其它属性在图中也都显示出来了，含义也相对比较明确，通常使用时一般无需特意设置，此处不再一一介绍。下面仅说一下几个概念：选择块——在表格中拖动鼠标左键，同时选中多个单元格；标尺——表格最上面一行和最左面一列；粘贴扩展——当向某单元格粘贴数据时，如果容纳不下，单元格将自动向外扩展。
大家可能觉得易语言表格的各单元格之间没有表格线，不大美观（默认时显示“空表格线”，也就是没有表格线）。那能不能为表格加上表格线呢？回答当然是：能！只要写上这样一行代码即可：
数据源1.加线条(1,1,数据源1.取行数(),数据源1.取列数(),#左边框＋#上边框＋#右边框＋#下边框＋#水平线＋#垂直线)

看下图，给表格加上表格线后，比原来美观多了吧！例程。

二、表格的重要方法

◆取光标行号()、取光标列号()
功能：取表格中“光标所在的单元格”所处的行号或列号。如果调用这两个方法时，已经有多个单元格被同时选择，则返回所有被选择的单元格中最左上角的那个单元格的行号或列号。
应用实例：1、x = 表格1.取光标行号()
2、y = 表格1.取光标列号()

◆取选择行数()、取选择列数()
功能：取表格中被选择的单元格的行数或列数。如右图表格中被选择行数和列数分别是4和6。

◆打印()、打印预览()
功能：打印表格，打印预览。
应用实例：1、表格1.打印() 2、表格1.打印预览()

◆置光标() 功能：定位光标到某行某列。

◆等宽缩放() 功能：缩放表格内容，使其正好完全显示在表格中。

◆选择()、全部选择()、复制()、全部复制()、粘贴()、粘贴到光标处()
对单元格的选择、复制、粘贴操作。需要指定欲操作的一个或多个相邻的单元格。

三、表格的重要事件

表格控件的重要事件有：光标位置改变、选择行列数改变、内容被改变、行高被改变、列宽被改变、尺寸被扩展。通常用的不多，请查看支持库中提供的各事件的产生时机，根据需要自行选择使用。

Ⅱ- 数据源
------------------------

数据源控件是可视控件，其外观如右图所示：

一、数据源的重要属性

◆数据提供者
文本型，指定本数据源所基于的数据提供者单元名。
本属性的设置方法，与表格控件的数据源属性的设置方法类似，即：在属性夹中设置本属性时，如果此时窗体上已经放置了某个（或多个）数据提供者控件，则会以下拉列表的形式列出，只需选择其中之一即可。如果要在程序中用代码的方式为本属性赋值，只需赋数据提供者控件名称的文本形式，如：据源1.数据提供者 = “通用数据提供者1”。
数据提供者属性是数据源控件最重要的属性，不设置该属性，数据源基本上没有存在的必要。

◆只读、允许添加、允许删除
这三个属性都逻辑型的，用于限制“程序的使用者”对数据操作的权限（编程者当然永远不会受限）。

提示：因为数据源控件上的添加删除记录的按钮不利于数据的完全，实际应用中，通常把数据源控件的可视属性置为假，使它对用户不可见，令用户无法直接操作数据。（确实需要添加或删除记录时怎么办呢？答：调用数据源控件的如下方法：插入行，添加行，删除行，插入列，删除列 等。）

二、数据源的重要方法

数据源控件的方法非常之多（69个），不可能一一介绍。请大家查看支持库：工作夹->支持库->数据类型->数据源，里面列出的数据源控件的所有属性方法和事件（显示于状态夹中）。（工作夹位于易语言主窗口左侧，状态夹位于易语言主窗口下面。易语言中所有其它控件，都可以用这种方法找到其帮助。）

我对数据源控件的方法稍加分类，也许看起来更方便——

1) 对记录的操作：到首记录，到尾记录，跳过，跳到，取记录号；
2) 对行列的操作：取行数，取列数，插入行，添加行，删除行，插入列，删除列；
3) 数据存取操作：置文本/取文本，置数据/取数据，添加，初始尺寸，存到字节集/从字节集读，存到文件/从文件读，单元格到字节集/字节集到单元格，单元格到文件/文件到单元格，刷新显示，保存更改；
4) 对外观的操作：置表头行数/置表头列数，置行高/置列宽，置文本色/置背景色，置字体名称/置字体尺寸/置字体属性，置边距，置对齐方式，置初始属性；
5) 对单元格操作：合并/分解/是否被合并，加线条/删线条/是否有线条，清除；
6) 关于打印操作：打印设置，置打印设置/取打印设置，取打印页宽，取打印页高；

提示：易语言附带的例程“易之表”中，演示了数据源控件及表格控件的绝大多数属性方法，请参考。

三、数据源的重要事件

数据源控件的重要事件有：当前记录被改变，添加记录，删除记录。

这三个事件的产生时机分别为，当操作者：按下移动记录按钮移动了当前记录指针时，当按下添加记录按钮添加了新记录时，按下删除记录按钮删除了当前记录时。都不大常用（因为数据源控件的可视属性通常被置为假，用户不可能按动它上面的按钮），初学者可不予理会。

Ⅲ- 通用提供者 [image] 、数据库提供者
------------------------------------------------------

通用提供者控件和数据库提供者控件都可充当“数据提供者”，因属同一类控件，所以放在一起介绍。但它们也是有区别的：

1、通用提供者：使用内存作为数据的存储仓库，全面支持所有数据操作接口。因此必要时可以将其它类型数据提供者内的数据导入到此类型中，以全面发挥数据源对数据的操纵能力；

2、数据库提供者：使用数据库作为数据的存储仓库，不支持以下数据操作接口：
1、置行高； 2、置类型； 3、置文本色； 4、置背景色； 5、置字体名； 6、置字体尺寸； 7、置字体属性； 8、置边距； 9、置文本输入格式； 10、置对齐方式； 11、置密码方式； 12、合并； 13、分解； 14、加线条； 15、删线条； 16、初始尺寸时同时改变列数； 17、在中间插入行； 18、插入列； 19、删除列。如果想对数据库提供者中的数据进行以上操作，应该先将数据通过数据源导出到通用提供者中。

附：将数据库提供者中的数据“导入”到通用数据提供者的方法。
易语言知识库中多次提到数据的导入导出问题，但又未明确给出使用方法(其实在‘易之表’例程中有)，这给不少初学者带来麻烦。方法其实很简单，只需用到数据源控件的“添加()”方法：
数据源1.添加(数据库提供者1, , ) 或 数据源1.添加(数据源2, , )
请看本节前面那个例程，里面的“显示数据”按钮就应用了“导入”。

一、通用提供者的重要属性

◆初始行数、初始列数
均为整数型，指定初始数据的行列数，默认值都是0。
当通用提供者跟数据源、表格正确关联后，如果不设置这两个属性，表格中仍然一片空白，看不出一点表格的样子（因为初始行列数默认值都是0）。为了美观可随便设定某个值 （导入数据之前要清除之——清除方法：数据源1.初始尺寸(0,0) ）。

二、通用提供者的重要方法

通用提供者控件没有专有方法。

三、通用提供者的重要事件

通用提供者控件没有专有事件。

一、数据库提供者的重要属性

◆数据库文件名
文本型，指定欲操作的数据库全路径文件名（*.edb）。

◆字节集字段处理
整数型，指定对字节集类型字段的处理方式。有以下可选值：0.跳过；1.视为图片数据；2.视为字节集数据，默认值是0，跳过。
如果确信数据库中没有字节集字段，可置为0；如果确信有字节集字段且为图片数据，则置为1；如果确信有字节集字段但不是图片数据，可置为2。通常保持默认值0即可，当然置为2是最保险的。

二、数据库提供者的重要方法

数据库提供者控件没有专有方法。

三、数据库提供者的重要事件

数据库提供者控件没有专有事件。

数据提供者，顾名思义就是数据的“提供者”，以供数据源控件进行处理。（注意，是通过调用“数据源控件”的“方法”，对“数据提供者控件”中的数据进行处理。为什么数据源能够处理到数据提供者控件中的数据呢？因为两者已经“关联”在一起了。“关联”的方法本节一开始就讲了，还记得吗？就是把数据提供者控件数据源控件的数据提供者属性设置为相应的数据提供者控件，用代码可表示为：数据源1.数据提供者=“数据库提供者1” 或 数据源1.数据提供者=“通用提供者1” 。）

作为最重要的两个数据提供者，通用提供者控件和数据库提供者控件的关系是：前者功能强大，可对数据进行各种操作，但没有直接的数据来源；后者功能受限，只能完成对数据的基本操作，但可以直接连接到数据库。二者的选用原则是：如果要使用数据库，且对数据的操作不涉及外观设置（如修改字体、颜色或单元格线条等），可选用数据库提供者；如果需要使用数据库，又想对数据进行外观设置，可同时使用数据库提供者和通用提供者控件（先把数据库提供者中的数据“导入”通用提供者中，再对后者操作）；如果没有用到数据库，可单独选用通用提供者。

结束语：——第十四节 表格、数据源、数据提供者

（2002/6/19 晚初步完成第三章第十四节，本节用时无从统计。）
（注：最近两周我非常之忙，每天用在教程上的时间平均不足两个小时。实在遗憾！Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第15节 外部数据库、外部数据提供者

第三章：易语言控件 | 第十五节：外部数据库、外部数据提供者 7 上一页 下一页 8

第十五节：外部数据库、外部数据提供者 [上一节 下一节]

从2.0版测试六开始，易语言增加了“外部数据库”控件，用作支持使用ODBC直接对其他所有类型数据库进行操作；2.1版又增加了“外部数据提供者”控件，可以直接将外部数据库绑定到数据源。有了这两个控件，对于其它类型的数据库（非易语言数据库*.edb，如Access,Paradox,SQL,Oracle等）也可进行直接操作（不过似乎还是有一些限制）。
我曾经写过一份名为“全面操作Access数据库”的教程，专门介绍了“外部数据库”控件的用法（当时“外部数据提供者”控件还没有出现^_^），被收录于易语言2.1版中。所以本节对相关操作的介绍从简。

[注：用另一种方法也可以实现对其它数据库的访问，这就是使用易语言提供的“数据库格式转换”功能——即Tools目录下的Dbcnv.exe程序，可双击执行，也可通过易语言主菜单“数据库->数据库格式转换”启动。本节所介绍的控件不要求初学者掌握。]

Ⅰ- 外部数据库
----------------------------

外部数据库控件没有专有属性，也没有专有事件。

一、外部数据库的重要方法

◆打开()、关闭()
功能：打开或关闭指定的ODBC数据源。
应用实例：1、外部数据库1.打开( , ) //打开，在使用外部数据库之前调用。
2、外部数据库1.关闭( ) //关闭，不再使用外部数据库时调用。

◆查询()、执行()
功能：分别用于执行查询类和非查询类SQL语句。
应用实例：1、记录集句柄 = 外部数据库1.查询(“select * from books”)
//对当前被打开数据库进行数据查询(检索books表中的所有记录的所有字段)，将查询结果的记录集的句柄，赋值给整数型变量“记录集句柄”。（注意以后不用本记录集时，应将本记录集关闭——方法是调用本控件的关闭记录集()方法，如：外部数据库1.关闭记录集(记录集句柄)。）
2、外部数据库1.执行(“insert into books values (1,2,3)”) //插入记录。

◆读()
功能：读取指定记录集的当前记录处指定字段的数据内容。返回数据的数据类型与原外部数据库中的数据类型相对应。
语法：外部数据库名称.读(记录集句柄，字段名称或位置)
 应用实例：1、x=外部数据库1.读(记录集句柄，1)
2、x=外部数据库1.读(记录集句柄，“序号”)
//实例1：读取指定记录集中当前记录的第“1”个字段；实例2：读取指定记录集中当前记录名称为“序号”字段。如果数据库的第1个字段正好是“序号”，则这两种用法等效。（“记录集句柄”是整数型变量，是调用外部数据库控件的“查询”方法时的返回值。）
//通常先将当前记录指针移动到某记录上，然后再“读()”。移动记录指针的方法见下面。

◆到首记录()、到尾记录()、到前一记录()、到后一记录()
功能：移动记录集的当前记录指针。
语法：这四个方法的语法是相同的。都有一个整数型参数，指定要操作的记录集；都有一个逻辑型参数，指示本方法是否执行成功。
应用实例：1、到首记录(记录集句柄)
2、到尾记录(记录集句柄)
3、到前一记录(记录集句柄)
4、到后一记录(记录集句柄)
//“记录集句柄”是整数型变量，是调用外部数据库控件的“查询”方法时的返回值。

◆首记录前()、尾记录后()
功能：判断当前记录指针是否在第一个记录的前面，或最后一认记录的后面。
语法：这两个方法的语法是相同的。都有一个整数型参数，指定要操作的记录集；都有一个逻辑型参数，指示当前记录指针是否在第一个记录的前面，或最后一认记录的后面。

应用实例1：

子程序：_查看前一记录按钮_被单击

外部数据库1.到前一记录 (记录集句柄)
如果 (外部数据库1.首记录前 (记录集句柄))
信息框 (“前面已无记录！”, 0, )
外部数据库1.到首记录 (记录集句柄)
否则
读取并显示当前记录 ()
*备注：这是自定义函数
如果结束 		应用实例2：

子程序：_查看后一记录按钮_被单击

外部数据库1.到后一记录 (记录集句柄)
如果 (外部数据库1.尾记录后 (记录集句柄))
信息框 (“后面已无记录！”, 0, )
外部数据库1.到尾记录 (记录集句柄)
否则
读取并显示当前记录 ()
*备注：这是自定义函数
如果结束

Ⅱ- 外部数据提供者
---------------------------------

外部数据提供者控件的重要属性有：连接文本、查询SQL等。
外部数据提供者控件没有专有方法，也没有专有事件。通常通过数据源控件对外部数据提供者中的数据进行操作。

一、外部数据提供者的重要属性

◆连接文本
文本型，用于设置外部数据库的ODBC连接文本。当在属性夹单击“...”按钮将弹出ODBC数据源配置对话框（具体操作请参考本人写的教程“ACCESS数据库使用详解”，已被易2.1以后版本收录）。

◆查询SQL
文本型，用作指定数据库中的数据表名或者用作查询记录集的SELECT类SQL语句。

附：“ACCESS数据库使用详解”全文

（该文是本人(Liigo)于2000年3月底4月初写成，已被易2.1以后版本收录，随易系统一起发行。）

--------------------------------------------------------------------------------------

本程序演示如何在易语言中借助“外部数据库”控件，通过ODBC操纵Microsoft Access数据库。支持记录的查询、排序、删除、添加、更新，及创建、删除表的操作。本程序同时为用户提供了一个良好的SQL语言的学习环境。作者：Liigo 。

与本文档相关的有三个文件，一个源程序“ 全面操作Access数据库.e ”，一个Microsoft Access数据库文件MSAccess.mdb，还有一个就是本文了。

一、关于ODBC配置

1。运行本程序“全面操作Access数据库.exe”(或在易中编译“全面操作Access数据库.e ”)，点击右上角的“连接外部数据库”按钮，将弹出一个对话框如下图：（如果在你的机子上弹出的对话框是中文界面，那么祝贺你！）

2。选择上图的New（或新建）按钮，又会出现一个对话框，如下图：

3。在上图中，选中列表框第二项（Access的驱动程序）（因为将操作Access数据库），然后单击 “下一步”按钮。又弹出一对话框（如下图），要求输入一个带路径的文件名。

4。我们点击上图的Browse(或浏览)按钮，在弹出的“另存为文件对话框”中任选一个路径，任填一个文件名xx，点“保存”关闭“另存为文件对话框”（这样我们就新建了一个DSN文件：Data Source Name，文件名是xx，扩展名为dsn，这个文件以后要用到，最好记住它所在目录）。最后点击上图的“下一步”按钮。

在点击了上图的“下一步”按钮后，又会弹出下面的对话框，列出了你前几步所设置的信息。如果确认，点击“完成”，否则点击“上一步”修改。

5。前面几步我们新建了一个*.dsn文件（已设置了路径和驱动程序信息，但还没有和具体的数据库相连接）。在单击了上一图的“完成”按钮后，接着又会弹出下图所示的对话框。我们将在这个对话框中连接数据库。

6。单击上图的“Select”按钮，在弹出的“打开文件对话框”中选择我（Liigo）所提供的Access数据库文件MSAccess.mdb。最后单击上图的“OK”按钮。这样我们新建的数据源连接文件xx.dsn就包含了访问数据库所需的所有信息，利用这个文件就可以在易语言中任意操纵数据库了。

在单击上图的“OK”按钮之后，还会出现下面的对话框（如下图）。

7。我们发现，上图跟前面第一张图是同一个对话框，只是本图所示对话框的中间区域列出了一个文件图标（这就是我们前面呕心沥血新建的文件xx.dsn呀！），还等什么，选中它，点击“确定”。这时又会出现一个对话框，如下图：

8。咦！这个对话框也见过，不就是前面的第五张图吗？是呀，只是中间多了一行：“Database: ...\...\MSAccess.mdb”，这正是我们将要连接的数据库。要知道，数据库的详细地址是从xx.dsn中读取出来的，现在你知道xx.dsn的作用了？好了，废话少说，单击“OK”，一切都结束了！

至此，用ODBC连接外部数据库的操作全部完成。什么感受？太复杂了？好像有点，不过这是ODBC配置的标准过程，要骂就骂微软吧，这跟吴涛没一点关系。值得一提的是，下次再连接同一数据库时，就不必再新建一个*.dsn文件了，直接在最前面的对话框（第一张图）中选择xx.dsn，“确定”就行了。

关闭最后一张图片所示的对话框后，程序又回到了Liigo写的“全面操作Access数据库”主界面，并且已经正确地读出并显示了Access数据库的第一条记录。至于其它的操作，大家一看就明白，我下面只简要地说一下。

二、关于本程序的使用 [源程序下载]

1。主界面如下：

2。按钮“连接外部数据库”前面已说的很详细了。下面的四个按钮“查看前一记录”“查看后一记录”“首记录”“尾记录”是用于浏览数据库中的记录的，也基本上没什么可说的。因为“外部数据库”控件有个“取连接文本 ()”的方法，故专门提供按钮“查看连接文本”演示本方法的使用，当然，“取连接文本 ()”的使用很简单，我这里提供它的目的，只是为了让大家对ODBC的连接文本有一个感性认识。“插入新记录”按钮用来插入新记录到数据库中表books的尾部（books是我在Access数据库中预定义的表），点击该按钮后，将弹出如下图所示的窗口：

3。填好后单击“确认”按钮就可以插入新记录了。

4。在主界面的下部，是我（Liigo）专门为大家订做的一个用于练习使用SQL语言的环境。

只要在上图所示的编辑框中输入正确的SQL语句，单击“执行”按钮就可以了。考虑到大家对SQL可能不太熟悉，我还专门设置了“导入”功能：即可以从预定义的语句中选取。下图是在单击了“导入”按钮后的弹出的窗口：

双击鼠标可导入，单击鼠标右键可查看各SQL语句的功能。我们可以看到，在这些预定义语句中，包含了对记录的查询、排序、添加、删除、更新，及其它对“表”的操作。当然，这些语句都是最基本的SQL语句。只要您掌握了SQL语言，可以说没有完成不了的事情（有关数据库的）。这也是我提供“SQL学习环境”的原因。好了，关于本程序的使用就讲到这里。

三、关于SQL语言

SQL是操纵数据库的国际标准语言，非常流行，SQL Server、Oracle等大型数据库系统都提供对它的支持。要在易语言中操纵数据库，暂时必须使用SQL。我这里只说一下在易语言中使用SQL需要注意的几个问题。

以本程序中用到的这一个语句为例：

_启动窗口.外部数据库1.执行 (“insert into books ” ＋ “(编号,书名,作者,出版社,出版日期,总页数,备注)” ＋ “ values ” ＋ “(” ＋ 编辑框1.内容 ＋ “,'” ＋ 编辑框2.内容 ＋ “','” ＋ 编辑框3.内容 ＋ “','” ＋ 编辑框4.内容 ＋ “','” ＋ 编辑框5.内容 ＋ “',” ＋ 编辑框6.内容 ＋ “,'” ＋ 编辑框7.内容 ＋ “')”)

要注意的是：1。关键字要写对，如不要把 values 写为 value ，（大小写无所谓）；

2。values 与前后的括号之间要有空格（半角空格，不可以是全角）；

3。values 前的括号中列出预插入的字段名称，之间以半角空格隔开(不可以是全角)；

4。values 后的括号中列出预插入的字段的值，字符串要以半角单引号或[]括住。

5。values 之前的括号中的字段名称，与之后的括号中的字段的值，要一一对应。

6。values 后面的括号中，不可以有空值、空串。

对于第6条，举例如下：

insert into books (作者,书名,备注) values ('飞扬' , '《易语言开发宝典》','')

上面的写法肯定不能正确执行，因为 values 后面的括号中的第三个值是空字符串！

正确的写法是：

insert into books (作者,书名) values ('飞扬' , '《易语言开发宝典》')

所以对于我们前面提到的例句：

_启动窗口.外部数据库1.执行 (“insert into books ” ＋ “(编号,书名,作者,出版社,出版日期,总页数,备注)” ＋ “ values ” ＋ “(” ＋ 编辑框1.内容 ＋ “,'” ＋ 编辑框2.内容 ＋ “','” ＋ 编辑框3.内容 ＋ “','” ＋ 编辑框4.内容 ＋ “','” ＋ 编辑框5.内容 ＋ “',” ＋ 编辑框6.内容 ＋ “,'” ＋ 编辑框7.内容 ＋ “')”)

在执行前一定要检查各编辑框中的值，必须确保其值不为空，否则语句不能被正确执行。

但在实际应用中，编辑框中的内容是要求用户输入的，而用户很可能空下不填。怎么办呢？至少有两种办法：1. 判断编辑框中的内容为空时对其赋一默认值；2. 判断编辑框中的内容为空时，在 values前的括号中，不写人该编辑框所对应的字段名称。 本程序是采用的第一种方法。

（Liigo2002/6/26注：经网友风诺提示，可通过Access设置某字段是否可空。）

四、结束

本程序演示如何在易语言中应用“外部数据库”控件，通过ODBC操纵Microsoft Access数据库。支持记录的查询、排序、删除、添加、更新，及创建、删除表的操作。本程序同时为用户提供了一个良好的SQL语言的学习环境。另外我(Liigo)多讲一句，使用“外部数据库”控件，SQL(结构化查询语言)很重要。

Liigo 向各位问好！祝学习进步。2002/4/1

Liigo@sina.com http://Liigo.yeah.net

-- 飞扬工作室附: 感谢 Liigo 同意将如此好的教程和例程提供给大家学习!

<全文完>

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


系统核心支持库3

系统核心支持库3.2版

本支持库是易语言的核心库，为系统本身和每个易程序提供必需的功能支持。

窗口单元数据类型

窗口 | 编辑框 | 图片框 | 外形框
画板 | 分组框 | 标签 | 按钮
选择框 | 单选框 | 组合框 | 列表框
选择列表框 | 横向滚动条 | 纵向滚动条 | 进度条
滑块条 | 选择夹 | 影像框 | 日期框
月历 | 驱动器框 | 目录框 | 文件框
颜色选择器 | 超级链接框 | 调节器 | 通用对话框
时钟 | 打印机 | 数据报 | 客户
服务器 | 端口 | 表格 | 数据源
通用提供者 | 数据库提供者 | 图形按钮 | 外部数据库
外部数据提供者 |  |  |

各单元固有基本事件：

鼠标左键被按下 | 鼠标左键被放开 | 被双击 | 鼠标右键被按下
鼠标右键被放开 | 鼠标位置被移动 | 获得焦点 | 失去焦点
按下某键 | 放开某键 | 字符输入 |

※鼠标左键被按下

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标左键被按下 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

※鼠标左键被放开

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标左键被放开 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

※被双击

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_被双击 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

※鼠标右键被按下

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标右键被按下 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

※鼠标右键被放开

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标右键被放开 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

※鼠标位置被移动

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标位置被移动 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

※获得焦点

当对象获得输入焦点时产生本事件。所谓“输入焦点”，即当前用户按键操作所对应的目标对象。譬如：用户正在编辑框中输入文本，那么此编辑框就具有输入焦点，因为它将获得目前用户所进行的所有按键操作。所谓“获得”或者“失去”输入焦点，即当前用户按键操作所对应的目标对象发生转移。譬如：现在用户正在编辑框1中输入文本，突然使用鼠标或其它方法切换到了编辑框2上去继续输入。那么此时，编辑框1就“失去”了输入焦点，编辑框2就“得到”了输入焦点，因为在此以后用户所进行的所有按键操作都将被编辑框2所获得。

语法： 无返回值 _窗口单元_获得焦点 （）

※失去焦点

当对象失去输入焦点时产生本事件。

语法： 无返回值 _窗口单元_失去焦点 （）

※按下某键

此事件当用户按下一个键时发生。处理本事件的子程序如果返回假，则取消本事件，不再将此按键事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_按下某键 （键代码，功能键状态）

参数名 | 描 述
键代码 | 整数型；为键常量值，如：“#F1键”、“#回车键” 等等。具体所有的键常量见库常量表。
功能键状态 | 整数型；用于查看在按下本键的同时各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

※放开某键

此事件当用户放开以前按下的一个键时发生。处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_放开某键 （键代码，功能键状态）

参数名 | 描 述
键代码 | 整数型；为键常量值，如：“#F1键”、“#回车键” 等等。具体所有的键常量见库常量表。
功能键状态 | 整数型；用于查看在按下本键的同时各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

  ※字符输入

当用户按下和松开一个字符键时发生此事件。字符键包括任何可打印的键盘字符及回车（Enter）和退格（BackSpace）键。在用户事件处理子程序中，将事件处理完毕后可返回一个字符代码，用于替换将继续传递到所属对象上字符键事件中的字符代码；如果返回 0 ，则取消此事件，不再将此字符输入事件传递到所属对象上去；如果事件处理完毕后没有返回值，则将本字符键事件继续原样传递到所属对象上去。

语法： 整数型 _窗口单元_字符输入 （字符代码）

参数名 | 描 述
字符代码 | 整数型；表明所按下的字符键所对应的字符代码，可以使用“字符”命令取出所对应的具体字符。

单元数据类型：

窗口: 包容型窗口单元

数据类型名称：窗口 英文名称：window

本数据类型为普通类型，共包含 22 个成员命令， 30 个成员属性， 12 个单元事件。

本类型对象的方法被除开功能型外所有的窗口单元共享。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 边框 | 底色 | 底图
底图方式 | 背景音乐 | 播放次数 | 控制按钮
最大化按钮 | 最小化按钮 | 位置 | 可否移动
图标 | 回车下移焦点 | Esc键关闭 | F1键打开帮助
帮助文件名 | 帮助标志值 | 在任务条中显示 | 随意移动
外形 | 总在最前 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

本属性指定窗口的标题文本。

成员属性<10>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

本属性指定窗口边框的类型。

可供选择的属性值：

0. 无边框 工 1. 普通可调边框 2. 普通固定边框

3. 窄标题可调边框 4. 窄标题固定边框 5. 镜框式可调边框

6. 镜框式固定边框

成员属性<11>的中文名称为“底色”，英文名称为“BackColor”，类型为“整数型（int）”。

本属性指定窗口背景的颜色。

成员属性<12>的中文名称为“底图”，英文名称为“BackPic”，类型为“字节集（bin）”。

本属性指定显示在窗口背景上的图片。

成员属性<13>的中文名称为“底图方式”，英文名称为“BackPicMode”，类型为“整数型（int）”。

如果设定了底图，本属性指定窗口背景上底图的显示方式。

可供选择的属性值：

0. 图片居左上 1. 图片平铺 2. 图片居中

成员属性<14>的中文名称为“背景音乐”，英文名称为“BackMusic”，类型为“字节集（bin）”。

本属性指定当窗口调入时自动开始播放的音乐。

成员属性<15>的中文名称为“播放次数”，英文名称为“PlayCount”，类型为“整数型（int）”。

本属性指定背景音乐的播放次数。

可供选择的属性值：

0. 循环播放 1. 仅播放一次 2. 不播放

成员属性<16>的中文名称为“控制按钮”，英文名称为“CtrlBtn”，类型为“逻辑型（bool）”。

本属性设置是否显示窗口上的所有控制按钮及窗口控制菜单。

成员属性<17>的中文名称为“最大化按钮”，英文名称为“MaxBtn”，类型为“逻辑型（bool）”。

本属性设置是否显示窗口右上角的最大化或还原按钮。

成员属性<18>的中文名称为“最小化按钮”，英文名称为“MinBtn”，类型为“逻辑型（bool）”。

本属性设置是否显示窗口右上角的最小化按钮。

成员属性<19>的中文名称为“位置”，英文名称为“pos”，类型为“整数型（int）”。

本属性设置窗口的位置及状态。注意如果欲设置为“最大化”，“边框”属性必须不为固定类边框。

可供选择的属性值：

0. 通常 1. 居中 2. 最小化 3. 最大化

成员属性<20>的中文名称为“可否移动”，英文名称为“CanMove”，类型为“逻辑型（bool）”。

本属性设置窗口位置能否被移动。

成员属性<21>的中文名称为“图标”，英文名称为“icon”，类型为“字节集（bin）”。

本属性设置窗口左上角所显示的图标。

成员属性<22>的中文名称为“回车下移焦点”，英文名称为“EnterToNext”，类型为“逻辑型（bool）”。

本属性如果设置为真，运行时当用户在本窗口上按下回车键后，将自动将当前焦点转移到下一个单元。本属性如果设置为假，当用户在本窗口上按下回车键后，将等同于按下具有“默认”属性的按钮。

成员属性<23>的中文名称为“Esc键关闭”，英文名称为“EscClose”，类型为“逻辑型（bool）”。

本属性设置运行时用户是否可以用 Esc 键关闭本窗口。

成员属性<24>的中文名称为“F1键打开帮助”，英文名称为“F1OpenHelp”，类型为“逻辑型（bool）”。

本属性设置运行时用户是否可以用 F1 键打开有关本窗口的帮助信息。

成员属性<25>的中文名称为“帮助文件名”，英文名称为“HelpFileName”，类型为“文本型（text）”。

指定欲打开帮助文件的名称，如果没有指定帮助文件，将使用默认帮助文件名称，即本易程序的文件名称（不含其后缀）＋“.hlp”后缀。

成员属性<26>的中文名称为“帮助标志值”，英文名称为“HelpContext”，类型为“整数型（int）”。

用于在帮助文件中指定相应的帮助标志数值。本属性如果为零，则显示帮助主题。

成员属性<27>的中文名称为“在任务条中显示”，英文名称为“ShowInTaskBar”，类型为“逻辑型（bool）”。

设置本窗口是否出现在 Windows 系统的任务条中。

成员属性<28>的中文名称为“随意移动”，英文名称为“HitMove”，类型为“逻辑型（bool）”。

设置当用户在窗口上任何位置按下鼠标左键后是否进入窗口整体移动模式。注意如果本属性设置为真，则在本窗口及其中所有不能接收输入焦点的子单元上均不能再接收到“鼠标左键被按下”和“鼠标左键被放开”事件。

成员属性<29>的中文名称为“外形”，英文名称为“shape”，类型为“整数型（int）”。

设置窗口的外形。

可供选择的属性值：

0. 矩形 1. 椭圆 2. 圆角矩形 3. 环

4. 正三角 5. 倒三角 6. 左三角 7. 右三角

8. 平行四边形 9. 五边形 10. 六边形 11. 梯形

12. 菱形 13. 五角星 14. 十字星 15. 闪电形

16. 爆炸形1 17. 爆炸形2 18. 燕尾 19. 折角矩形

20. 左箭头 21. 右箭头 22. 上箭头 23. 下箭头

24. 左右箭头 25. 上下箭头 26. 十字箭头 27. 丁字箭头

28. 燕尾箭头 29. 五边形箭头

成员属性<30>的中文名称为“总在最前”，英文名称为“Topmost”，类型为“逻辑型（bool）”。

设置本窗口永远位于其它窗口的前面。

成员命令

取窗口句柄 | 销毁 | 获取焦点 | 可有焦点
取用户区宽度 | 取用户区高度 | 禁止重画 | 允许重画
重画 | 部分重画 | 取消重画 | 刷新显示
移动 | 调整层次 | 弹出菜单 | 发送信息
投递信息 | 取标记单元 | 置外形图片 | 激活
置托盘图标 | 弹出托盘菜单 |  |

※取窗口句柄

调用格式： 〈整数型〉 对象．取窗口句柄 （）

英文名称：GetHWnd

取出本窗口或窗口单元的窗口句柄（即HWND）。本命令为高级对象成员命令。

※销毁

调用格式： 〈无返回值〉 对象．销毁 （）

英文名称：destroy

销毁本窗口或窗口单元。窗口被销毁后，所有在载入本窗口之后对本窗口及其内窗口单元所进行的修改或设置都将被抛弃。窗口被销毁后如想再次使用必须重新装载。本命令为初级对象成员命令。

※获取焦点

调用格式： 〈无返回值〉 对象．获取焦点 （）

英文名称：SetFocus

将焦点移动到窗口单元。如果对窗口使用本方法，窗口将自动把焦点转移到第一个有能力保留焦点的窗口单元上去。本命令为初级对象成员命令。

※可有焦点

调用格式： 〈逻辑型〉 对象．可有焦点 （）

英文名称：IsFocus

如果当前窗口单元具有焦点，则返回真，否则返回假。本命令为初级对象成员命令。

※取用户区宽度

调用格式： 〈整数型〉 对象．取用户区宽度 （）

英文名称：GetClientWidth

返回窗口或窗口单元用户区域的宽度，单位为像素点。对窗口而言，用户区域为窗口区域减去标题栏、菜单栏、边框后的区域；对窗口单元而言，用户区域等同于其窗口单元区域。本命令为初级对象成员命令。

※取用户区高度

调用格式： 〈整数型〉 对象．取用户区高度 （）

英文名称：GetClientHeight

返回窗口或窗口单元用户区域的高度，单位为像素点。对窗口而言，用户区域为窗口区域减去标题栏、菜单栏、边框后的区域；对窗口单元而言，用户区域等同于其窗口单元区域。本命令为初级对象成员命令。

※禁止重画

调用格式： 〈无返回值〉 对象．禁止重画 （）

英文名称：LockWindowUpdate

禁止窗口或窗口单元重画，以避免当频繁进行操作时引起闪烁。注意调用本命令后必须调用“允许重画”命令进行恢复。本命令为初级对象成员命令。

※允许重画

调用格式： 〈无返回值〉 对象．允许重画 （）

英文名称：UnlockWindowUpdate

重新允许被禁止的窗口或窗口单元重画。本命令为初级对象成员命令。

※重画

调用格式： 〈无返回值〉 对象．重画 （）

英文名称：invalidate

通知 Windows 系统本窗口或窗口单元上的显示内容需要在以后被全部重画。本命令为初级对象成员命令。

※部分重画

调用格式： 〈无返回值〉 对象．部分重画 （欲重画区域的左边，欲重画区域的顶边，欲重画区域的宽度，欲重画区域的高度）

英文名称：InvalidateRect

通知 Windows 系统本窗口或窗口单元上的显示内容需要在以后被部分重画。本命令为初级对象成员命令。

参数<1>的名称为“欲重画区域的左边”，类型为“整数型（int）”。单位为像素点，相对于用户区域的左边。

参数<2>的名称为“欲重画区域的顶边”，类型为“整数型（int）”。单位为像素点，相对于用户区域的顶边。

参数<3>的名称为“欲重画区域的宽度”，类型为“整数型（int）”。单位为像素点。

参数<4>的名称为“欲重画区域的高度”，类型为“整数型（int）”。单位为像素点。

※取消重画

调用格式： 〈无返回值〉 对象．取消重画 （）

英文名称：validate

通知 Windows 系统本窗口或窗口单元不再需要被重画，保留现有的全部显示内容。本命令为初级对象成员命令。

※刷新显示

调用格式： 〈无返回值〉 对象．刷新显示 （）

英文名称：UpdateWindow

如果本窗口或窗口单元上的显示内容需要被全部或部分重画，则立即进行重画更新，否则不进行任何操作直接返回。本命令为初级对象成员命令。

※移动

调用格式： 〈无返回值〉 对象．移动 （［左边］，［顶边］，［宽度］，［高度］）

英文名称：move

改变窗口或窗口单元的位置或尺寸。本命令为初级对象成员命令。

参数<1>的名称为“左边”，类型为“整数型（int）”，可以被省略。单位为像素点。如被省略则不改变左边原位置。

参数<2>的名称为“顶边”，类型为“整数型（int）”，可以被省略。单位为像素点。如被省略则不改变顶边原位置。

参数<3>的名称为“宽度”，类型为“整数型（int）”，可以被省略。单位为像素点。如被省略或等于 -1 ，则不改变原宽度。

参数<4>的名称为“高度”，类型为“整数型（int）”，可以被省略。单位为像素点。如被省略或等于 -1 ，则不改变原高度。

※调整层次

调用格式： 〈无返回值〉 对象．调整层次 （［欲调整到的层次］）

英文名称：ZOrder

改变窗口或窗口单元的现行所处层次。本命令为初级对象成员命令。

参数<1>的名称为“欲调整到的层次”，类型为“整数型（int）”，可以被省略。可以为以下常量之一： 1、#顶层； 2、#底层； 3、#最高层； 4、#次高层。如果被省略，默认为“#顶层”。

※弹出菜单

调用格式： 〈无返回值〉 对象．弹出菜单 （欲弹出的菜单，［水平显示位置］，［垂直显示位置］）

英文名称：PopupMenu

用于在窗口上的当前鼠标位置或指定坐标位置显示弹出式菜单，如果调用对象为窗口单元，则自动使用其所在的窗口。本命令为初级对象成员命令。

参数<1>的名称为“欲弹出的菜单”，类型为“菜单（menu）”。指定菜单内必须包含有子菜单，且所处窗口必须与调用对象窗口一致。

参数<2>的名称为“水平显示位置”，类型为“整数型（int）”，可以被省略。单位为像素点，相对于屏幕左边。如果被省略，将自动使用当前鼠标位置。

参数<3>的名称为“垂直显示位置”，类型为“整数型（int）”，可以被省略。单位为像素点，相对于屏幕顶边。如果被省略，将自动使用当前鼠标位置。

※发送信息

调用格式： 〈整数型〉 对象．发送信息 （信息值，参数1，参数2）

英文名称：SendMessage

将指定信息发送到窗口或窗口单元，并等待且取回信息反馈值。本命令为中级对象成员命令。

参数<1>的名称为“信息值”，类型为“整数型（int）”。

参数<2>的名称为“参数1”，类型为“整数型（int）”，初始值为“0”。

参数<3>的名称为“参数2”，类型为“整数型（int）”，初始值为“0”。

※投递信息

调用格式： 〈无返回值〉 对象．投递信息 （信息值，参数1，参数2）

英文名称：PostMessage

将指定信息发送到窗口或窗口单元，不等待直接返回。本命令为中级对象成员命令。

参数<1>的名称为“信息值”，类型为“整数型（int）”。

参数<2>的名称为“参数1”，类型为“整数型（int）”，初始值为“0”。

参数<3>的名称为“参数2”，类型为“整数型（int）”，初始值为“0”。

※取标记单元

调用格式： 〈通用型〉 对象．取标记单元 （欲寻找单元的标记数值）

英文名称：GetSpecTagUnit

返回当前窗口中具有指定标记数值文本的单元。如果不存在，将产生运行时错误。本命令为初级对象成员命令。

参数<1>的名称为“欲寻找单元的标记数值”，类型为“整数型（int）”。即该单元的“标记”属性文本的数值形式。

※置外形图片

调用格式： 〈逻辑型〉 对象．置外形图片 （图片数据，［透明颜色］）

英文名称：SetShapePic

使用图片来设置窗口的外形，注意图片类型不能为图标及鼠标指针。另外，图片的轮廓应该尽量简单，以免影响窗口的刷新速度。如果调用对象为窗口单元，将自动使用其所在的窗口。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“图片数据”，类型为“通用型（all）”。参数值可以为 .JPG、.GIF、.BMP、.DIB 等等被支持格式的图片数据、图片资源或图片文件名。

参数<2>的名称为“透明颜色”，类型为“整数型（int）”，可以被省略。指定图片中透明部分的颜色。如果被省略，默认为白色。

※激活

调用格式： 〈无返回值〉 对象．激活 （）

英文名称：Activate

激活窗口。本命令为初级对象成员命令。

※置托盘图标

调用格式： 〈无返回值〉 对象．置托盘图标 （［图标数据］，［提示信息］）

英文名称：SetTrayIcon

设置本程序在系统托盘中的图标。本命令为初级对象成员命令。

参数<1>的名称为“图标数据”，类型为“通用型（all）”，可以被省略。参数值可以为图标字节集数据、图标资源或图标文件名。如果省略本参数，默认为清除已有的本程序图标。

参数<2>的名称为“提示信息”，类型为“文本型（text）”，可以被省略。本参数指定当鼠标移动到图标上后显示的提示信息。如果省略本参数，默认为空文本。

※弹出托盘菜单

调用格式： 〈无返回值〉 对象．弹出托盘菜单 （欲弹出的菜单）

英文名称：PopupTrayMenu

在当前鼠标位置弹出指定菜单，本命令一般用作支持托盘菜单的弹出。本命令为初级对象成员命令。

参数<1>的名称为“欲弹出的菜单”，类型为“菜单（menu）”。指定菜单内必须包含有子菜单，且所处窗口必须与调用对象窗口一致。

自有事件：

创建完毕 | 可否被关闭 | 将被销毁 | 位置被改变
尺寸被改变 | 被激活 | 被取消激活 | 空闲
首次激活 | 托盘事件 | 被显示 | 被隐藏

事件 1 ：

事件名称：创建完毕

当窗口及其中的所有单元均被创建后在显示之前产生此事件，用户可以在响应此事件期间做一些初始化工作。本事件为该窗口的第一个事件。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：可否被关闭

在窗口被关闭之前产生此事件，用于询问窗口可否被关闭。如果返回假则不允许窗口被关闭，返回真或不返回值允许关闭。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件 3 ：

事件名称：将被销毁

当窗口将被销毁前产生此事件。窗口被销毁后所有对此窗口及其内部单元的修改都将被作废。

此事件的用户处理子程序不需要返回数据。

事件 4 ：

事件名称：位置被改变

当窗口的位置被改变时产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 5 ：

事件名称：尺寸被改变

当窗口的尺寸被改变后产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 6 ：

事件名称：被激活

当窗口转换为激活状态时产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 7 ：

事件名称：被取消激活

当窗口转换为非激活状态时产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 8 ：

事件名称：空闲

当系统正处于空闲状态时产生此事件，用户可以在响应此事件时做一些后台处理工作。如果事件处理子程序返回假或者不返回值，在此次空闲期间系统将不再产生空闲事件（可以降低 CPU 占用率）。如果返回真，系统将继续产生空闲事件。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件参数<1>的名称为“已空闲时间”，类型为“整数型（int）”。指示自系统本次进入空闲状态后到现在所经过的空闲时间，单位为毫秒。用户程序在空闲状态下所进行的大工作量操作最好等到此值较大时进行。

事件 9 ：

事件名称：首次激活

当窗口创建完毕后被首次激活显示时产生此事件，在此事件及此事件后用户可以开始在窗口内的画板单元上写出内容。

此事件的用户处理子程序不需要返回数据。

事件 10 ：

事件名称：托盘事件

当用户用鼠标单击或双击本窗口对象“置托盘图标”方法所设置的图标后即产生本事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“操作类型”，类型为“整数型（int）”。指示用户操作类型，可能为的值为：1、#左键单击；2、#左键双击；3、#右键单击。

事件 11 ：

事件名称：被显示

当窗口被显示时产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 12 ：

事件名称：被隐藏

当窗口被隐藏时产生此事件。

此事件的用户处理子程序不需要返回数据。

编辑框 窗口单元

数据类型名称：编辑框 英文名称：EditBox

本数据类型为窗口单元型，共包含 1 个成员命令， 29 个成员属性， 2 个单元事件。

成员属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
内容 | 边框 | 文本颜色 | 背景颜色
字体 | 隐藏选择 | 最大允许长度 | 是否允许多行
滚动条 | 对齐方式 | 输入方式 | 密码遮盖字符
转换方式 | 调节器方式 | 调节器底限值 | 调节器上限值
起始选择位置 | 被选择字符数 | 被选择文本 | 数据源
数据列 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“内容”，英文名称为“context”，类型为“文本型（text）”。

成员属性<10>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<11>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<12>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<13>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<14>的中文名称为“隐藏选择”，英文名称为“HideSel”，类型为“逻辑型（bool）”。

本属性指定失去输入焦点后是否还显示当前被选择的区域。

成员属性<15>的中文名称为“最大允许长度”，英文名称为“MaxAllowLength”，类型为“整数型（int）”。

本属性设置最大允许输入到本单元中的字符数目，如为0则输入字符数目不受限制。

成员属性<16>的中文名称为“是否允许多行”，英文名称为“AllowMultiLines”，类型为“逻辑型（bool）”。

本属性设置本单元是否允许输入多行文本。

成员属性<17>的中文名称为“滚动条”，英文名称为“ScrollBar”，类型为“整数型（int）”。

滚动条只有在多行方式下才有效。

可供选择的属性值：

0. 无 1. 横向滚动条 2. 纵向滚动条 3. 横向及纵向滚动条

成员属性<18>的中文名称为“对齐方式”，英文名称为“AlignMode”，类型为“整数型（int）”。

可供选择的属性值：

0. 左对齐 1. 居中 2. 右对齐

成员属性<19>的中文名称为“输入方式”，英文名称为“InputMode”，类型为“整数型（int）”。

可供选择的属性值：

0. 通常方式 1. 只读方式 2. 密码输入 3. 整数文本输入

4. 小数文本输入 5. 输入字节 6. 输入短整数 7. 输入整数

8. 输入长整数 9. 输入小数 10. 输入双精度小数 11. 输入日期时间

成员属性<20>的中文名称为“密码遮盖字符”，英文名称为“PasswordChar”，类型为“文本型（text）”。

本属性设置当输入方式为“密码输入”时输入字符后显示在输入框中的替代字符。

成员属性<21>的中文名称为“转换方式”，英文名称为“ConvertMode”，类型为“整数型（int）”。

可供选择的属性值：

0. 无 1. 大写->小写 2. 小写->大写

成员属性<22>的中文名称为“调节器方式”，英文名称为“spin”，类型为“整数型（int）”。

调节器只有在单行方式下才有效。

可供选择的属性值：

0. 无调节器 1. 自动调节器 2. 手动调节器

成员属性<23>的中文名称为“调节器底限值”，英文名称为“SpinMin”，类型为“整数型（int）”。

只有在自动调节器方式下才有效。

成员属性<24>的中文名称为“调节器上限值”，英文名称为“SpinMax”，类型为“整数型（int）”。

只有在自动调节器方式下才有效。

成员属性<25>的中文名称为“起始选择位置”，英文名称为“SelStart”，类型为“整数型（int）”。

返回或设置所选择文本的起始点；0 为位置 1 ，1 为位置 2，如此类推。如果没有文本被选中，则指出光标位置。如果设置位置时使用值 -1，则将当前光标位置移动到文本尾部。当类型为“不可编辑下拉式”时，本属性无效。

成员属性<26>的中文名称为“被选择字符数”，英文名称为“SelLength”，类型为“整数型（int）”。

返回或设置所选择的字符数。如果设置字符数时使用值 -1，则选择文本框内的所有字符。

成员属性<27>的中文名称为“被选择文本”，英文名称为“SelText”，类型为“文本型（text）”。

本属性在设计时不可用，在运行时可读可写。

返回或替换当前所选择的文本。

成员属性<28>的中文名称为“数据源”，英文名称为“DataSource”，类型为“文本型（text）”。

指定提供数据的数据源单元名。

成员属性<29>的中文名称为“数据列”，英文名称为“DataCol”，类型为“文本型（text）”。

指定数据源中的数据列，可以是列名或以1开始的列序号文本。

成员命令

※加入文本

调用格式： 〈无返回值〉 对象．加入文本 （欲加入文本，… ）

英文名称：AddText

将指定文本加入到编辑框内容的尾部。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲加入文本”，类型为“文本型（text）”。

自有事件：

内容被改变

调节钮被按下

单元事件列表：

事件 1 ：

事件名称：内容被改变

当编辑框的内容被修改后即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：调节钮被按下

只有调节器方式为“手动调节器”时才会产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“按钮值”，类型为“整数型（int）”。如果按下的是调节器的向上箭头按钮，参数值为 1，否则为 -1。

图片框 包容型窗口单元

数据类型名称：图片框 英文名称：PicBox

本数据类型为包容窗口单元型，不能接受输入焦点，共包含 15 个成员属性。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 背景颜色 | 图片 | 显示方式
播放动画 | 数据源 | 数据列 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式

3. 浅凹入式 4. 镜框式 5. 单线边框式

成员属性<10>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<11>的中文名称为“图片”，英文名称为“pic”，类型为“字节集（bin）”。

本属性指定显示在图片框上的图片。

成员属性<12>的中文名称为“显示方式”，英文名称为“PicDrawMode”，类型为“整数型（int）”。

如果设定了图片，本属性指定图片框上图片的显示方式。

可供选择的属性值：

0. 图片居左上 1. 缩放图片 2. 图片居中

成员属性<13>的中文名称为“播放动画”，英文名称为“PlayGif”，类型为“逻辑型（bool）”。

当图片为 GIF 动画格式时，通过改变此属性可控制其播放或停止。如在设计时置本属性为真，运行时动画在图片框被创建后即自动开始播放。

成员属性<14>的中文名称为“数据源”，英文名称为“DataSource”，类型为“文本型（text）”。

指定提供数据的数据源单元名。

成员属性<15>的中文名称为“数据列”，英文名称为“DataCol”，类型为“文本型（text）”。

指定数据源中的字节集或图片数据列，可以是列名或以1开始的列序号文本。

外形框 包容型窗口单元

数据类型名称：外形框 英文名称：ShapeBox

本数据类型为包容窗口单元型，不能接受输入焦点，共包含 15 个成员属性。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
背景颜色 | 外形 | 线条效果 | 线型
线宽 | 线条颜色 | 填充颜色 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<10>的中文名称为“外形”，英文名称为“shape”，类型为“整数型（int）”。

可供选择的属性值：

0. 矩形 1. 正方形 2. 椭圆 3. 圆

4. 圆角矩形 5. 圆角正方形 6. 横向线 7. 纵向线

成员属性<11>的中文名称为“线条效果”，英文名称为“effect”，类型为“整数型（int）”。

可供选择的属性值：

0. 通常 1. 凹入 2. 凸出

成员属性<12>的中文名称为“线型”，英文名称为“LineStyle”，类型为“整数型（int）”。

可供选择的属性值：

0. 无 1. 直线 2. 划线 3. 点线 4. 点划线 5. 双点划线

成员属性<13>的中文名称为“线宽”，英文名称为“LineWidth”，类型为“整数型（int）”。

注意：仅在线条效果为“通常”且线型为“直线”时才有效。

成员属性<14>的中文名称为“线条颜色”，英文名称为“LineColor”，类型为“整数型（int）”。

注意：仅在线条效果为“通常”时才有效。

成员属性<15>的中文名称为“填充颜色”，英文名称为“FillColor”，类型为“整数型（int）”。

注意：仅在外形不为线条时才有效。

画板 包容型窗口单元

数据类型名称：画板 英文名称：DrawPanel

本数据类型为包容窗口单元型，共包含 27 个成员命令， 25 个成员属性， 1 个单元事件。

成员属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 画板背景色 | 底图 | 底图方式
自动重画 | 绘画单位 | 画笔类型 | 画出方式
画笔粗细 | 画笔颜色 | 刷子类型 | 刷子颜色
文本颜色 | 文本背景颜色 | 字体 | 画板宽度
画板高度 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式 4. 镜框式 5. 单线边框式

成员属性<10>的中文名称为“画板背景色”，英文名称为“BackColor”，类型为“整数型（int）”。

注意如果“自动重画”属性为真，则不支持透明色。

成员属性<11>的中文名称为“底图”，英文名称为“pic”，类型为“字节集（bin）”。

本属性指定显示在画板背景上的图片。

成员属性<12>的中文名称为“底图方式”，英文名称为“BackPicMode”，类型为“整数型（int）”。

如果设定了底图，本属性指定画板背景上底图的显示方式。

可供选择的属性值：

0. 图片居左上 1. 图片平铺 2. 图片居中

成员属性<13>的中文名称为“自动重画”，英文名称为“AutoRedraw”，类型为“逻辑型（bool）”。

如果本属性设置为真，系统将自动把所有在画板上进行的绘画操作的结果保存到内存中，当以后需要重画时，系统简单地把所保存的绘画结果复制到画板上，而不再产生“绘画”事件。采用本属性需要消耗一定数量的内存。

成员属性<14>的中文名称为“绘画单位”，英文名称为“unit”，类型为“整数型（int）”。

本属性指定绘画时所使用的单位，坐标系的 X 轴从左到右，Y 轴从上到下。

可供选择的属性值：

0. 像素点 1. 0.1毫米 2. 0.01毫米 3. 0.01英寸

4. 0.001英寸 5. 1/1440英寸

成员属性<15>的中文名称为“画笔类型”，英文名称为“PenStyle”，类型为“整数型（int）”。

可供选择的属性值：

0. 空笔 1. 直线 2. 划线 3. 点线 4. 点划线

5. 双点划线 6. 内直线

成员属性<16>的中文名称为“画出方式”，英文名称为“DrawRop2”，类型为“整数型（int）”。

有关各种画出方式的说明为： 0、黑色：始终画出黑色；1、非或笔：或笔的相反；2、与非笔：背景色以及画笔反相二者共有颜色的组合；3、非复制笔：复制笔的相反；4、与笔非：画笔以及已有颜色反相二者共有颜色的组合；5、反转：已有颜色的反相；6、异或笔：画笔的颜色以及已有颜色的组合，只取其一；7、非与笔：与笔的相反；8、与笔：画笔和已有二者共有颜色的组合；9、非异或笔：异或笔的相反；10、无操作：原有保持不变。该设置实际上关闭画笔；11、或非笔：已有颜色与画笔颜色反相的组合；12、复制笔（缺省值）：画笔颜色；13、或笔非：画笔颜色与已有颜色的反相的组合；14、或笔：画笔颜色与已有颜色的组合；15、白色：始终画出白色。

可供选择的属性值：

0. 黑色 1. 非或笔 2. 与非笔 3. 非复制笔 4. 与笔非

5. 反转 6. 异或笔 7. 非与笔 8. 与笔 9. 非异或笔

10. 无操作 11. 或非笔 12. 复制笔 13. 或笔非 14. 或笔

15. 白色

成员属性<17>的中文名称为“画笔粗细”，英文名称为“PenWidth”，类型为“整数型（int）”。

使用现行绘画单位，如果为0，表示画笔的粗细为一个像素点。注意：当画笔类型为划线、点线、点划线、双点划线时，本属性无效，画笔宽度始终为一个像素点。

成员属性<18>的中文名称为“画笔颜色”，英文名称为“PenColor”，类型为“整数型（int）”。

成员属性<19>的中文名称为“刷子类型”，英文名称为“BrushStyle”，类型为“整数型（int）”。

各种格式刷子将使用当前文本背景颜色作为刷子背景颜色。

可供选择的属性值：

0. 空刷子 1. 颜色刷子 2. 右斜线 3. 直交叉线 4. 斜交叉线

5. 左斜线 6. 横线 7. 竖线 8. 5%色点 9. 10%色点

10. 20%色点 11. 25%色点 12. 30%色点 13. 40%色点 14. 50%色点

15. 60%色点 16. 70%色点 17. 75%色点 18. 80%色点

19. 90%色点 20. 浅色上对角线 21. 浅色下对角线 22. 深色上对角线

23. 深色下对角线 24. 宽上对角线 25. 宽下对角线

26. 浅色竖线 27. 浅色横线 28. 窄竖线 29. 窄横线 30. 深色竖线

31. 深色横线 32. 上对角虚线 33. 下对角虚线 34. 横虚线 35. 竖虚线

36. 小纸屑 37. 大纸屑 38. 之字形 39. 波浪线 40. 对角砖形

41. 横向砖形 42. 纺织物 43. 方格呢 44. 草皮 45. 虚格线

46. 点式菱形 47. 瓦形 48. 棚架 49. 球体 50. 小网格

51. 大网格 52. 小棋盘 53. 大棋盘 54. 空心菱形 55. 实心菱形

成员属性<20>的中文名称为“刷子颜色”，英文名称为“BrushColor”，类型为“整数型（int）”。

成员属性<21>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<22>的中文名称为“文本背景颜色”，英文名称为“TextBackColor”，类型为“整数型（int）”。

成员属性<23>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<24>的中文名称为“画板宽度”，英文名称为“width”，类型为“整数型（int）”。

本属性只可读。

本属性提供了目前画板的宽度，使用现行绘画单位。属性值等于“画板”窗口单元的用户区域宽度。

成员属性<25>的中文名称为“画板高度”，英文名称为“height”，类型为“整数型（int）”。

本属性只可读。

本属性提供了目前画板的高度，使用现行绘画单位。属性值等于“画板”窗口单元的用户区域高度。

成员命令

取设备句柄 | 清除 | 取点 | 画点
画直线 | 画椭圆 | 画弧线 | 画弦
画饼 | 画矩形 | 画渐变矩形 | 填充矩形
画圆角矩形 | 翻转矩形区 | 画多边形 | 置写出位置
写文本行 | 滚动写行 | 写出 | 定位写出
取宽度 | 取高度 | 画图片 | 取图片宽度
取图片高度 | 复制 | 取图片 |

※取设备句柄

调用格式： 〈整数型〉 对象．取设备句柄 （）

英文名称：GetHDC

如当前用户程序正在处理本画板所产生的“绘画”事件，则返回画板所对应的设备句柄（即HDC），否则返回 0。本命令为高级对象成员命令。

※清除

调用格式： 〈无返回值〉 对象．清除 （［清除区左上角横坐标］，［清除区左上角纵坐标］，［清除区宽度］，［清除区高度］）

英文名称：cls

清除画板上指定区域的内容并将当前文本写出位置移动到被清除区左上角。本命令为初级对象成员命令。

参数<1>的名称为“清除区左上角横坐标”，类型为“整数型（int）”，可以被省略。使用当前绘画单位，相对于画板左上角。如果被省略，默认为 0 。

参数<2>的名称为“清除区左上角纵坐标”，类型为“整数型（int）”，可以被省略。使用当前绘画单位，相对于画板左上角。如果被省略，默认为 0 。

参数<3>的名称为“清除区宽度”，类型为“整数型（int）”，可以被省略。使用当前绘画单位。如果被省略，默认为清除区左边到画板右边之间的宽度。

参数<4>的名称为“清除区高度”，类型为“整数型（int）”，可以被省略。使用当前绘画单位。如果被省略，默认为清除区顶边到画板底边之间的高度。

※取点

调用格式： 〈整数型〉 对象．取点 （点横坐标，点纵坐标）

英文名称：GetPixel

返回画板上指定点的颜色值。如果失败，将返回 -1。本命令为初级对象成员命令。

参数<1>的名称为“点横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“点纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画点

调用格式： 〈无返回值〉 对象．画点 （点横坐标，点纵坐标，欲画入点的颜色值）

英文名称：SetPixel

本命令为初级对象成员命令。

参数<1>的名称为“点横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“点纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“欲画入点的颜色值”，类型为“整数型（int）”。

※画直线

调用格式： 〈无返回值〉 对象．画直线 （起始点横坐标，起始点纵坐标，结束点横坐标，结束点纵坐标）

英文名称：LineTo

使用画笔在画板上画出一条直线。本命令为初级对象成员命令。

参数<1>的名称为“起始点横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“起始点纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“结束点横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“结束点纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画椭圆

调用格式： 〈无返回值〉 对象．画椭圆 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标）

英文名称：ellipse

本命令为初级对象成员命令。

参数<1>的名称为“椭圆左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“椭圆左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“椭圆右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“椭圆右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画弧线

调用格式： 〈无返回值〉 对象．画弧线 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

英文名称：ArcTo

使用画笔在画板上画出一条弧线。本命令为初级对象成员命令。

参数<1>的名称为“椭圆左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“椭圆左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“椭圆右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“椭圆右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<5>的名称为“弧线起始点横坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<6>的名称为“弧线起始点纵坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<7>的名称为“弧线终止点横坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<8>的名称为“弧线终止点纵坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

※画弦

调用格式： 〈无返回值〉 对象．画弦 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

英文名称：chord

本命令为初级对象成员命令。

参数<1>的名称为“椭圆左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“椭圆左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“椭圆右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“椭圆右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<5>的名称为“弧线起始点横坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<6>的名称为“弧线起始点纵坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<7>的名称为“弧线终止点横坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<8>的名称为“弧线终止点纵坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

※画饼

调用格式： 〈无返回值〉 对象．画饼 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

英文名称：pie

本命令为初级对象成员命令。

参数<1>的名称为“椭圆左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“椭圆左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“椭圆右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“椭圆右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<5>的名称为“弧线起始点横坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<6>的名称为“弧线起始点纵坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<7>的名称为“弧线终止点横坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<8>的名称为“弧线终止点纵坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

※画矩形

调用格式： 〈无返回值〉 对象．画矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

英文名称：DrawRect

使用画笔在画板上画出一个矩形，矩形的内部使用刷子填充。本命令为初级对象成员命令。

参数<1>的名称为“矩形左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“矩形左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“矩形右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“矩形右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画渐变矩形

调用格式： 〈无返回值〉 对象．画渐变矩形 （矩形区域左边，矩形区域顶边，矩形区域宽度，矩形区域高度，［渐变方向］，首渐变颜色，其它渐变颜色，… ）

英文名称：DrawJBRect

本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“矩形区域左边”，类型为“整数型（int）”。

参数<2>的名称为“矩形区域顶边”，类型为“整数型（int）”。

参数<3>的名称为“矩形区域宽度”，类型为“整数型（int）”。

参数<4>的名称为“矩形区域高度”，类型为“整数型（int）”。

参数<5>的名称为“渐变方向”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值之一： 1、#从上到下； 2、#从左到右； 3、从左上到右下； 4、从右上到左下； 5、从下到上； 6、从右到左； 7、从右下到左上； 8、从左下到右上。 如果本参数被省略，默认为“#从左到右”。

参数<6>的名称为“首渐变颜色”，类型为“整数型（int）”。

参数<7>的名称为“其它渐变颜色”，类型为“整数型（int）”。

※填充矩形

调用格式： 〈无返回值〉 对象．填充矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

英文名称：FillRect

将画板上指定的矩形区域用当前刷子填充。本命令为初级对象成员命令。

参数<1>的名称为“矩形左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“矩形左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“矩形右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“矩形右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画圆角矩形

调用格式： 〈无返回值〉 对象．画圆角矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标，圆角宽度，［圆角高度］）

英文名称：RoundRect

使用画笔在画板上画出一个圆角矩形，圆角矩形的内部使用刷子填充。本命令为初级对象成员命令。

参数<1>的名称为“矩形左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“矩形左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“矩形右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“矩形右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<5>的名称为“圆角宽度”，类型为“整数型（int）”。使用当前绘画单位。

参数<6>的名称为“圆角高度”，类型为“整数型（int）”，可以被省略。使用当前绘画单位。如果省略本参数，默认与圆角宽度相等。

※翻转矩形区

调用格式： 〈无返回值〉 对象．翻转矩形区 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

英文名称：InvertRect

将画板上指定矩形区域的颜色翻转过来。本命令为初级对象成员命令。

参数<1>的名称为“矩形左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“矩形左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“矩形右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“矩形右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画多边形

调用格式： 〈无返回值〉 对象．画多边形 （多边形顶点，［顶点数目］）

英文名称：polygon

如果所画的多边形没有闭合，将自动闭合。本命令为初级对象成员命令。

参数<1>的名称为“多边形顶点”，类型为“整数型（int）”，提供参数数据时只能提供数组数据。本参数数组顺序记录多边形各顶点的横向及纵向坐标值。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“顶点数目”，类型为“整数型（int）”，可以被省略。本参数指定多边形顶点的总数目。如果被省略，默认为数组中所记录的顶点数目。

※置写出位置

调用格式： 〈无返回值〉 对象．置写出位置 （［横向写出位置］，［纵向写出位置］）

英文名称：SetWritePos

设置下次使用“写文本行”或“写出”命令输出数据时的位置。本命令为初级对象成员命令。

参数<1>的名称为“横向写出位置”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用现行横向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“纵向写出位置”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用现行纵向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

※写文本行

调用格式： 〈无返回值〉 对象．写文本行 （［欲写出数据］，… ）

英文名称：print

在当前写出位置写出指定的文本、数值、逻辑值或日期时间，并将现行写出位置调整到下行行首。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据”，类型为“通用型（all）”，可以被省略。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

※滚动写行

调用格式： 〈无返回值〉 对象．滚动写行 （［欲写出数据］，… ）

英文名称：sprint

在当前写出位置写出指定的文本、数值、逻辑值或日期时间，并将现行写出位置调整到下行行首。如果现行画板高度无法容纳当前所要写出的行，则自动向上滚动画板内容。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据”，类型为“通用型（all）”，可以被省略。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

※写出

调用格式： 〈无返回值〉 对象．写出 （［欲写出数据］，… ）

英文名称：write

在当前写出位置处写出指定的文本、数值、逻辑值或日期时间。自动调整现行写出位置到所写出数据的末位置。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据”，类型为“通用型（all）”，可以被省略。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

※定位写出

调用格式： 〈无返回值〉 对象．定位写出 （［横向写出位置］，［纵向写出位置］，欲写出数据，… ）

英文名称：say

在指定写出位置处写出指定的文本、数值、逻辑值或日期时间，不改变现行写出位置。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“横向写出位置”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用现行横向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“纵向写出位置”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用现行纵向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“欲写出数据”，类型为“通用型（all）”。参数值只能为文本、数值、逻辑值或日期时间。

※取宽度

调用格式： 〈整数型〉 对象．取宽度 （欲取其宽度或高度的数据）

英文名称：GetWidth

返回指定数据的写出宽度，使用当前绘画单位。本命令为初级对象成员命令。

参数<1>的名称为“欲取其宽度或高度的数据”，类型为“通用型（all）”。参数值只能为文本、数值、逻辑值或日期时间。

※取高度

调用格式： 〈整数型〉 对象．取高度 （欲取其宽度或高度的数据）

英文名称：GetHeight

返回指定数据的写出高度，使用当前绘画单位。本命令为初级对象成员命令。

参数<1>的名称为“欲取其宽度或高度的数据”，类型为“通用型（all）”。参数值只能为文本、数值、逻辑值或日期时间。

※画图片

调用格式： 〈无返回值〉 对象．画图片 （图片号，图片左边画出位置，图片顶边画出位置，［图片画出宽度］，［图片画出高度］，［图片画出方法］）

英文名称：DrawPic

本命令为初级对象成员命令。

参数<1>的名称为“图片号”，类型为“整数型（int）”。参数值必须为调用“载入图片”命令所返回的图片号。

参数<2>的名称为“图片左边画出位置”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“图片顶边画出位置”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“图片画出宽度”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用图片本身的宽度。使用当前绘画单位。

参数<5>的名称为“图片画出高度”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用图片本身的高度。使用当前绘画单位。

参数<6>的名称为“图片画出方法”，类型为“整数型（int）”，可以被省略。本参数定义在将图像绘制到对象（画板 / 打印机）上时对图像执行的位操作。对“图标”类型图片无效。可以为以下常量值之一或者其它自定义操作码：

1、#拷贝； 2、#翻转拷贝； 3、#位异或； 4、#位或； 5、#位与

本参数也可以指定透明色，但必须是负颜色数值。如：

画板1.画图片 (图片号, 0, 0, , , －取颜色值 (255, 255, 255))

此语句的作用就是在画板上画出图片中除白色外的所有颜色。

如果省略本参数，默认为“#拷贝”。

※取图片宽度

调用格式： 〈整数型〉 对象．取图片宽度 （图片号）

英文名称：GetPicWidth

返回指定图片的宽度，使用当前绘画单位。本命令为初级对象成员命令。

参数<1>的名称为“图片号”，类型为“整数型（int）”。参数值必须为调用“载入图片”命令所返回的图片号。

※取图片高度

调用格式： 〈整数型〉 对象．取图片高度 （图片号）

英文名称：GetPicHeight

返回指定图片的高度，使用当前绘画单位。本命令为初级对象成员命令。

参数<1>的名称为“图片号”，类型为“整数型（int）”。参数值必须为调用“载入图片”命令所返回的图片号。

※复制

调用格式： 〈无返回值〉 对象．复制 （［欲复制区域的左边］，［欲复制区域的顶边］，［欲复制区域的宽度］，［欲复制区域的高度］，［复制到的目的画板］，［欲复制到位置左边］，［欲复制到位置顶边］，［复制方法］）

英文名称：copy

将源画板（本命令的调用画板对象）中指定区域的内容快速复制到目的画板中的指定位置，使用源和目的画板各自的当前绘画单位。如果源画板当前不可视，其“自动重画”属性必须为真。本命令为初级对象成员命令。

参数<1>的名称为“欲复制区域的左边”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为 0 。使用源画板的当前绘画单位。

参数<2>的名称为“欲复制区域的顶边”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为 0 。使用源画板的当前绘画单位。

参数<3>的名称为“欲复制区域的宽度”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认等同于源画板的宽度。使用源画板的当前绘画单位。

参数<4>的名称为“欲复制区域的高度”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认等同于源画板的高度。使用源画板的当前绘画单位。

参数<5>的名称为“复制到的目的画板”，类型为“画板（DrawPanel）”，可以被省略。如果本参数被省略，默认为复制到源画板对象。

参数<6>的名称为“欲复制到位置左边”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为 0 。使用目的画板的当前绘画单位。

参数<7>的名称为“欲复制到位置顶边”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为 0 。使用目的画板的当前绘画单位。

参数<8>的名称为“复制方法”，类型为“整数型（int）”，可以被省略。本参数定义在将画板内容复制到目的画板上时对图像执行的位操作。可以为以下常量值之一或者其它自定义操作码：

1、#拷贝； 2、#翻转拷贝； 3、#位异或； 4、#位或； 5、#位与。

如果省略本参数，默认为“#拷贝”。

※取图片

调用格式： 〈字节集〉 对象．取图片 （［输出宽度］，［输出高度］）

英文名称：GetPic

返回画板上所有现有显示内容的图片数据。如果失败，返回空字节集。本命令为初级对象成员命令。

参数<1>的名称为“输出宽度”，类型为“整数型（int）”，可以被省略。指定图片的输出宽度。如果小于0，参数值指定的是最终图片输出宽度相对于所取得图片宽度的百分比（最小为10%）；如果等于0，则按图片原宽度输出；如果大于0，指定输出图片的绝对宽度。如果本参数被省略，默认值为0。

参数<2>的名称为“输出高度”，类型为“整数型（int）”，可以被省略。指定图片的输出高度。如果小于0，参数值指定的是最终图片输出高度相对于所取得图片高度的百分比（最小为10%）；如果等于0，则按图片原高度输出；如果大于0，指定输出图片的绝对高度。如果本参数被省略，默认值为0。

自有事件：

单元事件列表：绘画

事件名称：绘画

当画板中的全部或一部分区域需要被重新绘制时即产生此事件。用户程序在响应此事件期间在画板上所进行的任何绘制操作均被限制在“需重画区”参数所指定的区域内。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“重画区左边”，类型为“整数型（int）”。本参数提供目前画板中需要更新的矩形区域的左边，使用现行绘画单位，用作提高绘画速度，一般情况下可以不处理。

事件参数<2>的名称为“重画区上边”，类型为“整数型（int）”。本参数提供目前画板中需要更新的矩形区域的顶边，使用现行绘画单位，用作提高绘画速度，一般情况下可以不处理。

事件参数<3>的名称为“重画区右边”，类型为“整数型（int）”。本参数提供目前画板中需要更新的矩形区域的右边，使用现行绘画单位，用作提高绘画速度，一般情况下可以不处理。

事件参数<4>的名称为“重画区下边”，类型为“整数型（int）”。本参数提供目前画板中需要更新的矩形区域的底边，使用现行绘画单位，用作提高绘画速度，一般情况下可以不处理。

分组框 包容型窗口单元

数据类型名称：分组框 英文名称：GroupBox

本数据类型为包容窗口单元型，不能接受输入焦点，共包含 13 个成员属性。

成员属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 对齐方式 | 文本颜色 | 背景颜色
字体 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

如果希望某一字符成为本分组框中第一个可停留焦点单元的访问键，可以在该字符前面加上一个 & 字符。

成员属性<10>的中文名称为“对齐方式”，英文名称为“AlignMode”，类型为“整数型（int）”。

可供选择的属性值：

0. 左边 1. 居中 2. 右边

成员属性<11>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<12>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<13>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

标签 窗口单元

数据类型名称：标签 英文名称：Label

本数据类型为窗口单元型，不能接受输入焦点，共包含 29 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 效果 | 边框 | 渐变边框宽度
渐变边框颜色1 | 渐变边框颜色2 | 渐变边框颜色3 | 字体
文本颜色 | 背景颜色 | 底图 | 底图方式
渐变背景方式 | 渐变背景颜色1 | 渐变背景颜色2 | 渐变背景颜色3
横向对齐方式 | 是否自动折行 | 纵向对齐方式 | 数据源
数据列 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

如果希望某一字符成为本标签后可停留焦点单元的访问键，可以在该字符前面加上一个 & 字符。

成员属性<10>的中文名称为“效果”，英文名称为“effect”，类型为“整数型（int）”。

可供选择的属性值：

0. 通常 1. 凹入 2. 凸出 3. 阴影

成员属性<11>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式 6. 渐变镜框式

成员属性<12>的中文名称为“渐变边框宽度”，类型为“整数型（int）”。

成员属性<13>的中文名称为“渐变边框颜色1”，类型为“整数型（int）”。

成员属性<14>的中文名称为“渐变边框颜色2”，类型为“整数型（int）”。

成员属性<15>的中文名称为“渐变边框颜色3”，类型为“整数型（int）”。

成员属性<16>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<17>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<18>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<19>的中文名称为“底图”，英文名称为“BackPic”，类型为“字节集（bin）”。

本属性指定显示在标签背景上的图片。

成员属性<20>的中文名称为“底图方式”，英文名称为“BackPicMode”，类型为“整数型（int）”。

如果设定了底图，本属性指定标签背景上底图的显示方式。

可供选择的属性值：

0. 图片居左上 1. 图片平铺 2. 图片居中

成员属性<21>的中文名称为“渐变背景方式”，类型为“整数型（int）”。

本属性只有在未设定底图的前提下才有效。

可供选择的属性值：

0. 无渐变背景 1. 从上到下 2. 从左到右

3. 从左上到右下 4. 从右上到左下 5. 从下到上

6. 从右到左 7. 从右下到左上 8. 从左下到右上

成员属性<22>的中文名称为“渐变背景颜色1”，类型为“整数型（int）”。

成员属性<23>的中文名称为“渐变背景颜色2”，类型为“整数型（int）”。

成员属性<24>的中文名称为“渐变背景颜色3”，类型为“整数型（int）”。

成员属性<25>的中文名称为“横向对齐方式”，英文名称为“HorzAlignMode”，类型为“整数型（int）”。

可供选择的属性值：

0. 左对齐 1. 居中 2. 右对齐

成员属性<26>的中文名称为“是否自动折行”，类型为“逻辑型（bool）”。

本属性设定当文本内容超出右界后是否自动转到下一行显示。

成员属性<27>的中文名称为“纵向对齐方式”，英文名称为“VertAlignMode”，类型为“整数型（int）”。

如果选用自动折行则本属性无效。

可供选择的属性值：

0. 顶对齐 1. 居中 2. 底对齐

成员属性<28>的中文名称为“数据源”，英文名称为“DataSource”，类型为“文本型（text）”。

指定提供数据的数据源单元名。

成员属性<29>的中文名称为“数据列”，英文名称为“DataCol”，类型为“文本型（text）”。

指定数据源中的数据列，可以是列名或以1开始的列序号文本。

自有事件：

单元事件列表：反馈

事件名称：反馈事件

本事件用作与外部DLL交互，事件子程序处理完毕后可以根据需要决定是否返回值。

此事件的用户处理子程序所需返回数据的类型为“整数型（int）”。

事件参数<1>的名称为“参数一”，类型为“整数型（int）”。反馈事件所带过来的第一个参数。

事件参数<2>的名称为“参数二”，类型为“整数型（int）”。反馈事件所带过来的第二个参数。

按钮 窗口单元

数据类型名称：按钮 英文名称：Button

本数据类型为窗口单元型，共包含 14 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
图片 | 类型 | 标题 | 横向对齐方式
纵向对齐方式 | 字体 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“图片”，英文名称为“pic”，类型为“字节集（bin）”。

本属性指定显示在按钮上的图片。

成员属性<10>的中文名称为“类型”，英文名称为“style”，类型为“整数型（int）”。

当在窗口上按下Enter键时，如果没有将窗口的“回车下移输入点”属性设置为真，则等同于按下了具有“默认”类型的按钮。因此具有“默认”类型的按钮在同一窗口上应当只有一个。“通常”类型的按钮无对应的操作默认键。

可供选择的属性值：

0. 通常 1. 默认

成员属性<11>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

标题只有在图片为空时才有效，如果希望某一字符成为此按钮的访问键，可以在该字符前面加上一个 & 字符。

成员属性<12>的中文名称为“横向对齐方式”，英文名称为“HorzAlign”，类型为“整数型（int）”。

可供选择的属性值：

0. 左边 1. 居中 2. 右边

成员属性<13>的中文名称为“纵向对齐方式”，英文名称为“VertAlign”，类型为“整数型（int）”。

可供选择的属性值：

0. 顶边 1. 居中 2. 底边

成员属性<14>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

自有事件：

单元事件列表：被单击

事件名称：被单击

当单击按钮后即产生此事件。

此事件的用户处理子程序不需要返回数据。

选择框 窗口单元

数据类型名称：选择框 英文名称：CheckBox

本数据类型为窗口单元型，共包含 21 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
图片 | 按钮形式 | 平面 | 标题
标题居左 | 横向对齐方式 | 纵向对齐方式 | 文本颜色
背景颜色 | 字体 | 选中 | 数据源
数据列 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“图片”，英文名称为“pic”，类型为“字节集（bin）”。

本属性指定显示在选择框上的图片。

成员属性<10>的中文名称为“按钮形式”，英文名称为“PushLike”，类型为“逻辑型（bool）”。

成员属性<11>的中文名称为“平面”，英文名称为“flat”，类型为“逻辑型（bool）”。

成员属性<12>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

标题只有在图片为空时才有效，如果希望某一字符成为此选择框的访问键，可以在该字符前面加上一个 & 字符。

成员属性<13>的中文名称为“标题居左”，英文名称为“LeftCaption”，类型为“逻辑型（bool）”。

成员属性<14>的中文名称为“横向对齐方式”，英文名称为“HorzAlign”，类型为“整数型（int）”。

可供选择的属性值：

0. 左边 1. 居中 2. 右边

成员属性<15>的中文名称为“纵向对齐方式”，英文名称为“VertAlign”，类型为“整数型（int）”。

可供选择的属性值：

0. 顶边 1. 居中 2. 底边

成员属性<16>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<17>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<18>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<19>的中文名称为“选中”，英文名称为“Checked”，类型为“逻辑型（bool）”。

成员属性<20>的中文名称为“数据源”，英文名称为“DataSource”，类型为“文本型（text）”。

指定提供数据的数据源单元名。

成员属性<21>的中文名称为“数据列”，英文名称为“DataCol”，类型为“文本型（text）”。

指定数据源中的数据列，可以是列名或以1开始的列序号文本。

自有事件：

单元事件列表：被单击

事件名称：被单击

当单击选择框后即产生此事件。

此事件的用户处理子程序不需要返回数据。

单选框 窗口单元

数据类型名称：单选框 英文名称：RadioBox

本数据类型为窗口单元型，共包含 19 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
图片 | 按钮形式 | 平面 | 标题
标题居左 | 横向对齐方式 | 纵向对齐方式 | 文本颜色
背景颜色 | 字体 | 选中 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“图片”，英文名称为“pic”，类型为“字节集（bin）”。

本属性指定显示在单选框上的图片。

成员属性<10>的中文名称为“按钮形式”，英文名称为“PushLike”，类型为“逻辑型（bool）”。

成员属性<11>的中文名称为“平面”，英文名称为“flat”，类型为“逻辑型（bool）”。

成员属性<12>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

标题只有在图片为空时才有效，如果希望某一字符成为此单选框的访问键，可以在该字符前面加上一个 & 字符。

成员属性<13>的中文名称为“标题居左”，英文名称为“LeftCaption”，类型为“逻辑型（bool）”。

成员属性<14>的中文名称为“横向对齐方式”，英文名称为“HorzAlign”，类型为“整数型（int）”。

可供选择的属性值：

0. 左边 1. 居中 2. 右边

成员属性<15>的中文名称为“纵向对齐方式”，英文名称为“VertAlign”，类型为“整数型（int）”。

可供选择的属性值：

0. 顶边 1. 居中 2. 底边

成员属性<16>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<17>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<18>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<19>的中文名称为“选中”，英文名称为“Checked”，类型为“逻辑型（bool）”。

自有事件：

单元事件列表：被单击

事件名称：被单击

当单击单选框后即产生此事件。

此事件的用户处理子程序不需要返回数据。

组合框 窗口单元

数据类型名称：组合框 英文名称：ComboBox

本数据类型为窗口单元型，共包含 12 个成员命令， 25 个成员属性， 5 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
类型 | 内容 | 最大文本长度 | 起始选择位置
被选择字符数 | 被选择文本 | 自动排序 | 行间距
文本颜色 | 背景颜色 | 字体 | 现行选中项
列表项目 | 项目数值 | 数据源 | 数据列
除去重复 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“类型”，英文名称为“style”，类型为“整数型（int）”。

可供选择的属性值：

0. 可编辑列表式 1. 可编辑下拉式 2. 不可编辑下拉式

成员属性<10>的中文名称为“内容”，英文名称为“context”，类型为“文本型（text）”。

本属性指定在下拉列表框编辑部分中的文本内容。当类型为“不可编辑下拉式”时，本属性无效。

成员属性<11>的中文名称为“最大文本长度”，英文名称为“TextLimit”，类型为“整数型（int）”。

本属性指定在下拉列表框的编辑部分所允许输入的最大文本长度，为0表示没有限制。当类型为“不可编辑下拉式”时，本属性无效。

成员属性<12>的中文名称为“起始选择位置”，英文名称为“SelStart”，类型为“整数型（int）”。

返回或设置所选择文本的起始点；0 为位置 1 ，1 为位置 2，如此类推。如果没有文本被选中，则指出光标位置。如果设置位置时使用值 -1，则将当前光标位置移动到文本尾部。当类型为“不可编辑下拉式”时，本属性无效。

成员属性<13>的中文名称为“被选择字符数”，英文名称为“SelLength”，类型为“整数型（int）”。

返回或设置所选择的字符数。如果设置字符数时使用值 -1，则选择所有文本。当类型为“不可编辑下拉式”时，本属性无效。

成员属性<14>的中文名称为“被选择文本”，英文名称为“SelText”，类型为“文本型（text）”。

本属性在设计时不可用，在运行时可读可写。

返回或替换当前在下拉列表框编辑部分中所选择的文本。当类型为“不可编辑下拉式”时，本属性无效。

成员属性<15>的中文名称为“自动排序”，英文名称为“sort”，类型为“逻辑型（bool）”。

成员属性<16>的中文名称为“行间距”，英文名称为“RowExtra”，类型为“整数型（int）”。

本属性指定各列表项目行之间的间距尺寸。

成员属性<17>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<18>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<19>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<20>的中文名称为“现行选中项”，英文名称为“CurSel”，类型为“整数型（int）”。

本属性指定下拉列表框中现行被选中的列表项目的位置，位置值从 0 开始， -1 表示现行没有被选中的列表项。

成员属性<21>的中文名称为“列表项目”，类型为“字节集（bin）”。

本属性指定各列表项目。

成员属性<22>的中文名称为“项目数值”，类型为“字节集（bin）”。

本属性指定与各列表项目相关联的数值，该数值在程序中可以被取出或修改。

成员属性<23>的中文名称为“数据源”，英文名称为“DataSource”，类型为“文本型（text）”。

指定提供数据的数据源单元名。

成员属性<24>的中文名称为“数据列”，英文名称为“DataCol”，类型为“文本型（text）”。

指定数据源中的数据列，可以是列名或以1开始的列序号文本。

成员属性<25>的中文名称为“除去重复”，英文名称为“nodup”，类型为“逻辑型（bool）”。

指定是否除去从数据源中取得的重复数据列数据。

成员命令

取顶端可见项目 | 置顶端可见项目 | 取项目数 | 取项目数值
置项目数值 | 取项目文本 | 置项目文本 | 加入项目
插入项目 | 删除项目 | 清空 | 选择

※取顶端可见项目

调用格式： 〈整数型〉 对象．取顶端可见项目 （）

英文名称：GetTopIndex

返回组合框列表部分中当前最顶端可见项目的索引。0 为项目一，1 为项目二，如此类推。失败返回 -1 。本命令为初级对象成员命令。

※置顶端可见项目

调用格式： 〈逻辑型〉 对象．置顶端可见项目 （项目索引）

英文名称：SetTopIndex

设置组合框列表部分中当前最顶端的可见项目，必要时将自动滚动组合框的列表部分。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※取项目数

调用格式： 〈整数型〉 对象．取项目数 （）

英文名称：GetCount

本命令为初级对象成员命令。

※取项目数值

调用格式： 〈整数型〉 对象．取项目数值 （项目索引）

英文名称：GetItemData

返回与指定项目相关联的数值。如果指定项目不存在，将返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※置项目数值

调用格式： 〈逻辑型〉 对象．置项目数值 （项目索引，欲置入的项目数值）

英文名称：SetItemData

设置与指定项目相关联的数值。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目数值”，类型为“整数型（int）”。该项目数值与指定项目相关联。

※取项目文本

调用格式： 〈文本型〉 对象．取项目文本 （项目索引）

英文名称：GetItemText

返回指定项目的文本。如果指定项目不存在，将返回空文本。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※置项目文本

调用格式： 〈逻辑型〉 对象．置项目文本 （项目索引，欲置入的项目文本）

英文名称：SetItemtext

设置指定项目的文本。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目文本”，类型为“文本型（text）”。

※加入项目

调用格式： 〈整数型〉 对象．加入项目 （欲加入项目的文本，［与欲加入项目相关的数值］）

英文名称：AddString

加入指定项目到组合框列表部分的尾部，成功返回加入后该项目所处的位置，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“欲加入项目的文本”，类型为“文本型（text）”。

参数<2>的名称为“与欲加入项目相关的数值”，类型为“整数型（int）”，可以被省略。如果省略本参数，默认值为 0。

※插入项目

调用格式： 〈整数型〉 对象．插入项目 （欲插入的位置，欲插入项目的文本，［与欲插入项目相关的数值］）

英文名称：InsertString

插入指定项目到组合框列表部分的指定位置处，成功返回插入后该项目所处的位置，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“欲插入的位置”，类型为“整数型（int）”。0 为项目位置一，1 为项目位置二，如此类推。

参数<2>的名称为“欲插入项目的文本”，类型为“文本型（text）”。

参数<3>的名称为“与欲插入项目相关的数值”，类型为“整数型（int）”，可以被省略。如果省略本参数，默认值为 0。

※删除项目

调用格式： 〈逻辑型〉 对象．删除项目 （项目索引）

英文名称：DeleteString

删除组合框列表部分指定位置处的项目。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※清空

调用格式： 〈无返回值〉 对象．清空 （）

英文名称：clear

删除组合框列表部分中的所有项目。本命令为初级对象成员命令。

※选择

调用格式： 〈整数型〉 对象．选择 （欲选择的项目文本）

英文名称：SelItem

在所有项目中寻找首部包含指定文本的项目，如找到，则选中它，并返回该项目的位置索引，否则返回 -1。本命令为初级对象成员命令。

参数<1>的名称为“欲选择的项目文本”，类型为“文本型（text）”。

自有事件：

列表项被选择

编辑内容被改变

将弹出列表

列表被关闭

双击选择

单元事件列表：

事件 1 ：

事件名称：列表项被选择

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：编辑内容被改变

此事件的用户处理子程序不需要返回数据。

事件 3 ：

事件名称：将弹出列表

在将弹出组合框的列表部分之前产生此事件。在处理此事件时，可以即时填充组合框中的列表项目。

此事件的用户处理子程序不需要返回数据。

事件 4 ：

事件名称：列表被关闭

在关闭被弹出的组合框列表部分后产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 5 ：

事件名称：双击选择

当使用鼠标左键在某列表项目上双击时产生此事件。

此事件的用户处理子程序不需要返回数据。

列表框 窗口单元

数据类型名称：列表框 英文名称：ListBox

本数据类型为窗口单元型，共包含 18 个成员命令， 22 个成员属性， 2 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 自动排序 | 多列 | 行间距
文本颜色 | 背景颜色 | 字体 | 允许选择多项
现行选中项 | 列表项目 | 项目数值 | 数据源
数据列 | 除去重复 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式 4. 镜框式 5. 单线边框式

成员属性<10>的中文名称为“自动排序”，英文名称为“sort”，类型为“逻辑型（bool）”。

成员属性<11>的中文名称为“多列”，英文名称为“MultiCol”，类型为“逻辑型（bool）”。

成员属性<12>的中文名称为“行间距”，英文名称为“RowExtra”，类型为“整数型（int）”。

本属性指定各列表项目行之间的间距尺寸。

成员属性<13>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<14>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<15>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<16>的中文名称为“允许选择多项”，英文名称为“AllowMutiSel”，类型为“逻辑型（bool）”。

本属性指定是否允许用户同时选择列表框中的多个列表项。

成员属性<17>的中文名称为“现行选中项”，英文名称为“CurSel”，类型为“整数型（int）”。

本属性指定列表框中现行被选中列表项目的位置，位置值从0开始，-1表示现行没有被选中的列表项。如果“允许选择多项”属性为真，则本属性无效，其值恒为 -1。

成员属性<18>的中文名称为“列表项目”，类型为“字节集（bin）”。

本属性指定各列表项目。

成员属性<19>的中文名称为“项目数值”，类型为“字节集（bin）”。

本属性指定与各列表项目相关联的数值，该数值在程序中可以被取出或修改。

成员属性<20>的中文名称为“数据源”，英文名称为“DataSource”，类型为“文本型（text）”。

指定提供数据的数据源单元名。

成员属性<21>的中文名称为“数据列”，英文名称为“DataCol”，类型为“文本型（text）”。

指定数据源中的数据列，可以是列名或以1开始的列序号文本。

成员属性<22>的中文名称为“除去重复”，英文名称为“nodup”，类型为“逻辑型（bool）”。

指定是否除去从数据源中取得的重复数据列数据。

成员命令：

取顶端可见项目 | 置顶端可见项目 | 取项目数 | 取项目数值
置项目数值 | 取项目文本 | 置项目文本 | 取已选择项目数
取所有被选择项目 | 是否被选择 | 选择项目 | 取焦点项目
置焦点项目 | 加入项目 | 插入项目 | 删除项目
清空 | 选择 |  |

※取顶端可见项目

调用格式： 〈整数型〉 对象．取顶端可见项目 （）

英文名称：GetTopIndex

返回组合框列表部分中当前最顶端可见项目的索引。0 为项目一，1 为项目二，如此类推。失败返回 -1 。本命令为初级对象成员命令。

※置顶端可见项目

调用格式： 〈逻辑型〉 对象．置顶端可见项目 （项目索引）

英文名称：SetTopIndex

设置组合框列表部分中当前最顶端的可见项目，必要时将自动滚动组合框的列表部分。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※取项目数

调用格式： 〈整数型〉 对象．取项目数 （）

英文名称：GetCount

本命令为初级对象成员命令。

※取项目数值

调用格式： 〈整数型〉 对象．取项目数值 （项目索引）

英文名称：GetItemData

返回与指定项目相关联的数值。如果指定项目不存在，将返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※置项目数值

调用格式： 〈逻辑型〉 对象．置项目数值 （项目索引，欲置入的项目数值）

英文名称：SetItemData

设置与指定项目相关联的数值。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目数值”，类型为“整数型（int）”。该项目数值与指定项目相关联。

※取项目文本

调用格式： 〈文本型〉 对象．取项目文本 （项目索引）

英文名称：GetItemText

返回指定项目的文本。如果指定项目不存在，将返回空文本。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※置项目文本

调用格式： 〈逻辑型〉 对象．置项目文本 （项目索引，欲置入的项目文本）

英文名称：SetItemtext

设置指定项目的文本。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目文本”，类型为“文本型（text）”。

※取已选择项目数

调用格式： 〈整数型〉 对象．取已选择项目数 （）

英文名称：GetSelCount

返回已被选择项目的数目。本命令为初级对象成员命令。

※取所有被选择项目

调用格式： 〈整数型数组〉 对象．取所有被选择项目 （）

英文名称：GetSelItems

返回一个整数数组，內含所有当前被选择项目的位置索引。如果当前没有被选择项目，返回空数组。本命令为初级对象成员命令。

※是否被选择

调用格式： 〈逻辑型〉 对象．是否被选择 （项目索引）

英文名称：IsSelected

如果指定项目被选择，则返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※选择项目

调用格式： 〈逻辑型〉 对象．选择项目 （欲选择或取消选择的项目索引，［欲置入的项目选择状态］）

英文名称：select

选择或取消选择指定项目。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“欲选择或取消选择的项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目选择状态”，类型为“逻辑型（bool）”，可以被省略。如果省略本参数或者参数值为真，则选择该项目，否则取消对该项目的选择。

※取焦点项目

调用格式： 〈整数型〉 对象．取焦点项目 （）

英文名称：GetCaretIndex

本命令仅在多选列表框中使用，用作返回当前焦点项目的位置索引。如果在单选列表框中使用本命令，将返回当前被选择项目的位置索引。本命令为初级对象成员命令。

※置焦点项目

调用格式： 〈逻辑型〉 对象．置焦点项目 （项目索引）

英文名称：SetCaretIndex

本命令仅在多选列表框中使用，用作设置当前焦点项目。如果在单选列表框中使用本命令，将设置当前被选择项目。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※加入项目

调用格式： 〈整数型〉 对象．加入项目 （欲加入项目的文本，［与欲加入项目相关的数值］）

英文名称：AddString

加入指定项目到组合框列表部分的尾部，成功返回加入后该项目所处的位置，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“欲加入项目的文本”，类型为“文本型（text）”。

参数<2>的名称为“与欲加入项目相关的数值”，类型为“整数型（int）”，可以被省略。如果省略本参数，默认值为 0。

※插入项目

调用格式： 〈整数型〉 对象．插入项目 （欲插入的位置，欲插入项目的文本，［与欲插入项目相关的数值］）

英文名称：InsertString

插入指定项目到组合框列表部分的指定位置处，成功返回插入后该项目所处的位置，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“欲插入的位置”，类型为“整数型（int）”。0 为项目位置一，1 为项目位置二，如此类推。

参数<2>的名称为“欲插入项目的文本”，类型为“文本型（text）”。

参数<3>的名称为“与欲插入项目相关的数值”，类型为“整数型（int）”，可以被省略。如果省略本参数，默认值为 0。

※删除项目

调用格式： 〈逻辑型〉 对象．删除项目 （项目索引）

英文名称：DeleteString

删除组合框列表部分指定位置处的项目。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※清空

调用格式： 〈无返回值〉 对象．清空 （）

英文名称：clear

删除组合框列表部分中的所有项目。本命令为初级对象成员命令。

※选择

调用格式： 〈整数型〉 对象．选择 （欲选择的项目文本）

英文名称：SelItem

在所有项目中寻找首部包含指定文本的项目，如找到，则选中它，并返回该项目的位置索引，否则返回 -1。本命令为初级对象成员命令。

参数<1>的名称为“欲选择的项目文本”，类型为“文本型（text）”。

自有事件：

列表项被选择

双击选择

单元事件列表：

事件 1 ：

事件名称：列表项被选择

如果当前所选择的列表项或区域被改变即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：双击选择

当使用鼠标左键在某列表项目上双击时产生此事件。

此事件的用户处理子程序不需要返回数据。

选择列表框 窗口单元

数据类型名称：选择列表框 英文名称：ChkListBox

本数据类型为窗口单元型，共包含 16 个成员命令， 17 个成员属性， 3 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 自动排序 | 多列 | 行间距
单选 | 字体 | 现行选中项 | 列表项目
项目数值 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<10>的中文名称为“自动排序”，英文名称为“sort”，类型为“逻辑型（bool）”。

成员属性<11>的中文名称为“多列”，英文名称为“MultiCol”，类型为“逻辑型（bool）”。

成员属性<12>的中文名称为“行间距”，英文名称为“RowExtra”，类型为“整数型（int）”。

本属性指定各列表项目行之间的间距尺寸。

成员属性<13>的中文名称为“单选”，英文名称为“OnlyPickOne”，类型为“逻辑型（bool）”。

本属性指定是否只允许选择一项列表项。

成员属性<14>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<15>的中文名称为“现行选中项”，英文名称为“CurSel”，类型为“整数型（int）”。

本属性指定列表框中现行被选中的列表项目的位置，位置值从0开始，-1表示现行没有被选中的列表项。

成员属性<16>的中文名称为“列表项目”，类型为“字节集（bin）”。

本属性指定各列表项目。

成员属性<17>的中文名称为“项目数值”，类型为“字节集（bin）”。

本属性指定与各列表项目相关联的数值，该数值在程序中可以被取出或修改。

成员命令

取顶端可见项目 | 置顶端可见项目 | 取项目数 | 取项目数值
置项目数值 | 取项目文本 | 置项目文本 | 加入项目
插入项目 | 删除项目 | 清空 | 选择
是否被选中 | 选中项目 | 是否被允许 | 允许

※取顶端可见项目

调用格式： 〈整数型〉 对象．取顶端可见项目 （）

英文名称：GetTopIndex

返回组合框列表部分中当前最顶端可见项目的索引。0 为项目一，1 为项目二，如此类推。失败返回 -1 。本命令为初级对象成员命令。

※置顶端可见项目

调用格式： 〈逻辑型〉 对象．置顶端可见项目 （项目索引）

英文名称：SetTopIndex

设置组合框列表部分中当前最顶端的可见项目，必要时将自动滚动组合框的列表部分。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※取项目数

调用格式： 〈整数型〉 对象．取项目数 （）

英文名称：GetCount

本命令为初级对象成员命令。

※取项目数值

调用格式： 〈整数型〉 对象．取项目数值 （项目索引）

英文名称：GetItemData

返回与指定项目相关联的数值。如果指定项目不存在，将返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※置项目数值

调用格式： 〈逻辑型〉 对象．置项目数值 （项目索引，欲置入的项目数值）

英文名称：SetItemData

设置与指定项目相关联的数值。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目数值”，类型为“整数型（int）”。该项目数值与指定项目相关联。

※取项目文本

调用格式： 〈文本型〉 对象．取项目文本 （项目索引）

英文名称：GetItemText

返回指定项目的文本。如果指定项目不存在，将返回空文本。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※置项目文本

调用格式： 〈逻辑型〉 对象．置项目文本 （项目索引，欲置入的项目文本）

英文名称：SetItemtext

设置指定项目的文本。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目文本”，类型为“文本型（text）”。

※加入项目

调用格式： 〈整数型〉 对象．加入项目 （欲加入项目的文本，［与欲加入项目相关的数值］）

英文名称：AddString

加入指定项目到组合框列表部分的尾部，成功返回加入后该项目所处的位置，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“欲加入项目的文本”，类型为“文本型（text）”。

参数<2>的名称为“与欲加入项目相关的数值”，类型为“整数型（int）”，可以被省略。如果省略本参数，默认值为 0。

※插入项目

调用格式： 〈整数型〉 对象．插入项目 （欲插入的位置，欲插入项目的文本，［与欲插入项目相关的数值］）

英文名称：InsertString

插入指定项目到组合框列表部分的指定位置处，成功返回插入后该项目所处的位置，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“欲插入的位置”，类型为“整数型（int）”。0 为项目位置一，1 为项目位置二，如此类推。

参数<2>的名称为“欲插入项目的文本”，类型为“文本型（text）”。

参数<3>的名称为“与欲插入项目相关的数值”，类型为“整数型（int）”，可以被省略。如果省略本参数，默认值为 0。

※删除项目

调用格式： 〈逻辑型〉 对象．删除项目 （项目索引）

英文名称：DeleteString

删除组合框列表部分指定位置处的项目。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※清空

调用格式： 〈无返回值〉 对象．清空 （）

英文名称：clear

删除组合框列表部分中的所有项目。本命令为初级对象成员命令。

※选择

调用格式： 〈整数型〉 对象．选择 （欲选择的项目文本）

英文名称：SelItem

在所有项目中寻找首部包含指定文本的项目，如找到，则选中它，并返回该项目的位置索引，否则返回 -1。本命令为初级对象成员命令。

参数<1>的名称为“欲选择的项目文本”，类型为“文本型（text）”。

※是否被选中

调用格式： 〈逻辑型〉 对象．是否被选中 （项目索引）

英文名称：IsChecked

如果与指定项目对应的选择框被选中，则返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※选中项目

调用格式： 〈逻辑型〉 对象．选中项目 （欲选择或取消选择的项目索引，［欲置入的项目选择状态］）

英文名称：SetCheck

选中或取消选中与指定项目对应的选择框。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“欲选择或取消选择的项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目选择状态”，类型为“逻辑型（bool）”，可以被省略。如果省略本参数或者参数值为真，则选择该项目，否则取消对该项目的选择。

※是否被允许

调用格式： 〈逻辑型〉 对象．是否被允许 （项目索引）

英文名称：IsEnabled

如果与指定项目对应的选择框被允许操作，则返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※允许

调用格式： 〈逻辑型〉 对象．允许 （欲允许或禁止操作的项目索引，［允许或禁止］）

英文名称：enable

允许或禁止对指定项目进行选择操作。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“欲允许或禁止操作的项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“允许或禁止”，类型为“逻辑型（bool）”，可以被省略。如果省略本参数或者参数值为真，则允许该项目，否则禁止对该项目进行选中操作。

自有事件：

列表项被选择

选中状态被改变

双击选择

单元事件列表：

事件 1 ：

事件名称：列表项被选择

如果当前所选择的列表项被改变即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：选中状态被改变

此事件的用户处理子程序不需要返回数据。

事件 3 ：

事件名称：双击选择

当使用鼠标左键在某列表项目上双击时产生此事件。

此事件的用户处理子程序不需要返回数据。

横向滚动条 窗口单元

数据类型名称：横向滚动条 英文名称：HScrollBar

本数据类型为窗口单元型，共包含 14 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
最小位置 | 最大位置 | 页改变值 | 行改变值
位置 | 允许拖动跟踪 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“最小位置”，英文名称为“MinPos”，类型为“整数型（int）”。

成员属性<10>的中文名称为“最大位置”，英文名称为“MaxPos”，类型为“整数型（int）”。

成员属性<11>的中文名称为“页改变值”，英文名称为“PageChange”，类型为“整数型（int）”。

本属性指定当用户在滚动条的空隙处单击后滚动条位置的增减数值。

成员属性<12>的中文名称为“行改变值”，英文名称为“LineChange”，类型为“整数型（int）”。

本属性指定当用户按下滚动条的左右箭头按钮后滚动条位置的增减数值。

成员属性<13>的中文名称为“位置”，英文名称为“pos”，类型为“整数型（int）”。

本属性设定滚动条的现行位置。

成员属性<14>的中文名称为“允许拖动跟踪”，英文名称为“AllowTrack”，类型为“逻辑型（bool）”。

本属性设定当用户拖动滚动条的位置盒的过程中是否产生位置改变事件。

自有事件：

单元事件列表：位置被改变

事件名称：位置被改变

此事件的用户处理子程序不需要返回数据。

纵向滚动条 窗口单元

数据类型名称：纵向滚动条 英文名称：VScrollBar

本数据类型为窗口单元型，共包含 14 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
最小位置 | 最大位置 | 页改变值 | 行改变值
位置 | 允许拖动跟踪 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“最小位置”，英文名称为“MinPos”，类型为“整数型（int）”。

成员属性<10>的中文名称为“最大位置”，英文名称为“MaxPos”，类型为“整数型（int）”。

成员属性<11>的中文名称为“页改变值”，英文名称为“PageChange”，类型为“整数型（int）”。

本属性指定当用户在滚动条的空隙处单击后滚动条位置的增减数值。

成员属性<12>的中文名称为“行改变值”，英文名称为“LineChange”，类型为“整数型（int）”。

本属性指定当用户按下滚动条的上下箭头按钮后滚动条位置的增减数值。

成员属性<13>的中文名称为“位置”，英文名称为“pos”，类型为“整数型（int）”。

本属性设定滚动条的现行位置。

成员属性<14>的中文名称为“允许拖动跟踪”，英文名称为“AllowTrack”，类型为“逻辑型（bool）”。

本属性设定当用户拖动滚动条的位置盒的过程中是否产生位置改变事件。

自有事件：

单元事件列表：位置被改变

事件名称：位置被改变

此事件的用户处理子程序不需要返回数据。

进度条 窗口单元

数据类型名称：进度条 英文名称：ProcessBar

本数据类型为窗口单元型，不能接受输入焦点，共包含 14 个成员属性。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 方向 | 显示方式 | 最小位置
最大位置 | 位置 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<10>的中文名称为“方向”，英文名称为“orient”，类型为“整数型（int）”。

可供选择的属性值：

0. 横向 1. 纵向

成员属性<11>的中文名称为“显示方式”，英文名称为“DrawMode”，类型为“整数型（int）”。

可供选择的属性值：

0. 分块 1. 连续

成员属性<12>的中文名称为“最小位置”，英文名称为“MinPos”，类型为“整数型（int）”。

成员属性<13>的中文名称为“最大位置”，英文名称为“MaxPos”，类型为“整数型（int）”。

成员属性<14>的中文名称为“位置”，英文名称为“pos”，类型为“整数型（int）”。

本属性设定进度条的现行位置。

滑块条 窗口单元

数据类型名称：滑块条 英文名称：SliderBar

本数据类型为窗口单元型，共包含 20 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 方向 | 刻度类型 | 单位刻度值
允许选择 | 首选择位置 | 选择长度 | 页改变值
行改变值 | 最小位置 | 最大位置 | 位置

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<10>的中文名称为“方向”，英文名称为“orient”，类型为“整数型（int）”。

可供选择的属性值：

0. 横向 1. 纵向

成员属性<11>的中文名称为“刻度类型”，英文名称为“TickStyle”，类型为“整数型（int）”。

可供选择的属性值：

0. 无 1. 上/左 2. 下/右 3. 双向

成员属性<12>的中文名称为“单位刻度值”，英文名称为“TickFreq”，类型为“整数型（int）”。

成员属性<13>的中文名称为“允许选择”，英文名称为“AllowSel”，类型为“逻辑型（bool）”。

成员属性<14>的中文名称为“首选择位置”，英文名称为“SelStart”，类型为“整数型（int）”。

成员属性<15>的中文名称为“选择长度”，英文名称为“SelLength”，类型为“整数型（int）”。

成员属性<16>的中文名称为“页改变值”，英文名称为“PageChange”，类型为“整数型（int）”。

本属性指定当用户在空隙处单击后滑块条位置的增减数值。

成员属性<17>的中文名称为“行改变值”，英文名称为“LineChange”，类型为“整数型（int）”。

本属性指定当用户拖动滑块时滑块条位置的每次增减数值。

成员属性<18>的中文名称为“最小位置”，英文名称为“MinPos”，类型为“整数型（int）”。

成员属性<19>的中文名称为“最大位置”，英文名称为“MaxPos”，类型为“整数型（int）”。

成员属性<20>的中文名称为“位置”，英文名称为“pos”，类型为“整数型（int）”。

本属性设定滑块条的现行位置。

自有事件：

单元事件列表：位置被改变

事件名称：位置被改变

此事件的用户处理子程序不需要返回数据。

选择夹 包容型窗口单元

数据类型名称：选择夹 英文名称：Tab

本数据类型为包容窗口单元型，不能接受输入焦点，共包含 3 个成员命令， 14 个成员属性， 3 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
表头方向 | 允许多行表头 | 字体 | 子夹管理
现行子夹 | 隐藏自身 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“表头方向”，英文名称为“HeaderWay”，类型为“整数型（int）”。

可供选择的属性值：

0. 上 1. 下 2. 左 3. 右

成员属性<10>的中文名称为“允许多行表头”，英文名称为“AllowMultiLines”，类型为“逻辑型（bool）”。

成员属性<11>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<12>的中文名称为“子夹管理”，类型为“字节集（bin）”。

成员属性<13>的中文名称为“现行子夹”，英文名称为“CurTab”，类型为“整数型（int）”。

本属性在设计时不可用，在运行时可读可写。

本属性指定现行被选中子夹的索引，索引值从 0 开始。

成员属性<14>的中文名称为“隐藏自身”，英文名称为“HideMe”，类型为“逻辑型（bool）”。

本属性可以用来动态切换数个同一位置处子单元群的显示。此时选择夹本身不会被显示，但用户可以通过改变其“现行子夹”属性来显示指定子夹内的所有子单元。注意在设计时为方便用户定位子单元，表头方向始终为下。

成员命令

取子夹数目

取子夹名称

置子夹名称

※取子夹数目

调用格式： 〈整数型〉 对象．取子夹数目 （）

英文名称：GetCount

本命令为初级对象成员命令。

※取子夹名称

调用格式： 〈文本型〉 对象．取子夹名称 （子夹索引）

英文名称：GetName

本命令为初级对象成员命令。

参数<1>的名称为“子夹索引”，类型为“整数型（int）”。1 代表子夹一，2 代表子夹二，如此类推。

※置子夹名称

调用格式： 〈逻辑型〉 对象．置子夹名称 （子夹索引，欲置入的子夹名称）

英文名称：SetName

置入成功返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“子夹索引”，类型为“整数型（int）”。1 代表子夹一，2 代表子夹二，如此类推。

参数<2>的名称为“欲置入的子夹名称”，类型为“文本型（text）”。

自有事件：

被单击

将改变子夹

子夹被改变

单元事件列表：

事件 1 ：

事件名称：被单击

当在选择夹上单击后产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：将改变子夹

当现行被选择子夹即将被改变时产生此事件。返回假中止此改变，返回真或不返回值则允许此改变。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件 3 ：

事件名称：子夹被改变

当现行被选择子夹已经被改变时产生此事件。

此事件的用户处理子程序不需要返回数据。

影像框 窗口单元

数据类型名称：影像框 英文名称：AnimateBox

本数据类型为窗口单元型，不能接受输入焦点，共包含 13 个成员属性。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
文件名 | 居中播放 | 透明背景 | 播放
播放次数 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“文件名”，英文名称为“file”，类型为“文本型（text）”。

本属性指定欲播放的影像文件的名称。

成员属性<10>的中文名称为“居中播放”，英文名称为“center”，类型为“逻辑型（bool）”。

成员属性<11>的中文名称为“透明背景”，英文名称为“transparent”，类型为“逻辑型（bool）”。

成员属性<12>的中文名称为“播放”，英文名称为“play”，类型为“逻辑型（bool）”。

如果指定了有效的影像文件，通过改变此属性可控制其播放或停止。如在设计时置本属性为真，运行时影像文件在影像框被创建后即自动开始播放。

成员属性<13>的中文名称为“播放次数”，英文名称为“PlayCount”，类型为“整数型（int）”。

指定影像的播放次数。如为 -1，则无限次地循环播放。

日期框 窗口单元

数据类型名称：日期框 英文名称：DatePicker

本数据类型为窗口单元型，共包含 17 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
允许编辑 | 附件类型 | 今天 | 最小日期
最大日期 | 字体 | 边框 | 数据源
数据列 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“允许编辑”，英文名称为“AllowEdit”，类型为“逻辑型（bool）”。

成员属性<10>的中文名称为“附件类型”，英文名称为“SubType”，类型为“整数型（int）”。

可供选择的属性值：

0. 下拉月历 1. 调节器

成员属性<11>的中文名称为“今天”，英文名称为“today”，类型为“日期时间型（date）”。

指定或读取现行日期，如果不设定，则自动取现行日期。

成员属性<12>的中文名称为“最小日期”，英文名称为“MinDate”，类型为“日期时间型（date）”。

成员属性<13>的中文名称为“最大日期”，英文名称为“MaxDate”，类型为“日期时间型（date）”。

成员属性<14>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<15>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<16>的中文名称为“数据源”，英文名称为“DataSource”，类型为“文本型（text）”。

指定提供数据的数据源单元名。

成员属性<17>的中文名称为“数据列”，英文名称为“DataCol”，类型为“文本型（text）”。

指定数据源中的数据列，可以是列名或以1开始的列序号文本。

自有事件：

单元事件列表：选择日期被改变

事件名称：选择日期被改变

当现行被选择的日期被改变后产生此事件。

此事件的用户处理子程序不需要返回数据。

月历 窗口单元

数据类型名称：月历 英文名称：MonthCalendar

本数据类型为窗口单元型，不能接受输入焦点，共包含 28 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
不显示今天 | 不圈注今天 | 开始星期首日 | 显示星期序号
滚动月数 | 今天 | 最小日期 | 最大日期
允许选择多天 | 最多选择天数 | 首选择日 | 尾选择日
字体 | 文本颜色 | 背景颜色 | 内背景颜色
标题颜色 | 标题背景颜色 | 非本月颜色 | 边框

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“不显示今天”，英文名称为“NoToday”，类型为“逻辑型（bool）”。

成员属性<10>的中文名称为“不圈注今天”，英文名称为“NoTodayCircel”，类型为“逻辑型（bool）”。

成员属性<11>的中文名称为“开始星期首日”，英文名称为“StartOfWeek”，类型为“整数型（int）”。

可供选择的属性值：

0. 星期一 1. 星期二 2. 星期三 3. 星期四

4. 星期五 5. 星期六 6. 星期日

成员属性<12>的中文名称为“显示星期序号”，英文名称为“ShowWeekNumbers”，类型为“逻辑型（bool）”。

成员属性<13>的中文名称为“滚动月数”，英文名称为“ScrollRate”，类型为“整数型（int）”。

本属性指定当按下滚动按钮改变当前显示月时，一次跳过的月的数目。

成员属性<14>的中文名称为“今天”，英文名称为“today”，类型为“日期时间型（date）”。

指定现行日期，如果不设定，则自动取系统时间中记录的现行日期。

成员属性<15>的中文名称为“最小日期”，英文名称为“MinDate”，类型为“日期时间型（date）”。

指定能被显示的最小日期。

成员属性<16>的中文名称为“最大日期”，英文名称为“MaxDate”，类型为“日期时间型（date）”。

指定能被显示的最大日期。

成员属性<17>的中文名称为“允许选择多天”，英文名称为“AllowMultiSel”，类型为“逻辑型（bool）”。

成员属性<18>的中文名称为“最多选择天数”，英文名称为“MaxSelCount”，类型为“整数型（int）”。

成员属性<19>的中文名称为“首选择日”，英文名称为“MinSelDay”，类型为“日期时间型（date）”。

指定现行被选择区域的首日期。如果不允许选择多天，则本属性指定现行被选择的日期。

成员属性<20>的中文名称为“尾选择日”，英文名称为“MaxSelDay”，类型为“日期时间型（date）”。

指定现行被选择区域的尾日期。如果不允许选择多天，则本属性无效。

成员属性<21>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<22>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<23>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<24>的中文名称为“内背景颜色”，英文名称为“MonthBackColor”，类型为“整数型（int）”。

指定用来实际显示月历部分的背景颜色。

成员属性<25>的中文名称为“标题颜色”，英文名称为“TitleColor”，类型为“整数型（int）”。

成员属性<26>的中文名称为“标题背景颜色”，英文名称为“TitleBackColor”，类型为“整数型（int）”。

成员属性<27>的中文名称为“非本月颜色”，英文名称为“TrailingColor”，类型为“整数型（int）”。

成员属性<28>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

自有事件：

单元事件列表：选择日期被改变

事件名称：选择日期被改变

当现行被选择的日期或区域被改变后产生此事件。

此事件的用户处理子程序不需要返回数据。

驱动器框 窗口单元

数据类型名称：驱动器框 英文名称：DriverBox

本数据类型为窗口单元型，共包含 13 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
驱动器 | 类型 | 文本颜色 | 背景颜色
字体 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“驱动器”，英文名称为“drive”，类型为“文本型（text）”。

本属性在设计时不可用，在运行时可读可写。

指定当前驱动器符，如果不指定，默认为当前驱动器。驱动器符为大写字母 A - Z。

成员属性<10>的中文名称为“类型”，英文名称为“type”，类型为“整数型（int）”。

指定可用的驱动器类型。

可供选择的属性值：

0. 全部驱动器 1. 可抽取式驱动器 2. 固定驱动器

3. 光盘驱动器 4. 网络驱动器 5. 内存虚拟驱动器

成员属性<11>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<12>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<13>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

自有事件：

单元事件列表：驱动器被改变

事件名称：驱动器被改变

此事件的用户处理子程序不需要返回数据。

目录框 窗口单元

数据类型名称：目录框 英文名称：DirBox

本数据类型为窗口单元型，共包含 12 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
目录 | 边框 | 背景颜色 | 字体

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“目录”，英文名称为“path”，类型为“文本型（text）”。

本属性在设计时不可用，在运行时可读可写。

成员属性<10>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<11>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<12>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

自有事件：

单元事件列表：目录被改变

事件名称：目录被改变

此事件的用户处理子程序不需要返回数据。

文件框 窗口单元

数据类型名称：文件框 英文名称：FileBox

本数据类型为窗口单元型，共包含 23 个成员属性， 2 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
目录 | 被选择文件 | 允许选择多项 | 通配符
通常 | 存档 | 只读 | 系统
隐藏 | 最小日期 | 最大日期 | 边框
文本颜色 | 背景颜色 | 字体 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“目录”，英文名称为“path”，类型为“文本型（text）”。

本属性在设计时不可用，在运行时可读可写。

成员属性<10>的中文名称为“被选择文件”，英文名称为“SelectedFile”，类型为“文本型（text）”。

本属性只可读。

记录所有现行被选择的文件，注意不包含路径。如果有多个文件被选择，各文件名之间用分号“;”隔开。

成员属性<11>的中文名称为“允许选择多项”，英文名称为“AllowSelMutil”，类型为“逻辑型（bool）”。

成员属性<12>的中文名称为“通配符”，英文名称为“pattern”，类型为“文本型（text）”。

指定允许进入文件框的文件类型。可以同时指定多个通配符，各通配符之间用分号“;”隔开。

成员属性<13>的中文名称为“通常”，英文名称为“normal”，类型为“逻辑型（bool）”。

指定是否允许没有设置存档、只读、系统、隐藏文件属性的文件进入。

成员属性<14>的中文名称为“存档”，英文名称为“arc”，类型为“逻辑型（bool）”。

指定是否允许设置了存档文件属性的文件进入。

成员属性<15>的中文名称为“只读”，英文名称为“ReadOnly”，类型为“逻辑型（bool）”。

指定是否允许设置了只读文件属性的文件进入。

成员属性<16>的中文名称为“系统”，英文名称为“sys”，类型为“逻辑型（bool）”。

指定是否允许设置了系统文件属性的文件进入。

成员属性<17>的中文名称为“隐藏”，英文名称为“hide”，类型为“逻辑型（bool）”。

指定是否允许设置了隐藏文件属性的文件进入。

成员属性<18>的中文名称为“最小日期”，英文名称为“MinDate”，类型为“日期时间型（date）”。

指定允许进入的文件的最小日期。

成员属性<19>的中文名称为“最大日期”，英文名称为“MaxDate”，类型为“日期时间型（date）”。

指定允许进入的文件的最大日期。

成员属性<20>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<21>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<22>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<23>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

自有事件：

选择文件被改变

双击选择

单元事件列表：

事件 1 ：

事件名称：选择文件被改变

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：双击选择

当使用鼠标左键在某列表项目上双击时产生此事件。

此事件的用户处理子程序不需要返回数据。

颜色选择器 窗口单元

数据类型名称：颜色选择器 英文名称：ColorPicker

本数据类型为窗口单元型，共包含 10 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
颜色 | 允许透明 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“颜色”，英文名称为“color”，类型为“整数型（int）”。

颜色数值为红绿蓝颜色值或“#透明”常量值。

成员属性<10>的中文名称为“允许透明”，英文名称为“AllowTransparent”，类型为“逻辑型（bool）”。

指定是否允许透明色。

自有事件：

单元事件列表：颜色被改变

事件名称：颜色被改变

此事件的用户处理子程序不需要返回数据。

超级链接框 窗口单元

数据类型名称：超级链接框 英文名称：HyperLinker

本数据类型为窗口单元型，不能接受输入焦点，共包含 1 个成员命令， 18 个成员属性。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 类型 | 电子信箱地址 | Internet地址
文本颜色 | 访问后的颜色 | 热点颜色 | 背景颜色
边框 | 字体 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

成员属性<10>的中文名称为“类型”，英文名称为“type”，类型为“整数型（int）”。

可供选择的属性值：

0. 电子信箱地址 1. Internet地址

成员属性<11>的中文名称为“电子信箱地址”，英文名称为“email”，类型为“文本型（text）”。

成员属性<12>的中文名称为“Internet地址”，英文名称为“url”，类型为“文本型（text）”。

成员属性<13>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

正常情况下时的文本显示颜色。

成员属性<14>的中文名称为“访问后的颜色”，英文名称为“VisitedColor”，类型为“整数型（int）”。

被访问过后的文本显示颜色。

成员属性<15>的中文名称为“热点颜色”，英文名称为“HotColor”，类型为“整数型（int）”。

鼠标移动到单元上时的文本显示颜色。

成员属性<16>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<17>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<18>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员命令

※跳转

调用格式： 〈无返回值〉 对象．跳转 （）

英文名称：goto

跳转到指定的邮件或 Internet 地址。本命令为初级对象成员命令。

调节器 窗口单元

数据类型名称：调节器 英文名称：Spin

本数据类型为窗口单元型，不能接受输入焦点，共包含 10 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
方向 | 热点跟踪 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“方向”，英文名称为“orient”，类型为“整数型（int）”。

可供选择的属性值：

0. 横向 1. 纵向

成员属性<10>的中文名称为“热点跟踪”，英文名称为“HotTrack”，类型为“逻辑型（bool）”。

指定当鼠标移动到单元上时是否显示热点状态。

自有事件：

单元事件列表：调节钮被按下

事件名称：调节钮被按下

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“按钮值”，类型为“整数型（int）”。如果按下的是调节器的向上箭头按钮，参数值为 1，否则为 -1。

表格 窗口单元

数据类型名称：表格 英文名称：Grid

本数据类型为窗口单元型，共包含 14 个成员命令， 18 个成员属性， 6 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
数据源 | 表格线颜色 | 背景颜色 | 缩放比
允许选择块 | 显示标尺 | 显示空表格线 | 禁止调整行高
禁止调整列宽 | 允许粘贴扩展 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“数据源”，英文名称为“DataSource”，类型为“文本型（text）”。

指定提供数据的数据源单元名。

成员属性<10>的中文名称为“表格线颜色”，英文名称为“LineColor”，类型为“整数型（int）”。

成员属性<11>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<12>的中文名称为“缩放比”，英文名称为“Scale”，类型为“整数型（int）”。

指定显示表格时所使用的缩放百分比，值在 20 到 1000 之间。

成员属性<13>的中文名称为“允许选择块”，英文名称为“EnableSelection”，类型为“逻辑型（bool）”。

指定是否允许操作者选择表格单元格区域。

成员属性<14>的中文名称为“显示标尺”，英文名称为“ShowRuler”，类型为“逻辑型（bool）”。

成员属性<15>的中文名称为“显示空表格线”，英文名称为“ShowHide”，类型为“逻辑型（bool）”。

指定是否用虚线显示空表格线。

成员属性<16>的中文名称为“禁止调整行高”，英文名称为“DisableResizeRow”，类型为“逻辑型（bool）”。

指定是否禁止操作者调整表格行高。

成员属性<17>的中文名称为“禁止调整列宽”，英文名称为“DisableResizeCol”，类型为“逻辑型（bool）”。

指定是否禁止操作者调整表格列宽。

成员属性<18>的中文名称为“允许粘贴扩展”，英文名称为“AutoExtend”，类型为“逻辑型（bool）”。

指定当粘贴表格数据时，如果现行表格尺寸无法容纳，是否允许自动扩展。

成员命令

置光标 | 选择 | 全部选择 | 取光标行号
取光标列号 | 取选择行数 | 取选择列数 | 等宽缩放
全部复制 | 复制 | 粘贴到光标处 | 粘贴
打印 | 打印预览 |  |

※置光标

调用格式： 〈无返回值〉 对象．置光标 （行号，列号）

英文名称：SetCaret

本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※选择

调用格式： 〈无返回值〉 对象．选择 （行号，列号，［行数］，［列数］）

英文名称：Select

本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※全部选择

调用格式： 〈无返回值〉 对象．全部选择 （）

英文名称：SelectAll

本命令为初级对象成员命令。

※取光标行号

调用格式： 〈整数型〉 对象．取光标行号 （）

英文名称：CaretRow

本命令为初级对象成员命令。

※取光标列号

调用格式： 〈整数型〉 对象．取光标列号 （）

英文名称：CaretCol

本命令为初级对象成员命令。

※取选择行数

调用格式： 〈整数型〉 对象．取选择行数 （）

英文名称：SelectRows

被选择的行区域起始于光标所在行。本命令为初级对象成员命令。

※取选择列数

调用格式： 〈整数型〉 对象．取选择列数 （）

英文名称：SelectCols

被选择的列区域起始于光标所在列。本命令为初级对象成员命令。

※等宽缩放

调用格式： 〈无返回值〉 对象．等宽缩放 （）

英文名称：InWin

将表格内容缩放到与表格窗口等宽显示。本命令为初级对象成员命令。

※全部复制

调用格式： 〈无返回值〉 对象．全部复制 （）

英文名称：CopyAll

复制所有表格数据到剪贴板。本命令为初级对象成员命令。

※复制

调用格式： 〈无返回值〉 对象．复制 （行号，列号，［行数］，［列数］）

英文名称：Copy

复制指定区域表格数据到剪贴板。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※粘贴到光标处

调用格式： 〈无返回值〉 对象．粘贴到光标处 （）

英文名称：PasteToCaret

粘贴剪贴板中的表格数据到当前光标处。本命令为初级对象成员命令。

※粘贴

调用格式： 〈无返回值〉 对象．粘贴 （行号，列号）

英文名称：Paste

粘贴剪贴板中的表格数据到指定位置。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※打印

调用格式： 〈文本型〉 对象．打印 （［是否显示进度框］，［打印作业标题］）

英文名称：Print

打印表格数据到打印机。注意欲设置打印份数等打印设置信息请到与表格相连接的数据源中设置。成功返回空文本，失败(不包含操作者中断打印)返回非空错误文本。本命令为初级对象成员命令。

参数<1>的名称为“是否显示进度框”，类型为“逻辑型（bool）”，可以被省略。指定在打印的同时是否显示打印进度框，操作者可以在进度框内中止打印。如果本参数被省略，默认值为真。

参数<2>的名称为“打印作业标题”，类型为“文本型（text）”，可以被省略。本参数指定打印时显示在打印机状态窗口中的文档名称。如果参数被省略，默认值为“报表”。

※打印预览

调用格式： 〈无返回值〉 对象．打印预览 （）

英文名称：PrintPreview

本命令为初级对象成员命令。

自有事件：

光标位置改变 | 选择行列数改变 | 内容被改变 | 行高被改变
列宽被改变 | 尺寸被扩展 |  |

单元事件列表：

事件 1 ：

事件名称：光标位置改变

当操作者改变了光标位置后会产生本事件。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：选择行列数改变

当操作者更改了当前被选择区域的行列数时会产生本事件。

此事件的用户处理子程序不需要返回数据。

事件 3 ：

事件名称：内容被改变

当操作者修改了单元格内容时即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“行号”，类型为“整数型（int）”。参数值记录内容被改变的单元格区首行号。

事件参数<2>的名称为“列号”，类型为“整数型（int）”。参数值记录内容被改变的单元格区首列号。

事件参数<3>的名称为“行数”，类型为“整数型（int）”。参数值记录内容被改变的表格行数目。

事件参数<4>的名称为“列数”，类型为“整数型（int）”。参数值记录内容被改变的表格列数目。

事件 4 ：

事件名称：行高被改变

当操作者调整了表格行行高时即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“行号”，类型为“整数型（int）”。参数值记录行高被改变的表格行号。

事件 5 ：

事件名称：列宽被改变

当操作者调整了表格列列宽时即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“列号”，类型为“整数型（int）”。参数值记录列宽被改变的表格列号。

事件 6 ：

事件名称：尺寸被扩展

当操作者粘贴来自剪贴板的表格单元数据时，如果为了容纳该数据自动扩展了表格尺寸，即产生此事件。

此事件的用户处理子程序不需要返回数据。

数据源 窗口单元（含有基本事件）

数据类型名称：数据源 英文名称：DataSrc

本数据类型为窗口单元型，共包含 69 个成员命令， 12 个成员属性， 3 个单元事件。

数据源提供对各种来源数据的统一操作接口。数据源单元各个按钮的含义分别是：到首记录、到上一记录、到下一记录、到尾记录、添加新记录、删除当前记录。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
数据提供者 | 只读 | 允许添加 | 允许删除

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“数据提供者”，英文名称为“DataProvider”，类型为“文本型（text）”。

指定本数据源所基于的数据提供者单元名，所有数据存取操作都将通过数据提供者实际完成。

成员属性<10>的中文名称为“只读”，英文名称为“ReadOnly”，类型为“逻辑型（bool）”。

指定是否允许操作者修改数据源内的数据，注意本属性并不限制在程序中直接修改数据。

成员属性<11>的中文名称为“允许添加”，英文名称为“AllowAppend”，类型为“逻辑型（bool）”。

指定是否允许操作者添加记录到数据源内，注意本属性并不限制在程序中直接添加记录。

成员属性<12>的中文名称为“允许删除”，英文名称为“AllowDelete”，类型为“逻辑型（bool）”。

指定是否允许操作者删除数据源内的记录，注意本属性并不限制在程序中直接删除记录。

成员命令

到首记录 | 到尾记录 | 跳过 | 跳到
取记录号 | 取表头行数 | 置表头行数 | 取表头列数
置表头列数 | 取行高 | 置行高 | 取列宽
置列宽 | 取类型 | 置类型 | 取文本色
置文本色 | 取背景色 | 置背景色 | 取字体名
置字体名 | 取字体尺寸 | 置字体尺寸 | 取字体属性
置字体属性 | 取边距 | 置边距 | 取文本输入格式
置文本输入格式 | 取对齐方式 | 置对齐方式 | 取密码方式
置密码方式 | 取文本 | 置文本 | 取数据
置数据 | 合并 | 分解 | 是否被合并
加线条 | 删线条 | 是否有线条 | 清除
置初始属性 | 初始尺寸 | 取行数 | 取列数
插入行 | 添加行 | 删除行 | 插入列
删除列 | 添加 | 存到字节集 | 从字节集读
存到文件 | 从文件读 | 单元格到字节集 | 字节集到单元格
单元格到文件 | 文件到单元格 | 刷新显示 | 保存更改
打印设置 | 取打印设置 | 置打印设置 | 取打印页宽
取打印页高 |  |  |

※到首记录

调用格式： 〈无返回值〉 对象．到首记录 （）

英文名称：GoTop

将数据源中当前记录指针移动到第一条记录上。本命令为初级对象成员命令。

※到尾记录

调用格式： 〈无返回值〉 对象．到尾记录 （）

英文名称：GoBottom

将数据源中当前记录指针移动到最后一条记录上。本命令为初级对象成员命令。

※跳过

调用格式： 〈无返回值〉 对象．跳过 （［欲跳过的记录数］）

英文名称：skip

将数据源中当前记录指针向前或者向后移动数条记录。本命令为初级对象成员命令。

参数<1>的名称为“欲跳过的记录数”，类型为“整数型（int）”，可以被省略。参数值如果为负数，则向前移动，否则向后移动。如果本参数被省略，默认值为 1 ，即向后移动一条记录。

※跳到

调用格式： 〈无返回值〉 对象．跳到 （欲跳到的记录号）

英文名称：goto

改变数据源中的当前记录指针到指定的记录号。本命令为初级对象成员命令。

参数<1>的名称为“欲跳到的记录号”，类型为“整数型（int）”。参数值所指定的记录号从 1 开始，即首记录的记录号为 1 ，依此类推。

※取记录号

调用格式： 〈整数型〉 对象．取记录号 （）

英文名称：RecNO

返回数据源当前记录指针所指向记录的记录号。记录号从1开始。如果当前记录指针无效，所返回记录号为0。本命令为初级对象成员命令。

※取表头行数

调用格式： 〈整数型〉 对象．取表头行数 （）

英文名称：GetFixedRowCount

返回当以表格的形式表现数据源中的数据时表头所占的行数。表头行在表格中显示时不会滚动，在打印时会自动打印在每一页的顶部。本命令为初级对象成员命令。

※置表头行数

调用格式： 〈无返回值〉 对象．置表头行数 （［表头行数］）

英文名称：SetFixedRowCount

设置当以表格的形式表现数据源中的数据时表头所占的行数。表头行在表格中显示时不会滚动，在打印时会自动打印在每一页的顶部。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“表头行数”，类型为“整数型（int）”，可以被省略。参数值如果为-1，则自动调整由于单元格组合而产生的行格式错误。如果本参数被省略，默认值为-1。

※取表头列数

调用格式： 〈整数型〉 对象．取表头列数 （）

英文名称：GetFixedColCount

返回当以表格的形式表现数据源中的数据时表头所占的列数。表头列在表格中显示时不会滚动。本命令为初级对象成员命令。

※置表头列数

调用格式： 〈无返回值〉 对象．置表头列数 （［表头列数］）

英文名称：SetFixedColCount

设置当以表格的形式表现数据源中的数据时表头所占的列数。表头列在表格中显示时不会滚动。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“表头列数”，类型为“整数型（int）”，可以被省略。参数值如果为-1，则自动调整由于单元格组合而产生的列格式错误。如果本参数被省略，默认值为-1。

※取行高

调用格式： 〈整数型〉 对象．取行高 （行号）

英文名称：GetRowHeight

返回数据源中指定行在表现时的高度，单位为0.1毫米。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

※置行高

调用格式： 〈无返回值〉 对象．置行高 （行号，［行数］，高度）

英文名称：SetRowHeight

设置数据源中数据行在表现时的高度，单位为0.1毫米。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<3>的名称为“高度”，类型为“整数型（int）”。单位0.1毫米。

※取列宽

调用格式： 〈整数型〉 对象．取列宽 （列号）

英文名称：GetColWidth

返回数据源中指定列在表现时的宽度，单位为0.1毫米。本命令为初级对象成员命令。

参数<1>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置列宽

调用格式： 〈无返回值〉 对象．置列宽 （列号，［列数］，宽度）

英文名称：SetColWidth

设置数据源中数据列在表现时的宽度，单位为0.1毫米。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<2>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<3>的名称为“宽度”，类型为“整数型（int）”。单位0.1毫米。

※取类型

调用格式： 〈整数型〉 对象．取类型 （行号，列号）

英文名称：GetType

返回数据源中指定单元格的数据类型。返回值为以下常量值之一： 1、#文本； 2、#图片文件名； 3、#图片数据； 4、#字节集数据。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置类型

调用格式： 〈无返回值〉 对象．置类型 （行号，列号，［行数］，［列数］，［类型］）

英文名称：SetType

设置数据源中指定单元格的数据类型。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“类型”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一： 1、#文本； 2、#图片文件名； 3、#图片数据； 4、#字节集数据。如果本参数被省略，默认值为“#文本”。

※取文本色

调用格式： 〈整数型〉 对象．取文本色 （行号，列号）

英文名称：GetTextColor

返回数据源中指定单元格在表现时的文本颜色。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置文本色

调用格式： 〈无返回值〉 对象．置文本色 （行号，列号，［行数］，［列数］，［文本颜色］）

英文名称：SetTextColor

设置数据源中指定单元格在表现时的文本颜色。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“文本颜色”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为黑色。

※取背景色

调用格式： 〈整数型〉 对象．取背景色 （行号，列号）

英文名称：GetBackground

返回数据源中指定单元格在表现时的背景颜色。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置背景色

调用格式： 〈无返回值〉 对象．置背景色 （行号，列号，［行数］，［列数］，［背景颜色］）

英文名称：SetBackground

设置数据源中指定单元格在表现时的背景颜色。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“背景颜色”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为透明色。

※取字体名

调用格式： 〈文本型〉 对象．取字体名 （行号，列号）

英文名称：GetFontName

返回数据源中指定单元格在表现时所使用字体的名称。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置字体名

调用格式： 〈无返回值〉 对象．置字体名 （行号，列号，［行数］，［列数］，［字体名称］）

英文名称：SetFontName

设置数据源中指定单元格在表现时所使用字体的名称。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“字体名称”，类型为“文本型（text）”，可以被省略。如果本参数被省略，默认值为“宋体”。

※取字体尺寸

调用格式： 〈整数型〉 对象．取字体尺寸 （行号，列号）

英文名称：GetFontSize

返回数据源中指定单元格在表现时所使用字体的尺寸，单位为0.1毫米。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置字体尺寸

调用格式： 〈无返回值〉 对象．置字体尺寸 （行号，列号，［行数］，［列数］，［字体尺寸］）

英文名称：SetFontSize

设置数据源中指定单元格在表现时所使用字体的尺寸，单位为0.1毫米。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“字体尺寸”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为40。

※取字体属性

调用格式： 〈整数型〉 对象．取字体属性 （行号，列号）

英文名称：GetFontAttr

返回数据源中指定单元格在表现时所使用字体的属性。返回值为以下常量值之一或之和： 1、#粗体； 2、#斜体； 4、#下划线； 8、#删除线。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置字体属性

调用格式： 〈无返回值〉 对象．置字体属性 （行号，列号，［行数］，［列数］，［字体属性］）

英文名称：SetFontAttr

设置数据源中指定单元格在表现时所使用字体的属性。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“字体属性”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一或之和： 1、#粗体； 2、#斜体； 4、#下划线； 8、#删除线。如果本参数被省略，默认值为0。

※取边距

调用格式： 〈整数型〉 对象．取边距 （行号，列号）

英文名称：GetExtra

返回数据源中指定单元格在表现其中数据时至其单元格边框之间的空白距离，单位为0.1毫米。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置边距

调用格式： 〈无返回值〉 对象．置边距 （行号，列号，［行数］，［列数］，［边距］）

英文名称：SetExtra

设置数据源中指定单元格在表现其中数据时至其单元格边框之间的空白距离，单位为0.1毫米。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“边距”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为9。

※取文本输入格式

调用格式： 〈整数型〉 对象．取文本输入格式 （行号，列号）

英文名称：GetInputType

返回数据源中某文本型单元格的输入格式。当新的数据通过输入方式更新到该单元格内之前，将首先自动根据此格式转换。返回值为以下常量值之一： 0、#通常型； 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置文本输入格式

调用格式： 〈无返回值〉 对象．置文本输入格式 （行号，列号，［行数］，［列数］，［输入格式］）

英文名称：SetInputType

设置数据源中某文本型单元格的输入格式。当新的数据通过输入方式更新到该单元格内之前，将首先自动根据此格式转换。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“输入格式”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一： 0、#通常型； 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型。 如果本参数被省略，默认值为“#通常型”。

※取对齐方式

调用格式： 〈整数型〉 对象．取对齐方式 （行号，列号）

英文名称：GetAlignMode

返回数据源中指定单元格在表现时所使用的对齐方式。返回值为以下常量值之一： 1、#上左； 2、#上中； 3、#上右； 4、#中左； 5、#中中； 6、#中右； 7、#下左； 8、#下中； 9、#下右； 10、#缩放图片； 11、#居中图片； 12、#缩放居中图片； 13、#平铺图片； 14、#缩放平铺图片。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置对齐方式

调用格式： 〈无返回值〉 对象．置对齐方式 （行号，列号，［行数］，［列数］，［对齐方式］）

英文名称：SetAlignMode

设置数据源中指定单元格在表现时所使用的对齐方式。注意如果数据源所使用的数据提供者不支持某些属性，该属性将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“对齐方式”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一：1、#上左； 2、#上中； 3、#上右； 4、#中左； 5、#中中； 6、#中右； 7、#下左； 8、#下中； 9、#下右； 10、#缩放图片； 11、#居中图片； 12、#缩放居中图片； 13、#平铺图片； 14、#缩放平铺图片。 其中 10 到 14 对齐方式仅对图片型单元格有效。如果本参数被省略，默认值为“#上左”。

※取密码方式

调用格式： 〈逻辑型〉 对象．取密码方式 （行号，列号）

英文名称：GetPwdMode

返回数据源中指定单元格在表现时是否使用密码方式。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置密码方式

调用格式： 〈无返回值〉 对象．置密码方式 （行号，列号，［行数］，［列数］，密码方式）

英文名称：SetPwdMode

设置数据源中指定单元格在表现时是否使用密码方式。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“密码方式”，类型为“逻辑型（bool）”。

※取文本

调用格式： 〈文本型〉 对象．取文本 （行号，列号）

英文名称：GetText

返回数据源中指定单元格的文本内容。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置文本

调用格式： 〈无返回值〉 对象．置文本 （行号，列号，文本或图片文件名）

英文名称：SetText

设置数据源中指定单元格的文本内容，注意该单元格类型必须为“#文本”或“#图片文件名”。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“文本或图片文件名”，类型为“文本型（text）”。

※取数据

调用格式： 〈字节集〉 对象．取数据 （行号，列号）

英文名称：GetData

返回数据源中指定单元格的图片或字节集数据内容。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※置数据

调用格式： 〈无返回值〉 对象．置数据 （行号，列号，数据）

英文名称：SetData

设置数据源中指定单元格的图片或字节集数据内容，注意该单元格类型必须为“#图片数据”或“#字节集数据”。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“数据”，类型为“字节集（bin）”。

※合并

调用格式： 〈无返回值〉 对象．合并 （行号，列号，［行数］，［列数］）

英文名称：Cmb

组合数据源中指定范围内的单元格，使之以一个单元格的形式表现。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※分解

调用格式： 〈无返回值〉 对象．分解 （行号，列号）

英文名称：Split

分解数据源中指定的已经组合的单元格，行列参数指向被组合单元格内的任何一个单元格即可。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

※是否被合并

调用格式： 〈逻辑型〉 对象．是否被合并 （行号，列号，周边单元格）

英文名称：HasCmb

如果数据源中指定单元格与周边指定单元格有组合关系，返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“周边单元格”，类型为“整数型（int）”。可以为以下常量值之一： 1、#左单元格； 2、#上单元格； 3、#右单元格； 4、#下单元格。

※加线条

调用格式： 〈无返回值〉 对象．加线条 （行号，列号，［行数］，［列数］，［线条类型］）

英文名称：AddLine

为数据源中指定范围内单元格添加线条。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“线条类型”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一或之和：1、#左边框； 2、#上边框； 4、#右边框； 8、#下边框； 16、#水平线； 32、#垂直线； 64、#单斜线； 128、#双斜线； 256、#交叉线。 如果本参数被省略，默认值为“#左边框 + #上边框 + #右边框 + #下边框”。

※删线条

调用格式： 〈无返回值〉 对象．删线条 （行号，列号，［行数］，［列数］，［线条类型］）

英文名称：RemoveLine

将数据源中指定范围内单元格内的线条去除。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“线条类型”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一或之和：1、#左边框； 2、#上边框； 4、#右边框； 8、#下边框； 16、#水平线； 32、#垂直线； 64、#单斜线； 128、#双斜线； 256、#交叉线。 如果本参数被省略，默认值为“#左边框 + #上边框 + #右边框 + #下边框”。

※是否有线条

调用格式： 〈逻辑型〉 对象．是否有线条 （行号，列号，线条类型）

英文名称：HasLine

如果数据源中指定单元格有指定线条，返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“线条类型”，类型为“整数型（int）”。可以为以下常量值之一或之和：1、#左边框； 2、#上边框； 4、#右边框； 8、#下边框； 64、#单斜线； 128、#双斜线； 256、#交叉线。

※清除

调用格式： 〈无返回值〉 对象．清除 （行号，列号，［行数］，［列数］）

英文名称：EmptyCell

清除数据源中指定范围内单元格内容为空文本。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※置初始属性

调用格式： 〈无返回值〉 对象．置初始属性 （［类型］，［文本颜色］，［背景颜色］，［字体名称］，［字体尺寸］，［字体属性］，［边距］，［对齐方式］，［输入格式］，［添加边框线］）

英文名称：SetInitData

设置在数据源中初始或者添加新单元格时默认的单元格初始属性。本命令为初级对象成员命令。

参数<1>的名称为“类型”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一： 1、#文本； 2、#图片文件名； 3、#图片数据； 4、#字节集数据。如果本参数被省略，默认值为“#文本”。

参数<2>的名称为“文本颜色”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为黑色。

参数<3>的名称为“背景颜色”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为透明色。

参数<4>的名称为“字体名称”，类型为“文本型（text）”，可以被省略。如果本参数被省略，默认值为“宋体”。

参数<5>的名称为“字体尺寸”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为40。

参数<6>的名称为“字体属性”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一或之和： 1、#粗体； 2、#斜体； 4、#下划线； 8、#删除线。如果本参数被省略，默认值为0。

参数<7>的名称为“边距”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为9。

参数<8>的名称为“对齐方式”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一：1、#上左； 2、#上中； 3、#上右； 4、#中左； 5、#中中； 6、#中右； 7、#下左； 8、#下中； 9、#下右； 10、#缩放图片； 11、#居中图片； 12、#缩放居中图片； 13、#平铺图片； 14、#缩放平铺图片。 其中 10 到 14 对齐方式仅对图片型单元格有效。如果本参数被省略，默认值为“#上左”。

参数<9>的名称为“输入格式”，类型为“整数型（int）”，可以被省略。可以为以下常量值之一： 0、#通常型； 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型。 如果本参数被省略，默认值为“#通常型”。

参数<10>的名称为“添加边框线”，类型为“逻辑型（bool）”，可以被省略。指定是否在单元格周围添加边框线。如果本参数被省略，默认值为假。

※初始尺寸

调用格式： 〈逻辑型〉 对象．初始尺寸 （［行数］，［列数］）

英文名称：InitSize

初始数据源中数据的行列数，注意数据源中所有原有数据将被清除。注意某些数据提供者可能不支持此方法。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<2>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。 调用格式： 〈整数型〉 对象．取行数 （）

英文名称：GetRowCount

返回数据源中现行数据行数。本命令为初级对象成员命令。

※取列数

调用格式： 〈整数型〉 对象．取列数 （）

英文名称：GetColCount

返回数据源中现行数据列数。本命令为初级对象成员命令。

※插入行

调用格式： 〈逻辑型〉 对象．插入行 （行号，［行数］）

英文名称：InsertRow

在数据源中指定位置处插入新数据行。注意某些数据提供者可能不支持在中间插入行。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※添加行

调用格式： 〈逻辑型〉 对象．添加行 （［行数］）

英文名称：AppendRow

在数据源中最后一行后插入新数据行。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※删除行

调用格式： 〈逻辑型〉 对象．删除行 （行号，［行数］）

英文名称：RemoveRow

在数据源中指定位置处删除数据行。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※插入列

调用格式： 〈逻辑型〉 对象．插入列 （列号，［列数］）

英文名称：InsertCol

在数据源中指定位置处插入新数据列。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<2>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※删除列

调用格式： 〈逻辑型〉 对象．删除列 （列号，［列数］）

英文名称：RemoveCol

在数据源中指定位置处删除数据列。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<2>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※添加

调用格式： 〈逻辑型〉 对象．添加 （数据源或数据提供者，［首行行号］，［欲添加行数］）

英文名称：Append

将指定其它数据源或者数据提供者中的数据添加到本数据源的尾部。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“数据源或数据提供者”，类型为“通用型（all）”。本参数指定欲添加其数据到数据源中的其它数据源或数据提供者。

参数<2>的名称为“首行行号”，类型为“整数型（int）”，可以被省略。指定欲添加数据首行的行号。如果本参数被省略，默认值为1。

参数<3>的名称为“欲添加行数”，类型为“整数型（int）”，可以被省略。指定欲添加数据行的行数。如果参数值为-1，则添加首行后的所有数据行。如果本参数被省略，默认值为-1。

※存到字节集

调用格式： 〈字节集〉 对象．存到字节集 （）

英文名称：SaveDS

将数据源中所有现有数据保存在字节集中返回。如果失败，将返回空字节集。本命令为初级对象成员命令。

※从字节集读

调用格式： 〈逻辑型〉 对象．从字节集读 （数据源数据）

英文名称：LoadDS

将指定字节集内的数据源数据写入到数据源中，数据源内所有原有数据将被清除。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“数据源数据”，类型为“字节集（bin）”。

※存到文件

调用格式： 〈逻辑型〉 对象．存到文件 （数据源数据文件名）

英文名称：SaveDSFile

将数据源中所有现有数据保存到指定文件中。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“数据源数据文件名”，类型为“文本型（text）”。

※从文件读

调用格式： 〈逻辑型〉 对象．从文件读 （数据源数据文件名）

英文名称：LoadDSFile

将指定文件内的数据源数据写入到数据源中，数据源内所有原有数据将被清除。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“数据源数据文件名”，类型为“文本型（text）”。

※单元格到字节集

调用格式： 〈字节集〉 对象．单元格到字节集 （行号，列号，［行数］，［列数］）

英文名称：SaveDSCell

将数据源中指定范围内单元格数据保存在字节集中返回。如果失败，将返回空字节集。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

※字节集到单元格

调用格式： 〈逻辑型〉 对象．字节集到单元格 （行号，列号，单元格数据，［自动扩展］）

英文名称：LoadDSCell

将指定字节集内的单元格数据写入到数据源中指定位置。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“单元格数据”，类型为“字节集（bin）”。

参数<4>的名称为“自动扩展”，类型为“逻辑型（bool）”，可以被省略。本参数指定如果数据源内的数据行列数无法容纳即将读入的数据，是否自动扩展。如果本参数被省略，默认值为真。

※单元格到文件

调用格式： 〈逻辑型〉 对象．单元格到文件 （行号，列号，［行数］，［列数］，数据源数据文件名）

英文名称：SaveDSCellFile

将数据源中指定范围内单元格数据保存到指定文件中。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“行数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<4>的名称为“列数”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认值为1。

参数<5>的名称为“数据源数据文件名”，类型为“文本型（text）”。

※文件到单元格

调用格式： 〈逻辑型〉 对象．文件到单元格 （行号，列号，单元格数据文件名，［自动扩展］）

英文名称：LoadDSCellFile

将指定文件内的单元格数据写入到数据源中指定位置。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从1开始。

参数<2>的名称为“列号”，类型为“整数型（int）”。列号从1开始。

参数<3>的名称为“单元格数据文件名”，类型为“文本型（text）”。

参数<4>的名称为“自动扩展”，类型为“逻辑型（bool）”，可以被省略。本参数指定如果数据源内的数据行列数无法容纳即将读入的数据，是否自动扩展。如果本参数被省略，默认值为真。

※刷新显示

调用格式： 〈无返回值〉 对象．刷新显示 （）

英文名称：Refrush

通知所有基于本数据源的数据处理者，使其自动从数据源重新获取并显示数据。本命令为初级对象成员命令。

※保存更改

调用格式： 〈无返回值〉 对象．保存更改 （）

英文名称：SaveChange

通知所有基于本数据源的数据处理者，使其自动将处理或更改后的数据写回到数据源中。本命令为初级对象成员命令。

※打印设置

调用格式： 〈逻辑型〉 对象．打印设置 （）

英文名称：SetupPrinter

调用对话框设置数据的打印配置信息。当操作者按确认按钮退出对话框时返回真，否则返回假。本命令为初级对象成员命令。

※取打印设置

调用格式： 〈打印设置信息〉 对象．取打印设置 （）

英文名称：GetPrintInf

返回打印数据源数据时所将使用的设置信息。本命令为初级对象成员命令。

※置打印设置

调用格式： 〈逻辑型〉 对象．置打印设置 （打印设置信息）

英文名称：SetPrintInf

设置打印数据源数据时所将使用的设置信息。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“打印设置信息”，类型为“打印设置信息（PrintInf）”。

※取打印页宽

调用格式： 〈整数型〉 对象．取打印页宽 （）

英文名称：GetPageWidth

返回打印数据源数据时所将使用打印纸的正文区域宽度，单位为0.1毫米。注意：1、此宽度不包含页边距；2、“打印设置”命令执行后，如果操作者改变了纸张类型，此值将自动改变。本命令为初级对象成员命令。

※取打印页高

调用格式： 〈整数型〉 对象．取打印页高 （）

英文名称：GetPageHeight

返回打印数据源数据时所将使用打印纸的正文区域高度，单位为0.1毫米。注意：1、此宽度不包含页边距；2、“打印设置”命令执行后，如果操作者改变了纸张类型，此值将自动改变。本命令为初级对象成员命令。

自有事件：

当前记录改变

添加记录

删除记录

单元事件列表：

事件 1 ：

事件名称：当前记录改变

当操作者按下移动记录按钮移动了当前记录指针后，会产生本事件。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：添加记录

当操作者按下添加记录按钮添加了新记录后，会产生本事件。

此事件的用户处理子程序不需要返回数据。

事件 3 ：

事件名称：删除记录

当操作者按下删除记录按钮删除了当前记录后，会产生本事件。

此事件的用户处理子程序不需要返回数据。

（以下单元没有基本事件）※

通用对话框 功能型窗口单元

数据类型名称：通用对话框 英文名称：CommonDlg

本数据类型为功能窗口单元型，共包含 1 个成员命令， 30 个成员属性。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
类型 | 标题 | 文件名 | 过滤器
初始过滤器 | 初始目录 | 默认文件后缀 | 创建时提示
文件必须存在 | 文件覆盖提示 | 目录必须存在 | 不改变目录
字体颜色 | 加粗 | 倾斜 | 删除线
下划线 | 字体名称 | 字体大小 | 帮助文件名
帮助命令 | 帮助标志值 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“类型”，英文名称为“style”，类型为“整数型（int）”。

可供选择的属性值：

0. 打开文件 1. 保存文件 2. 字体选择 3. 打开帮助

成员属性<10>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

仅适用于打开文件和保存文件对话框。

成员属性<11>的中文名称为“文件名”，英文名称为“FileName”，类型为“文本型（text）”。

从本属性中读取的文件名包括驱动器符和全路径目录，同时本属性也用作初始对话框中的文件名编辑框。

成员属性<12>的中文名称为“过滤器”，英文名称为“filter”，类型为“文本型（text）”。

过滤器文本由单个或多个成对的文本串组成，每对文本串的第一个描述显示形式，如：“文本文件（*.txt）”；第二个指定实际的过滤匹配符，如：“*.txt”，所有各文本串之间用“|”号隔开。

成员属性<13>的中文名称为“初始过滤器”，英文名称为“FilterIndex”，类型为“整数型（int）”。

指定初始的过滤器，0为第一个过滤器。

成员属性<14>的中文名称为“初始目录”，英文名称为“InitialDir”，类型为“文本型（text）”。

指定当打开对话框时所自动跳转到的目录。

成员属性<15>的中文名称为“默认文件后缀”，英文名称为“DefExt”，类型为“文本型（text）”。

指定当用户没有输入文件的后缀名称时所自动使用的文件后缀名称。

成员属性<16>的中文名称为“创建时提示”，英文名称为“CreatePrompt”，类型为“逻辑型（bool）”。

当类型为打开文件对话框时，如果用户指定了一个不存在的文件名称，是否提示用户即将创建它。

成员属性<17>的中文名称为“文件必须存在”，英文名称为“FileMustExist”，类型为“逻辑型（bool）”。

当类型为打开文件对话框时，是否允许用户指定一个不存在的文件。

成员属性<18>的中文名称为“文件覆盖提示”，英文名称为“OverWritePrompt”，类型为“逻辑型（bool）”。

当类型为保存文件对话框时，如果用户指定了一个已经存在的文件，是否询问用户确定覆盖此文件。

成员属性<19>的中文名称为“目录必须存在”，英文名称为“PathMustExist”，类型为“逻辑型（bool）”。

是否允许用户指定一个不存在的目录。

成员属性<20>的中文名称为“不改变目录”，英文名称为“NoChangeDir”，类型为“逻辑型（bool）”。

在对话框关闭后是否自动返回到进入对话框时的文件目录。

成员属性<21>的中文名称为“字体颜色”，英文名称为“FontColor”，类型为“整数型（int）”。

成员属性<22>的中文名称为“加粗”，英文名称为“FontBold”，类型为“逻辑型（bool）”。

成员属性<23>的中文名称为“倾斜”，英文名称为“FontItalic”，类型为“逻辑型（bool）”。

成员属性<24>的中文名称为“删除线”，英文名称为“StrikeOut”，类型为“逻辑型（bool）”。

成员属性<25>的中文名称为“下划线”，英文名称为“UnderLine”，类型为“逻辑型（bool）”。

成员属性<26>的中文名称为“字体名称”，英文名称为“FontName”，类型为“文本型（text）”。

如果不指定字体名称和字体大小，将自动使用标准的Windows图形字体。如果指定了字体大小但没有指定字体名称，将自动使用“宋体”。

成员属性<27>的中文名称为“字体大小”，英文名称为“FontSize”，类型为“整数型（int）”。

单位为1/72英寸，如果不指定字体名称和字体大小，将自动使用标准的Windows图形字体。

成员属性<28>的中文名称为“帮助文件名”，英文名称为“HelpFileName”，类型为“文本型（text）”。

指定欲打开帮助文件的名称，如果没有指定帮助文件，将使用默认帮助文件名称，即本易程序的文件名称（不含其后缀）＋“.hlp”后缀。

成员属性<29>的中文名称为“帮助命令”，英文名称为“HelpCommand”，类型为“整数型（int）”。

可供选择的属性值：

0. 显示帮助主题 1. 显示指定标志信息 2. 弹出指定标志信息

3. 确定帮助已显示 4. 显示帮助软件使用方法 5. 退出帮助

成员属性<30>的中文名称为“帮助标志值”，英文名称为“HelpContext”，类型为“整数型（int）”。

仅在帮助命令为“显示指定标志信息”和“弹出指定标志信息”时才有效，用于指定相应的帮助标志数值。

成员命令：

打开

※打开

调用格式： 〈逻辑型〉 对象．打开 （）

英文名称：open

打开当前类型的对话框，返回一个逻辑值。对于类型为“打开文件”、“保存文件”、“字体选择”的对话框，如果为真，表示用户已通过该对话框输入了有效数据，否则表示用户取消了该对话框，且没有输入任何有效数据。对于类型为“打开帮助”的对话框，如打开帮助成功则返回真，否则返回假。本命令为初级对象成员命令。

时钟 功能型窗口单元

数据类型名称：时钟 英文名称：Timer

本数据类型为功能窗口单元型，共包含 9 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
时钟周期 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“时钟周期”，英文名称为“elapse”，类型为“整数型（int）”。

指定时钟事件产生的周期，单位为毫秒。如果设定为0，则无时钟事件产生。

自有事件：

单元事件列表：周期事件

事件名称：周期事件

每当经过了指定的时钟周期，将产生此事件。

此事件的用户处理子程序不需要返回数据。

打印机 功能型窗口单元

数据类型名称：打印机 英文名称：printer

本数据类型为功能窗口单元型，共包含 26 个成员命令， 35 个成员属性。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
绘画单位 | 画笔类型 | 画出方式 | 画笔粗细
画笔颜色 | 刷子类型 | 刷子颜色 | 文本颜色
文本背景颜色 | 字体 | 打印作业名 | 打印份数
多份打印方式 | 最小页号 | 最大页号 | 首页页号
末页页号 | 打印选择区 | 左边空 | 顶边空
右边空 | 底边空 | 当前页号 | 已打印份数
打印区宽度 | 打印区高度 | 打印被中止 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“绘画单位”，英文名称为“unit”，类型为“整数型（int）”。

本属性指定绘画时所使用的单位，坐标系的 X 轴从左到右，Y 轴从上到下。

可供选择的属性值：

0. 像素点 1. 0.1毫米 2. 0.01毫米 3. 0.01英寸

4. 0.001英寸 5. 1/1440英寸

成员属性<10>的中文名称为“画笔类型”，英文名称为“PenStyle”，类型为“整数型（int）”。

可供选择的属性值：

0. 空笔 1. 直线 2. 划线 3. 点线

4. 点划线 5. 双点划线 6. 内直线

成员属性<11>的中文名称为“画出方式”，英文名称为“DrawRop2”，类型为“整数型（int）”。

有关各种画出方式的说明为： 0、黑色：始终画出黑色；1、非或笔：或笔的相反；2、与非笔：背景色以及画笔反相二者共有颜色的组合；3、非复制笔：复制笔的相反；4、与笔非：画笔以及已有颜色反相二者共有颜色的组合；5、反转：已有颜色的反相；6、异或笔：画笔的颜色以及已有颜色的组合，只取其一；7、非与笔：与笔的相反；8、与笔：画笔和已有二者共有颜色的组合；9、非异或笔：异或笔的相反；10、无操作：原有保持不变。该设置实际上关闭画笔；11、或非笔：已有颜色与画笔颜色反相的组合；12、复制笔（缺省值）：画笔颜色；13、或笔非：画笔颜色与已有颜色的反相的组合；14、或笔：画笔颜色与已有颜色的组合；15、白色：始终画出白色。

可供选择的属性值：

0. 黑色 1. 非或笔 2. 与非笔 3. 非复制笔

4. 与笔非 5. 反转 6. 异或笔 7. 非与笔

8. 与笔 9. 非异或笔 10. 无操作 11. 或非笔

12. 复制笔 13. 或笔非 14. 或笔 15. 白色

成员属性<12>的中文名称为“画笔粗细”，英文名称为“PenWidth”，类型为“整数型（int）”。

使用现行绘画单位，如果为0，表示画笔的粗细为一个像素点。注意：当画笔类型为划线、点线、点划线、双点划线时，本属性无效，画笔宽度始终为一个像素点。

成员属性<13>的中文名称为“画笔颜色”，英文名称为“PenColor”，类型为“整数型（int）”。

成员属性<14>的中文名称为“刷子类型”，英文名称为“BrushStyle”，类型为“整数型（int）”。

各种格式刷子将使用当前文本背景颜色作为刷子背景颜色。

可供选择的属性值：

0. 空刷子 1. 颜色刷子 2. 右斜线

3. 直交叉线 4. 斜交叉线 5. 左斜线

6. 横线 7. 竖线 8. 5%色点

9. 10%色点 10. 20%色点 11. 25%色点

12. 30%色点 13. 40%色点 14. 50%色点

15. 60%色点 16. 70%色点 17. 75%色点

18. 80%色点 19. 90%色点 20. 浅色上对角线

21. 浅色下对角线 22. 深色上对角线 23. 深色下对角线

24. 宽上对角线 25. 宽下对角线 26. 浅色竖线

27. 浅色横线 28. 窄竖线 29. 窄横线

30. 深色竖线 31. 深色横线 32. 上对角虚线

33. 下对角虚线 34. 横虚线 35. 竖虚线

36. 小纸屑 37. 大纸屑 38. 之字形

39. 波浪线 40. 对角砖形 41. 横向砖形

42. 纺织物 43. 方格呢 44. 草皮

45. 虚格线 46. 点式菱形 47. 瓦形

48. 棚架 49. 球体 50. 小网格

51. 大网格 52. 小棋盘 53. 大棋盘

54. 空心菱形 55. 实心菱形

成员属性<15>的中文名称为“刷子颜色”，英文名称为“BrushColor”，类型为“整数型（int）”。

成员属性<16>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<17>的中文名称为“文本背景颜色”，英文名称为“TextBackColor”，类型为“整数型（int）”。

成员属性<18>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<19>的中文名称为“打印作业名”，英文名称为“title”，类型为“文本型（text）”。

在打印过程中，本属性的内容将显示在由系统自动提供的打印状态对话框及 Windows 打印管理器中。如果为空，默认为“未命名打印作业”。

成员属性<20>的中文名称为“打印份数”，英文名称为“PrintCopies”，类型为“整数型（int）”。

本属性用作为打印设置对话框中的打印份数编辑框提供初始值，当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的需要打印份数。需了解的是：如果被选定打印机硬件支持多份拷贝功能，无论用户设置打印份数为多少，打印设置对话框永远返回 1 ，多份打印被转交给打印机硬件去自动完成。如果在进入打印设置对话框前置属性值为 -1 ，表明现行易程序不支持多份打印，此时系统会自动检查当前所选择打印机硬件，如果该打印机硬件支持多份拷贝，将允许用户指定打印份数并启用硬件多份拷贝功能，否则不允许，打印设置对话框返回后属性值保持不变。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

成员属性<21>的中文名称为“多份打印方式”，英文名称为“Collate”，类型为“逻辑型（bool）”。

本属性用作为打印设置对话框中“份数”组中的“分页”选择框提供初始值，当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的值。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

成员属性<22>的中文名称为“最小页号”，英文名称为“MinPage”，类型为“整数型（int）”。

本属性用作为打印设置对话框提供最小页号值，如果在进入打印设置对话框前置属性值为 -1 ，打印设置对话框中将不允许用户设置页打印范围。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

成员属性<23>的中文名称为“最大页号”，英文名称为“MaxPage”，类型为“整数型（int）”。

本属性用作为打印设置对话框提供最大页号值。如果置为 -1 ，表示最大页号不受限制。如果“最小页号”属性值被置为 -1 ，本属性无意义。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

成员属性<24>的中文名称为“首页页号”，英文名称为“FromPage”，类型为“整数型（int）”。

本属性用作为打印设置对话框中的首打印页页号编辑框提供初始值，当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的首打印页号，此值将在“最小页号”属性值及“最大页号”属性值之间。但如果用户选择了全部打印或者打印选择区，本属性值将为 -1 。如果“最小页号”属性值被置为 -1 ，本属性无意义。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

成员属性<25>的中文名称为“末页页号”，英文名称为“ToPage”，类型为“整数型（int）”。

本属性用作为打印设置对话框中的末打印页页号编辑框提供初始值，如果置为 -1 ，表示不提供。当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的末打印页号，此值将在“首页页号”属性值及“最大页号”属性值之间。但如果用户选择了全部打印或者打印选择区，本属性值将为 -1 。如果“最小页号”属性值被置为 -1 ，本属性无意义。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

成员属性<26>的中文名称为“打印选择区”，英文名称为“PrintSel”，类型为“整数型（int）”。

本属性用作为打印设置对话框中“选择的范围”选择框提供初始值，为 1 表示真，为 0 表示假。当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的值。如果在进入打印设置对话框前置属性值为 -1 ，打印设置对话框中将不允许用户选取该选择框。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

成员属性<27>的中文名称为“左边空”，英文名称为“LeftSpace”，类型为“整数型（int）”。

本属性指定打印时打印纸左边所留空白的尺寸，使用现行绘画单位，由系统自动提供支持。

成员属性<28>的中文名称为“顶边空”，英文名称为“TopSpace”，类型为“整数型（int）”。

本属性指定打印时打印纸顶边所留空白的尺寸，使用现行绘画单位，由系统自动提供支持。

成员属性<29>的中文名称为“右边空”，英文名称为“RightSpace”，类型为“整数型（int）”。

本属性指定打印时打印纸右边所留空白的尺寸，使用现行绘画单位，由系统自动提供支持。

成员属性<30>的中文名称为“底边空”，英文名称为“BottomSpace”，类型为“整数型（int）”。

本属性指定打印时打印纸底边所留空白的尺寸，使用现行绘画单位，由系统自动提供支持。

成员属性<31>的中文名称为“当前页号”，英文名称为“page”，类型为“整数型（int）”。

本属性只可读。

本属性提供现行打印页的页号，由系统自行维护。页号值从“首页页号”属性值开始，如果“最小页号”属性值被置为 -1 ，页号值从 1 开始。在以下情况下属性值被自动增一： 1、使用“写文本行”方法打印一行文本并且要打印文本行的高度当前页容纳不下（此时将会首先自动换页）； 2、使用“换页”方法。本属性仅在打印作业过程中有效。

成员属性<32>的中文名称为“已打印份数”，英文名称为“copies”，类型为“整数型（int）”。

本属性只可读。

本属性提供现行所已经打印的份数（含当前份），由系统自行维护。在调用“开始下一份”方法后，本属性值被自动加一。

成员属性<33>的中文名称为“打印区宽度”，英文名称为“width”，类型为“整数型（int）”。

本属性只可读。

本属性提供了打印纸实际可打印区域宽度减去左右边空后的值，使用现行绘画单位，仅在打印作业过程中有效。

成员属性<34>的中文名称为“打印区高度”，英文名称为“height”，类型为“整数型（int）”。

本属性只可读。

本属性提供了打印纸实际可打印区域高度减去上下边空后的值，使用现行绘画单位，仅在打印作业过程中有效。

成员属性<35>的中文名称为“打印被中止”，英文名称为“abort”，类型为“逻辑型（bool）”。

本属性只可读。

如果在打印时使用了系统所提供的打印状态对话框，并且在打印过程中用户已经选择中止打印取消了打印作业（系统自动支持），本属性值为真，否则为假。易程序在进行打印的过程中一旦发现本属性值为真，应该退出此过程。

成员命令

取设备句柄 | 开始打印 | 结束打印 | 取消打印
换页 | 开始下一份 | 画点 | 画直线
画椭圆 | 画弧线 | 画弦 | 画饼
画矩形 | 画渐变矩形 | 填充矩形 | 画圆角矩形
画多边形 | 置写出位置 | 写文本行 | 写出
定位写出 | 取宽度 | 取高度 | 画图片
取图片宽度 | 取图片高度 |  |

※取设备句柄

调用格式： 〈整数型〉 对象．取设备句柄 （）

英文名称：GetHDC

如当前用户程序正在进行打印作业，则返回对应的打印机设备句柄（即HDC），否则返回 0。本命令为高级对象成员命令。

※开始打印

调用格式： 〈逻辑型〉 对象．开始打印 （［是否调用打印设置对话框］，［是否显示打印状态对话框］，［纸张］，［纸张方向］）

英文名称：StartDoc

返回真表示已经成功地进入了打印作业，进入打印作业后文本写出位置将被重置为 0 。如果执行本命令时已经在打印作业中或者用户在打印设置对话框中选择了取消，返回假。进入打印后必须调用“结束打印”或者“取消打印”方法来退出打印。进入打印前易程序进行的所有打印绘画操作都将被忽略。本命令为初级对象成员命令。

参数<1>的名称为“是否调用打印设置对话框”，类型为“逻辑型（bool）”，可以被省略。指定在进入打印之前是否先调用打印设置对话框对打印机及相关打印参数进行设置。如省略本参数，默认为真。如果参数值为假，将自动使用 Windows 系统默认打印机，但如果取 Windows 系统默认打印机失败，仍然会调用打印设置对话框。

参数<2>的名称为“是否显示打印状态对话框”，类型为“逻辑型（bool）”，可以被省略。指定在打印过程中是否显示由系统自动提供的打印状态对话框。用户如果在该打印状态对话框中选择了取消打印，系统将自动中止并取消该打印作业，并置“打印被中止”属性值为真。如省略本参数，默认为真。

参数<3>的名称为“纸张”，类型为“整数型（int）”，可以被省略。指定所使用的打印纸类型。可以为以下常量值之一： 0、#默认纸； 1、#A3纸(297x420毫米)； 2、#A4纸(210x297毫米)； 3、#A5纸(148x210毫米)； 4、#B4纸(250x354毫米)； 5、#B5纸(182x257毫米)； 6、#四开(215x275毫米)； 7、#十六开(146x215毫米)； 8、#三十二开(97x151毫米)； 9、#信纸(216x279毫米)； 10、#法律用纸(216x355毫米)； 11、#行政用纸(184x266毫米)； 12、#声明(140x216毫米)； 13、#小报(279x432毫米)； 14、#笔记(216x279毫米)； 15、#帐本(432x279毫米)； 16、#对开纸(216x330毫米)。 注意如果所选择纸张得不到打印机的支持，打印机将会自动选择最接近的纸张。如省略本参数，默认为“#默认纸”。

参数<4>的名称为“纸张方向”，类型为“整数型（int）”，可以被省略。指定打印纸的放置方向。可以为以下常量值之一： 0、#纵向； 1、#横向。如省略本参数，默认为“#纵向”。

※结束打印

调用格式： 〈无返回值〉 对象．结束打印 （）

英文名称：EndDoc

如果当前已经进入了打印作业，调用本命令可完成此作业。结束打印后易程序进行的后续打印绘画操作都将被忽略。本命令为初级对象成员命令。

※取消打印

调用格式： 〈无返回值〉 对象．取消打印 （）

英文名称：AbortDoc

如果当前已经进入了打印作业，调用本命令可立即中止且取消该作业。如果操作系统的打印管理器正在处理该打印作业（打印管理器正在运行并且允许后台打印），那么该作业将被删除且使打印机不接收任何信息。如果打印管理器不是正在处理该作业（没有选用后台打印），部分或全部数据可能在此之前已发送到打印机。此时，打印机驱动程序将尽可能使打印机立即复位并终止该作业。取消打印后易程序进行的后续打印绘画操作都将被忽略。本命令为初级对象成员命令。

※换页

调用格式： 〈逻辑型〉 对象．换页 （）

英文名称：NewPage

调用本命令使打印机完成当前页的打印，文本写出位置被重置为 0 ，并走纸到下一页左上角。如果换页成功返回真，否则将自动取消打印并返回假。本命令为初级对象成员命令。

※开始下一份

调用格式： 〈逻辑型〉 对象．开始下一份 （）

英文名称：NewCopy

调用本命令后将结束在当前页上的打印作业，并将当前打印份数加一，当前页号置回到首页页号，以进入下一份拷贝的打印。如果成功返回真，失败将自动取消打印并返回假。本命令为初级对象成员命令。

※画点

调用格式： 〈无返回值〉 对象．画点 （点横坐标，点纵坐标，欲画入点的颜色值）

英文名称：SetPixel

本命令为初级对象成员命令。

参数<1>的名称为“点横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“点纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“欲画入点的颜色值”，类型为“整数型（int）”。

※画直线

调用格式： 〈无返回值〉 对象．画点 （点横坐标，点纵坐标，欲画入点的颜色值）

英文名称：SetPixel

本命令为初级对象成员命令。

参数<1>的名称为“点横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“点纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“欲画入点的颜色值”，类型为“整数型（int）”。

※画椭圆

调用格式： 〈无返回值〉 对象．画椭圆 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标）

英文名称：ellipse

本命令为初级对象成员命令。

参数<1>的名称为“椭圆左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“椭圆左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“椭圆右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“椭圆右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画弧线

调用格式： 〈无返回值〉 对象．画弧线 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

英文名称：ArcTo

使用画笔在画板上画出一条弧线。本命令为初级对象成员命令。

参数<1>的名称为“椭圆左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“椭圆左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“椭圆右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“椭圆右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<5>的名称为“弧线起始点横坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<6>的名称为“弧线起始点纵坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<7>的名称为“弧线终止点横坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<8>的名称为“弧线终止点纵坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

※画弦

调用格式： 〈无返回值〉 对象．画弦 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

英文名称：chord

本命令为初级对象成员命令。

参数<1>的名称为“椭圆左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“椭圆左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“椭圆右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“椭圆右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<5>的名称为“弧线起始点横坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<6>的名称为“弧线起始点纵坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<7>的名称为“弧线终止点横坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<8>的名称为“弧线终止点纵坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

※画饼

调用格式： 〈无返回值〉 对象．画饼 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

英文名称：pie

本命令为初级对象成员命令。

参数<1>的名称为“椭圆左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“椭圆左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“椭圆右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“椭圆右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<5>的名称为“弧线起始点横坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<6>的名称为“弧线起始点纵坐标”，类型为“整数型（int）”。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<7>的名称为“弧线终止点横坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参数<8>的名称为“弧线终止点纵坐标”，类型为“整数型（int）”。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

※画矩形

调用格式： 〈无返回值〉 对象．画矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

英文名称：DrawRect

使用画笔在画板上画出一个矩形，矩形的内部使用刷子填充。本命令为初级对象成员命令。

参数<1>的名称为“矩形左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“矩形左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“矩形右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“矩形右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画渐变矩形

调用格式： 〈无返回值〉 对象．画渐变矩形 （矩形区域左边，矩形区域顶边，矩形区域宽度，矩形区域高度，［渐变方向］，首渐变颜色，其它渐变颜色，… ）

英文名称：DrawJBRect

本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“矩形区域左边”，类型为“整数型（int）”。

参数<2>的名称为“矩形区域顶边”，类型为“整数型（int）”。

参数<3>的名称为“矩形区域宽度”，类型为“整数型（int）”。

参数<4>的名称为“矩形区域高度”，类型为“整数型（int）”。

参数<5>的名称为“渐变方向”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值之一： 1、#从上到下； 2、#从左到右； 3、从左上到右下； 4、从右上到左下； 5、从下到上； 6、从右到左； 7、从右下到左上； 8、从左下到右上。 如果本参数被省略，默认为“#从左到右”。

参数<6>的名称为“首渐变颜色”，类型为“整数型（int）”。

参数<7>的名称为“其它渐变颜色”，类型为“整数型（int）”。

※填充矩形

调用格式： 〈无返回值〉 对象．填充矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

英文名称：FillRect

将画板上指定的矩形区域用当前刷子填充。本命令为初级对象成员命令。

参数<1>的名称为“矩形左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“矩形左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“矩形右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“矩形右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

※画圆角矩形

调用格式： 〈无返回值〉 对象．画圆角矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标，圆角宽度，［圆角高度］）

英文名称：RoundRect

使用画笔在画板上画出一个圆角矩形，圆角矩形的内部使用刷子填充。本命令为初级对象成员命令。

参数<1>的名称为“矩形左上角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“矩形左上角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“矩形右下角横坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“矩形右下角纵坐标”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<5>的名称为“圆角宽度”，类型为“整数型（int）”。使用当前绘画单位。

参数<6>的名称为“圆角高度”，类型为“整数型（int）”，可以被省略。使用当前绘画单位。如果省略本参数，默认与圆角宽度相等。

※画多边形

调用格式： 〈无返回值〉 对象．画多边形 （多边形顶点，［顶点数目］）

英文名称：polygon

如果所画的多边形没有闭合，将自动闭合。本命令为初级对象成员命令。

参数<1>的名称为“多边形顶点”，类型为“整数型（int）”，提供参数数据时只能提供数组数据。本参数数组顺序记录多边形各顶点的横向及纵向坐标值。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“顶点数目”，类型为“整数型（int）”，可以被省略。本参数指定多边形顶点的总数目。如果被省略，默认为数组中所记录的顶点数目。

※置写出位置

调用格式： 〈无返回值〉 对象．置写出位置 （［横向写出位置］，［纵向写出位置］）

英文名称：SetWritePos

设置下次使用“写文本行”或“写出”命令输出数据时的位置。本命令为初级对象成员命令。

参数<1>的名称为“横向写出位置”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用现行横向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“纵向写出位置”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用现行纵向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

※写文本行

调用格式： 〈无返回值〉 对象．写文本行 （［欲写出数据］，… ）

英文名称：print

在当前写出位置写出指定的文本、数值、逻辑值或日期时间，并将现行写出位置调整到下行行首。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据”，类型为“通用型（all）”，可以被省略。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

※写出

调用格式： 〈无返回值〉 对象．写出 （［欲写出数据］，… ）

英文名称：write

在当前写出位置处写出指定的文本、数值、逻辑值或日期时间。自动调整现行写出位置到所写出数据的末位置。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据”，类型为“通用型（all）”，可以被省略。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

※定位写出

调用格式： 〈无返回值〉 对象．定位写出 （［横向写出位置］，［纵向写出位置］，欲写出数据，… ）

英文名称：say

在指定写出位置处写出指定的文本、数值、逻辑值或日期时间，不改变现行写出位置。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“横向写出位置”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用现行横向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

参数<2>的名称为“纵向写出位置”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用现行纵向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“欲写出数据”，类型为“通用型（all）”。参数值只能为文本、数值、逻辑值或日期时间。

※取宽度

调用格式： 〈整数型〉 对象．取宽度 （欲取其宽度或高度的数据）

英文名称：GetWidth

返回指定数据的写出宽度，使用当前绘画单位。本命令为初级对象成员命令。

参数<1>的名称为“欲取其宽度或高度的数据”，类型为“通用型（all）”。参数值只能为文本、数值、逻辑值或日期时间。

※取高度

调用格式： 〈整数型〉 对象．取高度 （欲取其宽度或高度的数据）

英文名称：GetHeight

返回指定数据的写出高度，使用当前绘画单位。本命令为初级对象成员命令。

参数<1>的名称为“欲取其宽度或高度的数据”，类型为“通用型（all）”。参数值只能为文本、数值、逻辑值或日期时间。

※画图片

调用格式： 〈无返回值〉 对象．画图片 （图片号，图片左边画出位置，图片顶边画出位置，［图片画出宽度］，［图片画出高度］，［图片画出方法］）

英文名称：DrawPic

本命令为初级对象成员命令。

参数<1>的名称为“图片号”，类型为“整数型（int）”。参数值必须为调用“载入图片”命令所返回的图片号。

参数<2>的名称为“图片左边画出位置”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<3>的名称为“图片顶边画出位置”，类型为“整数型（int）”。使用当前绘画单位，相对于画板或打印纸左上角。

参数<4>的名称为“图片画出宽度”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用图片本身的宽度。使用当前绘画单位。

参数<5>的名称为“图片画出高度”，类型为“整数型（int）”，可以被省略。如果本参数被省略，则使用图片本身的高度。使用当前绘画单位。

参数<6>的名称为“图片画出方法”，类型为“整数型（int）”，可以被省略。本参数定义在将图像绘制到对象（画板 / 打印机）上时对图像执行的位操作。对“图标”类型图片无效。可以为以下常量值之一或者其它自定义操作码：

1、#拷贝； 2、#翻转拷贝； 3、#位异或； 4、#位或； 5、#位与

本参数也可以指定透明色，但必须是负颜色数值。如：

画板1.画图片 (图片号, 0, 0, , , －取颜色值 (255, 255, 255))

此语句的作用就是在画板上画出图片中除白色外的所有颜色。

如果省略本参数，默认为“#拷贝”。

※取图片宽度

调用格式： 〈整数型〉 对象．取图片宽度 （图片号）

英文名称：GetPicWidth

返回指定图片的宽度，使用当前绘画单位。本命令为初级对象成员命令。

参数<1>的名称为“图片号”，类型为“整数型（int）”。参数值必须为调用“载入图片”命令所返回的图片号。

※取图片高度

调用格式： 〈整数型〉 对象．取图片高度 （图片号）

英文名称：GetPicHeight

返回指定图片的高度，使用当前绘画单位。本命令为初级对象成员命令。

参数<1>的名称为“图片号”，类型为“整数型（int）”。参数值必须为调用“载入图片”命令所返回的图片号。

数据报 功能型窗口单元

数据类型名称：数据报 英文名称：UDP

本数据类型为功能窗口单元型，共包含 2 个成员命令， 9 个成员属性， 1 个单元事件。

数据报是一种不可靠、小数据量的网络数据交互方式。如果传递的数据量过大，有可能会失败，最好不要超过 127 字节。如需要大数据量或者可靠数据传送方式，请使用基于连接的其它网络组件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
端口 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“端口”，英文名称为“port”，类型为“整数型（int）”。

指定监听数据到达的端口号，可以是大于 0 小于 32767 的任何自定数值。

成员命令：

发送数据

取回数据

※发送数据

调用格式： 〈逻辑型〉 对象．发送数据 （［接收主机地址］，接收主机端口号，欲发送数据）

英文名称：send

发送数据到指定主机上的指定端口。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“接收主机地址”，类型为“文本型（text）”，可以被省略。可以为主机名、IP地址等。如果省略本参数或者提供空文本，则在指定端口广播欲发送数据。

参数<2>的名称为“接收主机端口号”，类型为“整数型（int）”。

参数<3>的名称为“欲发送数据”，类型为“通用型（all）”。欲发送数据必须是系统基本数据类型。

※取回数据

调用格式： 〈字节集〉 对象．取回数据 （）

英文名称：recv

取回所接收到的数据。本命令必须在“数据到达”事件的处理子程序中使用。本命令为初级对象成员命令。

自有事件：

单元事件列表：数据到达

事件名称：数据到达

当有数据到达后，会产生本事件。在本事件的处理子程序中调用“取回数据”方法即可取回本次所收到的数据。

此事件的用户处理子程序不需要返回数据。

客户 功能型窗口单元

数据类型名称：客户 英文名称：Client

本数据类型为功能窗口单元型，共包含 4 个成员命令， 8 个成员属性， 2 个单元事件。

客户是基于连接的网络数据交换的客户方组件，用作向另一方的服务器端组件发送数据。基于连接的数据交换是一种可靠的、允许大数据量的网络数据交互方式。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员命令

连接

断开连接

发送数据

取回数据

※连接

调用格式： 〈逻辑型〉 对象．连接 （服务器地址，服务器端口号）

英文名称：connect

连接到指定主机上的指定端口，该主机上的该端口必须已经被某一服务器组件监听。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“服务器地址”，类型为“文本型（text）”。可以为主机名、IP地址等。

参数<2>的名称为“服务器端口号”，类型为“整数型（int）”。该端口必须已经被服务器组件监听。

※断开连接

调用格式： 〈无返回值〉 对象．断开连接 （）

英文名称：CloseConnect

断开与服务器的已有连接。本命令为初级对象成员命令。

※发送数据

调用格式： 〈逻辑型〉 对象．发送数据 （欲发送数据）

英文名称：send

在成功建立与服务器的连接后，发送数据到服务器端组件。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“欲发送数据”，类型为“通用型（all）”。欲发送数据必须是系统基本数据类型。

※取回数据

调用格式： 〈字节集〉 对象．取回数据 （）

英文名称：recv

取回所接收到的数据。本命令必须在“数据到达”事件的处理子程序中使用。本命令为初级对象成员命令。

自有事件：

数据到达

连接断开

单元事件列表：

事件 1 ：

事件名称：数据到达

当服务器端将数据发送过来后，会产生本事件。在本事件的处理子程序中调用“取回数据”方法即可取回本次所收到的数据。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：连接断开

当连接被服务器端断开后，会产生本事件。

此事件的用户处理子程序不需要返回数据。

服务器 功能型窗口单元

数据类型名称：服务器 英文名称：Server

本数据类型为功能窗口单元型，共包含 4 个成员命令， 9 个成员属性， 3 个单元事件。

服务器是基于连接的网络数据交换的服务方组件，用作在指定端口监视来自客户方的数据。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
端口 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“端口”，英文名称为“port”，类型为“整数型（int）”。

指定监听数据到达的端口号，可以是大于 0 小于 32767 的任何自定数值。

成员命令

取回数据

取回客户

发送数据

断开客户

※取回数据

调用格式： 〈字节集〉 对象．取回数据 （）

英文名称：recv

取回所接收到的数据。本命令必须在“数据到达”事件的处理子程序中使用。本命令为初级对象成员命令。

※取回客户

调用格式： 〈文本型〉 对象．取回客户 （）

英文名称：GetClient

当接收到“客户进入”或者“客户离开”事件时，在该事件的处理子程序中可调用本方法取回对应的客户地址（IP地址 + 端口）。本命令为初级对象成员命令。

※发送数据

调用格式： 〈逻辑型〉 对象．发送数据 （接收客户，欲发送数据，［最长等待时间］）

英文名称：send

向指定已经连接进来的客户发送数据。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“接收客户”，类型为“文本型（text）”。为调用“取回客户”方法所返回的客户地址文本。

参数<2>的名称为“欲发送数据”，类型为“通用型（all）”。欲发送数据必须是系统基本数据类型。

参数<3>的名称为“最长等待时间”，类型为“整数型（int）”，可以被省略。指定等待发送成功的最长时间，单位为秒。如果省略本参数，默认为无限等待。

※断开客户

调用格式： 〈无返回值〉 对象．断开客户 （欲断开客户）

英文名称：CloseClient

断开与指定客户之间的连接。本命令为初级对象成员命令。

参数<1>的名称为“欲断开客户”，类型为“文本型（text）”。为调用“取回客户”方法所返回的客户地址文本。

自有事件：

数据到达

客户进入

客户离开

单元事件列表：

事件 1 ：

事件名称：数据到达

当有数据到达后，会产生本事件。在本事件的处理子程序中调用“取回数据”方法即可取回本次所收到的数据。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：客户进入

当有新客户连接入本服务器组件后，会产生本事件。在本事件的处理子程序中调用“取回客户”方法即可取回此新客户的地址（IP地址 + 端口）。

此事件的用户处理子程序不需要返回数据。

事件 3 ：

事件名称：客户离开

当有已连接客户断开与本服务器组件的连接后，会产生本事件。在本事件的处理子程序中调用“取回客户”方法即可取回此客户的地址（IP地址 + 端口）。

此事件的用户处理子程序不需要返回数据。

端口 功能型窗口单元

数据类型名称：端口 英文名称：SerialPort

本数据类型为功能窗口单元型，共包含 4 个成员命令， 20 个成员属性， 2 个单元事件。

端口组件提供对端口的直接读写操作。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
端口号 | 波特率 | 数据位数 | 停止位数
奇偶校验 | 事件字符 | 等待时间 | 自动启动
奇偶校验方案 | 流控制方案 | Rts流控制 | Dtr流控制

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“端口号”，英文名称为“port”，类型为“整数型（int）”。

端口号从 1 到 16 ，代表 COM1 到 COM16 端口。

成员属性<10>的中文名称为“波特率”，英文名称为“band”，类型为“整数型（int）”。

指定通信端口所使用的波特率，比较常用的波特率有：110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200, 128000, 256000。

成员属性<11>的中文名称为“数据位数”，英文名称为“databits”，类型为“整数型（int）”。

成员属性<12>的中文名称为“停止位数”，英文名称为“stopbits”，类型为“整数型（int）”。

可以为以下值之一：1: 1位; 2: 1.5位; 3: 2位。

成员属性<13>的中文名称为“奇偶校验”，英文名称为“parity”，类型为“逻辑型（bool）”。

指定通信时对数据是否进行奇偶校验。

成员属性<14>的中文名称为“事件字符”，英文名称为“EventChar”，类型为“文本型（text）”。

指定用作触发事件的字符。只使用文本的首字符，为空表示不支持事件字符。

成员属性<15>的中文名称为“等待时间”，英文名称为“WaitTimeout”，类型为“整数型（int）”。

指定在进行端口读写操作时最长等待时间。单位毫秒。

成员属性<16>的中文名称为“自动启动”，英文名称为“AutoStart”，类型为“逻辑型（bool）”。

在对端口进行操作之前必须首先启动，本属性指定当组件被载入时是否自动启动。

成员属性<17>的中文名称为“奇偶校验方案”，英文名称为“ParityScheme”，类型为“整数型（int）”。

指定通信时所使用的具体奇偶校验位方案。

可供选择的属性值：

0. 无 1. 奇校验 2. 偶校验 3. 标志校验 4. 空白校验

成员属性<18>的中文名称为“流控制方案”，英文名称为“FlowCtrl”，类型为“整数型（int）”。

指定通信时所使用的流控制方案。

可供选择的属性值：

0. 无 1. CtsRts 2. CtsDtr 3. DsrRts

4. DsrDtr 5. XonXoff

成员属性<19>的中文名称为“Rts流控制”，英文名称为“RtsFlowCtrl”，类型为“整数型（int）”。

指定通信时是否启用Rts流控制。

可供选择的属性值：

0. 默认 1. 禁止 2. 启用

成员属性<20>的中文名称为“Dtr流控制”，英文名称为“DtrFlowCtrl”，类型为“整数型（int）”。

指定通信时是否启用Dtr流控制。

可供选择的属性值：

0. 默认 1. 禁止 2. 启用

成员命令：

启动

停止

发送数据

信号操作

※启动

调用格式： 〈逻辑型〉 对象．启动 （）

英文名称：start

启动或重新启动对指定端口的操作。在对端口进行操作之前必须首先启动，如在端口启动后又更改了端口属性必须重新启动。成功返回真，失败返回假。本命令为初级对象成员命令。

※停止

调用格式： 〈无返回值〉 对象．停止 （）

英文名称：stop

关闭已经启动的指定端口。本命令为初级对象成员命令。

※发送数据

调用格式： 〈逻辑型〉 对象．发送数据 （欲发送数据）

英文名称：send

从端口发送指定的数据。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“欲发送数据”，类型为“通用型（all）”。欲发送数据必须是系统基本数据类型。

※信号操作

调用格式： 〈逻辑型〉 对象．信号操作 （操作类型，欲操作信号类型）

英文名称：Signal

本命令可以设置或清除通讯端口上指定信号的状态。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“操作类型”，类型为“整数型（int）”。本参数可以为以下常量值之一： 1: #清除信号； 2: #发送或置位。

参数<2>的名称为“欲操作信号类型”，类型为“整数型（int）”。本参数可以为以下常量值之一： 1: #DTR信号； 2: #RTS信号； 3: #Break信号。

自有事件：

收到信号

数据到达

单元事件列表：

事件 1 ：

事件名称：收到信号

当通信端口的信号状态发生改变时，会产生本事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“信号类型”，类型为“整数型（int）”。指示具体检测到信号状态的类型，为以下值之一： 1：BREAK 信号； 2：CTS 上升沿信号； 3：DSR 上升沿信号； 4：ERR 信号； 5：RING 信号； 6：RLSD 上升沿信号； 7：事件字符到达； 8：CTS 下降沿信号； 9：DSR 下降沿信号； 10：RLSD 下降沿信号。

事件 2 ：

事件名称：数据到达

每当通信端口接收到一个数据字节，就会产生本事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“数据字节值”，类型为“整数型（int）”。指示所接收到的数据字节值。

通用提供者 功能型窗口单元

数据类型名称：通用提供者 英文名称：NProvider

本数据类型为功能窗口单元型，共包含 10 个成员属性。

通用提供者用作为数据源提供对数据的通常存取操作。使用内存作为数据的存储仓库，全面支持所有数据操作接口。因此必要时可以将其它类型数据提供者内的数据转移到此类型中，以全面发挥数据源对数据的操纵能力。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
初始行数 | 初始列数 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“初始行数”，英文名称为“Lines”，类型为“整数型（int）”。

成员属性<10>的中文名称为“初始列数”，英文名称为“Cols”，类型为“整数型（int）”。

数据库提供者 功能型窗口单元

数据类型名称：数据库提供者 英文名称：DBProvider

本数据类型为功能窗口单元型，共包含 11 个成员属性。

数据库提供者用作为数据源提供对数据库的存取操作。它使用数据库作为数据的存储仓库，不支持以下数据操作接口：

1、置行高； 2、置类型； 3、置文本色； 4、置背景色； 5、置字体名； 6、置字体尺寸； 7、置字体属性； 8、置边距； 9、置文本输入格式； 10、置对齐方式； 11、置密码方式； 12、合并； 13、分解； 14、加线条； 15、删线条； 16、初始尺寸时同时改变列数； 17、在中间插入行； 18、插入列； 19、删除列。

如果想对数据进行以上操作，应该先将数据通过数据源导出到通用提供者中。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
数据库文件名 | 字节集字段处理 | 数据库密码 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“数据库文件名”，英文名称为“dbfile”，类型为“文本型（text）”。

成员属性<10>的中文名称为“字节集字段处理”，英文名称为“BinMode”，类型为“整数型（int）”。

本属性指定对字节集类型字段的处理方式。

可供选择的属性值：

0. 跳过

1. 视为图片数据

2. 视为字节集数据

成员属性<11>的中文名称为“数据库密码”，英文名称为“Password”，类型为“文本型（text）”。

本属性提供访问数据库时所需要的密码。

图形按钮 窗口单元 （含有基本事件）

数据类型名称：图形按钮 英文名称：PicBtn

本数据类型为窗口单元型，不能接受输入焦点，共包含 15 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
类型 | 选中 | 正常图片 | 点燃图片
按下图片 | 禁止图片 | 透明颜色 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“类型”，英文名称为“type”，类型为“整数型（int）”。

可供选择的属性值：

0. 按钮 1. 选择框

成员属性<10>的中文名称为“选中”，英文名称为“Checked”，类型为“逻辑型（bool）”。

当类型为选择框时，本属性为当前选中状态。

成员属性<11>的中文名称为“正常图片”，英文名称为“npic”，类型为“字节集（bin）”。

本属性指定在正常情况下所显示图片(不支持ICO或CUR图片数据)。

成员属性<12>的中文名称为“点燃图片”，英文名称为“apic”，类型为“字节集（bin）”。

当类型为按钮时，本属性指定当鼠标移动到按钮上时所显示图片(不支持ICO或CUR图片数据)。

成员属性<13>的中文名称为“按下图片”，英文名称为“ppic”，类型为“字节集（bin）”。

本属性指定当选择框被选中或者按钮被按下后所显示图片(不支持ICO或CUR图片数据)。

成员属性<14>的中文名称为“禁止图片”，英文名称为“dpic”，类型为“字节集（bin）”。

本属性指定当按钮被禁止后所显示图片(不支持ICO或CUR图片数据)。

成员属性<15>的中文名称为“透明颜色”，英文名称为“tclr”，类型为“整数型（int）”。

指定所有图片中透明部分的颜色。如果为“#默认底色”，则表示无透明色。

自有事件：

被单击

单元事件列表：

事件 1 ：

事件名称：被单击

当单击按钮后即产生此事件。

此事件的用户处理子程序不需要返回数据。

外部数据库 功能型窗口单元

数据类型名称：外部数据库 英文名称：ODBCDB

本数据类型为功能窗口单元型，共包含 17 个成员命令。

本组件提供通过ODBC对外部数据库直接操作的方法。

成员命令：

打开 | 关闭 | 取连接文本 | 启动事务
回滚事务 | 提交事务 | 查询 | 重新查询
关闭记录集 | 首记录前 | 尾记录后 | 到首记录
到尾记录 | 到前一记录 | 到后一记录 | 读
执行 |  |  |

※打开

调用格式： 〈逻辑型〉 对象．打开 （［ODBC数据源连接文本］，［是否只读］）

英文名称：open

打开指定的ODBC数据源以供以后操作。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“ODBC数据源连接文本”，类型为“文本型（text）”，可以被省略。指定指向ODBC数据源的连接文本，如果为空，则激活ODBC数据源选择对话框。如果参数被省略，默认值为空。

参数<2>的名称为“是否只读”，类型为“逻辑型（bool）”，可以被省略。指定是否以只读方式打开。如果参数被省略，默认值为假。

※关闭

调用格式： 〈无返回值〉 对象．关闭 （）

英文名称：close

关闭当前被打开的数据库。本命令为初级对象成员命令。

※取连接文本

调用格式： 〈文本型〉 对象．取连接文本 （）

英文名称：GetConnect

返回当前被打开数据库的ODBC数据源连接文本。失败返回空文本。本命令为初级对象成员命令。

※启动事务

调用格式： 〈逻辑型〉 对象．启动事务 （）

英文名称：BeginTrans

启动当前被打开数据库的事务，成功返回真，失败返回假。本命令为初级对象成员命令。

※回滚事务

调用格式： 〈无返回值〉 对象．回滚事务 （）

英文名称：RollbackTrans

回滚当前被打开数据库的事务，所有在上一次事务提交前对数据库所作的修改均被取消。本命令为初级对象成员命令。

※提交事务

调用格式： 〈无返回值〉 对象．提交事务 （）

英文名称：CommitTrans

提交当前被打开数据库的事务。本命令为初级对象成员命令。

※查询

调用格式： 〈整数型〉 对象．查询 （查询类SQL语句）

英文名称：query

对当前被打开数据库进行数据查询，返回结果记录集句柄。注意当不再使用此记录集时，必须使用“关闭记录集”将其关闭，如果失败，返回0。本命令为初级对象成员命令。

参数<1>的名称为“查询类SQL语句”，类型为“文本型（text）”。本参数提供用作查询的SELECT语句。

※重新查询

调用格式： 〈逻辑型〉 对象．重新查询 （记录集句柄）

英文名称：Requery

对指定的记录集进行重新查询，并将其当前记录指针重定位到首记录。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

※关闭记录集

调用格式： 〈无返回值〉 对象．关闭记录集 （［记录集句柄］）

英文名称：CloseRecordset

关闭指定的记录集。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”，可以被省略。指定欲关闭记录集的句柄，记录集句柄由“查询”命令返回。如果参数值为0，则关闭所有记录集。如果参数被省略，默认值为0。

※首记录前

调用格式： 〈逻辑型〉 对象．首记录前 （记录集句柄）

英文名称：bof

如果指定记录集的当前记录指针已在首记录的前面，返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

※尾记录后

调用格式： 〈逻辑型〉 对象．尾记录后 （记录集句柄）

英文名称：eof

如果指定记录集的当前记录指针已在尾记录的后面，返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

※到首记录

调用格式： 〈无返回值〉 对象．到首记录 （记录集句柄）

英文名称：GoTop

将指定记录集的当前记录指针移动到第一条记录上。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

※到尾记录

调用格式： 〈无返回值〉 对象．到尾记录 （记录集句柄）

英文名称：GoBottom

将指定记录集的当前记录指针移动到最后一条记录上。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

※到前一记录

调用格式： 〈无返回值〉 对象．到前一记录 （记录集句柄）

英文名称：GoPrev

将指定记录集的当前记录指针向前移动一条记录。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

※到后一记录

调用格式： 〈无返回值〉 对象．到后一记录 （记录集句柄）

英文名称：GoNext

将指定记录集的当前记录指针向后移动一条记录。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

※读

调用格式： 〈通用型〉 对象．读 （记录集句柄，字段名称或位置）

英文名称：r

返回指定记录集的当前记录处指定字段的数据内容，所返回数据的类型与字段SQL类型对照表如下：

返回数据类型 字段SQL类型

-------------------------------------------------

逻辑型 BIT

字节型 TINYINT

短整数型 SMALLINT

整数型 INTEGER

单精度型 REAL

双精度型 FLOAT、DOUBLE

日期时间型 DATE、TIME、TIMESTAMP

文本型 NUMERIC、DECIMAL、BIGINT、CHAR、VARCHAR、LONGVARCHAR

字节集型 BINARY、VARBINARY、LONGVARBINARY

如果因为找不到指定字段而导致读入失败将返回空文本，如果因为其他原因而读入失败将返回对应该字段类型的空数据，即：逻辑型返回假，日期时间型返回100年1月1日，文本型返回空文本，字节集型返回空字节集，其它所有数值型返回0。

另外，由于ODBC的支持特性，如果不移动记录指针，只能对当前记录上各字段的内容读入一次。因此，如果需要持续使用所读出的数据，请使用容器将其保存。

注：写入字段数据请用“UPDATE”SQL语句实现。本命令为初级对象成员命令。

参数<1>的名称为“记录集句柄”，类型为“整数型（int）”。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

参数<2>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※执行

调用格式： 〈逻辑型〉 对象．执行 （非查询类SQL语句，［文本或字节集］，… ）

英文名称：ExecuteSql

执行指定的非查询类SQL语句，SQL语句中的列名（尤其是中文列名）可用中括号括住。如果SQL语句中涉及到备注或者字节集型字段，请在相应位置加上问号，然后再加上对应的文本型或字节集型数据参数，参数数目必须与问号的数目一致。例如，修改数据表student中编号为100的学生像片的语句为： 外部数据库1.执行 (“update student set picture = ? where no = 100”, 像片数据)。 成功返回真，失败返回假。本命令为初级对象成员命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“非查询类SQL语句”，类型为“文本型（text）”。本参数提供非查询类SQL语句（无结果集返回），如修改、删除、添加等等。

参数<2>的名称为“文本或字节集”，类型为“通用型（all）”，可以被省略。本参数仅用作为SQL语句中的备注或字节集型SQL参数（用问号标识其位置）提供相应数据，必须为文本或者字节集型（与SQL参数类型对应）。如果SQL语句中没有包含SQL参数，则应该省略本参数。

外部数据提供者 功能型窗口单元

数据类型名称：外部数据提供者 英文名称：ODBCProvider

本数据类型为功能窗口单元型，共包含 10 个成员属性。

外部数据提供者用作为数据源提供对外部ODBC数据库的存取操作。它使用外部数据库作为数据的存储仓库，不支持备注和长字节集类型字段，不支持以下数据操作接口：

1、置行高； 2、置类型； 3、置文本色； 4、置背景色； 5、置字体名； 6、置字体尺寸； 7、置字体属性； 8、置边距； 9、置文本输入格式； 10、置对齐方式； 11、置密码方式； 12、合并； 13、分解； 14、加线条； 15、删线条； 16、初始尺寸时同时改变列数； 17、在中间插入行； 18、插入列； 19、删除列。

如果想对数据进行以上操作，应该先将数据通过数据源导出到通用提供者中。

另外，在支持数据源的“插入行”接口时，将直接插入空白行数据，所以如果目的数据表在某字段上建立了主键索引、强制不为空等类似列约束条件时，将导致插入失败。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
连接文本 | 查询SQL |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“连接文本”，英文名称为“connect”，类型为“文本型（text）”。

本属性指定用作打开数据库的ODBC连接文本。

成员属性<10>的中文名称为“查询SQL”，英文名称为“sql”，类型为“文本型（text）”。

本属性用作指定数据库中的数据表名或者用作查询记录集的SELECT类SQL语句。

其它数据类型：

菜单

字体

字段信息

打印设置信息

菜单 数据类型

数据类型名称：菜单 英文名称：menu

本数据类型为普通类型，共包含 4 个成员属性， 1 个单元事件。

用作指定某一个菜单项目。

属性：

标题

选中

禁止

可视

成员属性<1>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

成员属性<2>的中文名称为“选中”，英文名称为“Picked”，类型为“逻辑型（bool）”。

成员属性<3>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<4>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

自有事件：

单元事件列表：被选择

事件名称：被选择

当菜单项被用户选择后即产生此事件。

此事件的用户处理子程序不需要返回数据。

字体 数据类型

数据类型名称：字体 英文名称：font

本数据类型为普通类型，共包含 7 个成员容器。

成员<1>的中文名称为“角度”，英文名称为“orient”，类型为“整数型（int）”。

以 1 / 10 度为单位。

成员<2>的中文名称为“加粗”，英文名称为“FontBold”，类型为“逻辑型（bool）”。

成员<3>的中文名称为“倾斜”，英文名称为“FontItalic”，类型为“逻辑型（bool）”。

成员<4>的中文名称为“删除线”，英文名称为“StrikeOut”，类型为“逻辑型（bool）”。

成员<5>的中文名称为“下划线”，英文名称为“UnderLine”，类型为“逻辑型（bool）”。

成员<6>的中文名称为“字体大小”，英文名称为“FontSize”，类型为“整数型（int）”，初始值为“9”。

单位为点（1 / 72 英寸）。

成员<7>的中文名称为“字体名称”，英文名称为“FontName”，类型为“文本型（text）”，初始值为“宋体”。

字段信息 数据类型

数据类型名称：字段信息 英文名称：FieldInf

本数据类型为普通类型，共包含 3 个成员容器。

成员<1>的中文名称为“名称”，英文名称为“name”，类型为“文本型（text）”。

名称文本的长度必须在 16 个字符以内。

成员<2>的中文名称为“类型”，英文名称为“type”，类型为“整数型（int）”。

可以为以下常量值之一： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 10、#文本型； 11、#字节集型； 12、#备注型。

成员<3>的中文名称为“最大文本长度”，英文名称为“MaxTextLen”，类型为“整数型（int）”，初始值为“20”。

本成员仅当字段类型为“文本型”时才有效，用作指定文本的最大可能长度，其值范围必须在 1 到 512 之间。如果字段类型不为“文本型”，本成员将被忽略。

打印设置信息 数据类型

数据类型名称：打印设置信息 英文名称：PrintInf

本数据类型为普通类型，共包含 19 个成员容器。

成员<1>的中文名称为“纸张类型”，英文名称为“Paper”，类型为“整数型（int）”，初始值为“0”。

本成员设置打印纸类型，可以为以下常量值之一： 0、#默认纸； 1、#A3纸(297x420毫米)； 2、#A4纸(210x297毫米)； 3、#A5纸(148x210毫米)； 4、#B4纸(250x354毫米)； 5、#B5纸(182x257毫米)； 6、#四开(215x275毫米)； 7、#十六开(146x215毫米)； 8、#三十二开(97x151毫米)； 9、#信纸(216x279毫米)； 10、#法律用纸(216x355毫米)； 11、#行政用纸(184x266毫米)； 12、#声明(140x216毫米)； 13、#小报(279x432毫米)； 14、#笔记(216x279毫米)； 15、#帐本(432x279毫米)； 16、#对开纸(216x330毫米)。 注意如果所选择纸张得不到打印机的支持，打印机将会自动选择最接近的纸张。

成员<2>的中文名称为“纸张方向”，英文名称为“Orient”，类型为“整数型（int）”，初始值为“0”。

本成员设置打印纸的放置方向，可以为以下常量值之一： 0、#纵向； 1、#横向。

成员<3>的中文名称为“左边距”，英文名称为“LeftMargin”，类型为“整数型（int）”，初始值为“230”。

本成员设置正文打印区到打印纸左边缘的距离，单位为0.1毫米。

成员<4>的中文名称为“上边距”，英文名称为“TopMargin”，类型为“整数型（int）”，初始值为“230”。

本成员设置正文打印区到打印纸上边缘的距离，单位为0.1毫米。

成员<5>的中文名称为“右边距”，英文名称为“RightMargin”，类型为“整数型（int）”，初始值为“230”。

本成员设置正文打印区到打印纸右边缘的距离，单位为0.1毫米。

成员<6>的中文名称为“下边距”，英文名称为“BottomMargin”，类型为“整数型（int）”，初始值为“230”。

本成员设置正文打印区到打印纸下边缘的距离，单位为0.1毫米。


超文本浏览框1

超文本浏览框1.1版 (有基本事件)

本支持库实现了对超文本浏览框窗口单元的支持。

本库为一般支持库，需要易系统3.0版本的支持，需要系统核心支持库3.0版本的支持，提供了1种库定义数据类型，提供了5种命令，提供了10个库定义常量。

超文本浏览框

数据类型名称：超文本浏览框 英文名称：HtmlViewer

本数据类型为窗口单元型，共包含 5 个成员命令， 14 个成员属性， 10 个单元事件。

提供对HTML页面的浏览支持。

成员属性

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
字体大小 | 离线浏览 | 静默 | 地址
状态条文本 | 标题 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“字体大小”，英文名称为“FontSize”，类型为“整数型（int）”。指定浏览页面时所使用的字体尺寸。

可供选择的属性值：

0. 最小 1. 较小 2. 中等

3. 较大 4. 最大

成员属性<10>的中文名称为“离线浏览”，英文名称为“Offline”，类型为“逻辑型（bool）”。指定浏览器是否从缓存里面读取超文本页面数据。

成员属性<11>的中文名称为“静默”，英文名称为“Silent”，类型为“逻辑型（bool）”。本属性如果为真，则浏览过程中不允许浏览器显示自己的对话框。

成员属性<12>的中文名称为“地址”，英文名称为“url”，类型为“文本型（text）”。指定欲显示的网络或本机超文本页面地址。

成员属性<13>的中文名称为“状态条文本”，英文名称为“StatusText”，类型为“文本型（text）”。

本属性只可读。用作在运行时提供浏览器的当前状态条文本。

成员属性<14>的中文名称为“标题”，英文名称为“Caption”，类型为“文本型（text）”。本属性只可读。

用作在运行时提供浏览器的当前标题文本。

单元自有事件列表：

即将跳转 | 跳转完毕 | 载入开始 | 载入进度改变
载入完毕 | 已就绪 | 状态文本被改变 | 标题被改变
命令状态被改变 | 即将打开新窗口 |  |

事件 1 ：

事件名称：即将跳转

在浏览器即将跳转到另一个页面之前产生此事件，在事件处理子程序中读取“地址”属性即可得知即将跳转到的地址，返回假不允许跳转，返回真或不返回值允许跳转。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件 2 ：

事件名称：跳转完毕

当浏览器已跳转到另一个页面之后产生此事件，在事件处理子程序中读取“地址”属性即可得知已跳转到的地址。

此事件的用户处理子程序不需要返回数据。

事件 3 ：

事件名称：载入开始

本事件在“即将跳转”事件之后触发，表示浏览器已开始载入将要显示的文档。

此事件的用户处理子程序不需要返回数据。

事件 4 ：

事件名称：载入进度改变

在浏览器载入文档的过程中，每当文档被载入一部分即触发本事件，用作通知载入进度。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“进度百分比”，类型为“整数型（int）”。参数值指示当前文档已经被载入的百分比。

事件 5 ：

事件名称：载入完毕

当将要显示在浏览器内的文档被载入完毕后触发本事件。

此事件的用户处理子程序不需要返回数据。

事件 6 ：

事件名称：已就绪

当浏览器已经将所需显示的文档处理完毕后发送本事件，在事件处理子程序中读取“地址”属性即可得知已就绪文档的地址。

此事件的用户处理子程序不需要返回数据。

事件 7 ：

事件名称：状态文本被改变

当浏览器的状态条文本被改变后发送本事件，在事件处理子程序中读取“状态条文本”属性即可得知其内容。

此事件的用户处理子程序不需要返回数据。

事件 8 ：

事件名称：标题被改变

当浏览器的标题文本被改变后发送本事件，在事件处理子程序中读取“标题”属性即可得知其内容。

此事件的用户处理子程序不需要返回数据。

事件 9 ：

事件名称：命令状态被改变

当“前进”、“后退”等命令的允许状态被改变后发送此事件，用户程序应该根据状态值允许或禁止对应的按钮或菜单项。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“命令”，类型为“整数型（int）”。参数值指示允许状态被改变的命令类型，为以下常量值之一：0: #前进； 1: #后退。

事件参数<2>的名称为“是否被允许”，类型为“逻辑型（bool）”。参数值指示该命令当前是否被允许。

事件 10 ：

事件名称：即将打开新窗口

在浏览器即将打开新窗口浏览另一个页面之前产生此事件，事件处理子程序返回假不允许打开，返回真或不返回值允许打开。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

成员命令:

执行命令 | 跳转 | 取文档类型 | 是否正在下载
是否就绪 |  |  |

※执行命令

调用格式： 〈无返回值〉 对象．执行命令 （欲执行的命令）

英文名称：Execute

执行指定的浏览器命令。本命令为初级对象成员命令。

参数<1>的名称为“欲执行的命令”，类型为“整数型（int）”。指定欲执行命令的类型，为以下常量值之一： 0: #前进； 1: #后退； 2: #到首页； 3: #到搜索页； 4: #刷新； 5: #停止； 6: #另存为； 7: #打印； 8: #打印预览； 9: #页面设置。

※跳转

调用格式： 〈无返回值〉 对象．跳转 （欲打开文档地址，［CHM文件名称］，［目标窗口名称］）

英文名称：Navigate

打开互联网或者本机上指定位置处的文档。本命令为初级对象成员命令。

参数<1>的名称为“欲打开文档地址”，类型为“文本型（text）”。指定文档位于互联网或本机上的地址。

参数<2>的名称为“CHM文件名称”，类型为“文本型（text）”，可以被省略。如果欲打开文档处于 .CHM 文件内，本参数提供该 CHM 文件的名称。如果本参数被省略，默认值为空文本。

参数<3>的名称为“目标窗口名称”，类型为“文本型（text）”，可以被省略。指定文档是否在单独窗口中打开，相同的名称指定相同的窗口。如果欲在浏览框内部打开，提供空文本参数值即可。如果本参数被省略，默认值为空文本。

※取文档类型

调用格式： 〈文本型〉 对象．取文档类型 （）

英文名称：GetType

返回超文本浏览框中现行文档的类型文本。本命令为初级对象成员命令。

※是否正在下载

调用格式： 〈逻辑型〉 对象．是否正在下载 （）

英文名称：GetBusy

如果当前正在下载文档或执行页面跳转，返回真，否则返回假。本命令为初级对象成员命令。

※是否就绪

调用格式： 〈逻辑型〉 对象．是否就绪 （）

英文名称：IsReady

如果浏览框当前已经准备就绪，返回真，否则返回假。本命令为初级对象成员命令。

常量表

名称 | 类型 | 值
#前进 | 数值型 | 0
#后退 | 数值型 | 1
#到首页 | 数值型 | 2
#到搜索页 | 数值型 | 3
#刷新 | 数值型 | 4
#停止 | 数值型 | 5
#另存为 | 数值型 | 6
#打印 | 数值型 | 7
#打印预览 | 数值型 | 8
#页面设置 | 数值型 | 9

窗口单元数据类型

扩展界面支持库一1.1版 (有基本事件)

本支持库用作实现对扩展界面元素的支持，需要 Internet Explorer 4.0 或以上版本的支持。

本库为一般支持库，需要易系统3.0版本的支持，需要系统核心支持库3.0版本的支持，提供了5种库定义数据类型，提供了86种命令，提供了16个库定义常量。

树型框 | 状态条 | 工具条 | 超级列表框
透明标签 |  |  |

树型框 窗口单元

数据类型名称：树型框 英文名称：TreeBox

本数据类型为窗口单元型，共包含 22 个成员命令， 22 个成员属性， 6 个单元事件。

成员属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 文本颜色 | 背景颜色 | 显示加减框
显示连线 | 显示根部线 | 允许编辑 | 始终显示选择项
现行选中项 | 行高 | 字体 | 图片组
项目 | 结束编辑文本 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<10>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<11>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<12>的中文名称为“显示加减框”，英文名称为“button”，类型为“逻辑型（bool）”。

本属性指定是否显示加减框。

成员属性<13>的中文名称为“显示连线”，英文名称为“line”，类型为“逻辑型（bool）”。

本属性指定是否显示连接线。

成员属性<14>的中文名称为“显示根部线”，英文名称为“RootLine”，类型为“逻辑型（bool）”。

本属性指定是否从根部显示连接线。

成员属性<15>的中文名称为“允许编辑”，英文名称为“Editable”，类型为“逻辑型（bool）”。

本属性指定是否允许编辑标签内容。

成员属性<16>的中文名称为“始终显示选择项”，英文名称为“ShowSelAlways”，类型为“逻辑型（bool）”。

本属性指定是否始终显示当前被选择项目，即使树型框失去焦点。

成员属性<17>的中文名称为“现行选中项”，英文名称为“CurSel”，类型为“整数型（int）”。

本属性指定树型框中现行被选中项目的位置，位置值从 0 开始， -1 表示现行没有被选中的项目。

成员属性<18>的中文名称为“行高”，英文名称为“ItemHeight”，类型为“整数型（int）”。

本属性指定树型框中项目行的显示高度，单位为像素， -1 表示使用系统默认值。

成员属性<19>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<20>的中文名称为“图片组”，英文名称为“ImageList”，类型为“字节集（bin）”。

为树型框提供标志图片。

成员属性<21>的中文名称为“项目”，类型为“字节集（bin）”。

本属性指定各树型框项目。

成员属性<22>的中文名称为“结束编辑文本”，类型为“文本型（text）”。

本属性只可读。

本属性仅在运行时有效，用作为“结束编辑”事件的处理子程序提供标题被编辑后的内容。

成员命令

取项目数 | 取缩进层次 | 取项目文本 | 取图片
取选中图片 | 取项目数值 | 置项目文本 | 置图片
置选中图片 | 置项目数值 | 加粗 | 取消加粗
扩展 | 收缩 | 保证显示 | 进入编辑
加入项目 | 删除项目 | 清空 | 取父项目
是否有子项目 | 是否已扩展 |  |

※取项目数

调用格式： 〈整数型〉 对象．取项目数 （）

英文名称：GetCount

返回树型框中所有项目的数目。本命令为初级对象成员命令。

※取缩进层次

调用格式： 〈整数型〉 对象．取缩进层次 （项目索引）

英文名称：GetIndent

返回指定项目所处缩进层次，层次值从1开始。如果未找到指定项目，返回 0 。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※取项目文本

调用格式： 〈文本型〉 对象．取项目文本 （项目索引）

英文名称：GetText

返回指定项目的文本。如果该项目不存在，将返回空文本。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※取图片

调用格式： 〈整数型〉 对象．取图片 （项目索引）

英文名称：GetImage

返回指定项目的图片索引。如果该项目不存在，将返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※取选中图片

调用格式： 〈整数型〉 对象．取选中图片 （项目索引）

英文名称：GetSelImage

返回指定项目被选中后的图片索引。如果该项目不存在，将返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※取项目数值

调用格式： 〈整数型〉 对象．取项目数值 （项目索引）

英文名称：GetData

返回与指定项目相关联的数值。如果该项目不存在，将返回 0 。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※置项目文本

调用格式： 〈逻辑型〉 对象．置项目文本 （项目索引，欲置入的项目文本）

英文名称：SetText

设置指定项目的文本。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目文本”，类型为“文本型（text）”。

※置图片

调用格式： 〈逻辑型〉 对象．置图片 （项目索引，图片索引）

英文名称：SetImage

设置在指定项目首部所显示图片的索引。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“图片索引”，类型为“整数型（int）”。图片索引用于指定图片组属性中的某张图片，从 0 开始。

※置选中图片

调用格式： 〈逻辑型〉 对象．置选中图片 （项目索引，图片索引）

英文名称：SetSelImage

设置指定项目被选中后所显示图片的索引。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“图片索引”，类型为“整数型（int）”。图片索引用于指定图片组属性中的某张图片，从 0 开始。

※置项目数值

调用格式： 〈逻辑型〉 对象．置项目数值 （项目索引，［欲置入的项目数值］）

英文名称：SetData

设置与指定项目相关联的数值。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

参数<2>的名称为“欲置入的项目数值”，类型为“整数型（int）”，可以被省略。该数值与指定项目相关联。如果本参数被省略，默认值为 0 。

※加粗

调用格式： 〈无返回值〉 对象．加粗 （项目索引）

英文名称：Bold

将指定项目的标题加粗显示。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※取消加粗

调用格式： 〈无返回值〉 对象．取消加粗 （项目索引）

英文名称：Normal

将指定项目的标题取消加粗显示。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※扩展

调用格式： 〈无返回值〉 对象．扩展 （项目索引）

英文名称：Expand

打开指定项目的下属分枝。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※收缩

调用格式： 〈无返回值〉 对象．收缩 （项目索引）

英文名称：Collapse

缩回指定项目的下属分枝。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※保证显示

调用格式： 〈无返回值〉 对象．保证显示 （项目索引）

英文名称：EnsureVisible

确保指定项目能够显示出来，如果不能显示，则自动滚动并显示该项目。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※进入编辑

调用格式： 〈无返回值〉 对象．进入编辑 （项目索引）

英文名称：Edit

让指定项目进入编辑状态，执行本命令成功的前提是“允许编辑”属性为真。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※加入项目

调用格式： 〈整数型〉 对象．加入项目 （［父项目索引］，项目文本，［图片索引］，［选中图片索引］，［项目数值］）

英文名称：Add

将指定项目加入到树型框中，成功返回加入后该项目所处的位置，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“父项目索引”，类型为“整数型（int）”，可以被省略。指定欲加入项目所处的父项目，0 为项目一，1 为项目二，如此类推。如果没有父项目（即欲加入项目为顶层项目），请提供值 -1 。如果本参数被省略，默认值为 -1 。

参数<2>的名称为“项目文本”，类型为“文本型（text）”。

参数<3>的名称为“图片索引”，类型为“整数型（int）”，可以被省略。图片索引用于指定图片组属性中的某张图片，从 0 开始。如果本参数被省略，默认值为 0 。

参数<4>的名称为“选中图片索引”，类型为“整数型（int）”，可以被省略。选中图片索引用于指定项目被选中后所显示的图片，-1 表示与图片索引一致。如果本参数被省略，默认值为 -1 。

参数<5>的名称为“项目数值”，类型为“整数型（int）”，可以被省略。指定与本项目相关联的数值。如果本参数被省略，默认值为 0 。

※删除项目

调用格式： 〈逻辑型〉 对象．删除项目 （项目索引）

英文名称：Delete

删除树型框中的指定项目。成功返回真，失败返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※清空

调用格式： 〈无返回值〉 对象．清空 （）

英文名称：Clear

删除树型框中的所有项目。本命令为初级对象成员命令。

※取父项目

调用格式： 〈整数型〉 对象．取父项目 （项目索引）

英文名称：GetParent

返回指定项目的父项目索引。如果该项目为顶层项目，将返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※是否有子项目

调用格式： 〈逻辑型〉 对象．是否有子项目 （项目索引）

英文名称：IsHasChild

如果指定项目存在子项目，返回真，否则返回假。如果本命令返回真，意味着指定项目的下一项即为此项目的第一个子项目。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

※是否已扩展

调用格式： 〈逻辑型〉 对象．是否已扩展 （项目索引）

英文名称：IsExpanded

如果树型框中的指定项目具有子项目并已扩展显示，返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“项目索引”，类型为“整数型（int）”。0 为项目一，1 为项目二，如此类推。

自有事件：

项目被选择 | 双击项目 | 开始编辑 | 结束编辑
即将扩展 | 即将收缩 |  |

事件 1 ：

事件名称：项目被选择

如果当前选择项目被改变即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“选择方式”，类型为“整数型（int）”。指示是如何操作导致当前选择项目被改变的： 0：键盘； 1：鼠标； 2：未知。

事件 2 ：

事件名称：双击项目

当使用鼠标左键在某项目上双击时产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 3 ：

事件名称：开始编辑

当项目进入标题编辑状态前产生此事件，要产生本事件“允许编辑”属性必须为真。事件处理子程序返回假则不允许进入编辑状态，返回真或不返回值允许进入。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件参数<1>的名称为“项目索引”，类型为“整数型（int）”。指示即将进入或结束编辑状态的项目的索引，从 0 开始。

事件 4 ：

事件名称：结束编辑

当项目结束标题编辑状态前产生此事件，要产生本事件“允许编辑”属性必须为真。在事件处理子程序中读取“结束编辑文本”属性可以得知标题被编辑后的内容，事件处理子程序返回假不允许使用编辑后的内容替换原有标题，返回真或不返回值则允许替换。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件参数<1>的名称为“项目索引”，类型为“整数型（int）”。指示即将进入或结束编辑状态的项目的索引，从 0 开始。

事件 5 ：

事件名称：即将扩展

当某项目即将被扩展以显示出下属子项目时产生本事件，返回真或不返回值允许扩展，否则将中止扩展。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件参数<1>的名称为“项目索引”，类型为“整数型（int）”。指示即将扩展或收缩显示下属子项目的项目索引，从 0 开始。

事件 6 ：

事件名称：即将收缩

当某项目即将被收缩以隐藏下属子项目时产生本事件，返回真或不返回值允许收缩，否则将中止收缩。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件参数<1>的名称为“项目索引”，类型为“整数型（int）”。指示即将扩展或收缩显示下属子项目的项目索引，从 0 开始。

状态条 窗口单元

数据类型名称：状态条 英文名称：StatusBar

本数据类型为窗口单元型，不能接受输入焦点，共包含 18 个成员命令， 14 个成员属性。

成员属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
背景颜色 | 位置 | 尺寸调节器 | 字体
图片组 | 项目 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<10>的中文名称为“位置”，英文名称为“position”，类型为“整数型（int）”。

本属性指定状态条的显示位置。

可供选择的属性值：

0. 底边 1. 顶边 2. 自由

成员属性<11>的中文名称为“尺寸调节器”，英文名称为“SizeGrip”，类型为“逻辑型（bool）”。

本属性指定是否在状态条右边提供用于调节窗口尺寸的调节器，注意尺寸调节器仅当窗口的边框可调（即为非固定边框）并且状态条位置在底边时才有效。

成员属性<12>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<13>的中文名称为“图片组”，英文名称为“ImageList”，类型为“字节集（bin）”。

为状态条各栏目提供标志图片。

成员属性<14>的中文名称为“项目”，类型为“字节集（bin）”。

本属性设置状态条各栏目的信息。

成员命令：

清空 | 加入栏目 | 删除栏目 | 取栏目数
取文本 | 取提示文本 | 取宽度 | 取类型
取图片 | 取栏目左边 | 取栏目顶边 | 取栏目宽度
取栏目高度 | 置文本 | 置提示文本 | 置宽度
置类型 | 置图片 |  |

※清空

调用格式： 〈无返回值〉 对象．清空 （）

英文名称：Clear

删除状态条中的所有栏目。本命令为初级对象成员命令。

※加入栏目

调用格式： 〈整数型〉 对象．加入栏目 （［栏目文本］，［宽度］，［动态提示文本］，［图片索引］，［外观类型］）

英文名称：Add

将指定栏目加入到状态条中，返回加入后该项目所处的位置。本命令为初级对象成员命令。

参数<1>的名称为“栏目文本”，类型为“文本型（text）”，可以被省略。栏目文本指定栏目中的文本内容。如果本参数被省略，默认值为空文本。

参数<2>的名称为“宽度”，类型为“整数型（int）”，可以被省略。单位为像素，如果为 -1 ，表示一直到窗口的最右边。如果被省略，默认值为 50 。

参数<3>的名称为“动态提示文本”，类型为“文本型（text）”，可以被省略。动态提示文本仅当栏目只有图片但没有内容文本或者内容文本不能被全部显示的情况下才有效。如果本参数被省略，默认值为空文本。

参数<4>的名称为“图片索引”，类型为“整数型（int）”，可以被省略。图片索引用于指定图片组属性中的某张图片，该图片将被显示在栏目的首部。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参数<5>的名称为“外观类型”，类型为“整数型（int）”，可以被省略。外观类型指定栏目的显示外观，可以为以下常量值之一： 0: #凹入； 1: #无边框； 2: #凸出。如果本参数被省略，默认值为“#凹入”。

※删除栏目

调用格式： 〈无返回值〉 对象．删除栏目 （栏目索引）

英文名称：Remove

删除指定的栏目。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取栏目数

调用格式： 〈整数型〉 对象．取栏目数 （）

英文名称：GetCount

取回状态条中栏目的总数。本命令为初级对象成员命令。

※取文本

调用格式： 〈文本型〉 对象．取文本 （栏目索引）

英文名称：GetText

取回指定栏目的内容文本。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取提示文本

调用格式： 〈文本型〉 对象．取提示文本 （栏目索引）

英文名称：GetTipText

取回指定栏目的提示文本。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取宽度

调用格式： 〈整数型〉 对象．取宽度 （栏目索引）

英文名称：Width

取回指定栏目的宽度(单位为像素)。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取类型

调用格式： 〈整数型〉 对象．取类型 （栏目索引）

英文名称：GetType

取回指定栏目的外观类型，返回值为以下常量值之一： 0: #凹入； 1: #无边框； 2: #凸出。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取图片

调用格式： 〈整数型〉 对象．取图片 （栏目索引）

英文名称：GetPic

取回指定栏目的图片索引，图片索引指向图片组属性中的某一图片，从 0 开始，-1 表示本栏目无图片标志。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取栏目左边

调用格式： 〈整数型〉 对象．取栏目左边 （栏目索引）

英文名称：GetLeft

取回指定栏目在状态条中显示区域的左边位置，单位为像素。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取栏目顶边

调用格式： 〈整数型〉 对象．取栏目顶边 （栏目索引）

英文名称：GetTop

取回指定栏目在状态条中显示区域的顶边位置，单位为像素。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取栏目宽度

调用格式： 〈整数型〉 对象．取栏目宽度 （栏目索引）

英文名称：GetWidth

取回指定栏目在状态条中显示区域的宽度，单位为像素。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※取栏目高度

调用格式： 〈整数型〉 对象．取栏目高度 （栏目索引）

英文名称：GetHeight

取回指定栏目在状态条中显示区域的高度，单位为像素。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

※置文本

调用格式： 〈无返回值〉 对象．置文本 （栏目索引，［栏目文本］）

英文名称：SetText

设置指定栏目的文本。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

参数<2>的名称为“栏目文本”，类型为“文本型（text）”，可以被省略。栏目文本指定栏目中的文本内容。如果本参数被省略，默认值为空文本。

※置提示文本

调用格式： 〈无返回值〉 对象．置提示文本 （栏目索引，［动态提示文本］）

英文名称：SetTipText

设置指定栏目的提示文本。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

参数<2>的名称为“动态提示文本”，类型为“文本型（text）”，可以被省略。动态提示文本仅当栏目只有图片但没有内容文本或者内容文本不能被全部显示的情况下才有效。如果本参数被省略，默认值为空文本。

※置宽度

调用格式： 〈无返回值〉 对象．置宽度 （栏目索引，［宽度］）

英文名称：SetWidth

设置指定栏目的宽度(单位像素)。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

参数<2>的名称为“宽度”，类型为“整数型（int）”，可以被省略。单位为像素，如果为 -1 ，表示一直到窗口的最右边。如果被省略，默认值为 50 。

※置类型

调用格式： 〈无返回值〉 对象．置类型 （栏目索引，［外观类型］）

英文名称：SetType

设置指定栏目的外观类型。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

参数<2>的名称为“外观类型”，类型为“整数型（int）”，可以被省略。外观类型指定栏目的显示外观，可以为以下常量值之一： 0: #凹入； 1: #无边框； 2: #凸出。如果本参数被省略，默认值为“#凹入”。

※置图片

调用格式： 〈无返回值〉 对象．置图片 （栏目索引，［图片索引］）

英文名称：SetPic

设置指定栏目的图片索引，图片索引指向图片组属性中的某一图片，从 0 开始，-1 表示本栏目无图片标志。本命令为初级对象成员命令。

参数<1>的名称为“栏目索引”，类型为“整数型（int）”。0 为栏目一，1 为栏目二，如此类推。

参数<2>的名称为“图片索引”，类型为“整数型（int）”，可以被省略。图片索引用于指定图片组属性中的某张图片，该图片将被显示在栏目的首部。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

工具条 窗口单元

数据类型名称：工具条 英文名称：ToolBar

本数据类型为窗口单元型，不能接受输入焦点，共包含 11 个成员命令， 20 个成员属性， 2 个单元事件。

成员属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
背景颜色 | 位置 | 平面 | 上边线
列表方式 | 允许多行 | 起始空白 | 字体
图片组 | 热点图片组 | 禁止图片组 | 按钮

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<10>的中文名称为“位置”，英文名称为“position”，类型为“整数型（int）”。

本属性指定工具条的显示位置。

可供选择的属性值：

0. 顶边 1. 底边 2. 自由

成员属性<11>的中文名称为“平面”，英文名称为“Flat”，类型为“逻辑型（bool）”。

本属性指定按钮是否为平面方式。

成员属性<12>的中文名称为“上边线”，英文名称为“Divider”，类型为“逻辑型（bool）”。

本属性指定是否在工具条的顶部显示上边分隔线。

成员属性<13>的中文名称为“列表方式”，英文名称为“List”，类型为“逻辑型（bool）”。

本属性指定在显示按钮时是否将标题文本显示在图片的右边。

成员属性<14>的中文名称为“允许多行”，英文名称为“Wrapable”，类型为“逻辑型（bool）”。

本属性指定是否允许多行显示按钮。

成员属性<15>的中文名称为“起始空白”，英文名称为“Indent”，类型为“整数型（int）”。

本属性指定在工具条首部所预留空白的尺寸，单位为像素。

成员属性<16>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<17>的中文名称为“图片组”，英文名称为“ImageList”，类型为“字节集（bin）”。

为工具条各按钮提供标志图片。

成员属性<18>的中文名称为“热点图片组”，英文名称为“HotImageList”，类型为“字节集（bin）”。

为工具条各按钮提供当鼠标移动到此按钮上时所显示的标志图片，仅当“平面”属性为真时才有效。

成员属性<19>的中文名称为“禁止图片组”，英文名称为“DisabledImageList”，类型为“字节集（bin）”。

为工具条各按钮提供当此按钮被禁止时所显示的标志图片。

成员属性<20>的中文名称为“按钮”，类型为“字节集（bin）”。

本属性设置工具条各按钮的信息。

成员命令

插入按钮 | 删除按钮 | 取按钮数 | 取标题
取提示文本 | 取类型 | 取状态 | 取图片
置提示文本 | 加入状态 | 去除状态 |

※插入按钮

调用格式： 〈整数型〉 对象．插入按钮 （［插入位置］，［类型］，［图片索引］，［标题］，［动态提示文本］，［按钮状态］）

英文名称：Insert

将指定按钮插入到工具条中，返回插入后该按钮所处的位置。本命令为初级对象成员命令。

参数<1>的名称为“插入位置”，类型为“整数型（int）”，可以被省略。指定新按钮插入的位置索引，0 为栏目一，1 为栏目二，如此类推。如果提供 -1 ，则插入到工具条的尾部。如果本参数被省略，默认值为 -1 。

参数<2>的名称为“类型”，类型为“整数型（int）”，可以被省略。按钮的类型可以为以下常量值之一： 0: #普通按钮； 1: #多选按钮； 2: #单选按钮； 3: #下拉按钮； 4: #分隔条。 如果本参数被省略，默认值为“#普通按钮”。

参数<3>的名称为“图片索引”，类型为“整数型（int）”，可以被省略。图片索引用于指定图片组属性中的某张图片，该图片将被显示在按钮表面。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参数<4>的名称为“标题”，类型为“文本型（text）”，可以被省略。本参数指定显示在按钮下的标题文本。如果被省略，默认值为空文本。

参数<5>的名称为“动态提示文本”，类型为“文本型（text）”，可以被省略。本参数指定当鼠标移动到按钮上并停留一段时间后所动态显示的提示文本。如果被省略，默认值为空文本。

参数<6>的名称为“按钮状态”，类型为“整数型（int）”，可以被省略。本参数指定按钮的存在状态。状态值为 0 或者以下常量值任意组合(相加)： 1: #选中； 2: #按下； 4: #禁止； 8: #隐藏； 16: #变灰。 其中“选中”状态在类型为多选按钮或单选按钮时有效，“按下”状态在类型为普通按钮时有效。如果本参数被省略，默认值为 0 。

※删除按钮

调用格式： 〈无返回值〉 对象．删除按钮 （按钮索引）

英文名称：Remove

删除指定的按钮。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

※取按钮数

调用格式： 〈整数型〉 对象．取按钮数 （）

英文名称：GetCount

取回工具条中按钮的总数。本命令为初级对象成员命令。

※取标题

调用格式： 〈文本型〉 对象．取标题 （按钮索引）

英文名称：GetCaption

取回指定按钮的标题文本。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

※取提示文本

调用格式： 〈文本型〉 对象．取提示文本 （按钮索引）

英文名称：GetTipText

取回指定按钮的提示文本。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

※取类型

调用格式： 〈整数型〉 对象．取类型 （按钮索引）

英文名称：GetType

取回指定按钮的类型，返回值为以下常量值之一： 0: #普通按钮； 1: #多选按钮； 2: #单选按钮； 3: #下拉按钮； 4: #分隔条。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

※取状态

调用格式： 〈整数型〉 对象．取状态 （按钮索引）

英文名称：GetState

取回指定按钮的状态，状态值为 0 或者以下常量值任意组合(相加)： 1: #选中； 2: #按下； 4: #禁止； 8: #隐藏； 16: #变灰。 可以用“位与”命令来判断指定的状态值是否被置位，如：“如果真 (位与 (工具条1.取按钮状态 (0)，#禁止) = #禁止)”语句即可判断工具条1的第一个按钮是否已被禁止。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

※取图片

调用格式： 〈整数型〉 对象．取图片 （按钮索引）

英文名称：GetPic

取回指定按钮的图片索引，图片索引指向图片组属性中的某一图片，从 0 开始，-1 表示本按钮无图片标志。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

※置提示文本

调用格式： 〈无返回值〉 对象．置提示文本 （按钮索引，［动态提示文本］）

英文名称：SetTipText

设置指定按钮的提示文本。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

参数<2>的名称为“动态提示文本”，类型为“文本型（text）”，可以被省略。本参数指定当鼠标移动到按钮上并停留一段时间后所动态显示的提示文本。如果被省略，默认值为空文本。

※加入状态

调用格式： 〈无返回值〉 对象．加入状态 （按钮索引，［按钮状态］）

英文名称：AddState

将指定状态值加入到按钮的存在状态中。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

参数<2>的名称为“按钮状态”，类型为“整数型（int）”，可以被省略。本参数指定按钮的存在状态。状态值为 0 或者以下常量值任意组合(相加)： 1: #选中； 2: #按下； 4: #禁止； 8: #隐藏； 16: #变灰。 其中“选中”状态在类型为多选按钮或单选按钮时有效，“按下”状态在类型为普通按钮时有效。如果本参数被省略，默认值为 0 。

※去除状态

调用格式： 〈无返回值〉 对象．去除状态 （按钮索引，［按钮状态］）

英文名称：RemoveState

从按钮的存在状态中去除指定状态值。本命令为初级对象成员命令。

参数<1>的名称为“按钮索引”，类型为“整数型（int）”。0 为按钮一，1 为按钮二，如此类推。

参数<2>的名称为“按钮状态”，类型为“整数型（int）”，可以被省略。本参数指定按钮的存在状态。状态值为 0 或者以下常量值任意组合(相加)： 1: #选中； 2: #按下； 4: #禁止； 8: #隐藏； 16: #变灰。 其中“选中”状态在类型为多选按钮或单选按钮时有效，“按下”状态在类型为普通按钮时有效。如果本参数被省略，默认值为 0 。

自有事件：

被单击

被下拉

单元事件列表：

事件 1 ：

事件名称：被单击

当工具条按钮被单击时即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“按钮索引”，类型为“整数型（int）”。提供被单击或被下拉按钮的索引。0 为按钮一，1 为按钮二，如此类推。

事件 2 ：

事件名称：被下拉

当下拉型按钮右侧向下箭头被单击时即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“按钮索引”，类型为“整数型（int）”。提供被单击或被下拉按钮的索引。0 为按钮一，1 为按钮二，如此类推。

事件参数<2>的名称为“下拉横座标”，类型为“整数型（int）”。提供按钮被下拉的屏幕座标位置，如果在事件处理子程序中需要弹出菜单或弹出子窗口，可以直接使用此座标。具体请见本支持库附带的工具条相关例程。

事件参数<3>的名称为“下拉纵座标”，类型为“整数型（int）”。提供按钮被下拉的屏幕座标位置，如果在事件处理子程序中需要弹出菜单或弹出子窗口，可以直接使用此座标。具体请见本支持库附带的工具条相关例程。

超级列表框 窗口单元

数据类型名称：超级列表框 英文名称：ListView

本数据类型为窗口单元型，共包含 35 个成员命令， 39 个成员属性， 8 个单元事件。

成员属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 文本颜色 | 文本背景色 | 背景颜色
字体 | 类型 | 图标对齐方式 | 自动排列图标
标题自动换行 | 报表列 | 无表头 | 表头图片组
表头可单击 | 整行选择 | 显示表格线 | 表列可拖动
图片组 | 状态图片组 | 热点跟踪 | 手形指针
标注非热点 | 标注热点 | 允许编辑 | 排序方式
是否有检查框 | 平面滚动条 | 单一选择 | 现行选中项
始终显示选择项 | 表项 | 结束编辑文本 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式 3. 浅凹入式

4. 镜框式 5. 单线边框式

成员属性<10>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<11>的中文名称为“文本背景色”，英文名称为“TextBackColor”，类型为“整数型（int）”。

成员属性<12>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

指定窗口单元的背景色。

成员属性<13>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<14>的中文名称为“类型”，英文名称为“type”，类型为“整数型（int）”。

本属性指定列表框的类型。

可供选择的属性值：

0. 大图标列表框 1. 小图标列表框

2. 普通列表框 3. 报表列表框

成员属性<15>的中文名称为“图标对齐方式”，英文名称为“AlignType”，类型为“整数型（int）”。

本属性指定大图标和小图标列表框中的图标对齐方式。

可供选择的属性值：

0. 顶部对齐 1. 左边对齐

成员属性<16>的中文名称为“自动排列图标”，英文名称为“AutoArrange”，类型为“逻辑型（bool）”。

本属性指定在大图标和小图标列表框中是否自动排列图标。

成员属性<17>的中文名称为“标题自动换行”，英文名称为“WrapText”，类型为“逻辑型（bool）”。

本属性指定在大图标和小图标列表框中如果标题过长是否自动换行。

成员属性<18>的中文名称为“报表列”，英文名称为“Col”，类型为“字节集（bin）”。

本属性设置报表列表框中各列的信息。注意：报表列表框只有在设置了列后才能显示出其中的内容。

成员属性<19>的中文名称为“无表头”，英文名称为“NoColHeader”，类型为“逻辑型（bool）”。

本属性指定报表列表框中是否没有表头。

成员属性<20>的中文名称为“表头图片组”，英文名称为“HeaderImageList”，类型为“字节集（bin）”。

本属性为报表列表框表头提供图标图片。

成员属性<21>的中文名称为“表头可单击”，英文名称为“ColClick”，类型为“逻辑型（bool）”。

如果报表列表框中有表头，本属性指定表头列是否可以被作为按钮单击。

成员属性<22>的中文名称为“整行选择”，英文名称为“FullRowSel”，类型为“逻辑型（bool）”。

本属性指定当在报表列表框中选中一行时是否高亮度显示整行。

成员属性<23>的中文名称为“显示表格线”，英文名称为“GridLine”，类型为“逻辑型（bool）”。

本属性指定在报表列表框中是否显示表格线。

成员属性<24>的中文名称为“表列可拖动”，英文名称为“DragCol”，类型为“逻辑型（bool）”。

本属性指定在报表列表框中是否允许用户拖动表头列以改变列位置。

成员属性<25>的中文名称为“图片组”，英文名称为“ImageList”，类型为“字节集（bin）”。

本属性为各列表框项目提供图标图片。

成员属性<26>的中文名称为“状态图片组”，英文名称为“StateImageList”，类型为“字节集（bin）”。

本属性为列表框中的表项提供状态图片。

成员属性<27>的中文名称为“热点跟踪”，英文名称为“HotTrack”，类型为“逻辑型（bool）”。

本属性指定在列表框中是否跟踪并高亮度显示当前鼠标所处表项，此表项称为“热点表项”。

成员属性<28>的中文名称为“手形指针”，英文名称为“HandPoint”，类型为“逻辑型（bool）”。

本属性指定在列表框中当鼠标移动到热点表项时是否将鼠标指针改为手形。

成员属性<29>的中文名称为“标注非热点”，英文名称为“UnderLineCold”，类型为“逻辑型（bool）”。

本属性指定在列表框中当鼠标移动到热点表项时是否将所有非此表项的标题加上下划线显示。

成员属性<30>的中文名称为“标注热点”，英文名称为“UnderLineHot”，类型为“逻辑型（bool）”。

本属性指定在列表框中当鼠标移动到热点表项时是否将此表项的标题加上下划线显示。

成员属性<31>的中文名称为“允许编辑”，英文名称为“Editable”，类型为“逻辑型（bool）”。

本属性指定是否允许编辑表项标题，仅在“热点跟踪”属性为假时才有效。

成员属性<32>的中文名称为“排序方式”，英文名称为“SortType”，类型为“整数型（int）”。

本属性指定列表框表项的标题排序方式。

可供选择的属性值：

0. 不排序 1. 正向排序 2. 逆向排序

成员属性<33>的中文名称为“是否有检查框”，英文名称为“CheckBox”，类型为“逻辑型（bool）”。

本属性指定是否在表项前加上检查框，注意如果“状态图片组”属性被设置，则默认的检查框图片将被“状态图片组”中的图片代替，并且当用户单击表项中的状态图片时，将自动遍历显示“状态图片组”中的所有图片。

成员属性<34>的中文名称为“平面滚动条”，英文名称为“FlatScrollBar”，类型为“逻辑型（bool）”。

本属性指定是否以平面方式显示列表框滚动条。

成员属性<35>的中文名称为“单一选择”，英文名称为“SingleSel”，类型为“逻辑型（bool）”。

本属性指定列表框中是否同时只允许选择一个表项。

成员属性<36>的中文名称为“现行选中项”，英文名称为“CurSel”，类型为“整数型（int）”。

本属性指定列表框中现行被选中项目的位置，位置值从 0 开始， -1 表示现行没有被选中的项目。注意如果“单一选择”属性为假，则本属性只可读。

成员属性<37>的中文名称为“始终显示选择项”，英文名称为“ShowSelAlways”，类型为“逻辑型（bool）”。

本属性指定是否始终显示当前被选择项目，即使列表框失去焦点。

成员属性<38>的中文名称为“表项”，类型为“字节集（bin）”。

本属性指定列表框中的各表项。

成员属性<39>的中文名称为“结束编辑文本”，类型为“文本型（text）”。

本属性只可读。

本属性仅在运行时有效，用作为“结束编辑”事件的处理子程序提供标题被编辑后的内容。

成员命令：

取标题 | 取图片 | 取当前状态图片 | 取缩进数目
取表项数值 | 置标题 | 置图片 | 置状态图片
置缩进数目 | 置表项数值 | 取被选择表项 | 取已选择表项数
是否被选择 | 选择表项 | 取消表项选择 | 取表项数
插入表项 | 删除表项 | 全部删除 | 查找表项
查找表项数值 | 保证显示 | 排列图标 | 取列标题
取列对齐方式 | 取列宽 | 取列图片 | 图片是否居右
置列标题 | 置列宽 | 置列图片 | 取列数
插入列 | 删除列 | 进入编辑 |

※取标题

调用格式： 〈文本型〉 对象．取标题 （表项索引，［列索引］）

英文名称：GetCaption

取指定表项或子项的标题。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

参数<2>的名称为“列索引”，类型为“整数型（int）”，可以被省略。用作指定报表型列表框中项目所处的列，索引值从 0 开始，如果当前列表框类型不是报表型列表框，提供 0 值即可。如果本参数被省略，默认值为 0 。

※取图片

调用格式： 〈整数型〉 对象．取图片 （表项索引，［列索引］）

英文名称：GetPic

取回指定表项或子项的图片索引，图片索引指向图片组属性中的某一图片，从 0 开始，-1 表示无图片。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

参数<2>的名称为“列索引”，类型为“整数型（int）”，可以被省略。用作指定报表型列表框中项目所处的列，索引值从 0 开始，如果当前列表框类型不是报表型列表框，提供 0 值即可。如果本参数被省略，默认值为 0 。

※取当前状态图

调用格式： 〈整数型〉 对象．取当前状态图片 （表项索引）

英文名称：GetStatePic

取回指定表项的当前状态图片索引，图片索引指向状态图片组属性中的某一图片，从 0 开始，-1 表示无图片。如果“是否有检查框”属性为真，返回值是当前检查框的选中状态，1表示被选中，0表示未选中。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

※取缩进数目

调用格式： 〈整数型〉 对象．取缩进数目 （表项索引）

英文名称：GetIndent

取回指定表项的缩进数目。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

※取表项数值

调用格式： 〈整数型〉 对象．取表项数值 （表项索引）

英文名称：GetData

返回与指定表项相关联的数值。如果该表项不存在，返回 0 。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

※置标题

调用格式： 〈无返回值〉 对象．置标题 （表项索引，［列索引］，［标题］）

英文名称：SetCaption

设置指定表项或子项的标题。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

参数<2>的名称为“列索引”，类型为“整数型（int）”，可以被省略。用作指定报表型列表框中项目所处的列，索引值从 0 开始，如果当前列表框类型不是报表型列表框，提供 0 值即可。如果本参数被省略，默认值为 0 。

参数<3>的名称为“标题”，类型为“文本型（text）”，可以被省略。本参数指定表项或子项的标题文本。如果被省略，默认值为空文本。

※置图片

调用格式： 〈无返回值〉 对象．置图片 （表项索引，［列索引］，［图片索引］）

英文名称：SetPic

设置指定表项或子项的图片。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

参数<2>的名称为“列索引”，类型为“整数型（int）”，可以被省略。用作指定报表型列表框中项目所处的列，索引值从 0 开始，如果当前列表框类型不是报表型列表框，提供 0 值即可。如果本参数被省略，默认值为 0 。

参数<3>的名称为“图片索引”，类型为“整数型（int）”，可以被省略。图片索引用于指定“图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

※置状态图片

调用格式： 〈无返回值〉 对象．置状态图片 （表项索引，［状态图片索引］）

英文名称：SetStatePic

设置指定表项的状态图片。如果“是否有检查框”属性为真，调用“置状态图片 (0)”或“置状态图片 (1)”可以设置表项检查框的选中状态。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

参数<2>的名称为“状态图片索引”，类型为“整数型（int）”，可以被省略。状态图片索引用于指定“状态图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

※置缩进数目

调用格式： 〈无返回值〉 对象．置缩进数目 （表项索引，［缩进数目］）

英文名称：SetIndent

设置指定表项的缩进数目。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

参数<2>的名称为“缩进数目”，类型为“整数型（int）”，可以被省略。“缩进数目”仅在报表型列表框才有效，用作指定显示时在表项首部增加的空白数。如果本参数被省略，默认值为 0 。

※置表项数值

调用格式： 〈无返回值〉 对象．置表项数值 （表项索引，［表项数值］）

英文名称：SetData

设置与指定表项相关联的数值。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

参数<2>的名称为“表项数值”，类型为“整数型（int）”，可以被省略。该数值与指定表项相关联。如果本参数被省略，默认值为 0 。

※取被选择表项

调用格式： 〈整数型数组〉 对象．取被选择表项 （）

英文名称：GetSelItems

返回一个整数数组，內含所有当前被选择表项的位置索引。如果当前没有被选择表项，返回空数组。本命令为初级对象成员命令。

※取已选择表项数

调用格式： 〈整数型〉 对象．取已选择表项数 （）

英文名称：GetSelCount

返回当前已被选择表项的数目。本命令为初级对象成员命令。

※是否被选择

调用格式： 〈逻辑型〉 对象．是否被选择 （表项索引）

英文名称：IsSelected

判断指定表项是否已经被选择，如已被选择，返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

※选择表项

调用格式： 〈无返回值〉 对象． （表项索引）

英文名称：Select

选择指定表项。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

※取消表项选择

调用格式： 〈无返回值〉 对象．取消表项选择 （表项索引）

英文名称：UnSelect

取消对指定表项的选择。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

※取表项数

调用格式： 〈整数型〉 对象．取表项数 （）

英文名称：GetCount

返回列表框中所有表项的数目。本命令为初级对象成员命令。

※插入表项

调用格式： 〈整数型〉 对象．插入表项 （［插入位置］，［标题］，［图片索引］，［状态图片索引］，［缩进数目］，［表项数值］）

英文名称：Insert

在指定的位置插入新表项，成功返回新表项的位置索引，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“插入位置”，类型为“整数型（int）”，可以被省略。指定新表项插入时的位置索引，索引值从 0 开始。如果提供 -1 ，则插入到列表框的尾部。如果本参数被省略，默认值为 -1 。

参数<2>的名称为“标题”，类型为“文本型（text）”，可以被省略。本参数指定表项的标题文本。如果被省略，默认值为空文本。

参数<3>的名称为“图片索引”，类型为“整数型（int）”，可以被省略。图片索引用于指定“图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参数<4>的名称为“状态图片索引”，类型为“整数型（int）”，可以被省略。状态图片索引用于指定“状态图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参数<5>的名称为“缩进数目”，类型为“整数型（int）”，可以被省略。“缩进数目”仅在报表型列表框才有效，用作指定显示时在表项首部增加的空白数。如果本参数被省略，默认值为 0 。

参数<6>的名称为“表项数值”，类型为“整数型（int）”，可以被省略。该数值与指定表项相关联。如果本参数被省略，默认值为 0 。

※删除表项

调用格式： 〈无返回值〉 对象．删除表项 （表项索引）

英文名称：Remove

删除指定位置的表项。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

※全部删除

调用格式： 〈无返回值〉 对象．全部删除 （）

英文名称：RemoveAll

删除所有的表项。本命令为初级对象成员命令。

※查找表项

调用格式： 〈整数型〉 对象．查找表项 （标题，［起始查找位置］，［是否精确匹配］）

英文名称：Find

查找具有指定标题的表项，成功返回被找到表项的位置索引，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“标题”，类型为“文本型（text）”。本参数指定欲查找表项的标题文本。

参数<2>的名称为“起始查找位置”，类型为“整数型（int）”，可以被省略。本参数指定查找表项的起始位置。如果本参数被省略，默认值为 0 ，即从首项开始查找。

参数<3>的名称为“是否精确匹配”，类型为“逻辑型（bool）”，可以被省略。本参数指定匹配标题文本时是否为精确匹配，如果本参数为假，则只要表项标题首部包含指定文本即认为匹配成功。如果本参数被省略，默认值为真。

※查找表项数值

调用格式： 〈整数型〉 对象．查找表项数值 （［起始查找位置］，［表项数值］）

英文名称：FindData

查找具有指定关联数值的表项，成功返回被找到表项的位置索引，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“起始查找位置”，类型为“整数型（int）”，可以被省略。本参数指定查找表项的起始位置。如果本参数被省略，默认值为 0 ，即从首项开始查找。

参数<2>的名称为“表项数值”，类型为“整数型（int）”，可以被省略。该数值与指定表项相关联。如果本参数被省略，默认值为 0 。

※保证显示

调用格式： 〈无返回值〉 对象．保证显示 （表项索引）

英文名称：EnsureVisible

确保指定表项能够显示出来，如果不能显示，则自动滚动并显示该表项。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

※排列图标

调用格式： 〈无返回值〉 对象．排列图标 （）

英文名称：Arrange

自动排列大图标或小图标列表框中的图标。本命令为初级对象成员命令。

※取列标题

调用格式： 〈文本型〉 对象．取列标题 （列索引）

英文名称：GetColCaption

返回报表型列表框中指定列的标题。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

※取列对齐方式

调用格式： 〈整数型〉 对象．取列对齐方式 （列索引）

英文名称：GetAlignType

取回报表型列表框中指定列的对齐方式。返回值为以下常量之一： 0：#左对齐； 1：#中间对齐； 2：#右对齐。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

※取列宽

调用格式： 〈整数型〉 对象．取列宽 （列索引）

英文名称：GetColWidth

返回报表型列表框中指定列的宽度，如指定列不存在，返回 0 。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

※取列图片

调用格式： 〈整数型〉 对象．取列图片 （列索引）

英文名称：GetColPic

返回报表型列表框中指定列的图片索引。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

※图片是否居右

调用格式： 〈逻辑型〉 对象．图片是否居右 （列索引）

英文名称：GetColPicPos

如果报表型列表框中指定列的图片居右显示，返回真，否则返回假。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

※置列标题

调用格式： 〈无返回值〉 对象．置列标题 （列索引，［标题］）

英文名称：SetColCaption

设置报表型列表框中指定列的标题。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参数<2>的名称为“标题”，类型为“文本型（text）”，可以被省略。本参数指定报表列的标题文本。如果被省略，默认值为空文本。

※置列宽

调用格式： 〈无返回值〉 对象．置列宽 （列索引，［列宽］）

英文名称：SetColWdith

设置报表型列表框中指定列的宽度。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参数<2>的名称为“列宽”，类型为“整数型（int）”，可以被省略。本参数指定报表列的宽度，单位为像素。如果参数值提供为 -1 ，则根据列数据最大宽度自动调整列尺寸，如果参数值提供为 -2 ，则根据列标题宽度自动调整列尺寸。如果本参数被省略，默认值为 -1 。

※置列图片

调用格式： 〈无返回值〉 对象．置列图片 （列索引，［图片索引］）

英文名称：SetColPic

设置报表型列表框中指定列的标志图片。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参数<2>的名称为“图片索引”，类型为“整数型（int）”，可以被省略。图片索引用于指定“表头图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

※取列数

调用格式： 〈整数型〉 对象．取列数 （）

英文名称：GetColCount

返回报表型列表框中列的总数。本命令为初级对象成员命令。

※插入列

调用格式： 〈整数型〉 对象．插入列 （［插入位置］，［标题］，［列宽］，［对齐方式］，［图片索引］，［图片是否居右］）

英文名称：InsertCol

在报表型列表框中指定位置插入新的列，成功返回新列的位置索引，失败返回 -1 。本命令为初级对象成员命令。

参数<1>的名称为“插入位置”，类型为“整数型（int）”，可以被省略。指定新列插入时的位置索引，索引值从 0 开始。如果提供 -1 ，则插入到尾部。如果本参数被省略，默认值为 -1 。

参数<2>的名称为“标题”，类型为“文本型（text）”，可以被省略。本参数指定报表列的标题文本。如果被省略，默认值为空文本。

参数<3>的名称为“列宽”，类型为“整数型（int）”，可以被省略。本参数指定报表列的宽度，单位为像素。如果被省略，默认值为 50 。

参数<4>的名称为“对齐方式”，类型为“整数型（int）”，可以被省略。参数可以为以下常量之一： 0：#左对齐； 1：#中间对齐； 2：#右对齐。如果本参数被省略，默认值为“#左对齐”。

参数<5>的名称为“图片索引”，类型为“整数型（int）”，可以被省略。图片索引用于指定“表头图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参数<6>的名称为“图片是否居右”，类型为“逻辑型（bool）”，可以被省略。指定图片是否显示在右边，如果本参数被省略，默认值为假。

※删除列

调用格式： 〈无返回值〉 对象．删除列 （列索引）

英文名称：RemoveCol

删除报表型列表框中指定位置处的列。本命令为初级对象成员命令。

参数<1>的名称为“列索引”，类型为“整数型（int）”。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

※进入编辑

调用格式： 〈无返回值〉 对象．进入编辑 （表项索引）

英文名称：Edit

让指定表项进入编辑状态，执行本命令成功的前提是“允许编辑”属性为真。本命令为初级对象成员命令。

参数<1>的名称为“表项索引”，类型为“整数型（int）”。用于指定列表框中的某一项目，索引值从 0 开始。

自有事件：

当前表项被改变 | 表项被激活 | 表头被单击 | 表项跟踪
左键单击表项 | 右键单击表项 | 开始编辑 | 结束编辑

单元事件列表：

事件 1 ：

事件名称：当前表项被改变

如果当前焦点所处表项被改变即产生此事件，接收到此事件后读取“现行选中项”属性即可获得当前表项的索引。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：表项被激活

在下列情况下会产生本事件： 1、双击某表项； 2、选中某表项后按回车； 3、当“热点跟踪”属性为真时单击某表项。 接收到此事件后读取“现行选中项”属性即可获得当前被激活表项的索引。

此事件的用户处理子程序不需要返回数据。

事件 3 ：

事件名称：表头被单击

当使用鼠标左键在报表型列表框的某表头列上单击时产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“被单击列索引”，类型为“整数型（int）”。指示被单击表头列的索引，从 0 开始。

事件 4 ：

事件名称：表项跟踪

当“热点跟踪”属性为真时移动鼠标到某表项上后即产生本事件，注意如果鼠标不处于任何表项上，“表项索引”参数将传递值 -1 。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“表项索引”，类型为“整数型（int）”。指示当前鼠标位置所处表项的索引，从 0 开始。

事件 5 ：

事件名称：左键单击表项

当用鼠标左键单击某表项时即产生此事件，接收到此事件后读取“现行选中项”属性即可获得被单击表项的索引。

此事件的用户处理子程序不需要返回数据。

事件 6 ：

事件名称：右键单击表项

当用鼠标右键在某表项上单击时产生此事件，接收到此事件后读取“现行选中项”属性即可获取被单击表项的索引，调用系统核心支持库中的“取鼠标水平位置”、“取鼠标垂直位置”命令可获取当前鼠标单击位置。

此事件的用户处理子程序不需要返回数据。

事件 7 ：

事件名称：开始编辑

当表项进入标题编辑状态前产生此事件，要产生本事件“允许编辑”属性必须为真。事件处理子程序返回假则不允许进入编辑状态，返回真或不返回值允许进入。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件参数<1>的名称为“表项索引”，类型为“整数型（int）”。指示即将进入或结束编辑状态的表项的索引，从 0 开始。

事件 8 ：

事件名称：结束编辑

当表项结束标题编辑状态前产生此事件，要产生本事件“允许编辑”属性必须为真。在事件处理子程序中读取“结束编辑文本”属性可以得知标题被编辑后的内容，事件处理子程序返回假不允许使用编辑后的内容替换原有标题，返回真或不返回值则允许替换。

此事件的用户处理子程序所需返回数据的类型为“逻辑型（bool）”。

事件参数<1>的名称为“表项索引”，类型为“整数型（int）”。指示即将进入或结束编辑状态的表项的索引，从 0 开始。

透明标签 窗口单元

数据类型名称：透明标签 英文名称：TLabel

本数据类型为窗口单元型，不能接受输入焦点，共包含 15 个成员属性。

成员属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 效果 | 字体 | 文本颜色
横向对齐方式 | 是否自动折行 | 纵向对齐方式 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

成员属性<10>的中文名称为“效果”，英文名称为“effect”，类型为“整数型（int）”。

可供选择的属性值：

0. 通常 1. 凹入 2. 凸出 3. 阴影

成员属性<11>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

成员属性<12>的中文名称为“文本颜色”，英文名称为“TextColor”，类型为“整数型（int）”。

成员属性<13>的中文名称为“横向对齐方式”，英文名称为“HorzAlignMode”，类型为“整数型（int）”。

可供选择的属性值：

0. 左对齐 1. 居中 2. 右对齐

成员属性<14>的中文名称为“是否自动折行”，类型为“逻辑型（bool）”。

本属性设定当文本内容超出右界后是否自动转到下一行显示。

成员属性<15>的中文名称为“纵向对齐方式”，英文名称为“VertAlignMode”，类型为“整数型（int）”。

如果选用自动折行则本属性无效。

可供选择的属性值：

0. 顶对齐 1. 居中 2. 底对齐

常量表...

常量 | 常量值 | 类型
#凹入 | 0 | 数值型
#无边框 | 1 | 数值型
#凸出 | 2 | 数值型
#普通按钮 | 0 | 数值型
#多选按钮 | 1 | 数值型
#单选按钮 | 2 | 数值型
#下拉按钮 | 3 | 数值型
#分隔条 | 4 | 数值型
#选中 | 1 | 数值型
#按下 | 2 | 数值型
#禁止 | 4 | 数值型
#隐藏 | 8 | 数值型
#变灰 | 16 | 数值型
#左对齐 | 0 | 数值型
#中间对齐 | 1 | 数值型
#右对齐 | 2 | 数值型


窗口单元数据类型： (有基本事件)

超级按钮

高级影像框

分隔条

超级编辑框

超级按钮 窗口单元

数据类型名称：超级按钮 英文名称：SuperBtn

本数据类型为窗口单元型，共包含 35 个成员属性， 1 个单元事件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
按钮风格 | 选择框方式 | 选中 | 对齐方式
压入方式 | 绘制边框 | 绘制焦点 | 通常图片
通常图片透明色 | 点燃图片 | 点燃图片透明色 | 禁止图片
禁止图片透明色 | 字体 | 标题 | 使用默认色
通常前景色 | 通常背景色 | 点燃前景色 | 点燃背景色
焦点前景色 | 焦点背景色 | 标准音提示 | 经过提示音
单击提示音 | 提示文本 | 默认类型 |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“按钮风格”，英文名称为“BtnStyle”，类型为“整数型（int）”。

可供选择的属性值：

0. 平面风格 1. 立体风格 2. XP风格

成员属性<10>的中文名称为“选择框方式”，英文名称为“CheckBox”，类型为“逻辑型（bool）”。

本属性指定按钮是否以选择框方式工作。

成员属性<11>的中文名称为“选中”，英文名称为“Checked”，类型为“逻辑型（bool）”。

当“选择框方式”属性为真时，本属性说明当前是否已被选中。

成员属性<12>的中文名称为“对齐方式”，英文名称为“AlignStyle”，类型为“整数型（int）”。

本属性指定按钮中图片和文本的对齐方式。

可供选择的属性值：

0. 图左文右 1. 图上文下 2. 图右文左 3. 图文混排

成员属性<13>的中文名称为“压入方式”，英文名称为“PressStyle”，类型为“整数型（int）”。

本属性指定按钮压入后的显示方式。

可供选择的属性值：

0. 从左到右 1. 从上到下

成员属性<14>的中文名称为“绘制边框”，英文名称为“DrawBorder”，类型为“逻辑型（bool）”。

本属性指定非立体风格按钮是否绘制边框线。

成员属性<15>的中文名称为“绘制焦点”，英文名称为“DrawFocus”，类型为“逻辑型（bool）”。

本属性指定非立体风格按钮获得焦点后是否绘制焦点边框线。

成员属性<16>的中文名称为“通常图片”，英文名称为“PicOut”，类型为“字节集（bin）”。

本属性指定当鼠标位于按钮外时显示的图片。

成员属性<17>的中文名称为“通常图片透明色”，英文名称为“TransColorOut”，类型为“整数型（int）”。

本属性指定通常图片中透明部分的颜色，如果属性值为默认背景色则自动以图片左上角第一点的颜色值作为透明色。

成员属性<18>的中文名称为“点燃图片”，英文名称为“PicIn”，类型为“字节集（bin）”。

本属性指定当鼠标位于按钮上时显示的图片，如果不提供，系统将会自动使用通常图片。

成员属性<19>的中文名称为“点燃图片透明色”，英文名称为“TransColorIn”，类型为“整数型（int）”。

本属性指定点燃图片中透明部分的颜色，如果属性值为默认背景色则自动以图片左上角第一点的颜色值作为透明色。

成员属性<20>的中文名称为“禁止图片”，英文名称为“PicDisabled”，类型为“字节集（bin）”。

本属性指定当按钮被禁止时显示的图片，如果不提供，系统将会自动生成。

成员属性<21>的中文名称为“禁止图片透明色”，英文名称为“TransColorDisabled”，类型为“整数型（int）”。

本属性指定禁止图片中透明部分的颜色，如果属性值为默认背景色则自动以图片左上角第一点的颜色值作为透明色。

成员属性<22>的中文名称为“字体”，英文名称为“font”，类型为“字体（font）”。

本属性指定按钮文本使用的显示字体。

成员属性<23>的中文名称为“标题”，英文名称为“caption”，类型为“文本型（text）”。

本属性指定按钮标题文本的内容。

成员属性<24>的中文名称为“使用默认色”，英文名称为“DefaultColor”，类型为“逻辑型（bool）”。

本属性指定是否使用操作系统默认配色方案来对按钮进行配色。

成员属性<25>的中文名称为“通常前景色”，英文名称为“FgColorOut”，类型为“整数型（int）”。

本属性指定当鼠标位于按钮外时文本标题所使用的显示颜色。

成员属性<26>的中文名称为“通常背景色”，英文名称为“BkColorOut”，类型为“整数型（int）”。

本属性指定当鼠标位于按钮外时显示的背景颜色。

成员属性<27>的中文名称为“点燃前景色”，英文名称为“FgColorIn”，类型为“整数型（int）”。

本属性指定当鼠标位于按钮上时文本标题所使用的显示颜色。

成员属性<28>的中文名称为“点燃背景色”，英文名称为“BkColorIn”，类型为“整数型（int）”。

本属性指定当鼠标位于按钮上时显示的背景颜色。

成员属性<29>的中文名称为“焦点前景色”，英文名称为“FgColorFocus”，类型为“整数型（int）”。

本属性指定当按钮获得输入焦点时文本标题所使用的显示颜色。

成员属性<30>的中文名称为“焦点背景色”，英文名称为“BkColorFocus”，类型为“整数型（int）”。

本属性指定当按钮获得输入焦点时显示的背景颜色。

成员属性<31>的中文名称为“标准音提示”，英文名称为“StandardSound”，类型为“逻辑型（bool）”。

本属性指定当鼠标单击按钮或移动到非立体风格按钮上时是否同时发出标准的“哒哒”音。

成员属性<32>的中文名称为“经过提示音”，英文名称为“OverSound”，类型为“字节集（bin）”。

本属性指定当鼠标移动到非立体风格按钮上时所发出的声音，注意仅支持WAV格式。

成员属性<33>的中文名称为“单击提示音”，英文名称为“ClickSound”，类型为“字节集（bin）”。

本属性指定当鼠标单击按钮时所发出的声音，注意仅支持WAV格式。

成员属性<34>的中文名称为“提示文本”，英文名称为“ToolTip”，类型为“文本型（text）”。

本属性指定当鼠标停留在按钮上时动态显示的提示文本。

成员属性<35>的中文名称为“默认类型”，英文名称为“DefaultStyle”，类型为“整数型（int）”。

当在窗口上按下Enter键时，如果没有将窗口的“回车下移输入点”属性设置为真，则等同于按下了具有“默认”类型的按钮。因此具有“默认”类型的按钮在同一窗口上应当只有一个。“通常”类型的按钮无对应的操作默认键。

可供选择的属性值：

0. 通常 1. 默认

自有事件：

被单击

单元事件列表：

事件 1 ：

事件名称：被单击

当单击按钮后即产生此事件。

此事件的用户处理子程序不需要返回数据。

高级影像框 窗口单元

数据类型名称：高级影像框 英文名称：SuperAnimateBox

本数据类型为窗口单元型，共包含 17 个成员属性。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
播放位置 | 影像文件名 | 播放速度 | 背景颜色
透明颜色 | 播放 | 仅播放一次 | 当前帧
全部帧数 |  |  |

相比起基本影像框，本组件可以播放更多格式的AVI文件。

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“播放位置”，英文名称为“PlayPositon”，类型为“整数型（int）”。

本属性指定影像在窗口中的播放位置。仅在播放前设置有效。

可供选择的属性值：

0. 窗口内居中 1. 扩展到窗口 2. 自动调整窗口

成员属性<10>的中文名称为“影像文件名”，英文名称为“AVIFileName”，类型为“文本型（text）”。

本属性指定欲播放影像文件的名称。

成员属性<11>的中文名称为“播放速度”，英文名称为“Speed”，类型为“双精度小数型（double）”。

本属性值可以设置为大于 0 的小数，数值越小播放速度越快，数值为 1 则保持原定播放速度。具体计算公式为：实际播放速度 = 此属性值 X 影像文件内原定速度。仅在播放前设置有效。

成员属性<12>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

本属性指定播放窗口的背景颜色。

成员属性<13>的中文名称为“透明颜色”，英文名称为“TransColor”，类型为“整数型（int）”。

本属性指定影像中透明部分的颜色，如果属性值为默认背景色则自动以影像内第一帧左上角第一点的颜色值作为透明色。仅在播放前设置有效。

成员属性<14>的中文名称为“播放”，英文名称为“play”，类型为“整数型（int）”。

在设计阶段，指定本属性值为“播放”可使运行时影像文件在影像框被创建后自动开始播放。在运行阶段，通过改变此属性值可控制影像的播放、停止、暂停或继续。在运行阶段读取本属性值将始终得到0（播放）或1（停止），用作提供当前的播放状态。

可供选择的属性值：

0. 播放 1. 停止 2. 暂停 3. 继续

成员属性<15>的中文名称为“仅播放一次”，英文名称为“PlayOnce”，类型为“逻辑型（bool）”。

如果本属性值为真，则仅播放一次，否则无限次地循环播放。仅在播放前设置有效。

成员属性<16>的中文名称为“当前帧”，英文名称为“CurrentFrame”，类型为“整数型（int）”。

本属性返回或设置当前播放帧的帧号，属性值范围为从 1 到当前影像文件全部帧数，支持在播放前设置。

成员属性<17>的中文名称为“全部帧数”，英文名称为“Frames”，类型为“整数型（int）”。

本属性只可读。

本属性返回当前影像文件所包含的全部帧数。

分隔条 窗口单元

数据类型名称：分隔条 英文名称：SplitterBar

本数据类型为窗口单元型，共包含 10 个成员属性， 1 个单元事件。

可以用作动态调整窗口布局。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
背景颜色 | 方向 |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<10>的中文名称为“方向”，英文名称为“Orientation”，类型为“整数型（int）”。

可供选择的属性值：

0. 横向 1. 纵向

自有事件：

被拖动

单元事件列表：

事件 1 ：

事件名称：被拖动

当分隔条被拖动到一个新的位置后即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件参数<1>的名称为“原位置”，类型为“整数型（int）”。本参数值提供分隔条被拖动前的原位置坐标，单位为像素。该坐标值相对于其所在窗口用户区的左上角。如果分隔条的方向为横向，则本参数提供分隔条顶边纵坐标值，否则为分隔条左边横坐标值。

事件参数<2>的名称为“目的位置”，类型为“整数型（int）”。本参数值提供分隔条被拖动到的目的位置坐标，单位为像素。该坐标值相对于其所在窗口用户区的左上角。如果分隔条的方向为横向，则本参数提供分隔条顶边纵坐标值，否则为分隔条左边横坐标值。

超级编辑框 窗口单元

数据类型名称：超级编辑框 英文名称：RichText

本数据类型为窗口单元型，共包含 23 个成员命令， 21 个成员属性， 2 个单元事件。

具有对丰富格式文本的编排和处理支持。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
内容格式 | 内容 | 边框 | 背景颜色
是否允许多行 | 自动换行 | 只读 | 隐藏选择
最大允许长度 | 起始选择位置 | 被选择字符数 | 被选择文本
是否已更改 |  |  |

成员属性<1>的中文名称为“左边”，英文名称为“left”，类型为“整数型（int）”。

成员属性<2>的中文名称为“顶边”，英文名称为“top”，类型为“整数型（int）”。

成员属性<3>的中文名称为“宽度”，英文名称为“width”，类型为“整数型（int）”。

成员属性<4>的中文名称为“高度”，英文名称为“height”，类型为“整数型（int）”。

成员属性<5>的中文名称为“标记”，英文名称为“tag”，类型为“文本型（text）”。

成员属性<6>的中文名称为“可视”，英文名称为“visible”，类型为“逻辑型（bool）”。

成员属性<7>的中文名称为“禁止”，英文名称为“disable”，类型为“逻辑型（bool）”。

成员属性<8>的中文名称为“鼠标指针”，英文名称为“MousePointer”，类型为“字节集（bin）”。

成员属性<9>的中文名称为“内容格式”，英文名称为“ContextType”，类型为“整数型（int）”。

本属性指定对编辑框的内容进行读写时所使用的文本格式。

可供选择的属性值：

0. 纯文本 1. RTF丰富文本

成员属性<10>的中文名称为“内容”，英文名称为“context”，类型为“文本型（text）”。

本属性所使用的文本格式由“内容格式”属性决定。

成员属性<11>的中文名称为“边框”，英文名称为“border”，类型为“整数型（int）”。

可供选择的属性值：

0. 无边框 1. 凹入式 2. 凸出式

3. 浅凹入式 4. 镜框式 5. 单线边框式

成员属性<12>的中文名称为“背景颜色”，英文名称为“BackColor”，类型为“整数型（int）”。

成员属性<13>的中文名称为“是否允许多行”，英文名称为“AllowMultiLines”，类型为“逻辑型（bool）”。

本属性设置编辑框是否允许输入多行文本。

成员属性<14>的中文名称为“自动换行”，英文名称为“AutoNextLine”，类型为“逻辑型（bool）”。

本属性设置编辑框是否支持自动换行。

成员属性<15>的中文名称为“只读”，英文名称为“ReadOnly”，类型为“逻辑型（bool）”。

本属性设置编辑框是否只能读取而不能写入。

成员属性<16>的中文名称为“隐藏选择”，英文名称为“HideSel”，类型为“逻辑型（bool）”。

本属性指定失去输入焦点后是否还显示当前被选择的区域。

成员属性<17>的中文名称为“最大允许长度”，英文名称为“MaxAllowLength”，类型为“整数型（int）”。

本属性设置最大允许输入到编辑框中的字符数目，如为0则输入字符数目不受限制。

成员属性<18>的中文名称为“起始选择位置”，英文名称为“SelStart”，类型为“整数型（int）”。

返回或设置所选择文本的起始点；0 为位置 1 ，1 为位置 2，如此类推。如果没有文本被选中，则提供当前光标位置。

成员属性<19>的中文名称为“被选择字符数”，英文名称为“SelLength”，类型为“整数型（int）”。

返回或设置所选择的字符数。如果设置字符数时使用值 -1，则选择编辑框内的所有字符。

成员属性<20>的中文名称为“被选择文本”，英文名称为“SelText”，类型为“文本型（text）”。

本属性在设计时不可用，在运行时可读可写。

返回或替换当前所选择的文本，文本格式由“内容格式”属性决定。

成员属性<21>的中文名称为“是否已更改”，英文名称为“Modified”，类型为“逻辑型（bool）”。

本属性在设计时不可用，在运行时可读可写。

读取本属性可获知编辑框的内容是否已被用户手工更改，运行时写入本属性可以设置其值。

成员命令

取文本长度 | 取行数 | 取行文本 | 取首可视行
取行首位置 | 取字符所在行 | 滚动 | 取默认字符格式
置默认字符格式 | 取选择区字符格式 | 置选择区字符格式 | 取选择区段落格式
置选择区段落格式 | 撤消 | 可否撤消 | 清空撤消数据
寻找 | 复制 | 剪切 | 删除
粘贴 | 可否粘贴 | 读入文档 |

※取文本长度

调用格式： 〈整数型〉 对象．取文本长度 （）

英文名称：GetTextLength

返回编辑框中现行所有文本内容的长度。本命令为初级对象成员命令。

※取行数

调用格式： 〈整数型〉 对象．取行数 （）

英文名称：GetLineCount

返回编辑框中当前内容的行数。本命令为初级对象成员命令。

※取行文本

调用格式： 〈文本型〉 对象．取行文本 （行号）

英文名称：GetLine

返回编辑框中指定行的文本内容。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”。行号从 0 开始，用作指定编辑框中的某一行。即：0 指定第一行，1 指定第二行，依此类推。

※取首可视行

调用格式： 〈整数型〉 对象．取首可视行 （）

英文名称：GetFirstVisibleLine

返回编辑框中当前顶部可见第一行的行号，行号值从 0 开始。本命令为初级对象成员命令。

※取行首位置

调用格式： 〈整数型〉 对象．取行首位置 （［行号］）

英文名称：LineIndex

返回编辑框中指定行的首字符在编辑框全部内容中的索引位置，该索引位置从 0 开始。本命令为初级对象成员命令。

参数<1>的名称为“行号”，类型为“整数型（int）”，可以被省略。行号从 0 开始，用作指定编辑框中的某一行。即：0 指定第一行，1 指定第二行，依此类推。如果为 -1 ，则自动取当前光标所在行行号。如果本参数被省略，则默认值为 -1 。

※取字符所在行

调用格式： 〈整数型〉 对象．取字符所在行 （［字符位置］）

英文名称：LineFromChar

返回编辑框中指定位置字符所在行的行号，行号值从 0 开始。本命令为初级对象成员命令。

参数<1>的名称为“字符位置”，类型为“整数型（int）”，可以被省略。字符位置为指定字符在编辑框全部内容中的索引位置，该索引位置从 0 开始。如果为 -1 ，则自动取当前光标所在字符位置。如果本参数被省略，则默认值为 -1 。

※滚动

调用格式： 〈无返回值〉 对象．滚动 （行数）

英文名称：LineScroll

垂直滚动多行编辑框中的内容显示区域。本命令为初级对象成员命令。

参数<1>的名称为“行数”，类型为“整数型（int）”。本参数指定欲滚动行数，可以为负数。

※取默认字符格式

调用格式： 〈字符格式〉 对象．取默认字符格式 （）

英文名称：GetDefaultCharFormat

返回当前默认字符格式，默认字符格式影响编辑框中所有未曾明确设置其字符格式的文本。本命令为初级对象成员命令。

※置默认字符格式

调用格式： 〈无返回值〉 对象．置默认字符格式 （字符格式）

英文名称：SetDefaultCharFormat

设置当前默认字符格式，默认字符格式影响编辑框中所有未曾明确设置其字符格式的文本。本命令为初级对象成员命令。

参数<1>的名称为“字符格式”，类型为“字符格式（CharFormat）”。本参数提供欲设置的字符格式。

※取选择区字符格式

调用格式： 〈字符格式〉 对象．取选择区字符格式 （）

英文名称：GetSelCharFormat

返回当前选择区内首字符文本的字符格式。本命令为初级对象成员命令。

※置选择区字符格式

调用格式： 〈无返回值〉 对象．置选择区字符格式 （字符格式）

英文名称：SetSelCharFormat

设置当前选择区内所有文本的字符格式。本命令为初级对象成员命令。

参数<1>的名称为“字符格式”，类型为“字符格式（CharFormat）”。本参数提供欲设置的字符格式。

※取选择区段落格式

调用格式： 〈段落格式〉 对象．取选择区段落格式 （）

英文名称：GetSelParaFormat

返回当前选择区内首段落的段落格式。本命令为初级对象成员命令。

※置选择区段落格式

调用格式： 〈无返回值〉 对象．置选择区段落格式 （段落格式）

英文名称：SetSelParaFormat

设置当前选择区内所有段落的段落格式。本命令为初级对象成员命令。

参数<1>的名称为“段落格式”，类型为“段落格式（ParaFormat）”。本参数提供欲设置的段落格式。

※撤消

调用格式： 〈无返回值〉 对象．撤消 （）

英文名称：Undo

撤消编辑框中最后一次的更改操作。本命令为初级对象成员命令。

※可否撤消

调用格式： 〈逻辑型〉 对象．可否撤消 （）

英文名称：CanUndo

如果当前编辑框中存在可以被撤消的更改操作，返回真，否则返回假。本命令为初级对象成员命令。

※清空撤消数据

调用格式： 〈无返回值〉 对象．清空撤消数据 （）

英文名称：EmptyUndoBuffer

清除编辑框中为支持撤消上次更改操作所保存的所有数据，本命令执行后无法再撤消上次所更改的操作。本命令为初级对象成员命令。

※寻找

调用格式： 〈整数型〉 对象．寻找 （［起始寻找位置］，［是否区分大小写］，［是否匹配单词］，欲寻找文本）

英文名称：Find

在编辑框中寻找指定的文本，如找到则返回该文本首字符所处的位置索引（从0开始），未找到则返回-1。本命令为初级对象成员命令。

参数<1>的名称为“起始寻找位置”，类型为“整数型（int）”，可以被省略。参数值为以 0 开始的字符位置索引，如果被省略，则默认值为 0 。

参数<2>的名称为“是否区分大小写”，类型为“逻辑型（bool）”，可以被省略。指定寻找时是否区分大小写英文字母，如果被省略，则默认值为真。

参数<3>的名称为“是否匹配单词”，类型为“逻辑型（bool）”，可以被省略。指定寻找时是否只允许单词才能匹配，如果被省略，则默认值为假。

参数<4>的名称为“欲寻找文本”，类型为“文本型（text）”。

※复制

调用格式： 〈无返回值〉 对象．复制 （）

英文名称：Copy

将现行被选择文本复制到剪辑板。本命令为初级对象成员命令。

※剪切

调用格式： 〈无返回值〉 对象．剪切 （）

英文名称：Cut

将现行被选择文本剪切到剪辑板。本命令为初级对象成员命令。

※删除

调用格式： 〈无返回值〉 对象．删除 （）

英文名称：Clear

删除现行被选择文本。本命令为初级对象成员命令。

※粘贴

调用格式： 〈无返回值〉 对象．粘贴 （）

英文名称：Paste

将剪辑板中的现行内容粘贴到光标位置。本命令为初级对象成员命令。

※可否粘贴

调用格式： 〈逻辑型〉 对象．可否粘贴 （）

英文名称：CanPaste

如果当前剪辑板中具有可以粘贴到编辑框中的数据，返回真，否则返回假。本命令为初级对象成员命令。

※读入文档

调用格式： 〈文本型〉 对象．读入文档 （）

英文名称：OpenDoc

显示对话框打开指定文档并读入到编辑框中，成功返回所读入文档的文件名，失败或被用户中止返回空文本。本命令可以自动调用当前Windows系统中已登记的所有文档转换器以读入各种其它类型文档，譬如Word文档、Excel表格等等。本命令为初级对象成员命令。

自有事件：

内容被改变

选择区被改变

单元事件列表：

事件 1 ：

事件名称：内容被改变

当编辑框的内容被修改后即产生此事件。

此事件的用户处理子程序不需要返回数据。

事件 2 ：

事件名称：选择区被改变

当编辑框的当前选择区被改变后即产生此事件。

此事件的用户处理子程序不需要返回数据。


系统核心支持库

本支持库是易语言的核心库，为系统本身和每个易程序提供必需的功能支持。

命令类别

流程控制 | 算术运算 | 逻辑比较 | 位运算
容器操作 | 数组操作 | 环境存取 | 拼音处理
文本操作 | 字节集操作 | 数值转换 | 时间操作
磁盘操作 | 文件读写 | 系统处理 | 媒体播放
程序调试 | 其他 | 数据库 | 网络通信
易向导 |  |  |


流程控制

如果 | 如果真 | 判断 | 判断循环首
循环判断首 | 计次循环首 | 容器循环首 | 到循环尾
跳出循环 | 返回 | 结束 |

※ 如果

调用格式： 〈无返回值〉 如果 （条件）

英文名称：if

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到左侧箭头线指向的命令处去执行。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

※ 如果真

调用格式： 〈无返回值〉 如果真 （条件）

英文名称：if

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到左侧箭头线指向的命令处去执行。同“如果”命令相比，本命令没有为假时的程序部分。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

※ 判断

调用格式： 〈无返回值〉 判断 （条件）

英文名称：Switch

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到下一分支处去继续判断。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

※ 判断循环首

调用格式： 〈无返回值〉 判断循环首 （条件）

英文名称：while

本命令根据提供的逻辑参数的值，来决定是否进入循环。如果提供的逻辑参数值为真，程序顺序执行下一条命令进入循环，否则跳转到本命令所对应的“判断循环尾”命令的下一条命令处以跳出循环。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

◎◎◎对应命令：

调用格式： 〈无返回值〉 判断循环尾 （）

英文名称：wend

本命令已经被隐藏。

执行本命令将返回到对应的“判断循环首”命令处继续进行循环。本命令为初级命令。

※循环判断首

调用格式： 〈无返回值〉 循环判断首 （）

英文名称：DoWhile

执行本命令后将顺序执行下一条命令进入程序循环。本命令为初级命令。

◎◎◎对应命令：

调用格式： 〈无返回值〉 循环判断尾 （条件）

英文名称：loop

本命令已经被隐藏。

本命令根据提供的逻辑参数的值，来决定是否返回到循环首部继续进行循环。如果提供的逻辑参数值为真，程序返回到对应的“循环判断首”命令处继续进行循环，否则顺序执行下一条命令退出本程序循环。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

※计次循环首

调用格式： 〈无返回值〉 计次循环首 （循环次数，［已循环次数记录容器］）

英文名称：counter

执行本命令将把循环体内的命令重复执行指定的次数。提供的整数参数值决定将重复执行的次数。本命令为初级命令。

参数<1>的名称为“循环次数”，类型为“整数型（int）”。本数值指定执行计次循环体内所有命令的次数，必须大于等于零。

参数<2>的名称为“已循环次数记录容器”，类型为“整数型（int）”，可以被省略，提供参数数据时只能提供容器。本数值型容器用作记录当前循环首已经被进入过的次数（从 1 开始），程序可以直接取用此容器中的值。

◎◎◎ 对应命令：

调用格式： 〈无返回值〉 计次循环尾 （）

英文名称：CounterLoop

本命令已经被隐藏。

如果计次循环的循环次数未到，执行本命令将返回到对应的“计次循环首”命令处继续进行循环，否则将顺序执行下一条命令退出本计次循环。本命令为初级命令。

※ 容器循环首

调用格式： 〈无返回值〉 容器循环首 （容器起始值，容器目标值，容器递增值，［循环容器］）

英文名称：for

执行本命令将利用容器对循环体内的命令进行循环执行。第一次执行此命令时将使用“容器起始值”参数初始化“循环容器”参数所指定的容器。每次（包括第一次）执行到此命令处都将判断循环容器内的值是否已经超过“容器目标值”参数所指定的值，如已超过，则跳转到对应的“容器循环尾”命令的下一条命令处继续执行，否则顺序执行下一条语句继续进行循环。本命令为初级命令。

参数<1>的名称为“容器起始值”，类型为“整数型（int）”，初始值为“1”。定义循环容器的起始数值。

参数<2>的名称为“容器目标值”，类型为“整数型（int）”。定义循环容器的目标数值，在循环首部如果发现容器值已超出此目标值时将跳出循环。

参数<3>的名称为“容器递增值”，类型为“整数型（int）”，初始值为“1”。每次执行到循环尾部时都将把此值加入到循环容器中去，此值可为正数或负数，如为正数则递增，为负数则递减。

参数<4>的名称为“循环容器”，类型为“整数型（int）”，可以被省略，提供参数数据时只能提供容器。本数值型容器将用作控制循环执行次数，在循环尾部将自动递增或递减该容器内的数值。如果被省略，命令将自动使用内部临时容器。

◎◎◎对应命令：

调用格式： 〈无返回值〉 容器循环尾 （）

英文名称：next

本命令已经被隐藏。

将在对应的“容器循环首”命令中所指定的数值容器递增或递减指定的值后返回到循环首部继续执行。本命令为初级命令。

※到循环尾

调用格式： 〈无返回值〉 到循环尾 （）

英文名称：continue

本命令转移当前程序执行位置到当前所处循环体的循环尾语句处。本命令为初级命令。

※跳出循环

调用格式： 〈无返回值〉 跳出循环 （）

英文名称：break

本命令转移当前程序执行位置到当前所处循环体循环尾语句的下一条语句处。本命令为初级命令。

※返回

调用格式： 〈无返回值〉 返回 （［返回到调用方的值］）

英文名称：return

本命令转移当前程序执行位置到调用本子程序语句的下一条语句处,并可根据需要返回一个值到子程序调用处。本命令为初级命令。

参数<1>的名称为“返回到调用方的值”，类型为“通用型（all）”，可以被省略。

※结束

调用格式： 〈无返回值〉 结束 （）

英文名称：end

本命令结束当前易程序的运行。本命令为初级命令。


算术运算

相乘 | 相除 | 整除 | 求余数
相加 | 相减 | 负 | 取符号
取绝对值 | 取整 | 绝对取整 | 四舍五入
求次方 | 求平方根 | 求正弦 | 求余弦
求正切 | 求反正切 | 求自然对数 | 求反对数
是否运算正确 | 置随机数种子 | 取随机数 |

※相乘

调用格式： 〈双精度小数型〉 相乘 （被乘数，乘数，… ）

英文名称：mul

返回两个数值的乘积，运算符号为“*”或“×”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被乘数”，类型为“双精度小数型（double）”。

参数<2>的名称为“乘数”，类型为“双精度小数型（double）”。

※相除

调用格式： 〈双精度小数型〉 相除 （被除数，除数，… ）

英文名称：div

返回两个数值的商，运算符号为“/”或“÷”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被除数”，类型为“双精度小数型（double）”。

参数<2>的名称为“除数”，类型为“双精度小数型（double）”。

※整除

调用格式： 〈双精度小数型〉 整除 （被除数，除数，… ）

英文名称：IDiv

求出两个数值的商，并返回其整数部分，运算符号为“\”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被除数”，类型为“双精度小数型（double）”。

参数<2>的名称为“除数”，类型为“双精度小数型（double）”

※求余数

调用格式： 〈双精度小数型〉 求余数 （被除数，除数，… ）

英文名称：mod

求出两个数值的商，并返回余数部分，运算符号为“%”或“Mod”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被除数”，类型为“双精度小数型（double）”。

参数<2>的名称为“除数”，类型为“双精度小数型（double）”。

※相加

调用格式： 〈通用型〉 相加 （被加数或文本或字节集，加数或文本或字节集，… ）

英文名称：add

运算符号为“+”，用途为：1、返回两个数值的和；2、将两个文本首尾连接起来，返回连接后的文本；3、将两个字节集首尾连接起来，返回连接后的字节集。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被加数或文本或字节集”，类型为“通用型（all）”。

参数<2>的名称为“加数或文本或字节集”，类型为“通用型（all）”。

※相减

调用格式： 〈双精度小数型〉 相减 （被减数，减数，… ）

英文名称：sub

返回两个数值的差，运算符号为“-”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被减数”，类型为“双精度小数型（double）”。

参数<2>的名称为“减数”，类型为“双精度小数型（double）”。

※负

调用格式： 〈双精度小数型〉 负 （数值）

英文名称：neg

反转一个数值的正负符号并返回反转后的值，运算符号为“-”（放在表达式首）。本命令为初级命令。

参数<1>的名称为“数值”，类型为“双精度小数型（double）”。

※取符号

调用格式： 〈整数型〉 取符号 （欲取其符号的数值）

英文名称：sgn

返回一个整数，如果小于零，表明给定数值为负；如果等于零，表明给定数值为零；如果大于零，表明给定数值为正。本命令为初级命令。

参数<1>的名称为“欲取其符号的数值”，类型为“双精度小数型（double）”。

※取绝对值

调用格式： 〈双精度小数型〉 取绝对值 （欲取其绝对值的数值）

英文名称：abs

如果所提供数值为字节型，则将直接返回该数值。本命令为初级命令。

参数<1>的名称为“欲取其绝对值的数值”，类型为“双精度小数型（double）”。

※取整

调用格式： 〈整数型〉 取整 （欲取整的小数）

英文名称：int

返回一个小数的整数部分。本命令与“绝对取整”命令不相同之处为：

如果给定小数为负数，则本命令返回小于或等于该小数的第一个负整数，而“绝对取整”命令则会返回大于或等于该小数的第一个负整数。例如，本命令将 -7.8 转换成 -8，而“绝对取整”命令将 -7.8 转换成 -7。本命令为初级命令。

参数<1>的名称为“欲取整的小数”，类型为“双精度小数型（double）”。

※绝对取整

调用格式： 〈整数型〉 绝对取整 （欲取整的小数）

英文名称：fix

返回一个小数的整数部分。本命令与“取整”命令不相同之处为：

如果给定小数为负数，则本命令返回大于或等于该小数的第一个负整数，而“取整”命令则会返回小于或等于该小数的第一个负整数。例如，本命令将 -7.8 转换成 -7，而“取整”命令将 -7.8 转换成 -8。本命令为初级命令。

参数<1>的名称为“欲取整的小数”，类型为“双精度小数型（double）”。

※四舍五入

调用格式： 〈双精度小数型〉 四舍五入 （欲被四舍五入的数值，［被舍入的位置］）

英文名称：round

返回按照指定的方式进行四舍五入运算的结果数值。本命令为初级命令。

参数<1>的名称为“欲被四舍五入的数值”，类型为“双精度小数型（double）”。

参数<2>的名称为“被舍入的位置”，类型为“整数型（int）”，可以被省略。如果大于0，表示小数点右边应保留的位数；如果等于0，表示舍入到整数；如果小于0，表示小数点左边舍入到的位置。例如：四舍五入 (1056.65, 1) 返回 1056.7； 四舍五入 (1056.65, 0) 返回 1057； 四舍五入 (1056.65, -1) 返回 1060。如果省略本参数，则默认为0。

※求次方

调用格式： 〈双精度小数型〉 求次方 （欲求次方数值，次方数）

英文名称：pow

返回指定数值的指定次方。本命令为初级命令。

参数<1>的名称为“欲求次方数值”，类型为“双精度小数型（double）”。参数值指定欲求其某次方的数值。

参数<2>的名称为“次方数”，类型为“双精度小数型（double）”。参数值指定对欲求次方数值的运算指数。

※求平方根

调用格式： 〈双精度小数型〉 求平方根 （欲求其平方根的数值）

英文名称：sqr

返回指定参数的平方根。本命令为初级命令。

参数<1>的名称为“欲求其平方根的数值”，类型为“双精度小数型（double）”。参数值如果小于零将导致计算错误。

※求正弦

调用格式： 〈双精度小数型〉 求正弦 （欲进行计算的角）

英文名称：sin

返回指定角的正弦值。本命令为初级命令。

参数<1>的名称为“欲进行计算的角”，类型为“双精度小数型（double）”。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

※求余弦

调用格式： 〈双精度小数型〉 求余弦 （欲进行计算的角）

英文名称：cos

返回指定角的余弦值。本命令为初级命令。

参数<1>的名称为“欲进行计算的角”，类型为“双精度小数型（double）”。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

※求正切

调用格式： 〈双精度小数型〉 求正切 （欲进行计算的角）

英文名称：tan

返回指定角的正切值。本命令为初级命令。

参数<1>的名称为“欲进行计算的角”，类型为“双精度小数型（double）”。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

※求反正切

调用格式： 〈双精度小数型〉 求反正切 （欲求其反正切值的数值）

英文名称：atn

返回指定数的反正切值。本命令为初级命令。

参数<1>的名称为“欲求其反正切值的数值”，类型为“双精度小数型（double）”。

※求自然对数

调用格式： 〈双精度小数型〉 求自然对数 （欲求其自然对数的数值）

英文名称：log

返回指定参数的自然对数值。自然对数是以 e 为底的对数。常量 #e 的值大约是 2.718282。本命令为初级命令。

参数<1>的名称为“欲求其自然对数的数值”，类型为“双精度小数型（double）”。

※求反对数

调用格式： 〈双精度小数型〉 求反对数 （欲求其反对数的数值）

英文名称：exp

返回 e（自然对数的底）的某次方。本命令为初级命令。

参数<1>的名称为“欲求其反对数的数值”，类型为“双精度小数型（double）”。如果参数值超过 709.782712893，将导致计算溢出。

※是否运算正确

调用格式： 〈逻辑型〉 是否运算正确 （欲校验的计算结果）

英文名称：IsCalcOK

对“求次方”、“求平方根”、“求正弦值”、“求余弦值”、“求正切值”、“求反正切值”、“求自然对数”、“求反对数”等等数学运算命令所计算出来的双精度结果数值进行校验，如果该数值正确有效，返回真。如果该数值是运算错误或运算溢出后的结果，返回假。本命令为初级命令。

参数<1>的名称为“欲校验的计算结果”，类型为“双精度小数型（double）”。

※置随机数种子

调用格式： 〈无返回值〉 置随机数种子 （［欲置入的种子数值］）

英文名称：randomize

为随机数生成器初始化一个种子值，不同的种子值将导致“取随机数”命令返回不同的随机数系列。本命令为初级命令。

参数<1>的名称为“欲置入的种子数值”，类型为“整数型（int）”，可以被省略。如果省略本参数，将默认使用当前计算机系统的时钟值。

※取随机数

调用格式： 〈整数型〉 取随机数 （［欲取随机数的最小值］，［欲取随机数的最大值］）

英文名称：rnd

返回一个指定范围内的随机数值。在使用本命令取一系列的随机数之前，应该先使用“置随机数种子”命令为随机数生成器初始化一个种子值。本命令为初级命令。

参数<1>的名称为“欲取随机数的最小值”，类型为“整数型（int）”，可以被省略。参数必须大于或等于零。本参数如果被省略，默认为 0 。

参数<2>的名称为“欲取随机数的最大值”，类型为“整数型（int）”，可以被省略。参数必须大于或等于零。本参数如果被省略，默认为无限。


逻辑比较

等于 | 不等于 | 小于 | 大于
小于或等于 | 大于或等于 | 近似等于 | 并且
或者 | 取反 |  |

※等于

调用格式： 〈逻辑型〉 等于 （被比较值，比较值）

被比较值与比较值相同时返回真，否则返回假，运算符号为“=”或“==”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型必须与“被比较值”一致或者可以相互转换。

※不等于

调用格式： 〈逻辑型〉 不等于 （被比较值，比较值）

被比较值与比较值不相同时返回真，否则返回假，运算符号为“<>”或“!=”或“≠”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型必须与“被比较值”一致或者可以相互转换。

※小于

调用格式： 〈逻辑型〉 小于 （被比较值，比较值）

被比较值小于比较值时返回真，否则返回假，运算符号为“<”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。被比较值的数据类型可以为数值型、日期时间型、文本型。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

※大于

调用格式： 〈逻辑型〉 大于 （被比较值，比较值）

被比较值大于比较值时返回真，否则返回假，运算符号为“>”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。被比较值的数据类型可以为数值型、日期时间型、文本型。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

※小于或等于

调用格式： 〈逻辑型〉 小于或等于 （被比较值，比较值）

被比较值小于或等于比较值时返回真，否则返回假，运算符号为“<=”或“≤”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。被比较值的数据类型可以为数值型、日期时间型、文本型。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

※大于或等于

调用格式： 〈逻辑型〉 大于或等于 （被比较值，比较值）

被比较值大于或等于比较值时返回真，否则返回假，运算符号为“>=”或“≥”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。被比较值的数据类型可以为数值型、日期时间型、文本型。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

※近似等于

调用格式： 〈逻辑型〉 近似等于 （被比较文本，比较文本）

英文名称：like

当比较文本在被比较文本的首部被包容时返回真，否则返回假，运算符号为“?=”或“≈”。本命令为初级命令。

参数<1>的名称为“被比较文本”，类型为“文本型（text）”。

参数<2>的名称为“比较文本”，类型为“文本型（text）”。

※并且

调用格式： 〈逻辑型〉 并且 （逻辑值一，逻辑值二，… ）

英文名称：and

如果所提供的两个参数逻辑值都为真则返回真，否则返回假，运算符号为“&&”或“And”或“且”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“逻辑值一”，类型为“逻辑型（bool）”。

参数<2>的名称为“逻辑值二”，类型为“逻辑型（bool）”。

※或者

调用格式： 〈逻辑型〉 或者 （逻辑值一，逻辑值二，… ）

英文名称：or

如果所提供的两个参数逻辑值中任意有一个为真则返回真，否则返回假，运算符号为“||”或“Or”或“或”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“逻辑值一”，类型为“逻辑型（bool）”。

参数<2>的名称为“逻辑值二”，类型为“逻辑型（bool）”。

※取反

调用格式： 〈逻辑型〉 取反 （被反转的逻辑值）

英文名称：not

如果参数值为真则返回假，如果参数值为假则返回真。本命令为初级命令。

参数<1>的名称为“被反转的逻辑值”，类型为“逻辑型（bool）”。


位运算

位取反

位与

位或

位异或

※位取反

调用格式： 〈整数型〉 位取反 （欲取反的数值）

英文名称：bnot

将指定数值每一个比特位的值取反后返回。本命令为中级命令。

参数<1>的名称为“欲取反的数值”，类型为“整数型（int）”。

※位与

调用格式： 〈整数型〉 位与 （位运算数值一，位运算数值二，… ）

英文名称：band

如两个数值有某共同比特位为1，则返回值的对应位也为1，否则为0。返回计算后的结果。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“位运算数值一”，类型为“整数型（int）”。

参数<2>的名称为“位运算数值二”，类型为“整数型（int）”。

※位或

调用格式： 〈整数型〉 位或 （位运算数值一，位运算数值二，… ）

英文名称：bor

如两个数值中有一个数值的某一比特位不为零，则返回值的对应位就为1，否则为0。返回计算后的结果。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“位运算数值一”，类型为“整数型（int）”。

参数<2>的名称为“位运算数值二”，类型为“整数型（int）”。

※位异或

调用格式： 〈整数型〉 位异或 （位运算数值一，位运算数值二，… ）

英文名称：bxor

如两个数值对应比特位的值不相等，则返回值的对应位就为1，否则为0。返回计算后的结果。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“位运算数值一”，类型为“整数型（int）”。

参数<2>的名称为“位运算数值二”，类型为“整数型（int）”。


容器操作

赋值

连续赋值

※赋值

调用格式： 〈无返回值〉 赋值 （被赋值的容器或容器数组，用作赋于的值或资源）

英文名称：set

将指定的常数、常数集、常量、资源、对象或者容器赋于到指定的容器或容器数组中去。运算符号为“=”。本命令为初级命令。

参数<1>的名称为“被赋值的容器或容器数组”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。

参数<2>的名称为“用作赋于的值或资源”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。

※连续赋值

调用格式： 〈无返回值〉 连续赋值 （用作赋于的值或资源，被赋值的容器或容器数组，… ）

英文名称：store

将指定的常数、常数集、常量、资源、对象或者容器赋于到一系列容器或容器数组中去。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“用作赋于的值或资源”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。

参数<2>的名称为“被赋值的容器或容器数组”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。

数组操作 类别

重定义数组 | 取数组成员数 | 取数组下标 | 复制数组
加入成员 | 插入成员 | 删除成员 | 清除数组
数组排序 | 数组清零 |  |

※重定义数组

调用格式： 〈无返回值〉 重定义数组 （欲重定义的数组容器，是否保留以前的内容，数组对应维的上限值，… ）

英文名称：ReDim

本命令可以重新定义指定数组的维数及各维的上限值。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲重定义的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“是否保留以前的内容”，类型为“逻辑型（bool）”，初始值为“假”。

参数<3>的名称为“数组对应维的上限值”，类型为“整数型（int）”。

※取数组成员数

调用格式： 〈整数型〉 取数组成员数 （欲检查的容器）

英文名称：GetAryElementCount

取指定数组容器的全部成员数目，如果该容器不为数组，返回-1，因此本命令也可以用作检查指定容器是否为数组容器。本命令为初级命令。

参数<1>的名称为“欲检查的容器”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。参数值指定欲检查其成员数目的数组容器或者欲检查其是否为数组的容器。

※取数组下标

调用格式： 〈整数型〉 取数组下标 （欲取某维最大下标的数组容器，［欲取其最大下标的维］）

英文名称：UBound

返回指定数组维可用的最大下标（最小下标固定为1）。如果给定容器不为数组容器或指定维不存在，返回 0 。本命令为初级命令。

参数<1>的名称为“欲取某维最大下标的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。

参数<2>的名称为“欲取其最大下标的维”，类型为“整数型（int）”，可以被省略。1 表示第一维，2 表示第二维，如此类推。如果省略本参数，默认值是 1。

※复制数组

调用格式： 〈无返回值〉 复制数组 （复制到的数组容器，待复制的数组数据）

英文名称：CopyAry

将数组数据复制到指定的数组容器，该数组容器内的所有数据和数组维定义信息将被全部覆盖。本命令为初级命令。

参数<1>的名称为“复制到的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“待复制的数组数据”，类型为“通用型（all）”，提供参数数据时只能提供数组数据。

※加入成员

调用格式： 〈无返回值〉 加入成员 （欲加入成员的数组容器，欲加入的成员数据）

英文名称：AddElement

将数据加入到指定数组容器的尾部，并通过重新定义数组维数自动增加其成员数目。数组容器如为多维数组，加入完毕后将被转换为单维数组。本命令为初级命令。

参数<1>的名称为“欲加入成员的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“欲加入的成员数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值所指定成员数据的数据类型必须能够与第一个参数所指定的数组容器相匹配。

※插入成员

调用格式： 〈无返回值〉 插入成员 （欲插入成员的数组容器，欲插入的位置，欲插入的成员数据）

英文名称：InsElement

将数据插入到指定数组容器的指定位置，并通过重新定义数组维数自动增加其成员数目。数组容器如为多维数组，插入完毕后将被转换为单维数组。本命令为初级命令。

参数<1>的名称为“欲插入成员的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“欲插入的位置”，类型为“整数型（int）”。位置值从 1 开始，如果小于 1 或大于第一个参数所指定数组容器的成员数目 + 1，将不会插入任何数据。

参数<3>的名称为“欲插入的成员数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值所指定成员数据的数据类型必须能够与第一个参数所指定的数组容器相匹配。

※删除成员

调用格式： 〈整数型〉 删除成员 （欲删除成员的数组容器，欲删除的位置，［欲删除的成员数目］）

英文名称：RemoveElement

删除指定数组容器中的成员，并通过重新定义数组维数自动减少其成员数目。数组容器如为多维数组，删除完毕后将被转换为单维数组。返回所实际删除的成员数目。本命令为初级命令。

参数<1>的名称为“欲删除成员的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“欲删除的位置”，类型为“整数型（int）”。位置值从 1 开始，如果小于 1 或大于第一个参数所指定数组容器的成员数目，将不会删除任何数据。

参数<3>的名称为“欲删除的成员数目”，类型为“整数型（int）”，可以被省略。本参数如果被省略，默认为 1 。

※清除数组

调用格式： 〈无返回值〉 清除数组 （欲删除成员的数组容器）

英文名称：RemoveAll

删除指定数组容器中的所有成员，释放这些成员所占用的存储空间，重新定义该容器为单维 0 成员数组容器。本命令为初级命令。

参数<1>的名称为“欲删除成员的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

※数组排序

调用格式： 〈无返回值〉 数组排序 （数值数组容器，［排序方向是否为从小到大］）

英文名称：SortAry

对指定数值数组容器内的所有数组成员进行快速排序，不影响数组的维定义信息，排序结果存放回该数组容器。本命令为初级命令。

参数<1>的名称为“数值数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“排序方向是否为从小到大”，类型为“逻辑型（bool）”，可以被省略。如果参数值为真，排序方向为从小到大，否则为从大到小。如果本参数被省略，默认值为真。

※数组清零

调用格式： 〈无返回值〉 数组清零 （数值数组容器）

英文名称：ZeroAry

将指定数值数组容器内的所有成员值全部设置为零，不影响数组的维定义信息。本命令为初级命令。

参数<1>的名称为“数值数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。


环境存取

取命令行 | 取运行目录 | 取执行文件名 | 读环境变量
写环境变量 |  |  |

※取命令行

调用格式： 〈无返回值〉 取命令行 （存放被取回命令行文本的数组容器）

英文名称：GetCmdLine

本命令可以取出在启动易程序时附加在其可执行文件名后面的所有以空格分隔的命令行文本段。本命令为初级命令。

参数<1>的名称为“存放被取回命令行文本的数组容器”，类型为“文本型（text）”，提供参数数据时只能提供容器数组。在命令执行完毕后，本容器数组内被顺序填入在启动易程序时附加在其可执行文件名后面的以空格分隔的命令行文本段。容器数组内原有数据被全部销毁，容器数组的维数被自动调整为命令行文本段数。

※取运行目录

调用格式： 〈文本型〉 取运行目录 （）

英文名称：GetRunPath

取当前被执行的易程序文件所处的目录。本命令为初级命令。

※取执行文件名

调用格式： 〈文本型〉 取执行文件名 （）

英文名称：GetRunFileName

取当前被执行的易程序文件的名称。本命令为初级命令。

※读环境变量

调用格式： 〈文本型〉 读环境变量 （环境变量名称）

英文名称：GetEnv

返回文本，它关连于一个操作系统环境变量。成功时返回所取得的值，失败则返回空文本。本命令为初级命令。

参数<1>的名称为“环境变量名称”，类型为“文本型（text）”。

※写环境变量

调用格式： 〈逻辑型〉 写环境变量 （环境变量名称，欲写入内容）

英文名称：PutEnv

修改或建立指定的操作系统环境变量。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“环境变量名称”，类型为“文本型（text）”。

参数<2>的名称为“欲写入内容”，类型为“文本型（text）”。


拼音处理

取所有发音 | 取发音数目 | 取拼音 | 取声母
取韵母 | 发音比较 | 输入字比较 |

※取所有发音

调用格式： 〈文本型数组〉 取所有发音 （欲取其拼音的汉字）

英文名称：GetAllPY

返回包含指定汉字所有拼音编码的文本数组（支持多音字），目前仅支持国标汉字。返回的数组结果可以用“复制数组”命令保存到同类型数组容器。本命令为初级命令。

参数<1>的名称为“欲取其拼音的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个成员数目为 0 的空文本数组。

※取发音数目

调用格式： 〈整数型〉 取发音数目 （欲取其发音数目的汉字）

英文名称：GetPYCount

返回指定汉字的发音数目。本命令为初级命令。

参数<1>的名称为“欲取其发音数目的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回 0。

※取拼音

调用格式： 〈文本型〉 取拼音 （欲取其拼音编码的汉字，欲取拼音编码的索引）

英文名称：GetPY

返回包含指定汉字的指定拼音编码的文本。如果该指定拼音编码不存在，将返回空文本。目前仅支持国标汉字。多音字的第一个发音为常用音。本命令为初级命令。

参数<1>的名称为“欲取其拼音编码的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。

参数<2>的名称为“欲取拼音编码的索引”，类型为“整数型（int）”，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

※取声母

调用格式： 〈文本型〉 取声母 （欲取其拼音编码的汉字，欲取拼音编码的索引）

英文名称：GetSM

返回包含指定汉字指定拼音编码的声母部分文本。如果指定拼音编码不存在或该汉字此发音无声母，将返回空文本。目前仅支持国标汉字。本命令为初级命令。

参数<1>的名称为“欲取其拼音编码的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。

参数<2>的名称为“欲取拼音编码的索引”，类型为“整数型（int）”，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

※取韵母

调用格式： 〈文本型〉 取韵母 （欲取其拼音编码的汉字，欲取拼音编码的索引）

英文名称：GetYM

返回包含指定汉字指定拼音编码的韵母部分文本。如果指定拼音编码不存在，将返回空文本。目前仅支持国标汉字。本命令为初级命令。

参数<1>的名称为“欲取其拼音编码的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。

参数<2>的名称为“欲取拼音编码的索引”，类型为“整数型（int）”，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

※发音比较

调用格式： 〈逻辑型〉 发音比较 （待比较文本一，待比较文本二，是否支持南方音，［是否为模糊比较］）

英文名称：CompPY

比较两个文本的发音，如果发音相同返回真，否则返回假。对于文本中的非国标汉字部分，将仅进行简单的值比较。本命令为初级命令。

参数<1>的名称为“待比较文本一”，类型为“文本型（text）”。

参数<2>的名称为“待比较文本二”，类型为“文本型（text）”。

参数<3>的名称为“是否支持南方音”，类型为“逻辑型（bool）”，初始值为“真”。为真则支持南方音。如果支持南方音，比较时将认为所有相近的发音都相同。如： n 和 l、 z 和 zh、 ie 和 ue 等等。

参数<4>的名称为“是否为模糊比较”，类型为“逻辑型（bool）”，可以被省略。本参数为真时，当待比较文本一的发音在待比较文本二的首部被包容时即认为比较通过。如果被省略，默认值为假。

※输入字比较

调用格式： 〈逻辑型〉 输入字比较 （待比较拼音输入字，待比较普通文本，是否支持南方音，［拼音输入字类别］）

英文名称：CompPYCode

将一个拼音输入字文本与另外一个普通文本比较，如果两者相符，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“待比较拼音输入字”，类型为“文本型（text）”。拼音输入字有以下三类：

一、首拼及全拼类： 如：“jsj”匹配“计算机”，同时“jisuanji”也匹配“计算机”。系统自动判别该输入字具体是首拼方式还是全拼方式；

二、双拼类： 如：“jisrji”匹配“计算机”，双拼编码的方案与 Windows 系统下的双拼输入法一致；

三、自动判别类： 使用此类别需在拼音输入字的首部加一个半角字符用作判别：分号 (“;”) 代表首拼及全拼类，冒号 (“:”) 代表双拼类，如既不为分号也不为冒号，则默认为首拼及全拼类。如“jsj”、“;jsj”、“;jisuanji”、“:jisrji”都匹配“计算机”。

另：书写拼音输入字时的一些规则：

一、为了匹配目标文本中的大小写英文字母，请在相应位置处使用对应的大写英文字母。如：“jsjA”匹配“计算机a”、“计算机A”；

二、为了匹配目标文本中的半角数字，请在相应位置处使用该数字。如：“jsj1”匹配“计算机1”；

三、为了匹配目标文本中的汉字符号或不知道发音的汉字，请在相应位置处使用该汉字。如：“j算j1”匹配“计算机1”；

四、拼音输入字内不能包含除了“_”以外的所有其他半角符号。

参数<2>的名称为“待比较普通文本”，类型为“文本型（text）”。

参数<3>的名称为“是否支持南方音”，类型为“逻辑型（bool）”，初始值为“真”。为真则支持南方音。如果支持南方音，比较时将认为所有相近的发音都相同。如： n 和 l、 z 和 zh、 ie 和 ue 等等。

参数<4>的名称为“拼音输入字类别”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量之一： 1、#首拼及全拼； 2、#双拼； 3、#自动判别。 如果省略本参数，默认为“#自动判别”。


文本操作

取文本长度 | 取文本左边 | 取文本右边 | 取文本中间
字符 | 取代码 | 寻找文本 | 倒找文本
到大写 | 到小写 | 到全角 | 到半角
到文本 | 删首空 | 删尾空 | 删首尾空
删全部空 | 文本替换 | 子文本替换 | 取空白文本
取重复文本 | 文本比较 | 分割文本 |

※取文本长度

调用格式： 〈整数型〉 取文本长度 （文本数据）

英文名称：len

取文本型数据的长度，不包含结束0。本命令为初级命令。

参数<1>的名称为“文本数据”，类型为“文本型（text）”。参数值指定欲检查其长度的文本数据。

※取文本左边

调用格式： 〈文本型〉 取文本左边 （欲取其部分的文本，欲取出字符的数目）

英文名称：left

返回一个文本，其中包含指定文本中从左边算起指定数量的字符。本命令为初级命令。

参数<1>的名称为“欲取其部分的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲取出字符的数目”，类型为“整数型（int）”。

※取文本右边

调用格式： 〈文本型〉 取文本右边 （欲取其部分的文本，欲取出字符的数目）

英文名称：right

返回一个文本，其中包含指定文本中从右边算起指定数量的字符。本命令为初级命令。

参数<1>的名称为“欲取其部分的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲取出字符的数目”，类型为“整数型（int）”。

※取文本中间

调用格式： 〈文本型〉 取文本中间 （欲取其部分的文本，起始取出位置，欲取出字符的数目）

英文名称：mid

返回一个文本，其中包含指定文本中从指定位置算起指定数量的字符。本命令为初级命令。

参数<1>的名称为“欲取其部分的文本”，类型为“文本型（text）”。

参数<2>的名称为“起始取出位置”，类型为“整数型（int）”。1为首位置，2为第2个位置，如此类推。

参数<3>的名称为“欲取出字符的数目”，类型为“整数型（int）”。

※字符

调用格式： 〈文本型〉 字符 （欲取其字符的字符代码）

英文名称：chr

返回一个文本，其中包含有与指定字符代码相关的字符。本命令为初级命令。

参数<1>的名称为“欲取其字符的字符代码”，类型为“字节型（byte）”。

※取代码

调用格式： 〈整数型〉 取代码 （欲取字符代码的文本，［欲取其代码的字符位置］）

英文名称：asc

返回文本中指定位置处字符的代码。如果指定位置超出文本长度，返回0。本命令为初级命令。

参数<1>的名称为“欲取字符代码的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲取其代码的字符位置”，类型为“整数型（int）”，可以被省略。1为首位置，2为第2个位置，如此类推。如果本参数被省略，默认为首位置。

※寻找文本

调用格式： 〈整数型〉 寻找文本 （被搜寻的文本，欲寻找的文本，［起始搜寻位置］，是否不区分大小写）

英文名称：InStr

返回一个整数值，指定一文本在另一文本中最先出现的位置，位置值从 1 开始。如果未找到，返回-1。本命令为初级命令。

参数<1>的名称为“被搜寻的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲寻找的文本”，类型为“文本型（text）”。

参数<3>的名称为“起始搜寻位置”，类型为“整数型（int）”，可以被省略。位置值从 1 开始。如果本参数被省略，默认为 1 。

参数<4>的名称为“是否不区分大小写”，类型为“逻辑型（bool）”，初始值为“假”。为真不区分大小写，为假区分。

※倒找文本

调用格式： 〈整数型〉 倒找文本 （被搜寻的文本，欲寻找的文本，［起始搜寻位置］，是否不区分大小写）

英文名称：InStrRev

返回一个整数值，指定一文本在另一文本中最后出现的位置，位置值从 1 开始。如果未找到，返回-1。本命令为初级命令。

参数<1>的名称为“被搜寻的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲寻找的文本”，类型为“文本型（text）”。

参数<3>的名称为“起始搜寻位置”，类型为“整数型（int）”，可以被省略。位置值从 1 开始。如果本参数被省略，默认为从被搜寻文本的尾部开始。

参数<4>的名称为“是否不区分大小写”，类型为“逻辑型（bool）”，初始值为“假”。为真不区分大小写，为假区分。

※到大写

调用格式： 〈文本型〉 到大写 （欲变换的文本）

英文名称：UCase

将文本中的小写英文字母变换为大写，返回变换后的结果文本。本命令为初级命令。

参数<1>的名称为“欲变换的文本”，类型为“文本型（text）”。

※到小写

调用格式： 〈文本型〉 到小写 （欲变换的文本）

英文名称：LCase

将文本中的大写英文字母变换为小写，返回变换后的结果文本。本命令为初级命令。

参数<1>的名称为“欲变换的文本”，类型为“文本型（text）”。

※到全角

调用格式： 〈文本型〉 到全角 （欲变换的文本）

英文名称：QJCase

将文本中的半角字母、空格或数字变换为全角，返回变换后的结果文本。本命令为初级命令。

参数<1>的名称为“欲变换的文本”，类型为“文本型（text）”。

※到半角

调用格式： 〈文本型〉 到半角 （欲变换的文本）

英文名称：BJCase

将文本中的全角字母、空格或数字变换为半角，返回变换后的结果文本。本命令为初级命令。

参数<1>的名称为“欲变换的文本”，类型为“文本型（text）”。

※到文本

调用格式： 〈文本型〉 到文本 （待转换的数据）

英文名称：str

返回一个文本，代表指定数值、逻辑值或日期时间被转换后的结果。如果为文本数据，将被直接返回。本命令为初级命令。

参数<1>的名称为“待转换的数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值只能为数值、逻辑值、字节集、日期时间或字节数组。

※删首空

调用格式： 〈文本型〉 删首空 （欲删除空格的文本）

英文名称：LTrim

返回一个文本，其中包含被删除了首部全角或半角空格的指定文本。本命令为初级命令。

参数<1>的名称为“欲删除空格的文本”，类型为“文本型（text）”。

※删尾空

调用格式： 〈文本型〉 删尾空 （欲删除空格的文本）

英文名称：RTrim

返回一个文本，其中包含被删除了尾部全角或半角空格的指定文本。本命令为初级命令。

参数<1>的名称为“欲删除空格的文本”，类型为“文本型（text）”。

※删首尾空

调用格式： 〈文本型〉 删首尾空 （欲删除空格的文本）

英文名称：trim

返回一个文本，其中包含被删除了首部及尾部全角或半角空格的指定文本。本命令为初级命令。

参数<1>的名称为“欲删除空格的文本”，类型为“文本型（text）”。

※删全部空

调用格式： 〈文本型〉 删全部空 （欲删除空格的文本）

英文名称：TrimAll

返回一个文本，其中包含被删除了所有全角或半角空格的指定文本。本命令为初级命令。

参数<1>的名称为“欲删除空格的文本”，类型为“文本型（text）”。

※文本替换

调用格式： 〈文本型〉 文本替换 （欲被替换的文本，起始替换位置，替换长度，［用作替换的文本］）

英文名称：ReplaceText

将指定文本的某一部分用其它的文本替换。本命令为初级命令。

参数<1>的名称为“欲被替换的文本”，类型为“文本型（text）”。

参数<2>的名称为“起始替换位置”，类型为“整数型（int）”。替换的起始位置，1为首位置，2为第2个位置，如此类推。

参数<3>的名称为“替换长度”，类型为“整数型（int）”。

参数<4>的名称为“用作替换的文本”，类型为“文本型（text）”，可以被省略。如果本参数被省略，则删除文本中的指定部分。

※子文本替换

调用格式： 〈文本型〉 子文本替换 （欲被替换的文本，欲被替换的子文本，［用作替换的子文本］，［进行替换的起始位置］，［替换进行的次数］，是否区分大小写）

英文名称：RpSubText

返回一个文本，该文本中指定的子文本已被替换成另一子文本，并且替换发生的次数也是被指定的。本命令为初级命令。

参数<1>的名称为“欲被替换的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲被替换的子文本”，类型为“文本型（text）”。

参数<3>的名称为“用作替换的子文本”，类型为“文本型（text）”，可以被省略。如果本参数被省略，默认为空文本。

参数<4>的名称为“进行替换的起始位置”，类型为“整数型（int）”，可以被省略。参数值指定被替换子文本的起始搜索位置。如果省略，默认从 1 开始。

参数<5>的名称为“替换进行的次数”，类型为“整数型（int）”，可以被省略。参数值指定对子文本进行替换的次数。如果省略，默认进行所有可能的替换。

参数<6>的名称为“是否区分大小写”，类型为“逻辑型（bool）”，初始值为“真”。为真区分大小写，为假不区分。

※取空白文本

调用格式： 〈文本型〉 取空白文本 （重复次数）

英文名称：space

返回具有指定数目半角空格的文本。本命令为初级命令。

参数<1>的名称为“重复次数”，类型为“整数型（int）”。

※取重复文本

调用格式： 〈文本型〉 取重复文本 （重复次数，待重复文本）

英文名称：string

返回一个文本，其中包含指定次数的文本重复结果。本命令为初级命令。

参数<1>的名称为“重复次数”，类型为“整数型（int）”。

参数<2>的名称为“待重复文本”，类型为“文本型（text）”。该文本将用于建立返回的文本。如果为空，将返回一个空文本。

※文本比较

调用格式： 〈整数型〉 文本比较 （待比较文本一，待比较文本二，是否区分大小写）

英文名称：StrComp

如果返回值小于0，表示文本一小于文本二；如果等于0，表示文本一等于文本二；如果大于0，表示文本一大于文本二。如果比较时区分大小写，也可以使用比较运算符进行同样的操作。本命令为初级命令。

参数<1>的名称为“待比较文本一”，类型为“文本型（text）”。

参数<2>的名称为“待比较文本二”，类型为“文本型（text）”。

参数<3>的名称为“是否区分大小写”，类型为“逻辑型（bool）”，初始值为“真”。为真区分大小写，为假不区分。

※分割文本

调用格式： 〈文本型数组〉 分割文本 （待分割文本，［用作分割的文本］，［要返回的子文本数目］）

英文名称：split

将指定文本进行分割，返回分割后的一维文本数组。本命令为初级命令。

参数<1>的名称为“待分割文本”，类型为“文本型（text）”。如果参数值是一个长度为零的文本，则返回一个空数组，即没有任何成员的数组。

参数<2>的名称为“用作分割的文本”，类型为“文本型（text）”，可以被省略。参数值用于标识子文本边界。如果被省略，则默认使用半角逗号字符作为分隔符。如果是一个长度为零的文本，则返回的数组仅包含一个成员，即完整的“待分割文本”。

参数<3>的名称为“要返回的子文本数目”，类型为“整数型（int）”，可以被省略。如果被省略，则默认返回所有的子文本。


字节集操作

取字节集长度 | 到字节集 | 从字节集转换 | 取字节集左边
取字节集右边 | 取字节集中间 | 寻找字节集 | 倒找字节集
字节集替换 | 子字节集替换 | 取空白字节集 | 取重复字节集
分割字节集 |  |  |

※取字节集长度

调用格式： 〈整数型〉 取字节集长度 （字节集数据）

英文名称：BinLen

取字节集型数据的长度。本命令为初级命令。

参数<1>的名称为“字节集数据”，类型为“字节集（bin）”。参数值指定欲检查其长度的字节集数据。

※到字节集

调用格式： 〈字节集〉 到字节集 （欲转换为字节集的数据）

英文名称：ToBin

将指定数据转换为字节集后返回转换结果。本命令为初级命令。

参数<1>的名称为“欲转换为字节集的数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值只能为基本数据类型数据或字节数组。

※从字节集转换

调用格式： 〈通用型〉 从字节集转换 （欲转换的字节集，欲转换为的数据类型）

英文名称：CnvFromBin

将字节集转换成指定数据类型的数据，返回转换后的结果。本命令为初级命令。

参数<1>的名称为“欲转换的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲转换为的数据类型”，类型为“整数型（int）”。参数值可以为以下常量： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 9、#子程序指针型； 10、#文本型。转换后的数据将自动进行有效性校验及转换处理。

※取字节集左边

调用格式： 〈字节集〉 取字节集左边 （欲取其部分的字节集，欲取出字节的数目）

英文名称：BinLeft

返回一个字节集，其中包含指定字节集中从左边算起指定数量的字节。本命令为初级命令。

参数<1>的名称为“欲取其部分的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲取出字节的数目”，类型为“整数型（int）”。

※取字节集右边

调用格式： 〈字节集〉 取字节集右边 （欲取其部分的字节集，欲取出字节的数目）

英文名称：BinRight

返回一个字节集，其中包含指定字节集中从右边算起指定数量的字节。本命令为初级命令。

参数<1>的名称为“欲取其部分的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲取出字节的数目”，类型为“整数型（int）”。

※取字节集中间

调用格式： 〈字节集〉 取字节集中间 （欲取其部分的字节集，起始取出位置，欲取出字节的数目）

英文名称：BinMid

返回一个字节集，其中包含指定字节集中从指定位置算起指定数量的字节。本命令为初级命令。

参数<1>的名称为“欲取其部分的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“起始取出位置”，类型为“整数型（int）”。1为首位置，2为第2个位置，如此类推。

参数<3>的名称为“欲取出字节的数目”，类型为“整数型（int）”。

※寻找字节集

调用格式： 〈整数型〉 寻找字节集 （被搜寻的字节集，欲寻找的字节集）

英文名称：InBin

返回一字节集在另一字节集中最先出现的位置，位置值从 1 开始。如果未找到，返回 -1。本命令为初级命令。

参数<1>的名称为“被搜寻的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲寻找的字节集”，类型为“字节集（bin）”。

※倒找字节集

调用格式： 〈整数型〉 倒找字节集 （被搜寻的字节集，欲寻找的字节集）

英文名称：InBinRev

返回一字节集在另一字节集中最后出现的位置，位置值从 1 开始。如果未找到，返回 -1。本命令为初级命令。

参数<1>的名称为“被搜寻的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲寻找的字节集”，类型为“字节集（bin）”。

※字节集替换

调用格式： 〈字节集〉 字节集替换 （欲替换其部分的字节集，起始替换位置，替换长度，［用作替换的字节集］）

英文名称：RpBin

将指定字节集的某一部分用其它的字节集替换，然后返回替换后的结果。本命令为初级命令。

参数<1>的名称为“欲替换其部分的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“起始替换位置”，类型为“整数型（int）”。替换的起始位置，1为首位置，2为第2个位置，如此类推。

参数<3>的名称为“替换长度”，类型为“整数型（int）”。

参数<4>的名称为“用作替换的字节集”，类型为“字节集（bin）”，可以被省略。如果本参数被省略，则删除字节集中的指定部分。

※子字节集替换

调用格式： 〈字节集〉 子字节集替换 （欲被替换的字节集，欲被替换的子字节集，［用作替换的子字节集］，［进行替换的起始位置］，［替换进行的次数］）

英文名称：RpSubBin

返回一个字节集，该字节集中指定的子字节集已被替换成另一子字节集，并且替换发生的次数也是被指定的。本命令为初级命令。

参数<1>的名称为“欲被替换的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲被替换的子字节集”，类型为“字节集（bin）”。

参数<3>的名称为“用作替换的子字节集”，类型为“字节集（bin）”，可以被省略。如果省略本参数，则默认为空字节集。

参数<4>的名称为“进行替换的起始位置”，类型为“整数型（int）”，可以被省略。被替换子字节集的起始搜索位置。如果省略，默认从1开始。

参数<5>的名称为“替换进行的次数”，类型为“整数型（int）”，可以被省略。对子字节集进行替换的次数。如果省略，默认进行所有可能的替换。

※取空白字节集

调用格式： 〈字节集〉 取空白字节集 （零字节数目）

英文名称：SpaceBin

返回具有特定数目 0 字节的字节集。本命令为初级命令。

参数<1>的名称为“零字节数目”，类型为“整数型（int）”。

※取重复字节集

调用格式： 〈字节集〉 取重复字节集 （重复次数，待重复的字节集）

英文名称：bin

返回一个字节集，其中包含指定次数的字节集重复结果。本命令为初级命令。

参数<1>的名称为“重复次数”，类型为“整数型（int）”。

参数<2>的名称为“待重复的字节集”，类型为“字节集（bin）”。该字节集将用于建立返回的字节集。如果为空，将返回一个空字节集。

※分割字节集

调用格式： 〈字节集数组〉 分割字节集 （待分割字节集，［用作分割的字节集］，［要返回的子字节集数目］）

英文名称：SplitBin

将指定字节集进行分割，返回分割后的一维字节集数组。本命令为初级命令。

参数<1>的名称为“待分割字节集”，类型为“字节集（bin）”。如果参数值是一个长度为零的字节集，则返回一个空数组，即没有任何成员的数组。

参数<2>的名称为“用作分割的字节集”，类型为“字节集（bin）”，可以被省略。用于标识子字节集边界。本参数如果被省略，则默认使用字节 0 作为分隔符。

参数<3>的名称为“要返回的子字节集数目”，类型为“整数型（int）”，可以被省略。如果被省略，则默认返回所有的子字节集。


数值转换

到数值 | 数值到大写 | 数值到人民币 | 数值到格式文本
取十六进制文本 | 取八进制文本 |  |

※到数值

调用格式： 〈双精度小数型〉 到数值 （待转换的文本或数值）

英文名称：val

返回包含于文本内的数值，文本中是一个适当类型的数值，支持全角书写方式。本命令也可用作将其他类型的数值数据转换为双精度小数。本命令为初级命令。

参数<1>的名称为“待转换的文本或数值”，类型为“通用型（all）”。

※数值到大写

调用格式： 〈文本型〉 数值到大写 （欲转换形式的数值，是否转换为简体）

英文名称：UNum

将数值转换为简体或繁体的大写形式，返回转换后的文本。本命令为初级命令。

参数<1>的名称为“欲转换形式的数值”，类型为“双精度小数型（double）”。

参数<2>的名称为“是否转换为简体”，类型为“逻辑型（bool）”，初始值为“假”。如果参数值为假，则转换为繁体。

※数值到人民币

调用格式： 〈文本型〉 数值到人民币 （欲转换形式的数值，是否转换为简体）

英文名称：NumToRMB

将数值转换为人民币金额的简体或繁体大写形式，返回转换后的文本。本命令为初级命令。

参数<1>的名称为“欲转换形式的数值”，类型为“双精度小数型（double）”。

参数<2>的名称为“是否转换为简体”，类型为“逻辑型（bool）”，初始值为“假”。如果参数值为假，则转换为繁体。

※数值到格式文本

调用格式： 〈文本型〉 数值到格式文本 （欲转换为文本的数值，［小数保留位数］，是否进行千分位分隔）

英文名称：NumToText

返回一个文本，代表指定数值被格式转换后的结果。本命令为初级命令。

参数<1>的名称为“欲转换为文本的数值”，类型为“双精度小数型（double）”。

参数<2>的名称为“小数保留位数”，类型为“整数型（int）”，可以被省略。如果大于0，表示小数点右边应四舍五入保留的位数；如果等于0，表示舍入到整数；如果小于0，表示小数点左边舍入到的位置。例如：数值到格式文本 (1056.65, 1, 假) 返回 “1056.7”； 数值到格式文本 (1056.65, 0, 假) 返回 “1056”； 数值到格式文本 (1056.65, -1, 假) 返回 “1060”。如果省略本参数，则默认为保留所有实际存在的小数位。

参数<3>的名称为“是否进行千分位分隔”，类型为“逻辑型（bool）”，初始值为“假”。如果参数值为真，数值文本的每个千分位上都将被自动插入一个逗号进行分隔。

※取十六进制文本

调用格式： 〈文本型〉 取十六进制文本 （欲取进制文本的数值）

英文名称：hex

返回一个文本，代表指定数值的十六进制形式。本命令为初级命令。

参数<1>的名称为“欲取进制文本的数值”，类型为“整数型（int）”。

※取八进制文本

调用格式： 〈文本型〉 取八进制文本 （欲取进制文本的数值）

英文名称：oct

返回一个文本，代表指定数值的八进制形式。本命令为初级命令。

参数<1>的名称为“欲取进制文本的数值”，类型为“整数型（int）”。


时间操作

到时间 | 增减时间 | 取时间间隔 | 取某月天数
时间到文本 | 取时间部分 | 取年份 | 取月份
取日 | 取星期几 | 取小时 | 取分钟
取秒 | 指定时间 | 取现行时间 | 置现行时间
取日期 | 取时间 |  |

※到时间

调用格式： 〈日期时间型〉 到时间 （欲转换的文本）

英文名称：ToTime

将指定文本转换为时间并返回。如果给定文本不符合书写格式要求或者时间值错误导致不能进行转换，将返回100年1月1日。如果给定参数本身就是时间数据，将直接返回该时间。本命令为初级命令。

参数<1>的名称为“欲转换的文本”，类型为“通用型（all）”。文本内容应按以下格式之一提供，年份后的时间部分可以省略：

1、1973年11月15日 12时30分25秒

2、1973/11/15 12:30:25 3、1973/11/15/12/30/25

4、1973/11/15/12:30:25 5、1973-11-15-12-30-25

6、1973-11-15-12:30:25 7、19731115123025

※增减时间

调用格式： 〈日期时间型〉 增减时间 （时间，被增加部分，增加值）

英文名称：TimeChg

返回一个时间，这一时间被加上或减去了一段间隔。如果改变后的时间无效，将自动靠近最近的有效时间。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

参数<2>的名称为“被增加部分”，类型为“整数型（int）”。参数值指定增加或减少时间的哪一部分，可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#周； 5、#日； 6、#小时； 7、#分钟； 8、#秒。

参数<3>的名称为“增加值”，类型为“整数型（int）”。相对于被增加部分的增加或减少数值。

※取时间间隔

调用格式： 〈双精度小数型〉 取时间间隔 （时间1，时间2，取间隔部分）

英文名称：TimeDiff

返回一个数值，表示“时间1”减去“时间2”之后的间隔数目。注意：每个星期以星期天为第一天。本命令为初级命令。

参数<1>的名称为“时间1”，类型为“日期时间型（date）”。

参数<2>的名称为“时间2”，类型为“日期时间型（date）”。

参数<3>的名称为“取间隔部分”，类型为“整数型（int）”。参数值指定取时间间隔的哪一部分，可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#周； 5、#日； 6、#小时； 7、#分钟； 8、#秒。

※取某月天数

调用格式： 〈整数型〉 取某月天数 （年份，月份）

英文名称：GetDaysOfSpecMonth

返回指定月份所包含的天数。如果给定的月份无效，返回0。本命令为初级命令。

参数<1>的名称为“年份”，类型为“整数型（int）”。参数值从 100 到 9999。

参数<2>的名称为“月份”，类型为“整数型（int）”。参数值从 1 到 12。

※时间到文本

调用格式： 〈文本型〉 时间到文本 （欲转换到文本的时间，［转换部分］）

英文名称：TimeToText

将指定时间转换为文本并返回。本命令为初级命令。

参数<1>的名称为“欲转换到文本的时间”，类型为“日期时间型（date）”。

参数<2>的名称为“转换部分”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量： 1、#全部转换； 2、#日期部分； 3、#时间部分。如果省略了本参数，默认为“#全部转换”。

※取时间部分

调用格式： 〈整数型〉 取时间部分 （欲取其部分的时间，欲取的时间部分）

英文名称：TimePart

返回一个包含已知时间指定部分的整数。本命令为初级命令。

参数<1>的名称为“欲取其部分的时间”，类型为“日期时间型（date）”。

参数<2>的名称为“欲取的时间部分”，类型为“整数型（int）”。参数值可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#自年首周数； 5、#日； 6、#小时； 7、#分钟； 8、#秒； 9、#星期几； 10、#自年首天数。其中：自年首周数、自年首天数均从 1 开始。

※取年份

调用格式： 〈整数型〉 取年份 （时间）

英文名称：year

返回一个值为 100 到 9999 之间的整数，表示指定时间中的年份。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取月份

调用格式： 〈整数型〉 取月份 （时间）

英文名称：month

返回一个值为 1 到 12 之间的整数，表示指定时间中的月份。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取日

调用格式： 〈整数型〉 取日 （时间）

英文名称：day

返回一个值为 1 到 31 之间的整数，表示一个月中的某一日。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取星期几

调用格式： 〈整数型〉 取星期几 （时间）

英文名称：WeekDay

返回一个值为 1 到 7 之间的整数，表示一个星期中的某一日。星期日为 1，星期一为 2，依此类推。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取小时

调用格式： 〈整数型〉 取小时 （时间）

英文名称：hour

返回一个值为 0 到 23 之间的整数，表示一天中的某一小时。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取分钟

调用格式： 〈整数型〉 取分钟 （时间）

英文名称：minute

返回一个值为 0 到 59 之间的整数，表示一小时中的某一分钟。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取秒

调用格式： 〈整数型〉 取秒 （时间）

英文名称：second

返回一个值为 0 到 59 之间的整数，表示一分钟中的某一秒。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※指定时间

调用格式： 〈日期时间型〉 指定时间 （年，［月］，［日］，［小时］，［分钟］，［秒］）

英文名称：GetSpecTime

返回包含指定年、月、日、小时、分、秒的时间。如果指定了无效时间，将自动使用最相近的有效时间代替。本命令为初级命令。

参数<1>的名称为“年”，类型为“整数型（int）”。

参数<2>的名称为“月”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 1 月。

参数<3>的名称为“日”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 1 日。

参数<4>的名称为“小时”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 0 时。

参数<5>的名称为“分钟”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 0 分钟。

参数<6>的名称为“秒”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 0 秒。

※取现行时间

调用格式： 〈日期时间型〉 取现行时间 （）

英文名称：now

返回当前系统日期及时间。本命令为初级命令。

※置现行时间

调用格式： 〈逻辑型〉 置现行时间 （欲设置的时间）

英文名称：SetSysTime

设置当前系统日期及时间。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲设置的时间”，类型为“日期时间型（date）”。

※取日期

调用格式： 〈日期时间型〉 取日期 （时间）

英文名称：GetDatePart

返回一个日期时间型数据的日期部分，其小时、分钟、秒被固定设置为0时0分0秒。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取时间

调用格式： 〈日期时间型〉 取时间 （时间）

英文名称：GetTimePart

返回一个日期时间型数据的时间部分，其年、月、日被固定设置为2000年1月1日。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。


磁盘操作

取磁盘总空间 | 取磁盘剩余空间 | 取磁盘卷标 | 置磁盘卷标
改变驱动器 | 改变目录 | 取当前目录 | 创建目录
删除目录 | 复制文件 | 移动文件 | 删除文件
文件更名 | 文件是否存在 | 寻找文件 | 取文件时间
取文件尺寸 | 取文件属性 | 置文件属性 | 取临时文件名
读入文件 | 写到文件 |  |

※取磁盘总空间

调用格式： 〈整数型〉 取磁盘总空间 （［磁盘驱动器字符］）

英文名称：GetDiskTotalSpace

返回以 1024 字节（KB）为单位的指定磁盘全部空间。如果失败，返回-1。本命令为初级命令。

参数<1>的名称为“磁盘驱动器字符”，类型为“文本型（text）”，可以被省略。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

※取磁盘剩余空间

调用格式： 〈整数型〉 取磁盘剩余空间 （［磁盘驱动器字符］）

英文名称：GetDiskFreeSpace

返回以 1024 字节（KB）为单位的指定磁盘现行剩余空间。如果失败，返回-1。本命令为初级命令。

参数<1>的名称为“磁盘驱动器字符”，类型为“文本型（text）”，可以被省略。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

※取磁盘卷标

调用格式： 〈文本型〉 取磁盘卷标 （［磁盘驱动器字符］）

英文名称：GetDiskLabel

返回指定磁盘的卷标文本。本命令为初级命令。

参数<1>的名称为“磁盘驱动器字符”，类型为“文本型（text）”，可以被省略。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

※置磁盘卷标

调用格式： 〈逻辑型〉 置磁盘卷标 （［磁盘驱动器字符］，欲置入的卷标文本）

英文名称：SetDiskLabel

设置指定磁盘的卷标文本。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“磁盘驱动器字符”，类型为“文本型（text）”，可以被省略。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

参数<2>的名称为“欲置入的卷标文本”，类型为“文本型（text）”。

※改变驱动器

调用格式： 〈逻辑型〉 改变驱动器 （欲改变到的驱动器）

英文名称：ChDrive

改变当前的缺省驱动器。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲改变到的驱动器”，类型为“文本型（text）”。参数值指明一个存在的驱动器。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果使用零长度的文本，则当前的驱动器不会改变。

※改变目录

调用格式： 〈逻辑型〉 改变目录 （欲改变到的目录）

英文名称：ChDir

改变当前的目录，但不会改变缺省驱动器位置。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲改变到的目录”，类型为“文本型（text）”。参数值指明哪个目录将成为新的缺省目录，可能会包含驱动器。如果没有指定驱动器，则在当前的驱动器上改变缺省目录。

※取前目录当

调用格式： 〈文本型〉 取前目录当（）

英文名称：CurDir

返回一个文本，用来代表当前的目录。如果失败，返回空文本。本命令为初级命令。

※创建目录

调用格式： 〈逻辑型〉 创建目录 （欲创建的目录名称）

英文名称：MkDir

创建一个新的目录。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲创建的目录名称”，类型为“文本型（text）”。

※删除目录

调用格式： 〈逻辑型〉 删除目录 （欲删除的目录名称）

英文名称：RmDir

删除一个存在的目录。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲删除的目录名称”，类型为“文本型（text）”。该目录应实际存在，如果目录中存在文件或子目录，将被一并删除，因此使用本命令请千万慎重。

※复制文件

调用格式： 〈逻辑型〉 复制文件 （被复制的文件名，复制到的文件名）

英文名称：FileCopy

成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“被复制的文件名”，类型为“文本型（text）”。

参数<2>的名称为“复制到的文件名”，类型为“文本型（text）”。

※移动文件

调用格式： 〈逻辑型〉 移动文件 （被移动的文件，移动到的位置）

英文名称：FileMove

将文件从一个位置移动到另外一个位置。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“被移动的文件”，类型为“文本型（text）”。

参数<2>的名称为“移动到的位置”，类型为“文本型（text）”。

※删除文件

调用格式： 〈逻辑型〉 删除文件 （欲删除的文件名）

英文名称：kill

成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲删除的文件名”，类型为“文本型（text）”。

※文件更名

调用格式： 〈逻辑型〉 文件更名 （欲更名的原文件或目录名，欲更改为的现文件或目录名）

英文名称：name

重新命名一个文件或目录。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲更名的原文件或目录名”，类型为“文本型（text）”。

参数<2>的名称为“欲更改为的现文件或目录名”，类型为“文本型（text）”。

※文件是否存在

调用格式： 〈逻辑型〉 文件是否存在 （欲测试的文件名称）

英文名称：IsFileExist

判断指定的磁盘文件是否真实存在。如存在返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲测试的文件名称”，类型为“文本型（text）”。

※寻找文件

调用格式： 〈文本型〉 寻找文件 （［欲寻找的文件或目录名称］，［欲寻找文件的属性］）

英文名称：dir

返回一个文本，用以表示所找到的文件名或目录名，它必须与所要求的名称格式或文件属性相匹配。支持使用多字符 (*) 和单字符 (?) 通配符来指定多重文件。在某子程序中第一次调用本命令时，必须指定“欲寻找文件”参数，否则将返回空文本 (“”)。在第一次调用以后如果想得到其它匹配的文件名，再一次调用本命令，且不要提供欲寻找文件名参数。如果已没有合乎条件的文件，本命令会返回一个空文本。一旦返回值为空文本，要再次调用本命令时，就必须指定“欲寻找文件”参数。不必访问完所有当前匹配的文件名，就可以使用一个新的“欲寻找文件”进行新的寻找。本命令为初级命令。

参数<1>的名称为“欲寻找的文件或目录名称”，类型为“文本型（text）”，可以被省略。可以使用多字符 (*) 和单字符 (?) 通配符来指定多重文件。在非首次寻找文件时，参数值必须为空或被省略。

参数<2>的名称为“欲寻找文件的属性”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值或其和： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 16、#子目录； 32、#存档文件 。通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数，默认为搜寻除子目录外的所有文件。

※取文件时间

调用格式： 〈日期时间型〉 取文件时间 （文件名）

英文名称：FileDateTime

返回指定文件被创建或最后修改后的日期和时间。如果该文件不存在，将返回100年1月1日。本命令为初级命令。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

※取文件尺寸

调用格式： 〈整数型〉 取文件尺寸 （文件名）

英文名称：FileLen

返回一个文件的长度，单位是字节。如果该文件不存在，将返回 -1。本命令为初级命令。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

※取文件属性

调用格式： 〈整数型〉 取文件属性 （文件名）

英文名称：GetAttr

返回一个文件或目录的属性。此属性值由以下常量或其和构成： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 16、#子目录；32、#存档文件 。要判断是否设置了某个属性，在返回值与想要得知的属性值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示设置了这个属性值。如果取文件属性失败，将返回 -1。本命令为初级命令。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

※置文件属性

调用格式： 〈逻辑型〉 置文件属性 （欲设置其属性的文件名称，欲设置为的属性值）

英文名称：SetAttr

为一个文件设置属性信息。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲设置其属性的文件名称”，类型为“文本型（text）”。

参数<2>的名称为“欲设置为的属性值”，类型为“整数型（int）”。参数值可以为以下常量值或其和： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 32、#存档文件 。通过将这些常量值加起来可以一次设置多个文件属性。

※取临时文件名

调用格式： 〈文本型〉 取临时文件名 （［目录名］）

英文名称：GetTempFileName

返回一个在指定目录中确定不存在的 .TMP 全路径文件名称。本命令为初级令。

参数<1>的名称为“目录名”，类型为“文本型（text）”，可以被省略。如果省略本参数，默认将使用系统的标准临时目录。

※读入文件

调用格式： 〈字节集〉 读入文件 （文件名）

英文名称：ReadFile

返回一个字节集，其中包含指定文件的所有数据。本命令为初级命令。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

※写到文件

调用格式： 〈逻辑型〉写到文件（文件名，欲写入文件的数据，… ）

英文名称：WriteFile

本命令用作将一个或数个字节集顺序写到指定文件中，文件原有内容被覆盖。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

参数<2>的名称为“欲写入文件的数据”，类型为“字节集（bin）”。


文件读写

打开文件 | 打开内存文件 | 关闭文件 | 关闭所有文件
锁住文件 | 解锁文件 | 移动读写位置 | 移到文件首
移到文件尾 | 读入字节集 | 写出字节集 | 读入文本
写出文本 | 读入一行 | 写文本行 | 读入数据
写出数据 | 是否在文件尾 | 取读写位置 | 取文件长度
插入字节集 | 插入文本 | 插入文本行 | 删除数据
打开加密文件 |  |  |

※打开文件

调用格式： 〈整数型〉 打开文件 （欲打开的文件名称，［打开方式］，［共享方式］）

英文名称：open

打开一个普通文件，以对文件进行输入或输出。成功返回被打开文件的文件号，失败返回 0。本命令为初级命令。

参数<1>的名称为“欲打开的文件名称”，类型为“文本型（text）”。

参数<2>的名称为“打开方式”，类型为“整数型（int）”，可以被省略。参数值说明对文件的操作方式，如果省略本参数，默认为“#读写”。方式值可以为以下常量之一：

1、#读入：从指定文件读入数据，如果该文件不存在则失败；

2、#写出：写出数据到指定文件，如果该文件不存在则失败；

3、#读写：从文件中读入数据或者写出数据到文件，如果该文件不存在则失败；

4、#重写：写出数据到指定文件。如果该文件不存在则先创建一个新文件，如果已经存在就先清除其中的所有数据；

5、#改写：写出数据到指定文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开；

6、#改读：从文件中读入数据或者写出数据到文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开。

参数<3>的名称为“共享方式”，类型为“整数型（int）”，可以被省略。参数值指定限制其它进程操作此文件的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一：

1、#无限制：允许其它进程任意读写此文件；

2、#禁止读：禁止其它进程读此文件；

3、#禁止写：禁止其它进程写此文件；

4、#禁止读写：禁止其它进程读写此文件。

※打开内存文件

调用格式： 〈整数型〉 打开内存文件 （）

英文名称：OpenMemFile

建立一个内存文件，以计算机内存为存储介质对数据进行文件式的快速输入或输出。成功返回被打开文件的文件号，失败返回 0。本命令为初级命令。

※关闭文件

调用格式： 〈无返回值〉 关闭文件 （欲关闭的文件号）

英文名称：close

关闭被打开的各种类型文件。本命令为初级命令。

参数<1>的名称为“欲关闭的文件号”，类型为“整数型（int）”。参数值指明欲关闭的文件号，该文件号由“打开文件”命令所返回。

※关闭所有文件

调用格式： 〈无返回值〉 关闭所有文件 （）

英文名称：reset

关闭所有现行被打开的文件。本命令为初级命令。

※锁住文件

调用格式： 〈逻辑型〉 锁住文件 （欲加锁或解锁的文件号，欲加锁或解锁的位置，欲加锁或解锁的长度，［加锁重试时间］）

英文名称：lock

在有若干个进程访问同一个文件的环境中，使用本命令拒绝其它用户对被打开文件中的某个区域进行读写访问。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲加锁或解锁的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲加锁或解锁的位置”，类型为“整数型（int）”。位置值从 0 开始。

参数<3>的名称为“欲加锁或解锁的长度”，类型为“整数型（int）”。

参数<4>的名称为“加锁重试时间”，类型为“整数型（int）”，可以被省略。本参数指定加锁失败后反复进行重试的毫秒数。如果被省略，默认为 0 ，即一旦失败立即返回。如果参数值提供为 -1 ，则反复进行重试，直到加锁成功为止。

※解锁文件

调用格式： 〈逻辑型〉 解锁文件 （欲加锁或解锁的文件号，欲加锁或解锁的位置，欲加锁或解锁的长度）

英文名称：Unlock

解除由“锁住文件”命令对文件所进行的锁定。成功返回真，失败返回假。注意：本命令调用时所提供的参数值必须与调用“锁住文件”命令时所提供的参数值完全一致。本命令为初级命令。

参数<1>的名称为“欲加锁或解锁的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲加锁或解锁的位置”，类型为“整数型（int）”。位置值从 0 开始。

参数<3>的名称为“欲加锁或解锁的长度”，类型为“整数型（int）”。

※移动读写位置

调用格式： 〈逻辑型〉 移动读写位置 （欲进行操作的文件号，［起始移动位置］，移动距离）

英文名称：FSeek

在被打开的文件中，设置下一个读或写操作的位置。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲进行操作的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“起始移动位置”，类型为“整数型（int）”，可以被省略。参数值指定从文件中开始移动的位置。可以为以下常量之一：1、#文件首； 2、#文件尾； 3、#现行位置。如果本参数被省略，默认值为“#文件首”。

参数<3>的名称为“移动距离”，类型为“整数型（int）”。参数值指定相对于起始移动位置的移动长度。

※移到文件首

调用格式： 〈逻辑型〉 移到文件首 （欲进行操作的文件号）

英文名称：SeekToBegin

在被打开的文件中，设置下一个读或写操作的位置到文件首。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲进行操作的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

※移到文件尾

调用格式： 〈逻辑型〉 移到文件尾 （欲进行操作的文件号）

英文名称：SeekToEnd

在被打开的文件中，设置下一个读或写操作的位置到文件尾。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲进行操作的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

※读入字节集

调用格式： 〈字节集〉 读入字节集 （欲读入数据的文件号，欲读入数据的长度）

英文名称：ReadBin

本命令用作从文件中当前读写位置读取并返回一段字节集数据，实际读入长度（即返回的字节集的尺寸）可能会小于欲读入长度。如果读入失败，将返回一个空字节集并且自动将当前文件读写位置移到文件尾部。本命令为初级命令。

参数<1>的名称为“欲读入数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲读入数据的长度”，类型为“整数型（int）”。

※写出字节集

调用格式： 〈逻辑型〉 写出字节集 （欲写出数据的文件号，欲写出的字节集数据，… ）

英文名称：WriteBin

本命令用作写出一段或数段字节集数据到文件中当前读写位置处。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的字节集数据”，类型为“字节集（bin）”。

※读入文本

调用格式： 〈文本型〉 读入文本 （欲读入文本数据的文件号，［欲读入文本数据的长度］）

英文名称：ReadText

本命令用作从文件中当前读写位置读取并返回一段文本数据，实际读入长度（即返回文本的尺寸）可能会小于欲读入长度。如果该数据中存在字节 0 或 26（文本结束标志），将仅返回该字节之前的数据。如果读入失败，将返回一个空文本并且自动将当前文件读写位置移到文件尾部。本命令为初级命令。

参数<1>的名称为“欲读入文本数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲读入文本数据的长度”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认读入文件中的所有文本数据。

※写出文本

调用格式： 〈逻辑型〉 写出文本 （欲写出文本的文件号，欲写出的文本，… ）

英文名称：WriteText

本命令用作写出一段或数段文本数据到文件中当前读写位置处。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出文本的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的文本”，类型为“通用型（all）”。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

※读入一行

调用格式： 〈文本型〉 读入一行 （欲读入文本数据的文件号）

英文名称：ReadLine

本命令用作从文件中当前读写位置读取并返回一行文本数据，行末的回车及换行符将被抛弃。如果读入失败，将返回一个空文本并且自动将当前文件读写位置移到文件尾部。本命令为初级命令。

参数<1>的名称为“欲读入文本数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

※写文本行

调用格式： 〈逻辑型〉 写文本行 （欲写出文本的文件号，欲写出的文本，… ）

英文名称：WriteLine

本命令用作写出一行或多行文本数据到文件中当前读写位置处，每行的尾部将被自动加上回车及换行符。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出文本的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的文本”，类型为“通用型（all）”。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

※读入数据

调用格式： 〈逻辑型〉 读入数据 （欲读入数据的文件号，存放所读入数据的容器，… ）

英文名称：read

本命令应该与“写出”命令配合使用，用作从文件中当前读写位置读取格式数据到指定的一系列容器或数组容器中。成功返回真，失败返回假。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲读入数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“存放所读入数据的容器”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。如果容器的数据类型为用户自定义或库定义数据类型，命令将会失败。

※写出数据

调用格式： 〈逻辑型〉 写出数据 （欲写出数据的文件号，欲写出的数据，… ）

英文名称：write

本命令应该与“读入”命令配合使用，用作写出一系列容器或数组容器的格式数据到文件中当前读写位置处。成功返回真，失败返回假。

具体各种数据类型数据的写出格式为：

1、数值型、逻辑型、日期时间型、子程序指针型： 为其所对应的实际数据；

2、文本型： 为文本数据 + 字节 0 ；

3、字节集型： 为字节集数据长度（整数） + 字节集实际数据；

4、以上各种数据类型的数组型数据： 为非数组情况下数据格式的顺序排列。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。如果被写出数据的数据类型为用户自定义或库定义数据类型，命令将会失败。

※是否在文件尾

调用格式： 〈逻辑型〉 是否在文件尾 （文件号，［是否为判断文本已读完］）

英文名称：feof

如果指定被打开文件的读写位置已经处于该文件数据的尾部，则返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“文件号”，类型为“整数型（int）”。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。

参数<2>的名称为“是否为判断文本已读完”，类型为“逻辑型（bool）”，可以被省略。如果本参数值为真而且下一即将读入的字节为字节值 0 或 26 等文本终止标记符或者当前读写位置已处于该文件数据的尾部，命令将返回真。如果本参数被省略或为假，将不进行此检查。

※取读写位置

调用格式： 〈整数型〉 取读写位置 （文件号）

英文名称：loc

返回指定被打开文件的当前读/写位置，位置值从 0 开始。如果给定文件号无效或失败，返回 -1 。本命令为初级命令。

参数<1>的名称为“文件号”，类型为“整数型（int）”。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。

※取文件长度

调用格式： 〈整数型〉 取文件长度 （文件号）

英文名称：lof

返回指定被打开文件的尺寸，该尺寸以字节为单位。如果给定文件号无效或失败，返回 -1 。本命令为初级命令。

参数<1>的名称为“文件号”，类型为“整数型（int）”。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。

※插入字节集

调用格式： 〈逻辑型〉 插入字节集 （欲写出数据的文件号，欲写出的字节集数据，… ）

英文名称：InsBin

本命令用作插入一段或数段字节集数据到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的字节集数据”，类型为“字节集（bin）”。

※插入文本

调用格式： 〈逻辑型〉 插入文本 （欲写出文本的文件号，欲写出的文本，… ）

英文名称：InsText

本命令用作插入一段或数段文本数据到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出文本的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的文本”，类型为“通用型（all）”。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

※插入文本行

调用格式： 〈逻辑型〉 插入文本行 （欲写出文本的文件号，欲写出的文本，… ）

英文名称：InsLine

本命令用作插入一段或数段文本行到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出文本的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的文本”，类型为“通用型（all）”。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

※删除数据

调用格式： 〈逻辑型〉 删除数据 （文件号，欲删除数据的字节数）

英文名称：RemoveData

本命令用作在文件中当前读写位置处删除一段字节数据，文件后面的数据顺序前移。该文件被打开时必须给予可读权限。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲删除数据的字节数”，类型为“整数型（int）”。

※打开加密文件

调用格式： 〈整数型〉 打开加密文件 （欲打开的文件名称，［打开方式］，［共享方式］，［文件密码］，［明文区长度］）

英文名称：CryptOpen

打开一个以指定密码加密的文件，以对此文件进行快速安全访问，支持大尺寸文件。成功返回被打开文件的文件号，失败返回 0。本命令为初级命令。

参数<1>的名称为“欲打开的文件名称”，类型为“文本型（text）”。

参数<2>的名称为“打开方式”，类型为“整数型（int）”，可以被省略。参数值说明对文件的操作方式，如果省略本参数，默认为“#读写”。方式值可以为以下常量之一：

1、#读入：从指定文件读入数据，如果该文件不存在则失败；

2、#写出：写出数据到指定文件，如果该文件不存在则失败；

3、#读写：从文件中读入数据或者写出数据到文件，如果该文件不存在则失败；

4、#重写：写出数据到指定文件。如果该文件不存在则先创建一个新文件，如果已经存在就先清除其中的所有数据；

5、#改写：写出数据到指定文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开；

6、#改读：从文件中读入数据或者写出数据到文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开。

参数<3>的名称为“共享方式”，类型为“整数型（int）”，可以被省略。参数值指定限制其它进程操作此文件的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一：

1、#无限制：允许其它进程任意读写此文件；

2、#禁止读：禁止其它进程读此文件；

3、#禁止写：禁止其它进程写此文件；

4、#禁止读写：禁止其它进程读写此文件。

参数<4>的名称为“文件密码”，类型为“文本型（text）”，可以被省略。如果即将打开的文件中不存在任何数据（即为空文件或将创建的新文件），本参数指定保护该文件时所将使用的密码，以后所有写入该文件中的数据都将使用此密码加密后写入。建议密码长度最少为6个字符以上，并且最好混合使用汉字、字母、数字、符号，以保证密码本身的安全性。如果即将打开的文件中已经存在数据，本参数提供访问此已有数据时所需要的正确密码，如果此数据没有加密，请提供空文本以表示不需要密码。注意系统不会去校验密码的正确性，如果提供错误的密码，读写已有文件数据将得到错误的结果，请千万注意。因此如果需要校验密码是否正确，请在加密后的文件中保存正确的密码文本或密码文本的数据摘要信息（见数据操作支持库一中的“取数据摘要”命令），然后在打开加密文件后读出该信息对密码进行验证。系统所使用的加密算法是国际标准的RC4算法，可以保证数据的安全性。如果本参数被省略，则默认为空文本，即无密码。

参数<5>的名称为“明文区长度”，类型为“整数型（int）”，可以被省略。本参数指定从文件首部开始不希望被加密部分的长度，系统在读写此区域内的数据时，不会使用密码对其进行加解密操作。此参数用作将加密文件分为明文区和密文区两部分，以方便某些应用程序同时保存一些明文数据。注意当打开已有加密数据的文件时，此参数值必须与新建此加密文件时所提供的参数值一致，否则会造成数据访问错误。如果本参数被省略，则默认值为0，即没有明文区。


系统处理

运行 | 取剪辑板文本 | 置剪辑板文本 | 剪辑板中可有文本
清除剪辑板 | 取屏幕宽度 | 取屏幕高度 | 取鼠标水平位置
取鼠标垂直位置 | 取颜色数 | 输入框 | 信息框
鸣叫 | 取启动时间 | 置等待鼠标 | 恢复鼠标
延时 | 取文本注册项 | 取数值注册项 | 取字节集注册项
写注册项 | 删除注册项 | 注册项是否存在 | 取默认底色
快照 | 读配置项 | 写配置项 | 取配置节名
取操作系统类别 |  |  |

※运行

调用格式： 〈逻辑型〉 运行 （欲运行的命令行，是否等待程序运行完毕，［被运行程序窗口显示方式］）

英文名称：run

本命令运行指定的可执行EXE文件或者外部命令。如果成功，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲运行的命令行”，类型为“文本型（text）”。

参数<2>的名称为“是否等待程序运行完毕”，类型为“逻辑型（bool）”，初始值为“假”。

参数<3>的名称为“被运行程序窗口显示方式”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量之一：1、#隐藏窗口； 2、#普通激活； 3、#最小化激活； 4、#最大化激活； 5、#普通不激活； 6、#最小化不激活。如果省略本参数，默认为“普通激活”方式。

※取剪辑板文本

调用格式： 〈文本型〉 取剪辑板文本 （）

英文名称：GetClipBoardText

返回存放于当前 Windows 系统剪辑板中的文本。如果当前剪辑板中无文本数据，将返回空文本。本命令为初级命令。

※置剪辑板文本

调用格式： 〈逻辑型〉 置剪辑板文本 （准备置入剪辑板的文本）

英文名称：SetClipBoardText

将指定文本存放到当前 Windows 系统剪辑板中去，剪辑板中的原有内容被覆盖。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“准备置入剪辑板的文本”，类型为“文本型（text）”。

※剪辑板中可有文本

调用格式： 〈逻辑型〉 剪辑板中可有文本 （）

英文名称：IsHaveTextInClip

如果当前 Windows 系统剪辑板中有文本数据，则返回真，否则返回假。本命令为初级命令。

※清除剪辑板

调用格式： 〈无返回值〉 清除剪辑板 （）

英文名称：ClearClipBoard

清除当前 Windows 系统剪辑板中的所有数据。本命令为初级命令。

※取屏幕宽度

调用格式： 〈整数型〉 取屏幕宽度 （）

英文名称：GetScreenWidth

返回屏幕当前显示区域的宽度，单位为像素点。本命令为初级命令。

※取屏幕高度

调用格式： 〈整数型〉 取屏幕高度 （）

英文名称：GetScreenHeight

返回屏幕当前显示区域的高度，单位为像素点。本命令为初级命令。

※取鼠标水平位置

调用格式： 〈整数型〉 取鼠标水平位置 （）

英文名称：GetCursorHorzPos

返回鼠标指针的当前水平位置，单位为像素点，相对于屏幕左边。本命令为初级命令。

※取鼠标垂直位置

调用格式： 〈整数型〉 取鼠标垂直位置 （）

英文名称：GetCursorVertPos

返回鼠标指针的当前垂直位置，单位为像素点，相对于屏幕顶边。本命令为初级命令。

※取颜色数

调用格式： 〈整数型〉 取颜色数 （）

英文名称：GetColorCount

返回当前显示方式所提供的最大颜色显示数目。本命令为初级命令。

※输入框

调用格式： 〈逻辑型〉 输入框 （［提示信息］，［窗口标题］，［初始文本］，存放输入内容的容器，［输入方式］）

英文名称：InputBox

在一对话框中显示提示，等待用户输入正文并按下按钮。如果用户在确认输入后（按下“确认输入”按钮或回车键）退出，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“提示信息”，类型为“文本型（text）”，可以被省略。如果提示信息包含多行，可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即：“字符 (13) + 字符 (10)”) 来分隔。如果提示信息太长或行数过多，超过部分将不会被显示出来。

参数<2>的名称为“窗口标题”，类型为“文本型（text）”，可以被省略。参数值指定显示在对话框标题栏中的文本。如果省略，默认为文本“请输入：”。

参数<3>的名称为“初始文本”，类型为“文本型（text）”，可以被省略。参数值指定初始设置到对话框输入文本框中的内容。

参数<4>的名称为“存放输入内容的容器”，类型为“通用型（all）”，提供参数数据时只能提供容器。参数值所指定的容器可以为数值或文本型，用于以不同的数据类型取回输入内容。

参数<5>的名称为“输入方式”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值： 1、#输入文本； 2、#输入整数； 3、#输入小数； 4、#输入密码。如果省略本参数，默认为“#输入文本”。

※信息框

调用格式： 〈整数型〉 信息框 （提示信息，按钮，［窗口标题］）

英文名称：MsgBox

在对话框中显示信息，等待用户单击按钮，并返回一个整数告诉用户单击哪一个按钮。该整数为以下常量值之一： 0、#确认钮； 1、#取消钮； 2、#放弃钮； 3、#重试钮； 4、#忽略钮； 5、#是钮； 6、#否钮。如果对话框有“取消”按钮，则按下 ESC 键与单击“取消”按钮的效果相同。本命令为初级命令。

参数<1>的名称为“提示信息”，类型为“通用型（all）”。提示信息只能为文本、数值、逻辑值或日期时间。如果提示信息为文本且包含多行，可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即：“字符 (13) + 字符 (10)”) 来分隔。

参数<2>的名称为“按钮”，类型为“整数型（int）”，初始值为“0”。参数值由以下几组常量值组成，在将这些常量值相加以生成参数值时，每组值只能取用一个数字（第五组除外）：

第一组（描述对话框中显示按钮的类型与数目）：

0、#确认钮； 1、#确认取消钮； 2、#放弃重试忽略钮； 3、#取消是否钮； 4、#是否钮； 5、#重试取消钮

第二组（描述图标的样式）：

16、#错误图标； 32、#询问图标； 48、#警告图标； 64、#信息图标

第三组（说明哪一个按钮是缺省默认值）：

0、#默认按钮一； 256、#默认按钮二； 512、#默认按钮三； 768、#默认按钮四

第四组（决定如何等待消息框结束）：

0、#程序等待； 4096、#系统等待

第五组（其它）：

65536、#位于前台； 524288、#文本右对齐

参数<3>的名称为“窗口标题”，类型为“文本型（text）”，可以被省略。参数值指定显示在对话框标题栏中的文本。如果省略，默认为文本“信息：”。

※鸣叫

调用格式： 〈无返回值〉 鸣叫 （）

英文名称：beep

通过计算机媒体设备或者喇叭发出一个声音。本命令为初级命令。

※取启动时间

调用格式： 〈整数型〉 取启动时间 （）

英文名称：GetTickCount

返回自 Windows 系统启动后到现在为止所经历过的毫秒数。本命令为初级命令。

※置等待鼠标

调用格式： 〈无返回值〉 置等待鼠标 （）

英文名称：SetWaitCursor

本命令设置现行鼠标的形状为沙漏形，用作在即将长时间执行程序前提示操作者。本命令为初级命令。

※恢复鼠标

调用格式： 〈无返回值〉 恢复鼠标 （）

英文名称：RestroeCursor

本命令恢复现行鼠标的原有形状，用作与“置等待鼠标”命令配对使用。本命令为初级命令。

※延时

调用格式： 〈无返回值〉 延时 （欲等待的时间）

英文名称：sleep

本命令暂停当前程序的运行并等待指定的时间。本命令为初级命令。

参数<1>的名称为“欲等待的时间”，类型为“整数型（int）”。本参数指定欲暂停程序执行的时间，单位为毫秒。

※取文本注册项

调用格式： 〈文本型〉 取文本注册项 （根目录，全路径注册项名，［默认文本］）

英文名称：GetTextRegItem

在 Windows 注册表中返回指定的文本类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取文本注册表项”命令不同的是本命令可以取任意位置处的注册表项。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

参数<3>的名称为“默认文本”，类型为“文本型（text）”，可以被省略。如果指定的注册表项不存在，将返回此默认文本。如果指定的注册表项不存在且本参数被省略，将返回一个长度为 0 的空文本。

※取数值注册项

调用格式： 〈整数型〉 取数值注册项 （根目录，全路径注册项名，［默认数值］）

英文名称：GetNumRegItem

在 Windows 注册表中返回指定的数值类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取数值注册表项”命令不同的是本命令可以取任意位置处的注册表项。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

参数<3>的名称为“默认数值”，类型为“整数型（int）”，可以被省略。如果指定的注册表项不存在，将返回此默认数值。如果指定的注册表项不存在且本参数被省略，将返回数值 0。

※取字节集注册项

调用格式： 〈字节集〉 取字节集注册项 （根目录，全路径注册项名，［默认字节集］）

英文名称：GetBinRegItem

在 Windows 注册表中返回指定的字节集类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取字节集注册表项”命令不同的是本命令可以取任意位置处的注册表项。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

参数<3>的名称为“默认字节集”，类型为“字节集（bin）”，可以被省略。如果指定的注册表项不存在，将返回此默认字节集。如果指定的注册表项不存在且本参数被省略，将返回空字节集。

※写注册项

调用格式： 〈逻辑型〉 写注册项 （根目录，全路径注册项名，欲写入值）

英文名称：SaveRegItem

在 Windows 注册表中保存或建立指定的注册表项。如欲写入注册项默认值，请在项目名后加“\”号，如“test\”。成功返回真，否则返回假。与“写注册表项”命令不同的是本命令可以写任意位置处的注册表项。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

参数<3>的名称为“欲写入值”，类型为“通用型（all）”。参数值指定欲写入到指定注册表项中的值，只能为数值、文本或者字节集，否则命令将失败。

※删除注册项

调用格式： 〈逻辑型〉 删除注册项 （根目录，全路径注册项名）

英文名称：DeleteRegItem

在 Windows 注册表中删除指定注册表项或注册表目录。如欲删除注册项默认值，请在项目名后加“\”号，如“test\”。成功返回真，否则返回假。与“删除注册表项”命令不同的是本命令可以删除任意位置处的注册表项或目录。注意在删除目录之前必须先删除该目录下所有的项目。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

※注册项是否存在

调用格式： 〈逻辑型〉 注册项是否存在 （根目录，全路径注册项名）

英文名称：IsRegItemExist

如果指定注册表项存在，返回真，否则返回假。如欲检查注册项是否有默认值，请在项目名后加“\”号，如“test\”。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

※取默认底色

调用格式： 〈整数型〉 取默认底色 （）

英文名称：GetBackColor

取回Windows系统的默认窗口背景颜色。本命令为初级命令。

※快照

调用格式： 〈字节集〉 快照 （［窗口句柄］，［输出宽度］，［输出高度］）

英文名称：GetWinPic

捕获指定窗口或屏幕上所有现有显示内容，返回相应图片数据。如果失败，返回空字节集。本命令为高级命令。

参数<1>的名称为“窗口句柄”，类型为“整数型（int）”，可以被省略。指定欲捕获其显示内容的窗口。如果被省略，默认为捕获屏幕显示内容。

参数<2>的名称为“输出宽度”，类型为“整数型（int）”，可以被省略。指定图片的输出宽度。如果小于0，参数值指定的是最终图片输出宽度相对于所取得图片宽度的百分比（最小为10%）；如果等于0，则按图片原宽度输出；如果大于0，指定输出图片的绝对宽度。如果本参数被省略，默认值为0。

参数<3>的名称为“输出高度”，类型为“整数型（int）”，可以被省略。指定图片的输出高度。如果小于0，参数值指定的是最终图片输出高度相对于所取得图片高度的百分比（最小为10%）；如果等于0，则按图片原高度输出；如果大于0，指定输出图片的绝对高度。如果本参数被省略，默认值为0。

※读配置项

调用格式： 〈文本型〉 读配置项 （配置文件名，节名称，配置项名称，［默认文本］）

英文名称：GetKeyText

读取指定配置文件中指定项目的文本内容。本命令为初级命令。

参数<1>的名称为“配置文件名”，类型为“文本型（text）”。指定配置文件的名称，通常以.ini作为文件名后缀。

参数<2>的名称为“节名称”，类型为“文本型（text）”。包含欲读入配置项所处节的名称。

参数<3>的名称为“配置项名称”，类型为“文本型（text）”。参数值指定欲读入配置项在其节中的名称。

参数<4>的名称为“默认文本”，类型为“文本型（text）”，可以被省略。如果指定配置项不存在，将返回此默认文本。如果指定配置项不存在且本参数被省略，将返回空文本。

※写配置项

调用格式： 〈逻辑型〉 写配置项 （配置文件名，节名称，［配置项名称］，［欲写入值］）

英文名称：SetKeyText

将指定文本内容写入指定配置项中或者删除指定的配置项或节，如果指定配置文件不存在，将会自动创建。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“配置文件名”，类型为“文本型（text）”。指定配置文件的名称，通常以.ini作为文件名后缀。

参数<2>的名称为“节名称”，类型为“文本型（text）”。包含欲写入配置项所处节的名称。

参数<3>的名称为“配置项名称”，类型为“文本型（text）”，可以被省略。参数值指定欲写入配置项在其节中的名称。如果参数值被省略，则删除指定节及其下的所有配置项。

参数<4>的名称为“欲写入值”，类型为“文本型（text）”，可以被省略。参数值指定欲写入到指定配置项中的文本。如果参数值被省略，则删除所指定配置项。

※取配置节名

调用格式： 〈文本型数组〉 取配置节名 （配置文件名）

英文名称：GetSectionNames

返回指定配置文件中所有已有节名的文本数组。本命令为初级命令。

参数<1>的名称为“配置文件名”，类型为“文本型（text）”。指定配置文件的名称，通常以.ini作为文件名后缀。

※取操作系统类别

调用格式： 〈整数型〉 取操作系统类别 （）

英文名称：GetSysVer

返回当前Windows系统的版本类别。返回值为以下值之一：0、未知； 1、Windows 32S； 2、Windows 9X (包含Win95、Win98、WinME等)； 3、Windows NT (包含WinNT、Win2000、WinXP等)。本命令为初级命令。


媒体播放

播放音乐

停止播放

播放MID

播放MP3

※播放音乐

调用格式： 〈逻辑型〉 播放音乐 （欲播放的音乐，［是否循环播放］）

英文名称：PlayMusic

可以播放 .WAV、.MID 声音文件或相应格式的字节集声音数据、声音资源。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲播放的音乐”，类型为“通用型（all）”。参数值可以为 .WAV、.MID 声音文件名称或相应格式的字节集声音数据、声音资源。

参数<2>的名称为“是否循环播放”，类型为“逻辑型（bool）”，可以被省略。为真表示指定音乐将被循环播放，否则仅只播放一次。如果本参数被省略，默认为仅播放一次。

※停止播放

调用格式： 〈无返回值〉 停止播放 （）

英文名称：PlayStop

停止正在播放的音乐。本命令为初级命令。

※播放MID

调用格式： 〈无返回值〉 播放MID （［播放次数］，［间隔时间］，欲播放的 MIDI 音乐，… ）

英文名称：PlayMID

可以自动连续播放多个 MIDI 声音文件（注意不支持 WAV ）或相应格式的字节集声音数据、声音资源。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“播放次数”，类型为“整数型（int）”，可以被省略。为 -1 表示指定音乐将被循环播放，否则仅只播放指定的次数。如果本参数被省略，默认值为 1 。

参数<2>的名称为“间隔时间”，类型为“整数型（int）”，可以被省略。指定 MIDI 音乐之间的播放间隔时间，单位为 0.1 秒。如果本参数被省略，默认值为 0 。

参数<3>的名称为“欲播放的 MIDI 音乐”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值可以为 MIDI 声音文件名称或相应格式的字节集声音数据、声音资源。

※播放MP3

调用格式： 〈无返回值〉 播放MP3 （［播放次数］，欲播放的 MP3 文件名，… ）

英文名称：PlayMP3

可以自动连续播放多个 MP3 音乐文件。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“播放次数”，类型为“整数型（int）”，可以被省略。为 -1 表示指定音乐将被循环播放，否则仅只播放指定的次数。如果本参数被省略，默认值为 1 。

参数<2>的名称为“欲播放的 MP3 文件名”，类型为“文本型（text）”，提供参数数据时可以同时提供数组或非数组数据。


程序调试

输出调试文本

暂停

检查

是否为调试版

※输出调试文本

调用格式： 〈无返回值〉 输出调试文本 （准备输出的调试文本信息，… ）

英文名称：OutputDebugText

本命令仅在易程序的调试版本中被执行，在发布版本中将被直接跳过。

使用本命令可以在 E 调试系统中的“输出”窗口内输出指定的文本行以帮助调试，该文本之前被自动加上一个星号，之后被自动加上回车换行符。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“准备输出的调试文本信息”，类型为“文本型（text）”。

※暂停

调用格式： 〈无返回值〉 暂停 （）

英文名称：stop

本命令仅在易程序的调试版本中被执行，在发布版本中将被直接跳过。

可以在子程序中的任何地方放置此命令，使用此命令，就相当于在程序代码中设置断点。本命令为初级命令。

※检查

调用格式： 〈无返回值〉 检查 （被校验的条件）

英文名称：assert

本命令仅在易程序的调试版本中被执行，在发布版本中将被直接跳过。

执行本命令时，如果给定参数的条件值被计算后结果为假，易程序的执行将被暂停且警示。可以在子程序中的任何地方放置此命令，使用此命令，就相当于在程序代码中设置条件断点。本命令为初级命令。

参数<1>的名称为“被校验的条件”，类型为“逻辑型（bool）”。如果此条件不能成立，即参数值为假，易程序的执行将被暂停且警示。

※是否为调试版

调用格式： 〈逻辑型〉 是否为调试版 （）

英文名称：IsDebugVer

如果当前 EXE 易程序执行文件为易语言编辑环境调试运行程序时编译出来的调试版本，返回真。否则表明为发布版本，返回假。本命令为初级命令。


其他命令

载入 | 选择 | 多项选择 | 是否为空
是否已创建 | 取数据类型尺寸 | 取颜色值 | 取事件单元
事件转移 | 复制窗口单元 | 处理事件 | 载入图片
卸载图片 | 取硬盘特征字 |  |

※载入

调用格式： 〈逻辑型〉 载入 （欲载入的窗口，［父窗口］，是否采用对话框方式）

英文名称：LoadWin

载入指定的窗口，根据窗口的“可视”属性决定是否显示它。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲载入的窗口”，类型为“窗口（window）”。参数值指定欲载入的窗口。

参数<2>的名称为“父窗口”，类型为“窗口（window）”，可以被省略。参数值指定欲载入窗口的父窗口，此窗口必须已经被载入。如果本参数被省略，表示无父窗口。如果窗口具有父窗口，其位置将永远位于父窗口的上面；当父窗口被关闭时，窗口将自动被关闭；当父窗口被禁止时，窗口将自动被禁止。

参数<3>的名称为“是否采用对话框方式”，类型为“逻辑型（bool）”，初始值为“真”。参数值指定用户在对被载入窗口进行操作的同时是否允许同时对其他窗口进行操作。如果本参数值为真： 1、即使被载入窗口的“可视”属性为假，在载入后也立即显示； 2、本命令一直等待到该窗口被销毁后才返回。

※选择

调用格式： 〈通用型〉 选择 （用作选择的逻辑值，待选择项一，待选择项二）

英文名称：iif

根据所提供参数的值，返回两部分中的其中一个。本命令为初级命令。

参数<1>的名称为“用作选择的逻辑值”，类型为“逻辑型（bool）”。如果该值为真，将返回第一个待选择项，否则将返回第二个待选择项。

参数<2>的名称为“待选择项一”，类型为“通用型（all）”。如果给定逻辑值为真，命令将返回本选择项。

参数<3>的名称为“待选择项二”，类型为“通用型（all）”。如果给定逻辑值为假，命令将返回本选择项。

※多项选择

调用格式： 〈通用型〉 多项选择 （索引值，待选择项数据，… ）

英文名称：choose

从参数列表项目中选择并返回一个值。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“索引值”，类型为“整数型（int）”。命令会根据本索引值来返回选择项列表中的某个值。如果索引值是 1，则命令会返回列表中的第 1 个选择项。如果索引值是 2，则会返回列表中的第 2 个选择项，以此类推。如果索引值小于 1 或者大于最大可选择项，将会产生运行错误。

参数<2>的名称为“待选择项数据”，类型为“通用型（all）”。

※是否为空

调用格式： 〈逻辑型〉 是否为空 （欲测试的参数容器）

英文名称：IsMissing

返回一个逻辑值，指出在调用子程序时是否为指定参数提供了数据（该参数必定有“可空”标志），如未提供，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲测试的参数容器”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。

※是否已创建

调用格式： 〈逻辑型〉 是否已创建 （欲被检查的窗口或窗口单元）

英文名称：IsCreated

如果指定的窗口或窗口单元有效且已经被载入或创建，返回真，否则返回假。对于窗口菜单项单元，如果其所处窗口已经被载入，命令将返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲被检查的窗口或窗口单元”，类型为“通用型（all）”。

※取数据类型尺寸

调用格式： 〈整数型〉 取数据类型尺寸 （欲取其尺寸的数据类型）

英文名称：GetDataTypeSize

取指定数据类型的数据尺寸，该数据类型不能为文本、字节集、库或用户自定义数据类型。本命令为初级命令。

参数<1>的名称为“欲取其尺寸的数据类型”，类型为“整数型（int）”。参数值可以为以下常量： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 9、#子程序指针型。

※取颜色值

调用格式： 〈整数型〉 取颜色值 （红色，绿色，蓝色）

英文名称：rgb

返回一个整数，用来表示一个红绿蓝颜色值。本命令为初级命令。

参数<1>的名称为“红色”，类型为“整数型（int）”。数值范围从 0 到 255，表示颜色中的红色成份。

参数<2>的名称为“绿色”，类型为“整数型（int）”。数值范围从 0 到 255，表示颜色中的绿色成份。

参数<3>的名称为“蓝色”，类型为“整数型（int）”。数值范围从 0 到 255，表示颜色中的蓝色成份。

※取事件单元

调用格式： 〈通用型〉 取事件单元 （）

英文名称：GetEventUnit

返回一个有效的单元型数据，指定当前所正在处理的事件是从何单元实际产生的。本命令主要用于在事件处理子程序中动态确定事件的来源。注意：只能在处理事件的过程中使用本命令，如果在其它情况下使用，将产生运行时错误。本命令为中级命令。

※事件转移

调用格式： 〈逻辑型〉 事件转移 （单元一，［单元二］）

英文名称：EventPost

设置将第一个单元上产生的所有事件转交由第二个同窗口同类型单元的事件处理子程序去处理，就好象此事件是在第二个单元上实际发生的一样。本命令可用来设置用同一事件处理子程序处理来自多个同类型单元的事件。使用时可与“取事件单元”命令、对象的“标记”属性等相配合。设置成功返回真，失败返回假。本命令为中级命令。

参数<1>的名称为“单元一”，类型为“通用型（all）”。参数值指定欲将其事件转移的单元。如果该参数值指定的不是窗口内的单元，而是窗口本身，则不考虑“单元二”参数的设置情况，直接取消被指定窗口上所有单元事件转移设置。

参数<2>的名称为“单元二”，类型为“通用型（all）”，可以被省略。参数值指定单元一事件转移到的目的单元，必须与单元一的类型相同且在同一窗口内，否则命令会失败。如果本参数被省略，将取消单元一的原有事件转移设置。

※复制窗口单元

调用格式： 〈逻辑型〉 复制窗口单元 （欲被复制的窗口单元，存放新创建单元的容器）

英文名称：CopyWinUnit

复制创建与指定窗口单元设计状态完全一致的新单元。该被复制单元将放在原单元的下面，其事件被自动转移到原单元上。如果复制时被复制窗口单元所在的窗口尚未被载入，那么复制出来的窗口单元也不会被立即创建，而会等到其所在窗口将来被载入时一并创建。并且此时复制出来的窗口单元将永久存在，就好象是用户在设计窗口时所加入的一样，不会因为其所在窗口被销毁而被抛弃；如果复制时被复制窗口单元所在的窗口已经被载入，该单元会被立即创建，但此时无论该单元的“可视”属性是真还是假，创建后的单元都将不会被显示，以便于用户进行属性调整。此时复制出来的窗口单元为临时存在，在其所在窗口被销毁后，此窗口单元将被抛弃，下次再载入原窗口时此窗口单元将不复存在。成功返回真，失败返回假。本命令为中级命令。

参数<1>的名称为“欲被复制的窗口单元”，类型为“通用型（all）”。参数值不能为窗口本身、窗口菜单项单元、选择夹窗口单元。

参数<2>的名称为“存放新创建单元的容器”，类型为“通用型（all）”，提供参数数据时只能提供容器。该容器数据类型必须与被复制窗口单元数据类型完全一致，否则命令会失败。

※处理事件

调用格式： 〈无返回值〉 处理事件 （）

英文名称：DoEvents

暂时转让控制权，以便让 Windows 操作系统有机会处理其它的如用户键盘或鼠标输入等事件。直到操作系统处理并发送完程序队列中的所有事件后，命令才会返回。本命令为中级命令。

※载入图片

调用格式： 〈整数型〉 载入图片 （欲被载入的图片）

英文名称：LoadPic

载入指定图片，以供画板、打印机等对象的“画图片”、“取图片宽度”、“取图片高度”之类成员命令使用。如成功则返回被载入图片的图片号，失败返回 0。本命令为初级命令。

参数<1>的名称为“欲被载入的图片”，类型为“通用型（all）”。参数值可以为 .JPG、.GIF、.BMP、.DIB、.ICO、.CUR 等等被支持格式的图片数据、图片资源或图片文件名。

※卸载图片

调用格式： 〈无返回值〉 卸载图片 （图片号）

英文名称：UnloadPic

卸载被载入的图片，图片被卸载后不能再被使用。如果某图片被载入后未被卸载，在易程序退出时将自动被卸载。本命令为初级命令。

参数<1>的名称为“图片号”，类型为“整数型（int）”。参数值必须为调用“载入图片”命令所返回的图片号。

※取硬盘特征字

调用格式： 〈整数型〉 取硬盘特征字 （）

英文名称：GetHDiskCode

返回电脑中第一个物理硬盘的物理特征字，该特征字是仅硬件相关的，也就是说与任何软件系统都无关（包括操作系统）。用户可以使用此特征字来限制自己的程序仅在某一台计算机上运行，以保护自己软件的版权。本命令可以在任何 Windows 系统版本下运行。命令执行后如果返回 0 ，表示此次取硬盘特征字失败。由于有可能是因为暂时的 I/O 冲突造成，因此失败后可以等待一段随机时间后再试（可以参看例程）。如果重复尝试四五次后仍然失败，表明该硬盘无法取出特征字。本命令为初级命令。


数据库

是否支持多用户 | 取错误码 | 取错误信息 | 创建
打开 | 替换打开 | 置当前库 | 取当前库
关闭 | 全部关闭 | 取库文件名 | 是否已打开
取记录数 | 取创建时间 | 取字段数 | 取字段名
改字段名 | 取字段类型 | 取字段尺寸 | 新建索引
置当前索引 | 取当前索引 | 更新索引 | 取索引数
取索引名 | 取索引字段 | 置加锁重试时间 | 锁住数据库
解锁数据库 | 锁住增删 | 解增删锁 | 锁住记录
解锁记录 | 全部解锁 | 取平均值 | 求和
取最大值 | 取最小值 | 取最大时间 | 取最小时间
计算数目 | 复制结构 | 复制记录 | 计算排序
排序 | 分类计算 | 添加 | 加记录
加空记录 | 替换 | 修改 | 删除
是否已删除 | 恢复删除 | 彻底删除 | 清空
读 | 写 | 读字段 | 写字段
附加字节集 | 附加备注 | 索引查找 | 查找
到首记录 | 到尾记录 | 跳过 | 取记录号
跳到 | 取标签 | 记录是否存在 | 标签跳转
首记录前 | 尾记录后 | 写出缓存 | 写出所有缓存
编辑 | 是否已加密 | 置数据库密码 | 密码输入框
复制密码 |  |  |

※是否支持多用户

调用格式： 〈逻辑型〉是否支持多用户（）

英文名称：MutiUser

检查本支持库所提供的数据库功能是否支持多用户同时对数据库操作。如果支持，返回真，否则返回假。本命令为初级命令。

※取错误码

调用格式： 〈整数型〉 取错误码 （）

英文名称：GetErrCode

如果执行某数据库命令失败，在其后执行本命令可以取回非 0 的数据库错误码值。如果该数据库命令执行成功，执行本命令将返回 0 。本命令为初级命令。

※取错误信息

调用格式： 〈文本型〉 取错误信息 （）

英文名称：GetErrMsg

如果执行某数据库命令失败，在其后执行本命令可以取回错误信息文本。如果该数据库命令执行成功，执行本命令将返回空文本。本命令为初级命令。

※创建

调用格式： 〈逻辑型〉 创建 （欲创建数据库的文件名，字段信息表）

英文名称：create

创建指定的数据库文件，如果该数据库文件存在，将被覆盖。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲创建数据库的文件名”，类型为“文本型（text）”。

参数<2>的名称为“字段信息表”，类型为“字段信息（FieldInf）”，提供参数数据时只能提供数组数据。参数数组值中顺序指定本数据库中所有字段的信息。

※打开

调用格式： 〈逻辑型〉 打开 （数据库文件名，［在程序中使用的别名］，［是否只读］，［共享方式］，［保留参数1］，［数据库密码］，［索引文件表］，… ）

英文名称：use

打开指定的数据库文件。成功返回真，并自动将当前数据库设置为此数据库，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。

参数<2>的名称为“在程序中使用的别名”，类型为“文本型（text）”，可以被省略。别名为在后面的程序中引用本数据库时可使用的另一个名称。欲引用一个已经被打开的数据库可以使用该数据库本身的名称（数据库名称为数据库文件名的无路径和后缀部分。譬如 c:\my documents\gz.edb ，其数据库名称为 gz ），也可以使用在此处所指定的别名。别名主要用作避开重复的数据库名称或者简化对长数据库名的引用。数据库名称与别名皆不区分大小写，在查找数据库时，系统将优先查找别名。如果本参数被省略，默认为没有别名。

参数<3>的名称为“是否只读”，类型为“逻辑型（bool）”，可以被省略。参数值说明是否仅对数据库进行读操作，如果省略本参数，默认为假。

参数<4>的名称为“共享方式”，类型为“整数型（int）”，可以被省略。参数值指定在多用户环境中限制其它用户操作此数据库的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一：

1、#无限制：允许其它用户任意操作此数据库；

2、#禁止读：禁止其它用户读此数据库；

3、#禁止写：禁止其它用户写此数据库；

4、#禁止读写：独占使用此数据库，禁止其它用户的任何操作。

参数<5>的名称为“保留参数1”，类型为“文本型（text）”，可以被省略。本参数仅用作保留参数位置。

参数<6>的名称为“数据库密码”，类型为“文本型（text）”，可以被省略。本参数提供访问数据库时所需要的密码，如果该数据库没有被加密，请提供空文本。注意“?”（即单个问号）是一个特殊的密码文本，它要求系统当发现所欲打开的数据库具有密码保护时，自动弹出一个密码输入框提示用户输入正确的密码。如果用户在该输入框中取消输入或连续三次输入了错误密码，打开命令将失败，且执行“取错误码”命令将返回-78。如果本参数被省略，默认为空文本。

参数<7>的名称为“索引文件表”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定本数据库的所有索引文件，它们将被同步打开，以便得到及时更新。

※替换打开

调用格式： 〈逻辑型〉 替换打开 （数据库文件名，［在程序中使用的别名］，［是否只读］，［共享方式］，［保留参数1］，［数据库密码］，［索引文件表］，… ）

英文名称：ruse

打开指定的数据库文件。成功返回真，并自动关闭当前数据库后将当前数据库设置为此数据库，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。

参数<2>的名称为“在程序中使用的别名”，类型为“文本型（text）”，可以被省略。别名为在后面的程序中引用本数据库时可使用的另一个名称。欲引用一个已经被打开的数据库可以使用该数据库本身的名称（数据库名称为数据库文件名的无路径和后缀部分。譬如 c:\my documents\gz.edb ，其数据库名称为 gz ），也可以使用在此处所指定的别名。别名主要用作避开重复的数据库名称或者简化对长数据库名的引用。数据库名称与别名皆不区分大小写，在查找数据库时，系统将优先查找别名。如果本参数被省略，默认为没有别名。

参数<3>的名称为“是否只读”，类型为“逻辑型（bool）”，可以被省略。参数值说明是否仅对数据库进行读操作，如果省略本参数，默认为假。

参数<4>的名称为“共享方式”，类型为“整数型（int）”，可以被省略。参数值指定在多用户环境中限制其它用户操作此数据库的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一：

1、#无限制：允许其它用户任意操作此数据库；

2、#禁止读：禁止其它用户读此数据库；

3、#禁止写：禁止其它用户写此数据库；

4、#禁止读写：独占使用此数据库，禁止其它用户的任何操作。

参数<5>的名称为“保留参数1”，类型为“文本型（text）”，可以被省略。本参数仅用作保留参数位置。

参数<6>的名称为“数据库密码”，类型为“文本型（text）”，可以被省略。本参数提供访问数据库时所需要的密码，如果该数据库没有被加密，请提供空文本。注意“?”（即单个问号）是一个特殊的密码文本，它要求系统当发现所欲打开的数据库具有密码保护时，自动弹出一个密码输入框提示用户输入正确的密码。如果用户在该输入框中取消输入或连续三次输入了错误密码，打开命令将失败，且执行“取错误码”命令将返回-78。如果本参数被省略，默认为空文本。

参数<7>的名称为“索引文件表”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定本数据库的所有索引文件，它们将被同步打开，以便得到及时更新。

※置当前库

调用格式： 〈逻辑型〉 置当前库 （数据库别名或名称）

英文名称：select

本命令选择一个已经被打开的数据库为当前数据库，大部分数据库操作命令都针对当前数据库，譬如：记录指针的移动、字段的读写等等。如果指定数据库不存在或者尚未被打开，命令将返回假，否则返回真。本命令为初级命令。

参数<1>的名称为“数据库别名或名称”，类型为“文本型（text）”。参数值指定一个已经被打开的数据库。

※取当前库

调用格式： 〈文本型〉 取当前库 （）

英文名称：dbf

返回当前数据库的别名，如不存在别名，则返回其名称。如果未设置当前数据库，将返回空文本。本命令为初级命令。

※关闭

调用格式： 〈无返回值〉 关闭 （［数据库别名或名称］）

英文名称：CloseDBF

本命令关闭已经被打开的指定数据库。如果没有提供数据库名称，默认为关闭当前数据库。如果当前数据库被关闭，当前数据库状态值将被设置为空，此时可重新使用“置当前库”命令来进行相应设置。本命令为初级命令。

参数<1>的名称为“数据库别名或名称”，类型为“文本型（text）”，可以被省略。参数值如果被省略，默认为关闭当前数据库。

※全部关闭

调用格式： 〈无返回值〉 全部关闭 （）

英文名称：CloseAll

本命令关闭当前已经被打开的所有数据库。本命令为初级命令。

※取库文件名

调用格式： 〈文本型〉 取库文件名 （）

英文名称：GetDBF

返回当前数据库的全路径文件名。如果当前数据库不存在，返回空文本。本命令为初级命令。

※是否已打开

调用格式： 〈逻辑型〉 是否已打开 （欲测试的数据库文件名）

英文名称：used

如果指定数据库文件已经被打开，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲测试的数据库文件名”，类型为“文本型（text）”。

※取记录数

调用格式： 〈整数型〉 取记录数 （）

英文名称：RecCount

返回当前数据库的记录数目。如果没有设置当前数据库或者失败，将返回 0 。本命令为初级命令。

※取创建时间

调用格式： 〈日期时间型〉 取创建时间 （）

英文名称：DateCreated

返回当前数据库被创建的时间。本命令为初级命令。

※取字段数

调用格式： 〈整数型〉 取字段数 （）

英文名称：FCount

返回当前数据库中字段的数目。本命令为初级命令。

※取字段名

调用格式： 〈文本型〉 取字段名 （字段名称或位置）

英文名称：GetFieldName

返回当前数据库中指定字段的名称。如果指定字段不存在，将返回空文本。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※改字段名

调用格式： 〈逻辑型〉 改字段名 （字段名称或位置，字段的新名称）

英文名称：ModiFieldName

修改当前数据库中指定字段的名称。本命令只有当数据库的共享打开方式为“#禁止读写”时才有效。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“字段的新名称”，类型为“文本型（text）”。

※取字段类型

调用格式： 〈整数型〉 取字段类型 （字段名称或位置）

英文名称：GetFieldType

返回当前数据库中指定字段的类型，字段类型值为以下常量值之一：

1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 10、#文本型； 11、#字节集型； 12、#备注型。如果指定字段不存在，将返回 0 。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※取字段尺寸

调用格式： 〈整数型〉 取字段尺寸 （字段名称或位置）

英文名称：FSize

返回当前数据库中指定字段在记录中所占的尺寸。如果指定字段不存在，将返回 0 。注意：备注型和字节集型字段将返回 4 。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※新建索引

调用格式： 〈逻辑型〉 新建索引 （欲创建索引文件的名称，［索引类型］，［索引选项］，［索引块尺寸］，被索引字段的名称，… ）

英文名称：CreateIndex

在当前数据库中创建并打开一个索引文件。索引的存在将降低对数据库记录的更新速度，所以除非是较大的数据库（最起码在一千条记录以上），否则一般不用使用索引。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲创建索引文件的名称”，类型为“文本型（text）”。

参数<2>的名称为“索引类型”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值之一，如果被省略，默认为“#通常索引”：

1、#通常索引；

2、#读音索引： 在文本型索引字段中，所有汉字根据标准读音建立索引；

3、#南方读音索引： 在文本型索引字段中，所有汉字根据南方读音建立索引（南方读音不区分卷舌音和平舌音）。

参数<3>的名称为“索引选项”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值之一或者之和：

1、#不区分大小写：文本型索引字段中不区分英文字母的大小写；

2、#忽略所有空格：文本型索引字段中忽略所有的全、半角空格。

如果本参数被省略，默认为 0 。

参数<4>的名称为“索引块尺寸”，类型为“整数型（int）”，可以被省略。参数值指定索引文件记录索引项时所使用索引块的大小，以 512 字节为单位，最大值为 10 。如果本参数被省略，默认值为 1 。仅在大型数据库中需要建立大索引块的索引文件，一般情况下使用默认值即可。

参数<5>的名称为“被索引字段的名称”，类型为“文本型（text）”，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有被索引字段的名称，支持以数组方式直接提供多个字段。

※置当前索引

调用格式： 〈逻辑型〉 置当前索引 （索引名称）

英文名称：SetIndexTo

为当前数据库指定当前索引，在进行索引查找时将使用当前索引。如果指定索引不存在，将返回假。本命令为初级命令。

参数<1>的名称为“索引名称”，类型为“文本型（text）”。索引名称为索引文件名的无后缀部分。譬如“sy.enx”索引文件，其索引名称为“sy”。

※取当前索引

调用格式： 〈文本型〉 取当前索引 （）

英文名称：ndx

返回当前数据库的当前索引名称。如果未设置当前数据库或无当前索引，返回空文本。本命令为初级命令。

※更新索引

调用格式： 〈逻辑型〉 更新索引 （）

英文名称：reindex

通过完全重建来更新当前数据库的当前索引。成功返回真，失败返回假。本命令为初级命令。

※取索引数

调用格式： 〈整数型〉 取索引数 （）

英文名称：GetIndexCount

返回当前数据库中已经被打开索引的数目。本命令为初级命令。

※取索引名

调用格式： 〈文本型〉 取索引名 （索引位置）

英文名称：GetIndexName

返回当前数据库中指定索引的名称。如果指定位置处不存在索引，将返回空文本。本命令为初级命令。

参数<1>的名称为“索引位置”，类型为“整数型（int）”。参数值指定索引在当前数据库内所有被打开索引中的位置，从 1 开始。

※取索引字段

调用格式： 〈文本型数组〉 取索引字段 （索引位置）

英文名称：GetIndexField

返回当前数据库中指定索引内所有被索引字段的名称数组。如果指定位置处不存在索引，将返回空数组。本命令为初级命令。

参数<1>的名称为“索引位置”，类型为“整数型（int）”。参数值指定索引在当前数据库内所有被打开索引中的位置，从 1 开始。

※置加锁重试时间

调用格式： 〈无返回值〉 置加锁重试时间 （［加锁重试时间］）

英文名称：SetLockTimeout

本命令设置对数据库进行加锁时，如果该位置已经被其他用户锁住或者正在被其他用户访问，系统反复重试加锁的时间。当你的数据库可能被多用户同时访问时，必须在程序首使用本命令设置一个合适的时间值。一般情况下，可以设置为 60 秒，或者根据所处网络的传输和通畅速度来具体设置。本命令为初级命令。

参数<1>的名称为“加锁重试时间”，类型为“整数型（int）”，可以被省略。参数值可以为以下值之一：

1、 大于 0 的值。用于指定具体的重试间隔时间，单位为秒；

2、 0 。不重试，第一次加锁失败后立即返回错误（系统初始值）；

3、 -1。一直重试，直到加锁成功。

如果本参数被省略，默认值为 0 。

※锁住数据库

调用格式： 〈逻辑型〉 锁住数据库 （）

英文名称：LockDBF

本命令执行后独占锁住整个当前数据库，拒绝其它用户的任何访问。成功返回真，失败返回假。本命令为初级命令。

※解锁数据库

调用格式： 〈逻辑型〉 解锁数据库 （）

英文名称：UnlockDBF

本命令解除“锁住数据库”命令对当前数据库加的锁。成功返回真，失败返回假。本命令为初级命令。

※锁住增删

调用格式： 〈逻辑型〉 锁住增删 （）

英文名称：LockCount

本命令执行后独占锁住对当前数据库的增删操作，其它用户可以读写已存在的任何记录，但是不能对数据库记录进行增删。也就是说：不能执行改变数据库记录数目的任何操作。注意：由于“删除”命令仅在记录上加上删除标志，并不实际删除记录，所以不在被加锁的范围内。成功返回真，失败返回假。本命令为初级命令。

※解增删锁

调用格式： 〈逻辑型〉 解增删锁 （）

英文名称：UnlockCount

本命令解除“锁住增删”命令对当前数据库加的锁。成功返回真，失败返回假。本命令为初级命令。

※锁住记录

调用格式： 〈逻辑型〉 锁住记录 （记录号，… ）

英文名称：LockRec

本命令执行后可以锁住指定的一个或多个记录。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“记录号”，类型为“整数型（int）”。参数值指定的记录号从 1 开始。

※解锁记录

调用格式： 〈逻辑型〉 解锁记录 （记录号，… ）

英文名称：UnlockRec

本命令解除“锁住记录”命令对记录所加的锁。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“记录号”，类型为“整数型（int）”。参数值指定的记录号从 1 开始。

※全部解锁

调用格式： 〈逻辑型〉 全部解锁 （）

英文名称：UnlockAll

本命令解除由“锁住数据库”、“锁住增删”、“锁住记录”等命令对当前数据库加上的所有锁。成功返回真，失败返回假。本命令为初级命令。

※取平均值

调用格式： 〈双精度小数型〉 取平均值 （计算表达式，［记录条件］）

英文名称：avg

本命令根据当前数据库计算并返回某数值型表达式的平均值，命令执行后当前记录指针保持不变。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※求和

调用格式： 〈双精度小数型〉 求和 （计算表达式，［记录条件］）

英文名称：sum

本命令根据当前数据库计算并返回某数值型表达式的和，命令执行后当前记录指针保持不变。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※取最大值

调用格式： 〈双精度小数型〉 取最大值 （计算表达式，［记录条件］）

英文名称：max

本命令根据当前数据库计算并返回某数值型表达式的最大值，当前记录指针被移动到具有最大值的记录。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※取最小值

调用格式： 〈双精度小数型〉 取最小值 （计算表达式，［记录条件］）

英文名称：min

本命令根据当前数据库计算并返回某数值型表达式的最小值，当前记录指针被移动到具有最小值的记录。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※取最大时间

调用格式： 〈日期时间型〉 取最大时间 （计算表达式，［记录条件］）

英文名称：MaxTime

本命令根据当前数据库计算并返回某日期时间型表达式的最大值，当前记录指针被移动到具有最大值的记录。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※取最小时间

调用格式： 〈日期时间型〉 取最小时间 （计算表达式，［记录条件］）

英文名称：MinTime

本命令根据当前数据库计算并返回某日期时间型表达式的最小值，当前记录指针被移动到具有最小值的记录。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※计算数目

调用格式： 〈整数型〉 计算数目 （［记录条件］）

英文名称：count

本命令返回当前数据库中指定范围记录的数目。命令执行后当前记录指针保持不变。本命令为初级命令。

参数<1>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※复制结构

调用格式： 〈逻辑型〉 复制结构 （数据库文件名，［字段范围］，… ）

英文名称：CopyStructTo

复制当前数据库的结构到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※复制记录

调用格式： 〈逻辑型〉 复制记录 （数据库文件名，［记录条件］，［字段范围］，… ）

英文名称：CopyTo

复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参数<3>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※计算排序

调用格式： 〈逻辑型〉计算排序（数据库文件名，排序表达式，［排序方向］，［记录条件］，［字段范围］，… ）

英文名称：csort

根据指定数值表达式的计算值排序复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“排序表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段，表达式所返回数据的类型必须为数值型。

参数<3>的名称为“排序方向”，类型为“逻辑型（bool）”，可以被省略。本参数的值如果为真或者被省略，将按照从小到大的顺序排序，否则为从大到小。

参数<4>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参数<5>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※排序

调用格式： 〈逻辑型〉 排序 （数据库文件名，排序字段，［排序方向］，［记录条件］，［字段范围］，… ）

英文名称：sort

根据指定字段排序复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“排序字段”，类型为“文本型（text）”，提供参数数据时可以同时提供数组或非数组数据。本参数的数据可以为字段名文本或者字段名文本数组（用作同时指定多个字段）。

参数<3>的名称为“排序方向”，类型为“逻辑型（bool）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的数据可以为一个逻辑值或者逻辑值数组（用作同时为多个字段指定排序方向）。如果逻辑值为真，对应字段将按照从小到大的顺序排序，否则为从大到小。如果本参数被省略，默认为全部按照从小到大的顺序排序。

参数<4>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参数<5>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※分类计算

调用格式： 〈逻辑型〉 分类计算 （数据库文件名，分类字段，［计算方法］，［记录条件］，［字段范围］，… ）

英文名称：total

对当前数据库进行分类计算，将结果输出到另外一个数据库。注意所有的备注或字节集字段内容将不会被输出到目的数据库中。 命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“分类字段”，类型为“文本型（text）”，提供参数数据时可以同时提供数组或非数组数据。本参数的数据可以为字段名文本或者字段名文本数组（用作同时指定多个字段）。

参数<3>的名称为“计算方法”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量之一： 1、#取平均值； 2、#求和； 3、#取最大值； 4、#取最小值。 如果本参数被省略，默认为“#求和”。

参数<4>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参数<5>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※添加

调用格式： 〈逻辑型〉 添加 （数据库别名或名称，［记录条件］，［字段范围］，… ）

英文名称：AppendFrom

将指定数据库中的记录添加到当前数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库别名或名称”，类型为“文本型（text）”。本参数指定一个已打开数据库，命令将从该数据库中获取欲添加的记录数据。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为添加指定数据库中的所有记录，否则仅添加指定数据库中满足此条件的记录。

参数<3>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲添加字段的名称。如果被省略,默认添加所有同名字段。

※加记录

调用格式： 〈逻辑型〉 加记录 （［记录数据］，… ）

英文名称：Append

本命令在当前数据库的尾部添加一条记录，并将当前记录指针移动到该记录处。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“记录数据”，类型为“通用型（all）”，可以被省略。本参数的每一个参数值用作为记录中对应位置处的一个字段提供数据。如果某参数值被省略，则对应位置处字段的内容被设置为初始值。

※加空记录

调用格式： 〈逻辑型〉 加空记录 （）

英文名称：AppendBlank

本命令在当前数据库的尾部添加一条空记录，并将当前记录指针移动到该记录上。成功返回真，失败返回假。本命令为初级命令。

※替换

调用格式： 〈逻辑型〉 替换 （［替换范围］，字段名称或替换数据，… ）

英文名称：replace

本命令替换当前数据库中的记录数据，当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“替换范围”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为替换当前记录数据，否则替换所有满足此条件记录的数据。如果欲在所有记录内进行替换，请直接将逻辑值“真”赋予本参数。

参数<2>的名称为“字段名称或替换数据”，类型为“通用型（all）”。本参数的每一对参数值顺序指定欲被替换字段的名称及其相应的替换值。替换值的数据类型必须与所对应字段的数据类型一致或可互相转换，否则命令会失败。

※修改

调用格式： 〈逻辑型〉 修改 （［修改数据］，… ）

英文名称：modify

本命令一次性修改当前数据库中当前记录内多个字段的内容，当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“修改数据”，类型为“通用型（all）”，可以被省略。本参数的每一个参数值用作替换当前记录中对应位置处的一个字段。如果某参数值被省略，则对应位置处字段的内容将保持不变。

※删除

调用格式： 〈逻辑型〉 删除 （［记录范围］）

英文名称：delete

标记删除当前数据库中的当前记录或者指定范围内的记录，当前记录指针位置保持不变。注意：此命令并不实际删除记录，仅仅只加上删除标记，记录依旧存在并可以读写。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“记录范围”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为删除或恢复删除当前记录，否则删除或恢复删除所有满足此条件的记录。如果欲删除或恢复删除全部记录，请直接将逻辑值“真”赋予本参数。

※是否已删除

调用格式： 〈逻辑型〉 是否已删除 （）

英文名称：IsDeleted

如果当前数据库的当前记录已经被“删除”命令加上删除标记,返回真,否则返回假。本命令为初级命令。

※恢复删除

调用格式： 〈逻辑型〉 恢复删除 （［记录范围］）

英文名称：recall

去掉当前数据库中当前记录或者指定范围内记录的删除标记，当前记录指针位置保持不变。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“记录范围”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为删除或恢复删除当前记录，否则删除或恢复删除所有满足此条件的记录。如果欲删除或恢复删除全部记录，请直接将逻辑值“真”赋予本参数。

※彻底删除

调用格式： 〈逻辑型〉 彻底删除 （）

英文名称：pack

将当前数据库中所有被加上删除标记的记录从数据库中彻底清除，当前记录指针位置将被移动到数据库首记录。记录被彻底删除后将不复存在，并且无法恢复。注意执行本命令将重组数据库记录，因此速度比较慢。成功返回真，失败返回假。本命令为初级命令。

※清空

调用格式： 〈逻辑型〉 清空 （）

英文名称：zap

彻底清除当前数据库中的所有记录。成功返回真，失败返回假。本命令为初级命令。

※读

调用格式： 〈通用型〉 读 （字段名称或位置）

英文名称：r

返回当前数据库中当前记录处指定字段的数据内容，所返回数据的类型等同于字段的类型。如果指定字段不存在，将产生运行时错误。执行本命令后使用“取错误码”命令可以判断是否读入成功。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※写

调用格式： 〈逻辑型〉 写 （字段名称或位置，［欲写入数据］）

英文名称：w

将数据写入到当前数据库中当前记录处的指定字段内。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“欲写入数据”，类型为“通用型（all）”，可以被省略。本参数数据的类型必须与所对应字段的数据类型一致或可互相转换。如果本参数被省略，则初始化对应字段中的内容，具体为：数值字段被初始化为零，逻辑字段被初始化为假，日期字段被初始化为 1899 年 12 月 30 日，文本及备注字段被初始化为空文本（“”），字节集字段被初始化为空字节集。

※读字段

调用格式： 〈通用型〉 读字段 （字段名称或位置，［数据库别名或名称］）

英文名称：ReadField

返回指定数据库中当前记录处指定字段的数据内容，所返回数据的类型等同于字段的类型。如果指定字段不存在，将产生运行时错误。本命令与“读”命令的不同之处为本命令可以从非当前数据库中读取字段。执行本命令后使用“取错误码”命令可以判断是否读入成功。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“数据库别名或名称”，类型为“文本型（text）”，可以被省略。参数值指定一个已经被打开的数据库，该数据库内包含所欲读取的字段。如果被省略，默认为当前数据库。

※写字段

调用格式： 〈逻辑型〉 写字段 （字段名称或位置，［数据库别名或名称］，［欲写入数据］）

英文名称：WriteField

将数据写入到指定数据库中当前记录处的指定字段内。成功返回真，失败返回假。本命令与“写”命令的不同之处为本命令可以写入非当前数据库中的字段。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“数据库别名或名称”，类型为“文本型（text）”，可以被省略。参数值指定一个已经被打开的数据库，该数据库内包含所欲写入的字段。如果被省略，默认为当前数据库。

参数<3>的名称为“欲写入数据”，类型为“通用型（all）”，可以被省略。本参数数据的类型必须与所对应字段的数据类型一致或可互相转换。如果本参数被省略，则初始化对应字段中的内容，具体为：数值字段被初始化为零，逻辑字段被初始化为假，日期字段被初始化为 1899 年 12 月 30 日，文本及备注字段被初始化为空文本（“”），字节集字段被初始化为空字节集。

※附加字节集

调用格式： 〈逻辑型〉 附加字节集 （字段名称或位置，欲添加的字节集数据，… ）

英文名称：AppendBin

将字节集数据添加到当前记录处指定字节集型字段的尾部。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“欲添加的字节集数据”，类型为“字节集（bin）”。

※附加备注

调用格式： 〈逻辑型〉 附加备注 （字段名称或位置，欲添加的文本数据，… ）

英文名称：AppendMemo

将文本数据添加到当前记录处指定备注型字段的尾部。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“欲添加的文本数据”，类型为“文本型（text）”。

※索引查找

调用格式： 〈逻辑型〉 索引查找 （欲搜寻值，… ）

英文名称：seek

本命令在当前数据库中使用其当前索引来快速寻找某一记录，寻找从当前记录位置（包括当前记录）处开始。注意为命令所提供的欲搜寻值参数的数目必须与被索引字段的数目一致。如成功找到返回真，并且将当前记录指针移至所找到的记录。如出错或未找到则返回假，当前记录指针位置保持不变。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲搜寻值”，类型为“通用型（all）”。本参数数据的类型必须与索引字段表中对应位置处字段的类型一致。

※查找

调用格式： 〈逻辑型〉 查找 （查找条件）

英文名称：locate

本命令从当前数据库中当前记录位置处（包括当前记录）开始寻找符合给定条件的记录。如成功找到返回真，并且将当前记录指针移至所找到的记录。如出错或未找到则返回假，当前记录指针位置保持不变。本命令为初级命令。

参数<1>的名称为“查找条件”，类型为“条件语句型（statment）”。参数值指定欲查找记录应该满足的条件。

※到首记录

调用格式： 〈无返回值〉 到首记录 （）

英文名称：GoTop

将当前数据库中当前记录指针移动到数据库的第一条记录上。本命令为初级命令。

※到尾记录

调用格式： 〈逻辑型〉 到尾记录 （）

英文名称：GoBottom

将当前数据库中当前记录指针移动到数据库的最后一条记录上。成功返回真，失败返回假。本命令为初级命令。

※跳过

调用格式： 〈逻辑型〉 跳过 （［欲跳过的记录数］）

英文名称：skip

将当前数据库中当前记录指针向前或者向后移动数条记录。成功返回真,失败返回假。本命令为初级命令。

参数<1>的名称为“欲跳过的记录数”，类型为“整数型（int）”，可以被省略。参数值如果为负数，则向前移动，否则向后移动。如果本参数被省略，默认值为 1 ，即向后移动一条记录。

※取记录号

调用格式： 〈整数型〉 取记录号 （）

英文名称：RecNO

返回当前数据库中当前记录指针所指向记录的记录号。如果当前记录指针在首记录前，返回 0 ；如果在尾记录后，返回值为记录总数加一。本命令为初级命令。

※跳到

调用格式： 〈逻辑型〉 跳到 （欲跳到的记录号）

英文名称：goto

改变当前数据库中的当前记录指针到指定的记录号。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲跳到的记录号”，类型为“整数型（int）”。参数值所指定的记录号从 1 开始，即首记录的记录号为 1 ，依此类推。

※取标签

调用格式： 〈整数型〉 取标签 （）

英文名称：GetBookmark

在数据库的存在期间，同一数据库内任何时候任何一条记录（包括已经被实际删除的记录）都有一个唯一的非 0 正整数标签值，使用本命令可以取回当前数据库当前记录的这一标签值。此标签值可以用来在记录间跳转或者在多用户环境中查看记录是否已经被其它用户实际删除。如果命令执行失败，将返回 0 。本命令为初级命令。

※记录是否存在

调用格式： 〈逻辑型〉 记录是否存在 （记录的标签值）

英文名称：IsRecExist

如果当前数据库中存在具有指定标签值的记录，命令返回真，否则返回假。本命令可以用作在多用户环境中检查某记录是否被其它用户实际删除。本命令为初级命令。

参数<1>的名称为“记录的标签值”，类型为“整数型（int）”。

※标签跳转

调用格式： 〈逻辑型〉 标签跳转 （记录的标签值）

英文名称：GotoBookmark

使用本命令可以改变当前数据库中的当前记录指针到具有指定标签的记录。如成功找到返回真，并且将当前记录指针移至该记录。如出错或未找到则返回假，当前记录指针位置保持不变。本命令为初级命令。

参数<1>的名称为“记录的标签值”，类型为“整数型（int）”。

※首记录前

调用格式： 〈逻辑型〉 首记录前 （）

英文名称：bof

如果当前数据库的当前记录指针已在首记录的前面，返回真，否则返回假。本命令为初级命令。

※尾记录后

调用格式： 〈逻辑型〉 尾记录后 （）

英文名称：eof

如果当前数据库的当前记录指针已在尾记录的后面，返回真，否则返回假。本命令为初级命令。

※写出缓存

调用格式： 〈无返回值〉 写出缓存 （）

英文名称：flush

为了加快对数据库数据的存取速度，对数据库所进行的写操作将首先被保存在写缓存区内，等候一段时间后才会被自动写入到数据库文件中。使用本命令可以将当前数据库停留在写缓存区内的数据立即写入数据库磁盘文件中，以确保对当前数据库进行的所有写操作都真实地反映到了数据库文件中。一般情况下无需使用本命令。本命令为初级命令。

※写出所有缓存

调用格式： 〈无返回值〉 写出所有缓存 （）

英文名称：FlushAll

将所有数据库停留在写缓存区内的数据都立即写入到对应的数据库磁盘文件中。一般情况下无需使用本命令。本命令为初级命令。

※编辑

调用格式： 〈无返回值〉 编辑 （［标题］，［编辑方式］，［字段范围］，… ）

英文名称：edit

提供一个对话框，用作查看或编辑修改当前数据库的记录，起始位置从当前记录开始。本命令退出后当前记录指针被移动到首记录。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“标题”，类型为“文本型（text）”，可以被省略。本参数指定对话框的标题，如果被省略，默认为“数据库记录编辑”。

参数<2>的名称为“编辑方式”，类型为“整数型（int）”，可以被省略。可以为 0 或者以下常量值的组合： 1、#禁止修改； 2、#禁止添加； 4、#禁止删除； 8、#禁止自动判断（注：在默认情况下，系统将自动判断当前字节集字段的内容是否为图片或者声音，然后以对应的方式显示。使用本常量值可以禁止此功能）。 如果被省略，默认值为 0 。

参数<3>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲编辑字段的名称。如果被省略，默认为所有字段。

※是否已加密

调用格式： 〈逻辑型〉 是否已加密 （数据库文件名）

英文名称：IsEncrypted

如果需要提供密码才能访问指定的数据库文件（即已经被加密），返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。

※置数据库密码

调用格式： 〈逻辑型〉 置数据库密码 （［新密码文本］）

英文名称：SetPassword

本命令用作设置或修改当前数据库的访问密码，注意数据库文件必须可写。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“新密码文本”，类型为“文本型（text）”，可以被省略。建议密码长度最少为6个字符以上，并且最好混合使用汉字、字母、数字、符号，以保证密码本身的安全性。注意不能为“?”（即单个问号）,此密码文本被保留用作其他用途。如果为空文本,表示无密码。如果本参数被省略,则默认为空文本。

※密码输入框

调用格式： 〈逻辑型〉 密码输入框 （存放所输入密码的容器，［已重试次数］）

英文名称：InputDBPwd

本命令用作输入数据库的访问密码，如果用户在确认输入后（按下“确认”按钮或回车键）退出，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“存放所输入密码的容器”，类型为“文本型（text）”，提供参数数据时只能提供容器。

参数<2>的名称为“已重试次数”，类型为“整数型（int）”，可以被省略。本参数提供已经重试输入密码的次数，用作在对话框中显示剩余次数（允许总次数恒定为3次）。如果本参数被省略，则默认值为0。

※复制密码

调用格式： 〈逻辑型〉 复制密码 （数据库别名或名称）

英文名称：CopyPassword

本命令可以将当前数据库的访问密码设置为等同于其他已打开数据库，注意数据库文件必须可写。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“数据库别名或名称”，类型为“文本型（text）”。参数值指定一个已经被打开的数据库。


系统核心支持库3

网络通信

取主机名

通信测试

转换为主机名

转换为IP地址

※取主机名

调用格式： 〈文本型〉 取主机名 （）

英文名称：GetHostName

返回本机的主机名，用作在网络通讯中标志本机地址。本命令为初级命令。

※通信测试

调用格式： 〈整数型〉 通信测试 （被测试主机地址，［最长等待时间］）

英文名称：ping

测试与指定主机是否能够正常通讯。返回被测试主机的通讯响应时间。如果无法通讯或者测试失败，返回 -1。本命令为初级命令。

参数<1>的名称为“被测试主机地址”，类型为“文本型（text）”。可以为主机名、IP地址等。

参数<2>的名称为“最长等待时间”，类型为“整数型（int）”，可以被省略。指定最长等待被测试主机响应的时间，单位为毫秒。超过此时间即认为无法与被测试主机通讯。如果省略本参数，则默认为 10 * 1000 毫秒，即 10 秒。

※转换为主机名

调用格式： 〈文本型〉 转换为主机名 （欲转换IP地址）

英文名称：IPToHostName

将指定的 IP 地址转换为其主机名。如果失败返回空文本。本命令为初级命令。

参数<1>的名称为“欲转换IP地址”，类型为“文本型（text）”。

※转换为IP地址

调用格式： 〈文本型〉 转换为IP地址 （欲转换主机名）

英文名称：HostNameToIP

将指定的主机名转换为其 IP 地址。如果失败返回空文本。本命令为初级命令。

参数<1>的名称为“欲转换主机名”，类型为“文本型（text）”。


系统核心支持库3

系统核心支持库3.2版

本支持库是易语言的核心库，为系统本身和每个易程序提供必需的功能支持。

命令类别

流程控制 | 算术运算 | 逻辑比较 | 位运算
容器操作 | 数组操作 | 环境存取 | 拼音处理
文本操作 | 字节集操作 | 数值转换 | 时间操作
磁盘操作 | 文件读写 | 系统处理 | 媒体播放
程序调试 | 其他 | 数据库 | 网络通信
易向导 |  |  |

流程控制

如果 | 如果真 | 判断 | 判断循环首
循环判断首 | 计次循环首 | 容器循环首 | 到循环尾
跳出循环 | 返回 | 结束 |

※ 如果

调用格式： 〈无返回值〉 如果 （条件）

英文名称：if

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到左侧箭头线指向的命令处去执行。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

※ 如果真

调用格式： 〈无返回值〉 如果真 （条件）

英文名称：if

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到左侧箭头线指向的命令处去执行。同“如果”命令相比，本命令没有为假时的程序部分。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

※ 判断

调用格式： 〈无返回值〉 判断 （条件）

英文名称：Switch

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到下一分支处去继续判断。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

※ 判断循环首

调用格式： 〈无返回值〉 判断循环首 （条件）

英文名称：while

本命令根据提供的逻辑参数的值，来决定是否进入循环。如果提供的逻辑参数值为真，程序顺序执行下一条命令进入循环，否则跳转到本命令所对应的“判断循环尾”命令的下一条命令处以跳出循环。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

◎◎◎对应命令：

调用格式： 〈无返回值〉 判断循环尾 （）

英文名称：wend

本命令已经被隐藏。

执行本命令将返回到对应的“判断循环首”命令处继续进行循环。本命令为初级命令。

※循环判断首

调用格式： 〈无返回值〉 循环判断首 （）

英文名称：DoWhile

执行本命令后将顺序执行下一条命令进入程序循环。本命令为初级命令。

◎◎◎对应命令：

调用格式： 〈无返回值〉 循环判断尾 （条件）

英文名称：loop

本命令已经被隐藏。

本命令根据提供的逻辑参数的值，来决定是否返回到循环首部继续进行循环。如果提供的逻辑参数值为真，程序返回到对应的“循环判断首”命令处继续进行循环，否则顺序执行下一条命令退出本程序循环。本命令为初级命令。

参数<1>的名称为“条件”，类型为“逻辑型（bool）”。本条件值的结果决定下一步程序执行位置。

※计次循环首

调用格式： 〈无返回值〉 计次循环首 （循环次数，［已循环次数记录容器］）

英文名称：counter

执行本命令将把循环体内的命令重复执行指定的次数。提供的整数参数值决定将重复执行的次数。本命令为初级命令。

参数<1>的名称为“循环次数”，类型为“整数型（int）”。本数值指定执行计次循环体内所有命令的次数，必须大于等于零。

参数<2>的名称为“已循环次数记录容器”，类型为“整数型（int）”，可以被省略，提供参数数据时只能提供容器。本数值型容器用作记录当前循环首已经被进入过的次数（从 1 开始），程序可以直接取用此容器中的值。

◎◎◎ 对应命令：

调用格式： 〈无返回值〉 计次循环尾 （）

英文名称：CounterLoop

本命令已经被隐藏。

如果计次循环的循环次数未到，执行本命令将返回到对应的“计次循环首”命令处继续进行循环，否则将顺序执行下一条命令退出本计次循环。本命令为初级命令。

※ 容器循环首

调用格式： 〈无返回值〉 容器循环首 （容器起始值，容器目标值，容器递增值，［循环容器］）

英文名称：for

执行本命令将利用容器对循环体内的命令进行循环执行。第一次执行此命令时将使用“容器起始值”参数初始化“循环容器”参数所指定的容器。每次（包括第一次）执行到此命令处都将判断循环容器内的值是否已经超过“容器目标值”参数所指定的值，如已超过，则跳转到对应的“容器循环尾”命令的下一条命令处继续执行，否则顺序执行下一条语句继续进行循环。本命令为初级命令。

参数<1>的名称为“容器起始值”，类型为“整数型（int）”，初始值为“1”。定义循环容器的起始数值。

参数<2>的名称为“容器目标值”，类型为“整数型（int）”。定义循环容器的目标数值，在循环首部如果发现容器值已超出此目标值时将跳出循环。

参数<3>的名称为“容器递增值”，类型为“整数型（int）”，初始值为“1”。每次执行到循环尾部时都将把此值加入到循环容器中去，此值可为正数或负数，如为正数则递增，为负数则递减。

参数<4>的名称为“循环容器”，类型为“整数型（int）”，可以被省略，提供参数数据时只能提供容器。本数值型容器将用作控制循环执行次数，在循环尾部将自动递增或递减该容器内的数值。如果被省略，命令将自动使用内部临时容器。

◎◎◎对应命令：

调用格式： 〈无返回值〉 容器循环尾 （）

英文名称：next

本命令已经被隐藏。

将在对应的“容器循环首”命令中所指定的数值容器递增或递减指定的值后返回到循环首部继续执行。本命令为初级命令。

※到循环尾

调用格式： 〈无返回值〉 到循环尾 （）

英文名称：continue

本命令转移当前程序执行位置到当前所处循环体的循环尾语句处。本命令为初级命令。

※跳出循环

调用格式： 〈无返回值〉 跳出循环 （）

英文名称：break

本命令转移当前程序执行位置到当前所处循环体循环尾语句的下一条语句处。本命令为初级命令。

※返回

调用格式： 〈无返回值〉 返回 （［返回到调用方的值］）

英文名称：return

本命令转移当前程序执行位置到调用本子程序语句的下一条语句处,并可根据需要返回一个值到子程序调用处。本命令为初级命令。

参数<1>的名称为“返回到调用方的值”，类型为“通用型（all）”，可以被省略。

※结束

调用格式： 〈无返回值〉 结束 （）

英文名称：end

本命令结束当前易程序的运行。本命令为初级命令。

算术运算

相乘 | 相除 | 整除 | 求余数
相加 | 相减 | 负 | 取符号
取绝对值 | 取整 | 绝对取整 | 四舍五入
求次方 | 求平方根 | 求正弦 | 求余弦
求正切 | 求反正切 | 求自然对数 | 求反对数
是否运算正确 | 置随机数种子 | 取随机数 |

※相乘

调用格式： 〈双精度小数型〉 相乘 （被乘数，乘数，… ）

英文名称：mul

返回两个数值的乘积，运算符号为“*”或“×”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被乘数”，类型为“双精度小数型（double）”。

参数<2>的名称为“乘数”，类型为“双精度小数型（double）”。

※相除

调用格式： 〈双精度小数型〉 相除 （被除数，除数，… ）

英文名称：div

返回两个数值的商，运算符号为“/”或“÷”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被除数”，类型为“双精度小数型（double）”。

参数<2>的名称为“除数”，类型为“双精度小数型（double）”。

※整除

调用格式： 〈双精度小数型〉 整除 （被除数，除数，… ）

英文名称：IDiv

求出两个数值的商，并返回其整数部分，运算符号为“\”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被除数”，类型为“双精度小数型（double）”。

参数<2>的名称为“除数”，类型为“双精度小数型（double）”

※求余数

调用格式： 〈双精度小数型〉 求余数 （被除数，除数，… ）

英文名称：mod

求出两个数值的商，并返回余数部分，运算符号为“%”或“Mod”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被除数”，类型为“双精度小数型（double）”。

参数<2>的名称为“除数”，类型为“双精度小数型（double）”。

※相加

调用格式： 〈通用型〉 相加 （被加数或文本或字节集，加数或文本或字节集，… ）

英文名称：add

运算符号为“+”，用途为：1、返回两个数值的和；2、将两个文本首尾连接起来，返回连接后的文本；3、将两个字节集首尾连接起来，返回连接后的字节集。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被加数或文本或字节集”，类型为“通用型（all）”。

参数<2>的名称为“加数或文本或字节集”，类型为“通用型（all）”。

※相减

调用格式： 〈双精度小数型〉 相减 （被减数，减数，… ）

英文名称：sub

返回两个数值的差，运算符号为“-”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“被减数”，类型为“双精度小数型（double）”。

参数<2>的名称为“减数”，类型为“双精度小数型（double）”。

※负

调用格式： 〈双精度小数型〉 负 （数值）

英文名称：neg

反转一个数值的正负符号并返回反转后的值，运算符号为“-”（放在表达式首）。本命令为初级命令。

参数<1>的名称为“数值”，类型为“双精度小数型（double）”。

※取符号

调用格式： 〈整数型〉 取符号 （欲取其符号的数值）

英文名称：sgn

返回一个整数，如果小于零，表明给定数值为负；如果等于零，表明给定数值为零；如果大于零，表明给定数值为正。本命令为初级命令。

参数<1>的名称为“欲取其符号的数值”，类型为“双精度小数型（double）”。

※取绝对值

调用格式： 〈双精度小数型〉 取绝对值 （欲取其绝对值的数值）

英文名称：abs

如果所提供数值为字节型，则将直接返回该数值。本命令为初级命令。

参数<1>的名称为“欲取其绝对值的数值”，类型为“双精度小数型（double）”。

※取整

调用格式： 〈整数型〉 取整 （欲取整的小数）

英文名称：int

返回一个小数的整数部分。本命令与“绝对取整”命令不相同之处为：

如果给定小数为负数，则本命令返回小于或等于该小数的第一个负整数，而“绝对取整”命令则会返回大于或等于该小数的第一个负整数。例如，本命令将 -7.8 转换成 -8，而“绝对取整”命令将 -7.8 转换成 -7。本命令为初级命令。

参数<1>的名称为“欲取整的小数”，类型为“双精度小数型（double）”。

※绝对取整

调用格式： 〈整数型〉 绝对取整 （欲取整的小数）

英文名称：fix

返回一个小数的整数部分。本命令与“取整”命令不相同之处为：

如果给定小数为负数，则本命令返回大于或等于该小数的第一个负整数，而“取整”命令则会返回小于或等于该小数的第一个负整数。例如，本命令将 -7.8 转换成 -7，而“取整”命令将 -7.8 转换成 -8。本命令为初级命令。

参数<1>的名称为“欲取整的小数”，类型为“双精度小数型（double）”。

※四舍五入

调用格式： 〈双精度小数型〉 四舍五入 （欲被四舍五入的数值，［被舍入的位置］）

英文名称：round

返回按照指定的方式进行四舍五入运算的结果数值。本命令为初级命令。

参数<1>的名称为“欲被四舍五入的数值”，类型为“双精度小数型（double）”。

参数<2>的名称为“被舍入的位置”，类型为“整数型（int）”，可以被省略。如果大于0，表示小数点右边应保留的位数；如果等于0，表示舍入到整数；如果小于0，表示小数点左边舍入到的位置。例如：四舍五入 (1056.65, 1) 返回 1056.7； 四舍五入 (1056.65, 0) 返回 1057； 四舍五入 (1056.65, -1) 返回 1060。如果省略本参数，则默认为0。

※求次方

调用格式： 〈双精度小数型〉 求次方 （欲求次方数值，次方数）

英文名称：pow

返回指定数值的指定次方。本命令为初级命令。

参数<1>的名称为“欲求次方数值”，类型为“双精度小数型（double）”。参数值指定欲求其某次方的数值。

参数<2>的名称为“次方数”，类型为“双精度小数型（double）”。参数值指定对欲求次方数值的运算指数。

※求平方根

调用格式： 〈双精度小数型〉 求平方根 （欲求其平方根的数值）

英文名称：sqr

返回指定参数的平方根。本命令为初级命令。

参数<1>的名称为“欲求其平方根的数值”，类型为“双精度小数型（double）”。参数值如果小于零将导致计算错误。

※求正弦

调用格式： 〈双精度小数型〉 求正弦 （欲进行计算的角）

英文名称：sin

返回指定角的正弦值。本命令为初级命令。

参数<1>的名称为“欲进行计算的角”，类型为“双精度小数型（double）”。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

※求余弦

调用格式： 〈双精度小数型〉 求余弦 （欲进行计算的角）

英文名称：cos

返回指定角的余弦值。本命令为初级命令。

参数<1>的名称为“欲进行计算的角”，类型为“双精度小数型（double）”。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

※求正切

调用格式： 〈双精度小数型〉 求正切 （欲进行计算的角）

英文名称：tan

返回指定角的正切值。本命令为初级命令。

参数<1>的名称为“欲进行计算的角”，类型为“双精度小数型（double）”。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

※求反正切

调用格式： 〈双精度小数型〉 求反正切 （欲求其反正切值的数值）

英文名称：atn

返回指定数的反正切值。本命令为初级命令。

参数<1>的名称为“欲求其反正切值的数值”，类型为“双精度小数型（double）”。

※求自然对数

调用格式： 〈双精度小数型〉 求自然对数 （欲求其自然对数的数值）

英文名称：log

返回指定参数的自然对数值。自然对数是以 e 为底的对数。常量 #e 的值大约是 2.718282。本命令为初级命令。

参数<1>的名称为“欲求其自然对数的数值”，类型为“双精度小数型（double）”。

※求反对数

调用格式： 〈双精度小数型〉 求反对数 （欲求其反对数的数值）

英文名称：exp

返回 e（自然对数的底）的某次方。本命令为初级命令。

参数<1>的名称为“欲求其反对数的数值”，类型为“双精度小数型（double）”。如果参数值超过 709.782712893，将导致计算溢出。

※是否运算正确

调用格式： 〈逻辑型〉 是否运算正确 （欲校验的计算结果）

英文名称：IsCalcOK

对“求次方”、“求平方根”、“求正弦值”、“求余弦值”、“求正切值”、“求反正切值”、“求自然对数”、“求反对数”等等数学运算命令所计算出来的双精度结果数值进行校验，如果该数值正确有效，返回真。如果该数值是运算错误或运算溢出后的结果，返回假。本命令为初级命令。

参数<1>的名称为“欲校验的计算结果”，类型为“双精度小数型（double）”。

※置随机数种子

调用格式： 〈无返回值〉 置随机数种子 （［欲置入的种子数值］）

英文名称：randomize

为随机数生成器初始化一个种子值，不同的种子值将导致“取随机数”命令返回不同的随机数系列。本命令为初级命令。

参数<1>的名称为“欲置入的种子数值”，类型为“整数型（int）”，可以被省略。如果省略本参数，将默认使用当前计算机系统的时钟值。

※取随机数

调用格式： 〈整数型〉 取随机数 （［欲取随机数的最小值］，［欲取随机数的最大值］）

英文名称：rnd

返回一个指定范围内的随机数值。在使用本命令取一系列的随机数之前，应该先使用“置随机数种子”命令为随机数生成器初始化一个种子值。本命令为初级命令。

参数<1>的名称为“欲取随机数的最小值”，类型为“整数型（int）”，可以被省略。参数必须大于或等于零。本参数如果被省略，默认为 0 。

参数<2>的名称为“欲取随机数的最大值”，类型为“整数型（int）”，可以被省略。参数必须大于或等于零。本参数如果被省略，默认为无限。

逻辑比较

等于 | 不等于 | 小于 | 大于
小于或等于 | 大于或等于 | 近似等于 | 并且
或者 | 取反 |  |

※等于

调用格式： 〈逻辑型〉 等于 （被比较值，比较值）

被比较值与比较值相同时返回真，否则返回假，运算符号为“=”或“==”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型必须与“被比较值”一致或者可以相互转换。

※不等于

调用格式： 〈逻辑型〉 不等于 （被比较值，比较值）

被比较值与比较值不相同时返回真，否则返回假，运算符号为“<>”或“!=”或“≠”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型必须与“被比较值”一致或者可以相互转换。

※小于

调用格式： 〈逻辑型〉 小于 （被比较值，比较值）

被比较值小于比较值时返回真，否则返回假，运算符号为“<”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。被比较值的数据类型可以为数值型、日期时间型、文本型。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

※大于

调用格式： 〈逻辑型〉 大于 （被比较值，比较值）

被比较值大于比较值时返回真，否则返回假，运算符号为“>”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。被比较值的数据类型可以为数值型、日期时间型、文本型。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

※小于或等于

调用格式： 〈逻辑型〉 小于或等于 （被比较值，比较值）

被比较值小于或等于比较值时返回真，否则返回假，运算符号为“<=”或“≤”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。被比较值的数据类型可以为数值型、日期时间型、文本型。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

※大于或等于

调用格式： 〈逻辑型〉 大于或等于 （被比较值，比较值）

被比较值大于或等于比较值时返回真，否则返回假，运算符号为“>=”或“≥”。本命令为初级命令。

参数<1>的名称为“被比较值”，类型为“通用型（all）”。被比较值的数据类型可以为数值型、日期时间型、文本型。

参数<2>的名称为“比较值”，类型为“通用型（all）”。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

※近似等于

调用格式： 〈逻辑型〉 近似等于 （被比较文本，比较文本）

英文名称：like

当比较文本在被比较文本的首部被包容时返回真，否则返回假，运算符号为“?=”或“≈”。本命令为初级命令。

参数<1>的名称为“被比较文本”，类型为“文本型（text）”。

参数<2>的名称为“比较文本”，类型为“文本型（text）”。

※并且

调用格式： 〈逻辑型〉 并且 （逻辑值一，逻辑值二，… ）

英文名称：and

如果所提供的两个参数逻辑值都为真则返回真，否则返回假，运算符号为“&&”或“And”或“且”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“逻辑值一”，类型为“逻辑型（bool）”。

参数<2>的名称为“逻辑值二”，类型为“逻辑型（bool）”。

※或者

调用格式： 〈逻辑型〉 或者 （逻辑值一，逻辑值二，… ）

英文名称：or

如果所提供的两个参数逻辑值中任意有一个为真则返回真，否则返回假，运算符号为“||”或“Or”或“或”。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“逻辑值一”，类型为“逻辑型（bool）”。

参数<2>的名称为“逻辑值二”，类型为“逻辑型（bool）”。

※取反

调用格式： 〈逻辑型〉 取反 （被反转的逻辑值）

英文名称：not

如果参数值为真则返回假，如果参数值为假则返回真。本命令为初级命令。

参数<1>的名称为“被反转的逻辑值”，类型为“逻辑型（bool）”。

位运算

位取反

位与

位或

位异或

※位取反

调用格式： 〈整数型〉 位取反 （欲取反的数值）

英文名称：bnot

将指定数值每一个比特位的值取反后返回。本命令为中级命令。

参数<1>的名称为“欲取反的数值”，类型为“整数型（int）”。

※位与

调用格式： 〈整数型〉 位与 （位运算数值一，位运算数值二，… ）

英文名称：band

如两个数值有某共同比特位为1，则返回值的对应位也为1，否则为0。返回计算后的结果。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“位运算数值一”，类型为“整数型（int）”。

参数<2>的名称为“位运算数值二”，类型为“整数型（int）”。

※位或

调用格式： 〈整数型〉 位或 （位运算数值一，位运算数值二，… ）

英文名称：bor

如两个数值中有一个数值的某一比特位不为零，则返回值的对应位就为1，否则为0。返回计算后的结果。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“位运算数值一”，类型为“整数型（int）”。

参数<2>的名称为“位运算数值二”，类型为“整数型（int）”。

※位异或

调用格式： 〈整数型〉 位异或 （位运算数值一，位运算数值二，… ）

英文名称：bxor

如两个数值对应比特位的值不相等，则返回值的对应位就为1，否则为0。返回计算后的结果。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“位运算数值一”，类型为“整数型（int）”。

参数<2>的名称为“位运算数值二”，类型为“整数型（int）”。

容器操作

赋值

连续赋值

※赋值

调用格式： 〈无返回值〉 赋值 （被赋值的容器或容器数组，用作赋于的值或资源）

英文名称：set

将指定的常数、常数集、常量、资源、对象或者容器赋于到指定的容器或容器数组中去。运算符号为“=”。本命令为初级命令。

参数<1>的名称为“被赋值的容器或容器数组”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。

参数<2>的名称为“用作赋于的值或资源”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。

※连续赋值

调用格式： 〈无返回值〉 连续赋值 （用作赋于的值或资源，被赋值的容器或容器数组，… ）

英文名称：store

将指定的常数、常数集、常量、资源、对象或者容器赋于到一系列容器或容器数组中去。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“用作赋于的值或资源”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。

参数<2>的名称为“被赋值的容器或容器数组”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。

数组操作 类别

重定义数组 | 取数组成员数 | 取数组下标 | 复制数组
加入成员 | 插入成员 | 删除成员 | 清除数组
数组排序 | 数组清零 |  |

※重定义数组

调用格式： 〈无返回值〉 重定义数组 （欲重定义的数组容器，是否保留以前的内容，数组对应维的上限值，… ）

英文名称：ReDim

本命令可以重新定义指定数组的维数及各维的上限值。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲重定义的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“是否保留以前的内容”，类型为“逻辑型（bool）”，初始值为“假”。

参数<3>的名称为“数组对应维的上限值”，类型为“整数型（int）”。

※取数组成员数

调用格式： 〈整数型〉 取数组成员数 （欲检查的容器）

英文名称：GetAryElementCount

取指定数组容器的全部成员数目，如果该容器不为数组，返回-1，因此本命令也可以用作检查指定容器是否为数组容器。本命令为初级命令。

参数<1>的名称为“欲检查的容器”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。参数值指定欲检查其成员数目的数组容器或者欲检查其是否为数组的容器。

※取数组下标

调用格式： 〈整数型〉 取数组下标 （欲取某维最大下标的数组容器，［欲取其最大下标的维］）

英文名称：UBound

返回指定数组维可用的最大下标（最小下标固定为1）。如果给定容器不为数组容器或指定维不存在，返回 0 。本命令为初级命令。

参数<1>的名称为“欲取某维最大下标的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。

参数<2>的名称为“欲取其最大下标的维”，类型为“整数型（int）”，可以被省略。1 表示第一维，2 表示第二维，如此类推。如果省略本参数，默认值是 1。

※复制数组

调用格式： 〈无返回值〉 复制数组 （复制到的数组容器，待复制的数组数据）

英文名称：CopyAry

将数组数据复制到指定的数组容器，该数组容器内的所有数据和数组维定义信息将被全部覆盖。本命令为初级命令。

参数<1>的名称为“复制到的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“待复制的数组数据”，类型为“通用型（all）”，提供参数数据时只能提供数组数据。

※加入成员

调用格式： 〈无返回值〉 加入成员 （欲加入成员的数组容器，欲加入的成员数据）

英文名称：AddElement

将数据加入到指定数组容器的尾部，并通过重新定义数组维数自动增加其成员数目。数组容器如为多维数组，加入完毕后将被转换为单维数组。本命令为初级命令。

参数<1>的名称为“欲加入成员的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“欲加入的成员数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值所指定成员数据的数据类型必须能够与第一个参数所指定的数组容器相匹配。

※插入成员

调用格式： 〈无返回值〉 插入成员 （欲插入成员的数组容器，欲插入的位置，欲插入的成员数据）

英文名称：InsElement

将数据插入到指定数组容器的指定位置，并通过重新定义数组维数自动增加其成员数目。数组容器如为多维数组，插入完毕后将被转换为单维数组。本命令为初级命令。

参数<1>的名称为“欲插入成员的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“欲插入的位置”，类型为“整数型（int）”。位置值从 1 开始，如果小于 1 或大于第一个参数所指定数组容器的成员数目 + 1，将不会插入任何数据。

参数<3>的名称为“欲插入的成员数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值所指定成员数据的数据类型必须能够与第一个参数所指定的数组容器相匹配。

※删除成员

调用格式： 〈整数型〉 删除成员 （欲删除成员的数组容器，欲删除的位置，［欲删除的成员数目］）

英文名称：RemoveElement

删除指定数组容器中的成员，并通过重新定义数组维数自动减少其成员数目。数组容器如为多维数组，删除完毕后将被转换为单维数组。返回所实际删除的成员数目。本命令为初级命令。

参数<1>的名称为“欲删除成员的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“欲删除的位置”，类型为“整数型（int）”。位置值从 1 开始，如果小于 1 或大于第一个参数所指定数组容器的成员数目，将不会删除任何数据。

参数<3>的名称为“欲删除的成员数目”，类型为“整数型（int）”，可以被省略。本参数如果被省略，默认为 1 。

※清除数组

调用格式： 〈无返回值〉 清除数组 （欲删除成员的数组容器）

英文名称：RemoveAll

删除指定数组容器中的所有成员，释放这些成员所占用的存储空间，重新定义该容器为单维 0 成员数组容器。本命令为初级命令。

参数<1>的名称为“欲删除成员的数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

※数组排序

调用格式： 〈无返回值〉 数组排序 （数值数组容器，［排序方向是否为从小到大］）

英文名称：SortAry

对指定数值数组容器内的所有数组成员进行快速排序，不影响数组的维定义信息，排序结果存放回该数组容器。本命令为初级命令。

参数<1>的名称为“数值数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

参数<2>的名称为“排序方向是否为从小到大”，类型为“逻辑型（bool）”，可以被省略。如果参数值为真，排序方向为从小到大，否则为从大到小。如果本参数被省略，默认值为真。

※数组清零

调用格式： 〈无返回值〉 数组清零 （数值数组容器）

英文名称：ZeroAry

将指定数值数组容器内的所有成员值全部设置为零，不影响数组的维定义信息。本命令为初级命令。

参数<1>的名称为“数值数组容器”，类型为“通用型（all）”，提供参数数据时只能提供容器数组。

环境存取

取命令行 | 取运行目录 | 取执行文件名 | 读环境变量
写环境变量 |  |  |

※取命令行

调用格式： 〈无返回值〉 取命令行 （存放被取回命令行文本的数组容器）

英文名称：GetCmdLine

本命令可以取出在启动易程序时附加在其可执行文件名后面的所有以空格分隔的命令行文本段。本命令为初级命令。

参数<1>的名称为“存放被取回命令行文本的数组容器”，类型为“文本型（text）”，提供参数数据时只能提供容器数组。在命令执行完毕后，本容器数组内被顺序填入在启动易程序时附加在其可执行文件名后面的以空格分隔的命令行文本段。容器数组内原有数据被全部销毁，容器数组的维数被自动调整为命令行文本段数。

※取运行目录

调用格式： 〈文本型〉 取运行目录 （）

英文名称：GetRunPath

取当前被执行的易程序文件所处的目录。本命令为初级命令。

※取执行文件名

调用格式： 〈文本型〉 取执行文件名 （）

英文名称：GetRunFileName

取当前被执行的易程序文件的名称。本命令为初级命令。

※读环境变量

调用格式： 〈文本型〉 读环境变量 （环境变量名称）

英文名称：GetEnv

返回文本，它关连于一个操作系统环境变量。成功时返回所取得的值，失败则返回空文本。本命令为初级命令。

参数<1>的名称为“环境变量名称”，类型为“文本型（text）”。

※写环境变量

调用格式： 〈逻辑型〉 写环境变量 （环境变量名称，欲写入内容）

英文名称：PutEnv

修改或建立指定的操作系统环境变量。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“环境变量名称”，类型为“文本型（text）”。

参数<2>的名称为“欲写入内容”，类型为“文本型（text）”。

拼音处理

取所有发音 | 取发音数目 | 取拼音 | 取声母
取韵母 | 发音比较 | 输入字比较 |

※取所有发音

调用格式： 〈文本型数组〉 取所有发音 （欲取其拼音的汉字）

英文名称：GetAllPY

返回包含指定汉字所有拼音编码的文本数组（支持多音字），目前仅支持国标汉字。返回的数组结果可以用“复制数组”命令保存到同类型数组容器。本命令为初级命令。

参数<1>的名称为“欲取其拼音的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个成员数目为 0 的空文本数组。

※取发音数目

调用格式： 〈整数型〉 取发音数目 （欲取其发音数目的汉字）

英文名称：GetPYCount

返回指定汉字的发音数目。本命令为初级命令。

参数<1>的名称为“欲取其发音数目的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回 0。

※取拼音

调用格式： 〈文本型〉 取拼音 （欲取其拼音编码的汉字，欲取拼音编码的索引）

英文名称：GetPY

返回包含指定汉字的指定拼音编码的文本。如果该指定拼音编码不存在，将返回空文本。目前仅支持国标汉字。多音字的第一个发音为常用音。本命令为初级命令。

参数<1>的名称为“欲取其拼音编码的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。

参数<2>的名称为“欲取拼音编码的索引”，类型为“整数型（int）”，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

※取声母

调用格式： 〈文本型〉 取声母 （欲取其拼音编码的汉字，欲取拼音编码的索引）

英文名称：GetSM

返回包含指定汉字指定拼音编码的声母部分文本。如果指定拼音编码不存在或该汉字此发音无声母，将返回空文本。目前仅支持国标汉字。本命令为初级命令。

参数<1>的名称为“欲取其拼音编码的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。

参数<2>的名称为“欲取拼音编码的索引”，类型为“整数型（int）”，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

※取韵母

调用格式： 〈文本型〉 取韵母 （欲取其拼音编码的汉字，欲取拼音编码的索引）

英文名称：GetYM

返回包含指定汉字指定拼音编码的韵母部分文本。如果指定拼音编码不存在，将返回空文本。目前仅支持国标汉字。本命令为初级命令。

参数<1>的名称为“欲取其拼音编码的汉字”，类型为“文本型（text）”。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。

参数<2>的名称为“欲取拼音编码的索引”，类型为“整数型（int）”，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

※发音比较

调用格式： 〈逻辑型〉 发音比较 （待比较文本一，待比较文本二，是否支持南方音，［是否为模糊比较］）

英文名称：CompPY

比较两个文本的发音，如果发音相同返回真，否则返回假。对于文本中的非国标汉字部分，将仅进行简单的值比较。本命令为初级命令。

参数<1>的名称为“待比较文本一”，类型为“文本型（text）”。

参数<2>的名称为“待比较文本二”，类型为“文本型（text）”。

参数<3>的名称为“是否支持南方音”，类型为“逻辑型（bool）”，初始值为“真”。为真则支持南方音。如果支持南方音，比较时将认为所有相近的发音都相同。如： n 和 l、 z 和 zh、 ie 和 ue 等等。

参数<4>的名称为“是否为模糊比较”，类型为“逻辑型（bool）”，可以被省略。本参数为真时，当待比较文本一的发音在待比较文本二的首部被包容时即认为比较通过。如果被省略，默认值为假。

※输入字比较

调用格式： 〈逻辑型〉 输入字比较 （待比较拼音输入字，待比较普通文本，是否支持南方音，［拼音输入字类别］）

英文名称：CompPYCode

将一个拼音输入字文本与另外一个普通文本比较，如果两者相符，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“待比较拼音输入字”，类型为“文本型（text）”。拼音输入字有以下三类：

一、首拼及全拼类： 如：“jsj”匹配“计算机”，同时“jisuanji”也匹配“计算机”。系统自动判别该输入字具体是首拼方式还是全拼方式；

二、双拼类： 如：“jisrji”匹配“计算机”，双拼编码的方案与 Windows 系统下的双拼输入法一致；

三、自动判别类： 使用此类别需在拼音输入字的首部加一个半角字符用作判别：分号 (“;”) 代表首拼及全拼类，冒号 (“:”) 代表双拼类，如既不为分号也不为冒号，则默认为首拼及全拼类。如“jsj”、“;jsj”、“;jisuanji”、“:jisrji”都匹配“计算机”。

另：书写拼音输入字时的一些规则：

一、为了匹配目标文本中的大小写英文字母，请在相应位置处使用对应的大写英文字母。如：“jsjA”匹配“计算机a”、“计算机A”；

二、为了匹配目标文本中的半角数字，请在相应位置处使用该数字。如：“jsj1”匹配“计算机1”；

三、为了匹配目标文本中的汉字符号或不知道发音的汉字，请在相应位置处使用该汉字。如：“j算j1”匹配“计算机1”；

四、拼音输入字内不能包含除了“_”以外的所有其他半角符号。

参数<2>的名称为“待比较普通文本”，类型为“文本型（text）”。

参数<3>的名称为“是否支持南方音”，类型为“逻辑型（bool）”，初始值为“真”。为真则支持南方音。如果支持南方音，比较时将认为所有相近的发音都相同。如： n 和 l、 z 和 zh、 ie 和 ue 等等。

参数<4>的名称为“拼音输入字类别”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量之一： 1、#首拼及全拼； 2、#双拼； 3、#自动判别。 如果省略本参数，默认为“#自动判别”。

文本操作

取文本长度 | 取文本左边 | 取文本右边 | 取文本中间
字符 | 取代码 | 寻找文本 | 倒找文本
到大写 | 到小写 | 到全角 | 到半角
到文本 | 删首空 | 删尾空 | 删首尾空
删全部空 | 文本替换 | 子文本替换 | 取空白文本
取重复文本 | 文本比较 | 分割文本 |

※取文本长度

调用格式： 〈整数型〉 取文本长度 （文本数据）

英文名称：len

取文本型数据的长度，不包含结束0。本命令为初级命令。

参数<1>的名称为“文本数据”，类型为“文本型（text）”。参数值指定欲检查其长度的文本数据。

※取文本左边

调用格式： 〈文本型〉 取文本左边 （欲取其部分的文本，欲取出字符的数目）

英文名称：left

返回一个文本，其中包含指定文本中从左边算起指定数量的字符。本命令为初级命令。

参数<1>的名称为“欲取其部分的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲取出字符的数目”，类型为“整数型（int）”。

※取文本右边

调用格式： 〈文本型〉 取文本右边 （欲取其部分的文本，欲取出字符的数目）

英文名称：right

返回一个文本，其中包含指定文本中从右边算起指定数量的字符。本命令为初级命令。

参数<1>的名称为“欲取其部分的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲取出字符的数目”，类型为“整数型（int）”。

※取文本中间

调用格式： 〈文本型〉 取文本中间 （欲取其部分的文本，起始取出位置，欲取出字符的数目）

英文名称：mid

返回一个文本，其中包含指定文本中从指定位置算起指定数量的字符。本命令为初级命令。

参数<1>的名称为“欲取其部分的文本”，类型为“文本型（text）”。

参数<2>的名称为“起始取出位置”，类型为“整数型（int）”。1为首位置，2为第2个位置，如此类推。

参数<3>的名称为“欲取出字符的数目”，类型为“整数型（int）”。

※字符

调用格式： 〈文本型〉 字符 （欲取其字符的字符代码）

英文名称：chr

返回一个文本，其中包含有与指定字符代码相关的字符。本命令为初级命令。

参数<1>的名称为“欲取其字符的字符代码”，类型为“字节型（byte）”。

※取代码

调用格式： 〈整数型〉 取代码 （欲取字符代码的文本，［欲取其代码的字符位置］）

英文名称：asc

返回文本中指定位置处字符的代码。如果指定位置超出文本长度，返回0。本命令为初级命令。

参数<1>的名称为“欲取字符代码的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲取其代码的字符位置”，类型为“整数型（int）”，可以被省略。1为首位置，2为第2个位置，如此类推。如果本参数被省略，默认为首位置。

※寻找文本

调用格式： 〈整数型〉 寻找文本 （被搜寻的文本，欲寻找的文本，［起始搜寻位置］，是否不区分大小写）

英文名称：InStr

返回一个整数值，指定一文本在另一文本中最先出现的位置，位置值从 1 开始。如果未找到，返回-1。本命令为初级命令。

参数<1>的名称为“被搜寻的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲寻找的文本”，类型为“文本型（text）”。

参数<3>的名称为“起始搜寻位置”，类型为“整数型（int）”，可以被省略。位置值从 1 开始。如果本参数被省略，默认为 1 。

参数<4>的名称为“是否不区分大小写”，类型为“逻辑型（bool）”，初始值为“假”。为真不区分大小写，为假区分。

※倒找文本

调用格式： 〈整数型〉 倒找文本 （被搜寻的文本，欲寻找的文本，［起始搜寻位置］，是否不区分大小写）

英文名称：InStrRev

返回一个整数值，指定一文本在另一文本中最后出现的位置，位置值从 1 开始。如果未找到，返回-1。本命令为初级命令。

参数<1>的名称为“被搜寻的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲寻找的文本”，类型为“文本型（text）”。

参数<3>的名称为“起始搜寻位置”，类型为“整数型（int）”，可以被省略。位置值从 1 开始。如果本参数被省略，默认为从被搜寻文本的尾部开始。

参数<4>的名称为“是否不区分大小写”，类型为“逻辑型（bool）”，初始值为“假”。为真不区分大小写，为假区分。

※到大写

调用格式： 〈文本型〉 到大写 （欲变换的文本）

英文名称：UCase

将文本中的小写英文字母变换为大写，返回变换后的结果文本。本命令为初级命令。

参数<1>的名称为“欲变换的文本”，类型为“文本型（text）”。

※到小写

调用格式： 〈文本型〉 到小写 （欲变换的文本）

英文名称：LCase

将文本中的大写英文字母变换为小写，返回变换后的结果文本。本命令为初级命令。

参数<1>的名称为“欲变换的文本”，类型为“文本型（text）”。

※到全角

调用格式： 〈文本型〉 到全角 （欲变换的文本）

英文名称：QJCase

将文本中的半角字母、空格或数字变换为全角，返回变换后的结果文本。本命令为初级命令。

参数<1>的名称为“欲变换的文本”，类型为“文本型（text）”。

※到半角

调用格式： 〈文本型〉 到半角 （欲变换的文本）

英文名称：BJCase

将文本中的全角字母、空格或数字变换为半角，返回变换后的结果文本。本命令为初级命令。

参数<1>的名称为“欲变换的文本”，类型为“文本型（text）”。

※到文本

调用格式： 〈文本型〉 到文本 （待转换的数据）

英文名称：str

返回一个文本，代表指定数值、逻辑值或日期时间被转换后的结果。如果为文本数据，将被直接返回。本命令为初级命令。

参数<1>的名称为“待转换的数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值只能为数值、逻辑值、字节集、日期时间或字节数组。

※删首空

调用格式： 〈文本型〉 删首空 （欲删除空格的文本）

英文名称：LTrim

返回一个文本，其中包含被删除了首部全角或半角空格的指定文本。本命令为初级命令。

参数<1>的名称为“欲删除空格的文本”，类型为“文本型（text）”。

※删尾空

调用格式： 〈文本型〉 删尾空 （欲删除空格的文本）

英文名称：RTrim

返回一个文本，其中包含被删除了尾部全角或半角空格的指定文本。本命令为初级命令。

参数<1>的名称为“欲删除空格的文本”，类型为“文本型（text）”。

※删首尾空

调用格式： 〈文本型〉 删首尾空 （欲删除空格的文本）

英文名称：trim

返回一个文本，其中包含被删除了首部及尾部全角或半角空格的指定文本。本命令为初级命令。

参数<1>的名称为“欲删除空格的文本”，类型为“文本型（text）”。

※删全部空

调用格式： 〈文本型〉 删全部空 （欲删除空格的文本）

英文名称：TrimAll

返回一个文本，其中包含被删除了所有全角或半角空格的指定文本。本命令为初级命令。

参数<1>的名称为“欲删除空格的文本”，类型为“文本型（text）”。

※文本替换

调用格式： 〈文本型〉 文本替换 （欲被替换的文本，起始替换位置，替换长度，［用作替换的文本］）

英文名称：ReplaceText

将指定文本的某一部分用其它的文本替换。本命令为初级命令。

参数<1>的名称为“欲被替换的文本”，类型为“文本型（text）”。

参数<2>的名称为“起始替换位置”，类型为“整数型（int）”。替换的起始位置，1为首位置，2为第2个位置，如此类推。

参数<3>的名称为“替换长度”，类型为“整数型（int）”。

参数<4>的名称为“用作替换的文本”，类型为“文本型（text）”，可以被省略。如果本参数被省略，则删除文本中的指定部分。

※子文本替换

调用格式： 〈文本型〉 子文本替换 （欲被替换的文本，欲被替换的子文本，［用作替换的子文本］，［进行替换的起始位置］，［替换进行的次数］，是否区分大小写）

英文名称：RpSubText

返回一个文本，该文本中指定的子文本已被替换成另一子文本，并且替换发生的次数也是被指定的。本命令为初级命令。

参数<1>的名称为“欲被替换的文本”，类型为“文本型（text）”。

参数<2>的名称为“欲被替换的子文本”，类型为“文本型（text）”。

参数<3>的名称为“用作替换的子文本”，类型为“文本型（text）”，可以被省略。如果本参数被省略，默认为空文本。

参数<4>的名称为“进行替换的起始位置”，类型为“整数型（int）”，可以被省略。参数值指定被替换子文本的起始搜索位置。如果省略，默认从 1 开始。

参数<5>的名称为“替换进行的次数”，类型为“整数型（int）”，可以被省略。参数值指定对子文本进行替换的次数。如果省略，默认进行所有可能的替换。

参数<6>的名称为“是否区分大小写”，类型为“逻辑型（bool）”，初始值为“真”。为真区分大小写，为假不区分。

※取空白文本

调用格式： 〈文本型〉 取空白文本 （重复次数）

英文名称：space

返回具有指定数目半角空格的文本。本命令为初级命令。

参数<1>的名称为“重复次数”，类型为“整数型（int）”。

※取重复文本

调用格式： 〈文本型〉 取重复文本 （重复次数，待重复文本）

英文名称：string

返回一个文本，其中包含指定次数的文本重复结果。本命令为初级命令。

参数<1>的名称为“重复次数”，类型为“整数型（int）”。

参数<2>的名称为“待重复文本”，类型为“文本型（text）”。该文本将用于建立返回的文本。如果为空，将返回一个空文本。

※文本比较

调用格式： 〈整数型〉 文本比较 （待比较文本一，待比较文本二，是否区分大小写）

英文名称：StrComp

如果返回值小于0，表示文本一小于文本二；如果等于0，表示文本一等于文本二；如果大于0，表示文本一大于文本二。如果比较时区分大小写，也可以使用比较运算符进行同样的操作。本命令为初级命令。

参数<1>的名称为“待比较文本一”，类型为“文本型（text）”。

参数<2>的名称为“待比较文本二”，类型为“文本型（text）”。

参数<3>的名称为“是否区分大小写”，类型为“逻辑型（bool）”，初始值为“真”。为真区分大小写，为假不区分。

※分割文本

调用格式： 〈文本型数组〉 分割文本 （待分割文本，［用作分割的文本］，［要返回的子文本数目］）

英文名称：split

将指定文本进行分割，返回分割后的一维文本数组。本命令为初级命令。

参数<1>的名称为“待分割文本”，类型为“文本型（text）”。如果参数值是一个长度为零的文本，则返回一个空数组，即没有任何成员的数组。

参数<2>的名称为“用作分割的文本”，类型为“文本型（text）”，可以被省略。参数值用于标识子文本边界。如果被省略，则默认使用半角逗号字符作为分隔符。如果是一个长度为零的文本，则返回的数组仅包含一个成员，即完整的“待分割文本”。

参数<3>的名称为“要返回的子文本数目”，类型为“整数型（int）”，可以被省略。如果被省略，则默认返回所有的子文本。

时间操作

到时间 | 增减时间 | 取时间间隔 | 取某月天数
时间到文本 | 取时间部分 | 取年份 | 取月份
取日 | 取星期几 | 取小时 | 取分钟
取秒 | 指定时间 | 取现行时间 | 置现行时间
取日期 | 取时间 |  |

※到时间

调用格式： 〈日期时间型〉 到时间 （欲转换的文本）

英文名称：ToTime

将指定文本转换为时间并返回。如果给定文本不符合书写格式要求或者时间值错误导致不能进行转换，将返回100年1月1日。如果给定参数本身就是时间数据，将直接返回该时间。本命令为初级命令。

参数<1>的名称为“欲转换的文本”，类型为“通用型（all）”。文本内容应按以下格式之一提供，年份后的时间部分可以省略：

1、1973年11月15日 12时30分25秒

2、1973/11/15 12:30:25 3、1973/11/15/12/30/25

4、1973/11/15/12:30:25 5、1973-11-15-12-30-25

6、1973-11-15-12:30:25 7、19731115123025

※增减时间

调用格式： 〈日期时间型〉 增减时间 （时间，被增加部分，增加值）

英文名称：TimeChg

返回一个时间，这一时间被加上或减去了一段间隔。如果改变后的时间无效，将自动靠近最近的有效时间。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

参数<2>的名称为“被增加部分”，类型为“整数型（int）”。参数值指定增加或减少时间的哪一部分，可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#周； 5、#日； 6、#小时； 7、#分钟； 8、#秒。

参数<3>的名称为“增加值”，类型为“整数型（int）”。相对于被增加部分的增加或减少数值。

※取时间间隔

调用格式： 〈双精度小数型〉 取时间间隔 （时间1，时间2，取间隔部分）

英文名称：TimeDiff

返回一个数值，表示“时间1”减去“时间2”之后的间隔数目。注意：每个星期以星期天为第一天。本命令为初级命令。

参数<1>的名称为“时间1”，类型为“日期时间型（date）”。

参数<2>的名称为“时间2”，类型为“日期时间型（date）”。

参数<3>的名称为“取间隔部分”，类型为“整数型（int）”。参数值指定取时间间隔的哪一部分，可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#周； 5、#日； 6、#小时； 7、#分钟； 8、#秒。

※取某月天数

调用格式： 〈整数型〉 取某月天数 （年份，月份）

英文名称：GetDaysOfSpecMonth

返回指定月份所包含的天数。如果给定的月份无效，返回0。本命令为初级命令。

参数<1>的名称为“年份”，类型为“整数型（int）”。参数值从 100 到 9999。

参数<2>的名称为“月份”，类型为“整数型（int）”。参数值从 1 到 12。

※时间到文本

调用格式： 〈文本型〉 时间到文本 （欲转换到文本的时间，［转换部分］）

英文名称：TimeToText

将指定时间转换为文本并返回。本命令为初级命令。

参数<1>的名称为“欲转换到文本的时间”，类型为“日期时间型（date）”。

参数<2>的名称为“转换部分”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量： 1、#全部转换； 2、#日期部分； 3、#时间部分。如果省略了本参数，默认为“#全部转换”。

※取时间部分

调用格式： 〈整数型〉 取时间部分 （欲取其部分的时间，欲取的时间部分）

英文名称：TimePart

返回一个包含已知时间指定部分的整数。本命令为初级命令。

参数<1>的名称为“欲取其部分的时间”，类型为“日期时间型（date）”。

参数<2>的名称为“欲取的时间部分”，类型为“整数型（int）”。参数值可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#自年首周数； 5、#日； 6、#小时； 7、#分钟； 8、#秒； 9、#星期几； 10、#自年首天数。其中：自年首周数、自年首天数均从 1 开始。

※取年份

调用格式： 〈整数型〉 取年份 （时间）

英文名称：year

返回一个值为 100 到 9999 之间的整数，表示指定时间中的年份。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取月份

调用格式： 〈整数型〉 取月份 （时间）

英文名称：month

返回一个值为 1 到 12 之间的整数，表示指定时间中的月份。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取日

调用格式： 〈整数型〉 取日 （时间）

英文名称：day

返回一个值为 1 到 31 之间的整数，表示一个月中的某一日。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取星期几

调用格式： 〈整数型〉 取星期几 （时间）

英文名称：WeekDay

返回一个值为 1 到 7 之间的整数，表示一个星期中的某一日。星期日为 1，星期一为 2，依此类推。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取小时

调用格式： 〈整数型〉 取小时 （时间）

英文名称：hour

返回一个值为 0 到 23 之间的整数，表示一天中的某一小时。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取分钟

调用格式： 〈整数型〉 取分钟 （时间）

英文名称：minute

返回一个值为 0 到 59 之间的整数，表示一小时中的某一分钟。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取秒

调用格式： 〈整数型〉 取秒 （时间）

英文名称：second

返回一个值为 0 到 59 之间的整数，表示一分钟中的某一秒。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※指定时间

调用格式： 〈日期时间型〉 指定时间 （年，［月］，［日］，［小时］，［分钟］，［秒］）

英文名称：GetSpecTime

返回包含指定年、月、日、小时、分、秒的时间。如果指定了无效时间，将自动使用最相近的有效时间代替。本命令为初级命令。

参数<1>的名称为“年”，类型为“整数型（int）”。

参数<2>的名称为“月”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 1 月。

参数<3>的名称为“日”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 1 日。

参数<4>的名称为“小时”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 0 时。

参数<5>的名称为“分钟”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 0 分钟。

参数<6>的名称为“秒”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认为 0 秒。

※取现行时间

调用格式： 〈日期时间型〉 取现行时间 （）

英文名称：now

返回当前系统日期及时间。本命令为初级命令。

※置现行时间

调用格式： 〈逻辑型〉 置现行时间 （欲设置的时间）

英文名称：SetSysTime

设置当前系统日期及时间。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲设置的时间”，类型为“日期时间型（date）”。

※取日期

调用格式： 〈日期时间型〉 取日期 （时间）

英文名称：GetDatePart

返回一个日期时间型数据的日期部分，其小时、分钟、秒被固定设置为0时0分0秒。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

※取时间

调用格式： 〈日期时间型〉 取时间 （时间）

英文名称：GetTimePart

返回一个日期时间型数据的时间部分，其年、月、日被固定设置为2000年1月1日。本命令为初级命令。

参数<1>的名称为“时间”，类型为“日期时间型（date）”。

数值转换

到数值 | 数值到大写 | 数值到人民币 | 数值到格式文本
取十六进制文本 | 取八进制文本 |  |

※到数值

调用格式： 〈双精度小数型〉 到数值 （待转换的文本或数值）

英文名称：val

返回包含于文本内的数值，文本中是一个适当类型的数值，支持全角书写方式。本命令也可用作将其他类型的数值数据转换为双精度小数。本命令为初级命令。

参数<1>的名称为“待转换的文本或数值”，类型为“通用型（all）”。

※数值到大写

调用格式： 〈文本型〉 数值到大写 （欲转换形式的数值，是否转换为简体）

英文名称：UNum

将数值转换为简体或繁体的大写形式，返回转换后的文本。本命令为初级命令。

参数<1>的名称为“欲转换形式的数值”，类型为“双精度小数型（double）”。

参数<2>的名称为“是否转换为简体”，类型为“逻辑型（bool）”，初始值为“假”。如果参数值为假，则转换为繁体。

※数值到人民币

调用格式： 〈文本型〉 数值到人民币 （欲转换形式的数值，是否转换为简体）

英文名称：NumToRMB

将数值转换为人民币金额的简体或繁体大写形式，返回转换后的文本。本命令为初级命令。

参数<1>的名称为“欲转换形式的数值”，类型为“双精度小数型（double）”。

参数<2>的名称为“是否转换为简体”，类型为“逻辑型（bool）”，初始值为“假”。如果参数值为假，则转换为繁体。

※数值到格式文本

调用格式： 〈文本型〉 数值到格式文本 （欲转换为文本的数值，［小数保留位数］，是否进行千分位分隔）

英文名称：NumToText

返回一个文本，代表指定数值被格式转换后的结果。本命令为初级命令。

参数<1>的名称为“欲转换为文本的数值”，类型为“双精度小数型（double）”。

参数<2>的名称为“小数保留位数”，类型为“整数型（int）”，可以被省略。如果大于0，表示小数点右边应四舍五入保留的位数；如果等于0，表示舍入到整数；如果小于0，表示小数点左边舍入到的位置。例如：数值到格式文本 (1056.65, 1, 假) 返回 “1056.7”； 数值到格式文本 (1056.65, 0, 假) 返回 “1056”； 数值到格式文本 (1056.65, -1, 假) 返回 “1060”。如果省略本参数，则默认为保留所有实际存在的小数位。

参数<3>的名称为“是否进行千分位分隔”，类型为“逻辑型（bool）”，初始值为“假”。如果参数值为真，数值文本的每个千分位上都将被自动插入一个逗号进行分隔。

※取十六进制文本

调用格式： 〈文本型〉 取十六进制文本 （欲取进制文本的数值）

英文名称：hex

返回一个文本，代表指定数值的十六进制形式。本命令为初级命令。

参数<1>的名称为“欲取进制文本的数值”，类型为“整数型（int）”。

※取八进制文本

调用格式： 〈文本型〉 取八进制文本 （欲取进制文本的数值）

英文名称：oct

返回一个文本，代表指定数值的八进制形式。本命令为初级命令。

参数<1>的名称为“欲取进制文本的数值”，类型为“整数型（int）”。

字节集操作

取字节集长度 | 到字节集 | 从字节集转换 | 取字节集左边
取字节集右边 | 取字节集中间 | 寻找字节集 | 倒找字节集
字节集替换 | 子字节集替换 | 取空白字节集 | 取重复字节集
分割字节集 |  |  |

※取字节集长度

调用格式： 〈整数型〉 取字节集长度 （字节集数据）

英文名称：BinLen

取字节集型数据的长度。本命令为初级命令。

参数<1>的名称为“字节集数据”，类型为“字节集（bin）”。参数值指定欲检查其长度的字节集数据。

※到字节集

调用格式： 〈字节集〉 到字节集 （欲转换为字节集的数据）

英文名称：ToBin

将指定数据转换为字节集后返回转换结果。本命令为初级命令。

参数<1>的名称为“欲转换为字节集的数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值只能为基本数据类型数据或字节数组。

※从字节集转换

调用格式： 〈通用型〉 从字节集转换 （欲转换的字节集，欲转换为的数据类型）

英文名称：CnvFromBin

将字节集转换成指定数据类型的数据，返回转换后的结果。本命令为初级命令。

参数<1>的名称为“欲转换的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲转换为的数据类型”，类型为“整数型（int）”。参数值可以为以下常量： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 9、#子程序指针型； 10、#文本型。转换后的数据将自动进行有效性校验及转换处理。

※取字节集左边

调用格式： 〈字节集〉 取字节集左边 （欲取其部分的字节集，欲取出字节的数目）

英文名称：BinLeft

返回一个字节集，其中包含指定字节集中从左边算起指定数量的字节。本命令为初级命令。

参数<1>的名称为“欲取其部分的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲取出字节的数目”，类型为“整数型（int）”。

※取字节集右边

调用格式： 〈字节集〉 取字节集右边 （欲取其部分的字节集，欲取出字节的数目）

英文名称：BinRight

返回一个字节集，其中包含指定字节集中从右边算起指定数量的字节。本命令为初级命令。

参数<1>的名称为“欲取其部分的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲取出字节的数目”，类型为“整数型（int）”。

※取字节集中间

调用格式： 〈字节集〉 取字节集中间 （欲取其部分的字节集，起始取出位置，欲取出字节的数目）

英文名称：BinMid

返回一个字节集，其中包含指定字节集中从指定位置算起指定数量的字节。本命令为初级命令。

参数<1>的名称为“欲取其部分的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“起始取出位置”，类型为“整数型（int）”。1为首位置，2为第2个位置，如此类推。

参数<3>的名称为“欲取出字节的数目”，类型为“整数型（int）”。

※寻找字节集

调用格式： 〈整数型〉 寻找字节集 （被搜寻的字节集，欲寻找的字节集）

英文名称：InBin

返回一字节集在另一字节集中最先出现的位置，位置值从 1 开始。如果未找到，返回 -1。本命令为初级命令。

参数<1>的名称为“被搜寻的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲寻找的字节集”，类型为“字节集（bin）”。

※倒找字节集

调用格式： 〈整数型〉 倒找字节集 （被搜寻的字节集，欲寻找的字节集）

英文名称：InBinRev

返回一字节集在另一字节集中最后出现的位置，位置值从 1 开始。如果未找到，返回 -1。本命令为初级命令。

参数<1>的名称为“被搜寻的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲寻找的字节集”，类型为“字节集（bin）”。

※字节集替换

调用格式： 〈字节集〉 字节集替换 （欲替换其部分的字节集，起始替换位置，替换长度，［用作替换的字节集］）

英文名称：RpBin

将指定字节集的某一部分用其它的字节集替换，然后返回替换后的结果。本命令为初级命令。

参数<1>的名称为“欲替换其部分的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“起始替换位置”，类型为“整数型（int）”。替换的起始位置，1为首位置，2为第2个位置，如此类推。

参数<3>的名称为“替换长度”，类型为“整数型（int）”。

参数<4>的名称为“用作替换的字节集”，类型为“字节集（bin）”，可以被省略。如果本参数被省略，则删除字节集中的指定部分。

※子字节集替换

调用格式： 〈字节集〉 子字节集替换 （欲被替换的字节集，欲被替换的子字节集，［用作替换的子字节集］，［进行替换的起始位置］，［替换进行的次数］）

英文名称：RpSubBin

返回一个字节集，该字节集中指定的子字节集已被替换成另一子字节集，并且替换发生的次数也是被指定的。本命令为初级命令。

参数<1>的名称为“欲被替换的字节集”，类型为“字节集（bin）”。

参数<2>的名称为“欲被替换的子字节集”，类型为“字节集（bin）”。

参数<3>的名称为“用作替换的子字节集”，类型为“字节集（bin）”，可以被省略。如果省略本参数，则默认为空字节集。

参数<4>的名称为“进行替换的起始位置”，类型为“整数型（int）”，可以被省略。被替换子字节集的起始搜索位置。如果省略，默认从1开始。

参数<5>的名称为“替换进行的次数”，类型为“整数型（int）”，可以被省略。对子字节集进行替换的次数。如果省略，默认进行所有可能的替换。

※取空白字节集

调用格式： 〈字节集〉 取空白字节集 （零字节数目）

英文名称：SpaceBin

返回具有特定数目 0 字节的字节集。本命令为初级命令。

参数<1>的名称为“零字节数目”，类型为“整数型（int）”。

※取重复字节集

调用格式： 〈字节集〉 取重复字节集 （重复次数，待重复的字节集）

英文名称：bin

返回一个字节集，其中包含指定次数的字节集重复结果。本命令为初级命令。

参数<1>的名称为“重复次数”，类型为“整数型（int）”。

参数<2>的名称为“待重复的字节集”，类型为“字节集（bin）”。该字节集将用于建立返回的字节集。如果为空，将返回一个空字节集。

※分割字节集

调用格式： 〈字节集数组〉 分割字节集 （待分割字节集，［用作分割的字节集］，［要返回的子字节集数目］）

英文名称：SplitBin

将指定字节集进行分割，返回分割后的一维字节集数组。本命令为初级命令。

参数<1>的名称为“待分割字节集”，类型为“字节集（bin）”。如果参数值是一个长度为零的字节集，则返回一个空数组，即没有任何成员的数组。

参数<2>的名称为“用作分割的字节集”，类型为“字节集（bin）”，可以被省略。用于标识子字节集边界。本参数如果被省略，则默认使用字节 0 作为分隔符。

参数<3>的名称为“要返回的子字节集数目”，类型为“整数型（int）”，可以被省略。如果被省略，则默认返回所有的子字节集。

磁盘操作

取磁盘总空间 | 取磁盘剩余空间 | 取磁盘卷标 | 置磁盘卷标
改变驱动器 | 改变目录 | 取当前目录 | 创建目录
删除目录 | 复制文件 | 移动文件 | 删除文件
文件更名 | 文件是否存在 | 寻找文件 | 取文件时间
取文件尺寸 | 取文件属性 | 置文件属性 | 取临时文件名
读入文件 | 写到文件 |  |

※取磁盘总空间

调用格式： 〈整数型〉 取磁盘总空间 （［磁盘驱动器字符］）

英文名称：GetDiskTotalSpace

返回以 1024 字节（KB）为单位的指定磁盘全部空间。如果失败，返回-1。本命令为初级命令。

参数<1>的名称为“磁盘驱动器字符”，类型为“文本型（text）”，可以被省略。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

※取磁盘剩余空间

调用格式： 〈整数型〉 取磁盘剩余空间 （［磁盘驱动器字符］）

英文名称：GetDiskFreeSpace

返回以 1024 字节（KB）为单位的指定磁盘现行剩余空间。如果失败，返回-1。本命令为初级命令。

参数<1>的名称为“磁盘驱动器字符”，类型为“文本型（text）”，可以被省略。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

※取磁盘卷标

调用格式： 〈文本型〉 取磁盘卷标 （［磁盘驱动器字符］）

英文名称：GetDiskLabel

返回指定磁盘的卷标文本。本命令为初级命令。

参数<1>的名称为“磁盘驱动器字符”，类型为“文本型（text）”，可以被省略。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

※置磁盘卷标

调用格式： 〈逻辑型〉 置磁盘卷标 （［磁盘驱动器字符］，欲置入的卷标文本）

英文名称：SetDiskLabel

设置指定磁盘的卷标文本。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“磁盘驱动器字符”，类型为“文本型（text）”，可以被省略。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

参数<2>的名称为“欲置入的卷标文本”，类型为“文本型（text）”。

※改变驱动器

调用格式： 〈逻辑型〉 改变驱动器 （欲改变到的驱动器）

英文名称：ChDrive

改变当前的缺省驱动器。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲改变到的驱动器”，类型为“文本型（text）”。参数值指明一个存在的驱动器。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果使用零长度的文本，则当前的驱动器不会改变。

※改变目录

调用格式： 〈逻辑型〉 改变目录 （欲改变到的目录）

英文名称：ChDir

改变当前的目录，但不会改变缺省驱动器位置。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲改变到的目录”，类型为“文本型（text）”。参数值指明哪个目录将成为新的缺省目录，可能会包含驱动器。如果没有指定驱动器，则在当前的驱动器上改变缺省目录。

※取前目录当

调用格式： 〈文本型〉 取前目录当（）

英文名称：CurDir

返回一个文本，用来代表当前的目录。如果失败，返回空文本。本命令为初级命令。

※创建目录

调用格式： 〈逻辑型〉 创建目录 （欲创建的目录名称）

英文名称：MkDir

创建一个新的目录。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲创建的目录名称”，类型为“文本型（text）”。

※删除目录

调用格式： 〈逻辑型〉 删除目录 （欲删除的目录名称）

英文名称：RmDir

删除一个存在的目录。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲删除的目录名称”，类型为“文本型（text）”。该目录应实际存在，如果目录中存在文件或子目录，将被一并删除，因此使用本命令请千万慎重。

※复制文件

调用格式： 〈逻辑型〉 复制文件 （被复制的文件名，复制到的文件名）

英文名称：FileCopy

成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“被复制的文件名”，类型为“文本型（text）”。

参数<2>的名称为“复制到的文件名”，类型为“文本型（text）”。

※移动文件

调用格式： 〈逻辑型〉 移动文件 （被移动的文件，移动到的位置）

英文名称：FileMove

将文件从一个位置移动到另外一个位置。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“被移动的文件”，类型为“文本型（text）”。

参数<2>的名称为“移动到的位置”，类型为“文本型（text）”。

※删除文件

调用格式： 〈逻辑型〉 删除文件 （欲删除的文件名）

英文名称：kill

成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲删除的文件名”，类型为“文本型（text）”。

※文件更名

调用格式： 〈逻辑型〉 文件更名 （欲更名的原文件或目录名，欲更改为的现文件或目录名）

英文名称：name

重新命名一个文件或目录。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲更名的原文件或目录名”，类型为“文本型（text）”。

参数<2>的名称为“欲更改为的现文件或目录名”，类型为“文本型（text）”。

※文件是否存在

调用格式： 〈逻辑型〉 文件是否存在 （欲测试的文件名称）

英文名称：IsFileExist

判断指定的磁盘文件是否真实存在。如存在返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲测试的文件名称”，类型为“文本型（text）”。

※寻找文件

调用格式： 〈文本型〉 寻找文件 （［欲寻找的文件或目录名称］，［欲寻找文件的属性］）

英文名称：dir

返回一个文本，用以表示所找到的文件名或目录名，它必须与所要求的名称格式或文件属性相匹配。支持使用多字符 (*) 和单字符 (?) 通配符来指定多重文件。在某子程序中第一次调用本命令时，必须指定“欲寻找文件”参数，否则将返回空文本 (“”)。在第一次调用以后如果想得到其它匹配的文件名，再一次调用本命令，且不要提供欲寻找文件名参数。如果已没有合乎条件的文件，本命令会返回一个空文本。一旦返回值为空文本，要再次调用本命令时，就必须指定“欲寻找文件”参数。不必访问完所有当前匹配的文件名，就可以使用一个新的“欲寻找文件”进行新的寻找。本命令为初级命令。

参数<1>的名称为“欲寻找的文件或目录名称”，类型为“文本型（text）”，可以被省略。可以使用多字符 (*) 和单字符 (?) 通配符来指定多重文件。在非首次寻找文件时，参数值必须为空或被省略。

参数<2>的名称为“欲寻找文件的属性”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值或其和： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 16、#子目录； 32、#存档文件 。通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数，默认为搜寻除子目录外的所有文件。

※取文件时间

调用格式： 〈日期时间型〉 取文件时间 （文件名）

英文名称：FileDateTime

返回指定文件被创建或最后修改后的日期和时间。如果该文件不存在，将返回100年1月1日。本命令为初级命令。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

※取文件尺寸

调用格式： 〈整数型〉 取文件尺寸 （文件名）

英文名称：FileLen

返回一个文件的长度，单位是字节。如果该文件不存在，将返回 -1。本命令为初级命令。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

※取文件属性

调用格式： 〈整数型〉 取文件属性 （文件名）

英文名称：GetAttr

返回一个文件或目录的属性。此属性值由以下常量或其和构成： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 16、#子目录；32、#存档文件 。要判断是否设置了某个属性，在返回值与想要得知的属性值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示设置了这个属性值。如果取文件属性失败，将返回 -1。本命令为初级命令。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

※置文件属性

调用格式： 〈逻辑型〉 置文件属性 （欲设置其属性的文件名称，欲设置为的属性值）

英文名称：SetAttr

为一个文件设置属性信息。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲设置其属性的文件名称”，类型为“文本型（text）”。

参数<2>的名称为“欲设置为的属性值”，类型为“整数型（int）”。参数值可以为以下常量值或其和： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 32、#存档文件 。通过将这些常量值加起来可以一次设置多个文件属性。

※取临时文件名

调用格式： 〈文本型〉 取临时文件名 （［目录名］）

英文名称：GetTempFileName

返回一个在指定目录中确定不存在的 .TMP 全路径文件名称。本命令为初级令。

参数<1>的名称为“目录名”，类型为“文本型（text）”，可以被省略。如果省略本参数，默认将使用系统的标准临时目录。

※读入文件

调用格式： 〈字节集〉 读入文件 （文件名）

英文名称：ReadFile

返回一个字节集，其中包含指定文件的所有数据。本命令为初级命令。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

※写到文件

调用格式： 〈逻辑型〉写到文件（文件名，欲写入文件的数据，… ）

英文名称：WriteFile

本命令用作将一个或数个字节集顺序写到指定文件中，文件原有内容被覆盖。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“文件名”，类型为“文本型（text）”。

参数<2>的名称为“欲写入文件的数据”，类型为“字节集（bin）”。

文件读写

打开文件 | 打开内存文件 | 关闭文件 | 关闭所有文件
锁住文件 | 解锁文件 | 移动读写位置 | 移到文件首
移到文件尾 | 读入字节集 | 写出字节集 | 读入文本
写出文本 | 读入一行 | 写文本行 | 读入数据
写出数据 | 是否在文件尾 | 取读写位置 | 取文件长度
插入字节集 | 插入文本 | 插入文本行 | 删除数据
打开加密文件 |  |  |

※打开文件

调用格式： 〈整数型〉 打开文件 （欲打开的文件名称，［打开方式］，［共享方式］）

英文名称：open

打开一个普通文件，以对文件进行输入或输出。成功返回被打开文件的文件号，失败返回 0。本命令为初级命令。

参数<1>的名称为“欲打开的文件名称”，类型为“文本型（text）”。

参数<2>的名称为“打开方式”，类型为“整数型（int）”，可以被省略。参数值说明对文件的操作方式，如果省略本参数，默认为“#读写”。方式值可以为以下常量之一：

1、#读入：从指定文件读入数据，如果该文件不存在则失败；

2、#写出：写出数据到指定文件，如果该文件不存在则失败；

3、#读写：从文件中读入数据或者写出数据到文件，如果该文件不存在则失败；

4、#重写：写出数据到指定文件。如果该文件不存在则先创建一个新文件，如果已经存在就先清除其中的所有数据；

5、#改写：写出数据到指定文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开；

6、#改读：从文件中读入数据或者写出数据到文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开。

参数<3>的名称为“共享方式”，类型为“整数型（int）”，可以被省略。参数值指定限制其它进程操作此文件的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一：

1、#无限制：允许其它进程任意读写此文件；

2、#禁止读：禁止其它进程读此文件；

3、#禁止写：禁止其它进程写此文件；

4、#禁止读写：禁止其它进程读写此文件。

※打开内存文件

调用格式： 〈整数型〉 打开内存文件 （）

英文名称：OpenMemFile

建立一个内存文件，以计算机内存为存储介质对数据进行文件式的快速输入或输出。成功返回被打开文件的文件号，失败返回 0。本命令为初级命令。

※关闭文件

调用格式： 〈无返回值〉 关闭文件 （欲关闭的文件号）

英文名称：close

关闭被打开的各种类型文件。本命令为初级命令。

参数<1>的名称为“欲关闭的文件号”，类型为“整数型（int）”。参数值指明欲关闭的文件号，该文件号由“打开文件”命令所返回。

※关闭所有文件

调用格式： 〈无返回值〉 关闭所有文件 （）

英文名称：reset

关闭所有现行被打开的文件。本命令为初级命令。

※锁住文件

调用格式： 〈逻辑型〉 锁住文件 （欲加锁或解锁的文件号，欲加锁或解锁的位置，欲加锁或解锁的长度，［加锁重试时间］）

英文名称：lock

在有若干个进程访问同一个文件的环境中，使用本命令拒绝其它用户对被打开文件中的某个区域进行读写访问。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲加锁或解锁的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲加锁或解锁的位置”，类型为“整数型（int）”。位置值从 0 开始。

参数<3>的名称为“欲加锁或解锁的长度”，类型为“整数型（int）”。

参数<4>的名称为“加锁重试时间”，类型为“整数型（int）”，可以被省略。本参数指定加锁失败后反复进行重试的毫秒数。如果被省略，默认为 0 ，即一旦失败立即返回。如果参数值提供为 -1 ，则反复进行重试，直到加锁成功为止。

※解锁文件

调用格式： 〈逻辑型〉 解锁文件 （欲加锁或解锁的文件号，欲加锁或解锁的位置，欲加锁或解锁的长度）

英文名称：Unlock

解除由“锁住文件”命令对文件所进行的锁定。成功返回真，失败返回假。注意：本命令调用时所提供的参数值必须与调用“锁住文件”命令时所提供的参数值完全一致。本命令为初级命令。

参数<1>的名称为“欲加锁或解锁的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲加锁或解锁的位置”，类型为“整数型（int）”。位置值从 0 开始。

参数<3>的名称为“欲加锁或解锁的长度”，类型为“整数型（int）”。

※移动读写位置

调用格式： 〈逻辑型〉 移动读写位置 （欲进行操作的文件号，［起始移动位置］，移动距离）

英文名称：FSeek

在被打开的文件中，设置下一个读或写操作的位置。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲进行操作的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“起始移动位置”，类型为“整数型（int）”，可以被省略。参数值指定从文件中开始移动的位置。可以为以下常量之一：1、#文件首； 2、#文件尾； 3、#现行位置。如果本参数被省略，默认值为“#文件首”。

参数<3>的名称为“移动距离”，类型为“整数型（int）”。参数值指定相对于起始移动位置的移动长度。

※移到文件首

调用格式： 〈逻辑型〉 移到文件首 （欲进行操作的文件号）

英文名称：SeekToBegin

在被打开的文件中，设置下一个读或写操作的位置到文件首。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲进行操作的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

※移到文件尾

调用格式： 〈逻辑型〉 移到文件尾 （欲进行操作的文件号）

英文名称：SeekToEnd

在被打开的文件中，设置下一个读或写操作的位置到文件尾。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲进行操作的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

※读入字节集

调用格式： 〈字节集〉 读入字节集 （欲读入数据的文件号，欲读入数据的长度）

英文名称：ReadBin

本命令用作从文件中当前读写位置读取并返回一段字节集数据，实际读入长度（即返回的字节集的尺寸）可能会小于欲读入长度。如果读入失败，将返回一个空字节集并且自动将当前文件读写位置移到文件尾部。本命令为初级命令。

参数<1>的名称为“欲读入数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲读入数据的长度”，类型为“整数型（int）”。

※写出字节集

调用格式： 〈逻辑型〉 写出字节集 （欲写出数据的文件号，欲写出的字节集数据，… ）

英文名称：WriteBin

本命令用作写出一段或数段字节集数据到文件中当前读写位置处。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的字节集数据”，类型为“字节集（bin）”。

※读入文本

调用格式： 〈文本型〉 读入文本 （欲读入文本数据的文件号，［欲读入文本数据的长度］）

英文名称：ReadText

本命令用作从文件中当前读写位置读取并返回一段文本数据，实际读入长度（即返回文本的尺寸）可能会小于欲读入长度。如果该数据中存在字节 0 或 26（文本结束标志），将仅返回该字节之前的数据。如果读入失败，将返回一个空文本并且自动将当前文件读写位置移到文件尾部。本命令为初级命令。

参数<1>的名称为“欲读入文本数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲读入文本数据的长度”，类型为“整数型（int）”，可以被省略。如果本参数被省略，默认读入文件中的所有文本数据。

※写出文本

调用格式： 〈逻辑型〉 写出文本 （欲写出文本的文件号，欲写出的文本，… ）

英文名称：WriteText

本命令用作写出一段或数段文本数据到文件中当前读写位置处。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出文本的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的文本”，类型为“通用型（all）”。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

※读入一行

调用格式： 〈文本型〉 读入一行 （欲读入文本数据的文件号）

英文名称：ReadLine

本命令用作从文件中当前读写位置读取并返回一行文本数据，行末的回车及换行符将被抛弃。如果读入失败，将返回一个空文本并且自动将当前文件读写位置移到文件尾部。本命令为初级命令。

参数<1>的名称为“欲读入文本数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

※写文本行

调用格式： 〈逻辑型〉 写文本行 （欲写出文本的文件号，欲写出的文本，… ）

英文名称：WriteLine

本命令用作写出一行或多行文本数据到文件中当前读写位置处，每行的尾部将被自动加上回车及换行符。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出文本的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的文本”，类型为“通用型（all）”。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

※读入数据

调用格式： 〈逻辑型〉 读入数据 （欲读入数据的文件号，存放所读入数据的容器，… ）

英文名称：read

本命令应该与“写出”命令配合使用，用作从文件中当前读写位置读取格式数据到指定的一系列容器或数组容器中。成功返回真，失败返回假。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲读入数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“存放所读入数据的容器”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。如果容器的数据类型为用户自定义或库定义数据类型，命令将会失败。

※写出数据

调用格式： 〈逻辑型〉 写出数据 （欲写出数据的文件号，欲写出的数据，… ）

英文名称：write

本命令应该与“读入”命令配合使用，用作写出一系列容器或数组容器的格式数据到文件中当前读写位置处。成功返回真，失败返回假。

具体各种数据类型数据的写出格式为：

1、数值型、逻辑型、日期时间型、子程序指针型： 为其所对应的实际数据；

2、文本型： 为文本数据 + 字节 0 ；

3、字节集型： 为字节集数据长度（整数） + 字节集实际数据；

4、以上各种数据类型的数组型数据： 为非数组情况下数据格式的顺序排列。本命令为中级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的数据”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。如果被写出数据的数据类型为用户自定义或库定义数据类型，命令将会失败。

※是否在文件尾

调用格式： 〈逻辑型〉 是否在文件尾 （文件号，［是否为判断文本已读完］）

英文名称：feof

如果指定被打开文件的读写位置已经处于该文件数据的尾部，则返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“文件号”，类型为“整数型（int）”。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。

参数<2>的名称为“是否为判断文本已读完”，类型为“逻辑型（bool）”，可以被省略。如果本参数值为真而且下一即将读入的字节为字节值 0 或 26 等文本终止标记符或者当前读写位置已处于该文件数据的尾部，命令将返回真。如果本参数被省略或为假，将不进行此检查。

※取读写位置

调用格式： 〈整数型〉 取读写位置 （文件号）

英文名称：loc

返回指定被打开文件的当前读/写位置，位置值从 0 开始。如果给定文件号无效或失败，返回 -1 。本命令为初级命令。

参数<1>的名称为“文件号”，类型为“整数型（int）”。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。

※取文件长度

调用格式： 〈整数型〉 取文件长度 （文件号）

英文名称：lof

返回指定被打开文件的尺寸，该尺寸以字节为单位。如果给定文件号无效或失败，返回 -1 。本命令为初级命令。

参数<1>的名称为“文件号”，类型为“整数型（int）”。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。

※插入字节集

调用格式： 〈逻辑型〉 插入字节集 （欲写出数据的文件号，欲写出的字节集数据，… ）

英文名称：InsBin

本命令用作插入一段或数段字节集数据到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出数据的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的字节集数据”，类型为“字节集（bin）”。

※插入文本

调用格式： 〈逻辑型〉 插入文本 （欲写出文本的文件号，欲写出的文本，… ）

英文名称：InsText

本命令用作插入一段或数段文本数据到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出文本的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的文本”，类型为“通用型（all）”。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

※插入文本行

调用格式： 〈逻辑型〉 插入文本行 （欲写出文本的文件号，欲写出的文本，… ）

英文名称：InsLine

本命令用作插入一段或数段文本行到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲写出文本的文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲写出的文本”，类型为“通用型（all）”。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

※删除数据

调用格式： 〈逻辑型〉 删除数据 （文件号，欲删除数据的字节数）

英文名称：RemoveData

本命令用作在文件中当前读写位置处删除一段字节数据，文件后面的数据顺序前移。该文件被打开时必须给予可读权限。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“文件号”，类型为“整数型（int）”。该文件号由“打开文件”命令所返回。

参数<2>的名称为“欲删除数据的字节数”，类型为“整数型（int）”。

※打开加密文件

调用格式： 〈整数型〉 打开加密文件 （欲打开的文件名称，［打开方式］，［共享方式］，［文件密码］，［明文区长度］）

英文名称：CryptOpen

打开一个以指定密码加密的文件，以对此文件进行快速安全访问，支持大尺寸文件。成功返回被打开文件的文件号，失败返回 0。本命令为初级命令。

参数<1>的名称为“欲打开的文件名称”，类型为“文本型（text）”。

参数<2>的名称为“打开方式”，类型为“整数型（int）”，可以被省略。参数值说明对文件的操作方式，如果省略本参数，默认为“#读写”。方式值可以为以下常量之一：

1、#读入：从指定文件读入数据，如果该文件不存在则失败；

2、#写出：写出数据到指定文件，如果该文件不存在则失败；

3、#读写：从文件中读入数据或者写出数据到文件，如果该文件不存在则失败；

4、#重写：写出数据到指定文件。如果该文件不存在则先创建一个新文件，如果已经存在就先清除其中的所有数据；

5、#改写：写出数据到指定文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开；

6、#改读：从文件中读入数据或者写出数据到文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开。

参数<3>的名称为“共享方式”，类型为“整数型（int）”，可以被省略。参数值指定限制其它进程操作此文件的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一：

1、#无限制：允许其它进程任意读写此文件；

2、#禁止读：禁止其它进程读此文件；

3、#禁止写：禁止其它进程写此文件；

4、#禁止读写：禁止其它进程读写此文件。

参数<4>的名称为“文件密码”，类型为“文本型（text）”，可以被省略。如果即将打开的文件中不存在任何数据（即为空文件或将创建的新文件），本参数指定保护该文件时所将使用的密码，以后所有写入该文件中的数据都将使用此密码加密后写入。建议密码长度最少为6个字符以上，并且最好混合使用汉字、字母、数字、符号，以保证密码本身的安全性。如果即将打开的文件中已经存在数据，本参数提供访问此已有数据时所需要的正确密码，如果此数据没有加密，请提供空文本以表示不需要密码。注意系统不会去校验密码的正确性，如果提供错误的密码，读写已有文件数据将得到错误的结果，请千万注意。因此如果需要校验密码是否正确，请在加密后的文件中保存正确的密码文本或密码文本的数据摘要信息（见数据操作支持库一中的“取数据摘要”命令），然后在打开加密文件后读出该信息对密码进行验证。系统所使用的加密算法是国际标准的RC4算法，可以保证数据的安全性。如果本参数被省略，则默认为空文本，即无密码。

参数<5>的名称为“明文区长度”，类型为“整数型（int）”，可以被省略。本参数指定从文件首部开始不希望被加密部分的长度，系统在读写此区域内的数据时，不会使用密码对其进行加解密操作。此参数用作将加密文件分为明文区和密文区两部分，以方便某些应用程序同时保存一些明文数据。注意当打开已有加密数据的文件时，此参数值必须与新建此加密文件时所提供的参数值一致，否则会造成数据访问错误。如果本参数被省略，则默认值为0，即没有明文区。

系统处理

运行 | 取剪辑板文本 | 置剪辑板文本 | 剪辑板中可有文本
清除剪辑板 | 取屏幕宽度 | 取屏幕高度 | 取鼠标水平位置
取鼠标垂直位置 | 取颜色数 | 输入框 | 信息框
鸣叫 | 取启动时间 | 置等待鼠标 | 恢复鼠标
延时 | 取文本注册项 | 取数值注册项 | 取字节集注册项
写注册项 | 删除注册项 | 注册项是否存在 | 取默认底色
快照 | 读配置项 | 写配置项 | 取配置节名
取操作系统类别 |  |  |

※运行

调用格式： 〈逻辑型〉 运行 （欲运行的命令行，是否等待程序运行完毕，［被运行程序窗口显示方式］）

英文名称：run

本命令运行指定的可执行EXE文件或者外部命令。如果成功，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲运行的命令行”，类型为“文本型（text）”。

参数<2>的名称为“是否等待程序运行完毕”，类型为“逻辑型（bool）”，初始值为“假”。

参数<3>的名称为“被运行程序窗口显示方式”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量之一：1、#隐藏窗口； 2、#普通激活； 3、#最小化激活； 4、#最大化激活； 5、#普通不激活； 6、#最小化不激活。如果省略本参数，默认为“普通激活”方式。

※取剪辑板文本

调用格式： 〈文本型〉 取剪辑板文本 （）

英文名称：GetClipBoardText

返回存放于当前 Windows 系统剪辑板中的文本。如果当前剪辑板中无文本数据，将返回空文本。本命令为初级命令。

※置剪辑板文本

调用格式： 〈逻辑型〉 置剪辑板文本 （准备置入剪辑板的文本）

英文名称：SetClipBoardText

将指定文本存放到当前 Windows 系统剪辑板中去，剪辑板中的原有内容被覆盖。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“准备置入剪辑板的文本”，类型为“文本型（text）”。

※剪辑板中可有文本

调用格式： 〈逻辑型〉 剪辑板中可有文本 （）

英文名称：IsHaveTextInClip

如果当前 Windows 系统剪辑板中有文本数据，则返回真，否则返回假。本命令为初级命令。

※清除剪辑板

调用格式： 〈无返回值〉 清除剪辑板 （）

英文名称：ClearClipBoard

清除当前 Windows 系统剪辑板中的所有数据。本命令为初级命令。

※取屏幕宽度

调用格式： 〈整数型〉 取屏幕宽度 （）

英文名称：GetScreenWidth

返回屏幕当前显示区域的宽度，单位为像素点。本命令为初级命令。

※取屏幕高度

调用格式： 〈整数型〉 取屏幕高度 （）

英文名称：GetScreenHeight

返回屏幕当前显示区域的高度，单位为像素点。本命令为初级命令。

※取鼠标水平位置

调用格式： 〈整数型〉 取鼠标水平位置 （）

英文名称：GetCursorHorzPos

返回鼠标指针的当前水平位置，单位为像素点，相对于屏幕左边。本命令为初级命令。

※取鼠标垂直位置

调用格式： 〈整数型〉 取鼠标垂直位置 （）

英文名称：GetCursorVertPos

返回鼠标指针的当前垂直位置，单位为像素点，相对于屏幕顶边。本命令为初级命令。

※取颜色数

调用格式： 〈整数型〉 取颜色数 （）

英文名称：GetColorCount

返回当前显示方式所提供的最大颜色显示数目。本命令为初级命令。

※输入框

调用格式： 〈逻辑型〉 输入框 （［提示信息］，［窗口标题］，［初始文本］，存放输入内容的容器，［输入方式］）

英文名称：InputBox

在一对话框中显示提示，等待用户输入正文并按下按钮。如果用户在确认输入后（按下“确认输入”按钮或回车键）退出，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“提示信息”，类型为“文本型（text）”，可以被省略。如果提示信息包含多行，可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即：“字符 (13) + 字符 (10)”) 来分隔。如果提示信息太长或行数过多，超过部分将不会被显示出来。

参数<2>的名称为“窗口标题”，类型为“文本型（text）”，可以被省略。参数值指定显示在对话框标题栏中的文本。如果省略，默认为文本“请输入：”。

参数<3>的名称为“初始文本”，类型为“文本型（text）”，可以被省略。参数值指定初始设置到对话框输入文本框中的内容。

参数<4>的名称为“存放输入内容的容器”，类型为“通用型（all）”，提供参数数据时只能提供容器。参数值所指定的容器可以为数值或文本型，用于以不同的数据类型取回输入内容。

参数<5>的名称为“输入方式”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值： 1、#输入文本； 2、#输入整数； 3、#输入小数； 4、#输入密码。如果省略本参数，默认为“#输入文本”。

※信息框

调用格式： 〈整数型〉 信息框 （提示信息，按钮，［窗口标题］）

英文名称：MsgBox

在对话框中显示信息，等待用户单击按钮，并返回一个整数告诉用户单击哪一个按钮。该整数为以下常量值之一： 0、#确认钮； 1、#取消钮； 2、#放弃钮； 3、#重试钮； 4、#忽略钮； 5、#是钮； 6、#否钮。如果对话框有“取消”按钮，则按下 ESC 键与单击“取消”按钮的效果相同。本命令为初级命令。

参数<1>的名称为“提示信息”，类型为“通用型（all）”。提示信息只能为文本、数值、逻辑值或日期时间。如果提示信息为文本且包含多行，可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即：“字符 (13) + 字符 (10)”) 来分隔。

参数<2>的名称为“按钮”，类型为“整数型（int）”，初始值为“0”。参数值由以下几组常量值组成，在将这些常量值相加以生成参数值时，每组值只能取用一个数字（第五组除外）：

第一组（描述对话框中显示按钮的类型与数目）：

0、#确认钮； 1、#确认取消钮； 2、#放弃重试忽略钮； 3、#取消是否钮； 4、#是否钮； 5、#重试取消钮

第二组（描述图标的样式）：

16、#错误图标； 32、#询问图标； 48、#警告图标； 64、#信息图标

第三组（说明哪一个按钮是缺省默认值）：

0、#默认按钮一； 256、#默认按钮二； 512、#默认按钮三； 768、#默认按钮四

第四组（决定如何等待消息框结束）：

0、#程序等待； 4096、#系统等待

第五组（其它）：

65536、#位于前台； 524288、#文本右对齐

参数<3>的名称为“窗口标题”，类型为“文本型（text）”，可以被省略。参数值指定显示在对话框标题栏中的文本。如果省略，默认为文本“信息：”。

※鸣叫

调用格式： 〈无返回值〉 鸣叫 （）

英文名称：beep

通过计算机媒体设备或者喇叭发出一个声音。本命令为初级命令。

※取启动时间

调用格式： 〈整数型〉 取启动时间 （）

英文名称：GetTickCount

返回自 Windows 系统启动后到现在为止所经历过的毫秒数。本命令为初级命令。

※置等待鼠标

调用格式： 〈无返回值〉 置等待鼠标 （）

英文名称：SetWaitCursor

本命令设置现行鼠标的形状为沙漏形，用作在即将长时间执行程序前提示操作者。本命令为初级命令。

※恢复鼠标

调用格式： 〈无返回值〉 恢复鼠标 （）

英文名称：RestroeCursor

本命令恢复现行鼠标的原有形状，用作与“置等待鼠标”命令配对使用。本命令为初级命令。

※延时

调用格式： 〈无返回值〉 延时 （欲等待的时间）

英文名称：sleep

本命令暂停当前程序的运行并等待指定的时间。本命令为初级命令。

参数<1>的名称为“欲等待的时间”，类型为“整数型（int）”。本参数指定欲暂停程序执行的时间，单位为毫秒。

※取文本注册项

调用格式： 〈文本型〉 取文本注册项 （根目录，全路径注册项名，［默认文本］）

英文名称：GetTextRegItem

在 Windows 注册表中返回指定的文本类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取文本注册表项”命令不同的是本命令可以取任意位置处的注册表项。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

参数<3>的名称为“默认文本”，类型为“文本型（text）”，可以被省略。如果指定的注册表项不存在，将返回此默认文本。如果指定的注册表项不存在且本参数被省略，将返回一个长度为 0 的空文本。

※取数值注册项

调用格式： 〈整数型〉 取数值注册项 （根目录，全路径注册项名，［默认数值］）

英文名称：GetNumRegItem

在 Windows 注册表中返回指定的数值类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取数值注册表项”命令不同的是本命令可以取任意位置处的注册表项。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

参数<3>的名称为“默认数值”，类型为“整数型（int）”，可以被省略。如果指定的注册表项不存在，将返回此默认数值。如果指定的注册表项不存在且本参数被省略，将返回数值 0。

※取字节集注册项

调用格式： 〈字节集〉 取字节集注册项 （根目录，全路径注册项名，［默认字节集］）

英文名称：GetBinRegItem

在 Windows 注册表中返回指定的字节集类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取字节集注册表项”命令不同的是本命令可以取任意位置处的注册表项。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

参数<3>的名称为“默认字节集”，类型为“字节集（bin）”，可以被省略。如果指定的注册表项不存在，将返回此默认字节集。如果指定的注册表项不存在且本参数被省略，将返回空字节集。

※写注册项

调用格式： 〈逻辑型〉 写注册项 （根目录，全路径注册项名，欲写入值）

英文名称：SaveRegItem

在 Windows 注册表中保存或建立指定的注册表项。如欲写入注册项默认值，请在项目名后加“\”号，如“test\”。成功返回真，否则返回假。与“写注册表项”命令不同的是本命令可以写任意位置处的注册表项。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

参数<3>的名称为“欲写入值”，类型为“通用型（all）”。参数值指定欲写入到指定注册表项中的值，只能为数值、文本或者字节集，否则命令将失败。

※删除注册项

调用格式： 〈逻辑型〉 删除注册项 （根目录，全路径注册项名）

英文名称：DeleteRegItem

在 Windows 注册表中删除指定注册表项或注册表目录。如欲删除注册项默认值，请在项目名后加“\”号，如“test\”。成功返回真，否则返回假。与“删除注册表项”命令不同的是本命令可以删除任意位置处的注册表项或目录。注意在删除目录之前必须先删除该目录下所有的项目。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

※注册项是否存在

调用格式： 〈逻辑型〉 注册项是否存在 （根目录，全路径注册项名）

英文名称：IsRegItemExist

如果指定注册表项存在，返回真，否则返回假。如欲检查注册项是否有默认值，请在项目名后加“\”号，如“test\”。本命令为中级命令。

参数<1>的名称为“根目录”，类型为“整数型（int）”。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。

参数<2>的名称为“全路径注册项名”，类型为“文本型（text）”。

※取默认底色

调用格式： 〈整数型〉 取默认底色 （）

英文名称：GetBackColor

取回Windows系统的默认窗口背景颜色。本命令为初级命令。

※快照

调用格式： 〈字节集〉 快照 （［窗口句柄］，［输出宽度］，［输出高度］）

英文名称：GetWinPic

捕获指定窗口或屏幕上所有现有显示内容，返回相应图片数据。如果失败，返回空字节集。本命令为高级命令。

参数<1>的名称为“窗口句柄”，类型为“整数型（int）”，可以被省略。指定欲捕获其显示内容的窗口。如果被省略，默认为捕获屏幕显示内容。

参数<2>的名称为“输出宽度”，类型为“整数型（int）”，可以被省略。指定图片的输出宽度。如果小于0，参数值指定的是最终图片输出宽度相对于所取得图片宽度的百分比（最小为10%）；如果等于0，则按图片原宽度输出；如果大于0，指定输出图片的绝对宽度。如果本参数被省略，默认值为0。

参数<3>的名称为“输出高度”，类型为“整数型（int）”，可以被省略。指定图片的输出高度。如果小于0，参数值指定的是最终图片输出高度相对于所取得图片高度的百分比（最小为10%）；如果等于0，则按图片原高度输出；如果大于0，指定输出图片的绝对高度。如果本参数被省略，默认值为0。

※读配置项

调用格式： 〈文本型〉 读配置项 （配置文件名，节名称，配置项名称，［默认文本］）

英文名称：GetKeyText

读取指定配置文件中指定项目的文本内容。本命令为初级命令。

参数<1>的名称为“配置文件名”，类型为“文本型（text）”。指定配置文件的名称，通常以.ini作为文件名后缀。

参数<2>的名称为“节名称”，类型为“文本型（text）”。包含欲读入配置项所处节的名称。

参数<3>的名称为“配置项名称”，类型为“文本型（text）”。参数值指定欲读入配置项在其节中的名称。

参数<4>的名称为“默认文本”，类型为“文本型（text）”，可以被省略。如果指定配置项不存在，将返回此默认文本。如果指定配置项不存在且本参数被省略，将返回空文本。

※写配置项

调用格式： 〈逻辑型〉 写配置项 （配置文件名，节名称，［配置项名称］，［欲写入值］）

英文名称：SetKeyText

将指定文本内容写入指定配置项中或者删除指定的配置项或节，如果指定配置文件不存在，将会自动创建。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“配置文件名”，类型为“文本型（text）”。指定配置文件的名称，通常以.ini作为文件名后缀。

参数<2>的名称为“节名称”，类型为“文本型（text）”。包含欲写入配置项所处节的名称。

参数<3>的名称为“配置项名称”，类型为“文本型（text）”，可以被省略。参数值指定欲写入配置项在其节中的名称。如果参数值被省略，则删除指定节及其下的所有配置项。

参数<4>的名称为“欲写入值”，类型为“文本型（text）”，可以被省略。参数值指定欲写入到指定配置项中的文本。如果参数值被省略，则删除所指定配置项。

※取配置节名

调用格式： 〈文本型数组〉 取配置节名 （配置文件名）

英文名称：GetSectionNames

返回指定配置文件中所有已有节名的文本数组。本命令为初级命令。

参数<1>的名称为“配置文件名”，类型为“文本型（text）”。指定配置文件的名称，通常以.ini作为文件名后缀。

※取操作系统类别

调用格式： 〈整数型〉 取操作系统类别 （）

英文名称：GetSysVer

返回当前Windows系统的版本类别。返回值为以下值之一：0、未知； 1、Windows 32S； 2、Windows 9X (包含Win95、Win98、WinME等)； 3、Windows NT (包含WinNT、Win2000、WinXP等)。本命令为初级命令。

媒体播放

播放音乐

停止播放

播放MID

播放MP3

※播放音乐

调用格式： 〈逻辑型〉 播放音乐 （欲播放的音乐，［是否循环播放］）

英文名称：PlayMusic

可以播放 .WAV、.MID 声音文件或相应格式的字节集声音数据、声音资源。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲播放的音乐”，类型为“通用型（all）”。参数值可以为 .WAV、.MID 声音文件名称或相应格式的字节集声音数据、声音资源。

参数<2>的名称为“是否循环播放”，类型为“逻辑型（bool）”，可以被省略。为真表示指定音乐将被循环播放，否则仅只播放一次。如果本参数被省略，默认为仅播放一次。

※停止播放

调用格式： 〈无返回值〉 停止播放 （）

英文名称：PlayStop

停止正在播放的音乐。本命令为初级命令。

※播放MID

调用格式： 〈无返回值〉 播放MID （［播放次数］，［间隔时间］，欲播放的 MIDI 音乐，… ）

英文名称：PlayMID

可以自动连续播放多个 MIDI 声音文件（注意不支持 WAV ）或相应格式的字节集声音数据、声音资源。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“播放次数”，类型为“整数型（int）”，可以被省略。为 -1 表示指定音乐将被循环播放，否则仅只播放指定的次数。如果本参数被省略，默认值为 1 。

参数<2>的名称为“间隔时间”，类型为“整数型（int）”，可以被省略。指定 MIDI 音乐之间的播放间隔时间，单位为 0.1 秒。如果本参数被省略，默认值为 0 。

参数<3>的名称为“欲播放的 MIDI 音乐”，类型为“通用型（all）”，提供参数数据时可以同时提供数组或非数组数据。参数值可以为 MIDI 声音文件名称或相应格式的字节集声音数据、声音资源。

※播放MP3

调用格式： 〈无返回值〉 播放MP3 （［播放次数］，欲播放的 MP3 文件名，… ）

英文名称：PlayMP3

可以自动连续播放多个 MP3 音乐文件。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“播放次数”，类型为“整数型（int）”，可以被省略。为 -1 表示指定音乐将被循环播放，否则仅只播放指定的次数。如果本参数被省略，默认值为 1 。

参数<2>的名称为“欲播放的 MP3 文件名”，类型为“文本型（text）”，提供参数数据时可以同时提供数组或非数组数据。

程序调试

输出调试文本

暂停

检查

是否为调试版

※输出调试文本

调用格式： 〈无返回值〉 输出调试文本 （准备输出的调试文本信息，… ）

英文名称：OutputDebugText

本命令仅在易程序的调试版本中被执行，在发布版本中将被直接跳过。

使用本命令可以在 E 调试系统中的“输出”窗口内输出指定的文本行以帮助调试，该文本之前被自动加上一个星号，之后被自动加上回车换行符。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“准备输出的调试文本信息”，类型为“文本型（text）”。

※暂停

调用格式： 〈无返回值〉 暂停 （）

英文名称：stop

本命令仅在易程序的调试版本中被执行，在发布版本中将被直接跳过。

可以在子程序中的任何地方放置此命令，使用此命令，就相当于在程序代码中设置断点。本命令为初级命令。

※检查

调用格式： 〈无返回值〉 检查 （被校验的条件）

英文名称：assert

本命令仅在易程序的调试版本中被执行，在发布版本中将被直接跳过。

执行本命令时，如果给定参数的条件值被计算后结果为假，易程序的执行将被暂停且警示。可以在子程序中的任何地方放置此命令，使用此命令，就相当于在程序代码中设置条件断点。本命令为初级命令。

参数<1>的名称为“被校验的条件”，类型为“逻辑型（bool）”。如果此条件不能成立，即参数值为假，易程序的执行将被暂停且警示。

※是否为调试版

调用格式： 〈逻辑型〉 是否为调试版 （）

英文名称：IsDebugVer

如果当前 EXE 易程序执行文件为易语言编辑环境调试运行程序时编译出来的调试版本，返回真。否则表明为发布版本，返回假。本命令为初级命令。

其他

载入 | 选择 | 多项选择 | 是否为空
是否已创建 | 取数据类型尺寸 | 取颜色值 | 取事件单元
事件转移 | 复制窗口单元 | 处理事件 | 载入图片
卸载图片 | 取硬盘特征字 |  |

※载入

调用格式： 〈逻辑型〉 载入 （欲载入的窗口，［父窗口］，是否采用对话框方式）

英文名称：LoadWin

载入指定的窗口，根据窗口的“可视”属性决定是否显示它。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲载入的窗口”，类型为“窗口（window）”。参数值指定欲载入的窗口。

参数<2>的名称为“父窗口”，类型为“窗口（window）”，可以被省略。参数值指定欲载入窗口的父窗口，此窗口必须已经被载入。如果本参数被省略，表示无父窗口。如果窗口具有父窗口，其位置将永远位于父窗口的上面；当父窗口被关闭时，窗口将自动被关闭；当父窗口被禁止时，窗口将自动被禁止。

参数<3>的名称为“是否采用对话框方式”，类型为“逻辑型（bool）”，初始值为“真”。参数值指定用户在对被载入窗口进行操作的同时是否允许同时对其他窗口进行操作。如果本参数值为真： 1、即使被载入窗口的“可视”属性为假，在载入后也立即显示； 2、本命令一直等待到该窗口被销毁后才返回。

※选择

调用格式： 〈通用型〉 选择 （用作选择的逻辑值，待选择项一，待选择项二）

英文名称：iif

根据所提供参数的值，返回两部分中的其中一个。本命令为初级命令。

参数<1>的名称为“用作选择的逻辑值”，类型为“逻辑型（bool）”。如果该值为真，将返回第一个待选择项，否则将返回第二个待选择项。

参数<2>的名称为“待选择项一”，类型为“通用型（all）”。如果给定逻辑值为真，命令将返回本选择项。

参数<3>的名称为“待选择项二”，类型为“通用型（all）”。如果给定逻辑值为假，命令将返回本选择项。

※多项选择

调用格式： 〈通用型〉 多项选择 （索引值，待选择项数据，… ）

英文名称：choose

从参数列表项目中选择并返回一个值。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“索引值”，类型为“整数型（int）”。命令会根据本索引值来返回选择项列表中的某个值。如果索引值是 1，则命令会返回列表中的第 1 个选择项。如果索引值是 2，则会返回列表中的第 2 个选择项，以此类推。如果索引值小于 1 或者大于最大可选择项，将会产生运行错误。

参数<2>的名称为“待选择项数据”，类型为“通用型（all）”。

※是否为空

调用格式： 〈逻辑型〉 是否为空 （欲测试的参数容器）

英文名称：IsMissing

返回一个逻辑值，指出在调用子程序时是否为指定参数提供了数据（该参数必定有“可空”标志），如未提供，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲测试的参数容器”，类型为“通用型（all）”，提供参数数据时只能提供容器及容器数组。

※是否已创建

调用格式： 〈逻辑型〉 是否已创建 （欲被检查的窗口或窗口单元）

英文名称：IsCreated

如果指定的窗口或窗口单元有效且已经被载入或创建，返回真，否则返回假。对于窗口菜单项单元，如果其所处窗口已经被载入，命令将返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲被检查的窗口或窗口单元”，类型为“通用型（all）”。

※取数据类型尺寸

调用格式： 〈整数型〉 取数据类型尺寸 （欲取其尺寸的数据类型）

英文名称：GetDataTypeSize

取指定数据类型的数据尺寸，该数据类型不能为文本、字节集、库或用户自定义数据类型。本命令为初级命令。

参数<1>的名称为“欲取其尺寸的数据类型”，类型为“整数型（int）”。参数值可以为以下常量： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 9、#子程序指针型。

※取颜色值

调用格式： 〈整数型〉 取颜色值 （红色，绿色，蓝色）

英文名称：rgb

返回一个整数，用来表示一个红绿蓝颜色值。本命令为初级命令。

参数<1>的名称为“红色”，类型为“整数型（int）”。数值范围从 0 到 255，表示颜色中的红色成份。

参数<2>的名称为“绿色”，类型为“整数型（int）”。数值范围从 0 到 255，表示颜色中的绿色成份。

参数<3>的名称为“蓝色”，类型为“整数型（int）”。数值范围从 0 到 255，表示颜色中的蓝色成份。

※取事件单元

调用格式： 〈通用型〉 取事件单元 （）

英文名称：GetEventUnit

返回一个有效的单元型数据，指定当前所正在处理的事件是从何单元实际产生的。本命令主要用于在事件处理子程序中动态确定事件的来源。注意：只能在处理事件的过程中使用本命令，如果在其它情况下使用，将产生运行时错误。本命令为中级命令。

※事件转移

调用格式： 〈逻辑型〉 事件转移 （单元一，［单元二］）

英文名称：EventPost

设置将第一个单元上产生的所有事件转交由第二个同窗口同类型单元的事件处理子程序去处理，就好象此事件是在第二个单元上实际发生的一样。本命令可用来设置用同一事件处理子程序处理来自多个同类型单元的事件。使用时可与“取事件单元”命令、对象的“标记”属性等相配合。设置成功返回真，失败返回假。本命令为中级命令。

参数<1>的名称为“单元一”，类型为“通用型（all）”。参数值指定欲将其事件转移的单元。如果该参数值指定的不是窗口内的单元，而是窗口本身，则不考虑“单元二”参数的设置情况，直接取消被指定窗口上所有单元事件转移设置。

参数<2>的名称为“单元二”，类型为“通用型（all）”，可以被省略。参数值指定单元一事件转移到的目的单元，必须与单元一的类型相同且在同一窗口内，否则命令会失败。如果本参数被省略，将取消单元一的原有事件转移设置。

※复制窗口单元

调用格式： 〈逻辑型〉 复制窗口单元 （欲被复制的窗口单元，存放新创建单元的容器）

英文名称：CopyWinUnit

复制创建与指定窗口单元设计状态完全一致的新单元。该被复制单元将放在原单元的下面，其事件被自动转移到原单元上。如果复制时被复制窗口单元所在的窗口尚未被载入，那么复制出来的窗口单元也不会被立即创建，而会等到其所在窗口将来被载入时一并创建。并且此时复制出来的窗口单元将永久存在，就好象是用户在设计窗口时所加入的一样，不会因为其所在窗口被销毁而被抛弃；如果复制时被复制窗口单元所在的窗口已经被载入，该单元会被立即创建，但此时无论该单元的“可视”属性是真还是假，创建后的单元都将不会被显示，以便于用户进行属性调整。此时复制出来的窗口单元为临时存在，在其所在窗口被销毁后，此窗口单元将被抛弃，下次再载入原窗口时此窗口单元将不复存在。成功返回真，失败返回假。本命令为中级命令。

参数<1>的名称为“欲被复制的窗口单元”，类型为“通用型（all）”。参数值不能为窗口本身、窗口菜单项单元、选择夹窗口单元。

参数<2>的名称为“存放新创建单元的容器”，类型为“通用型（all）”，提供参数数据时只能提供容器。该容器数据类型必须与被复制窗口单元数据类型完全一致，否则命令会失败。

※处理事件

调用格式： 〈无返回值〉 处理事件 （）

英文名称：DoEvents

暂时转让控制权，以便让 Windows 操作系统有机会处理其它的如用户键盘或鼠标输入等事件。直到操作系统处理并发送完程序队列中的所有事件后，命令才会返回。本命令为中级命令。

※载入图片

调用格式： 〈整数型〉 载入图片 （欲被载入的图片）

英文名称：LoadPic

载入指定图片，以供画板、打印机等对象的“画图片”、“取图片宽度”、“取图片高度”之类成员命令使用。如成功则返回被载入图片的图片号，失败返回 0。本命令为初级命令。

参数<1>的名称为“欲被载入的图片”，类型为“通用型（all）”。参数值可以为 .JPG、.GIF、.BMP、.DIB、.ICO、.CUR 等等被支持格式的图片数据、图片资源或图片文件名。

※卸载图片

调用格式： 〈无返回值〉 卸载图片 （图片号）

英文名称：UnloadPic

卸载被载入的图片，图片被卸载后不能再被使用。如果某图片被载入后未被卸载，在易程序退出时将自动被卸载。本命令为初级命令。

参数<1>的名称为“图片号”，类型为“整数型（int）”。参数值必须为调用“载入图片”命令所返回的图片号。

※取硬盘特征字

调用格式： 〈整数型〉 取硬盘特征字 （）

英文名称：GetHDiskCode

返回电脑中第一个物理硬盘的物理特征字，该特征字是仅硬件相关的，也就是说与任何软件系统都无关（包括操作系统）。用户可以使用此特征字来限制自己的程序仅在某一台计算机上运行，以保护自己软件的版权。本命令可以在任何 Windows 系统版本下运行。命令执行后如果返回 0 ，表示此次取硬盘特征字失败。由于有可能是因为暂时的 I/O 冲突造成，因此失败后可以等待一段随机时间后再试（可以参看例程）。如果重复尝试四五次后仍然失败，表明该硬盘无法取出特征字。本命令为初级命令。

数据库

是否支持多用户 | 取错误码 | 取错误信息 | 创建
打开 | 替换打开 | 置当前库 | 取当前库
关闭 | 全部关闭 | 取库文件名 | 是否已打开
取记录数 | 取创建时间 | 取字段数 | 取字段名
改字段名 | 取字段类型 | 取字段尺寸 | 新建索引
置当前索引 | 取当前索引 | 更新索引 | 取索引数
取索引名 | 取索引字段 | 置加锁重试时间 | 锁住数据库
解锁数据库 | 锁住增删 | 解增删锁 | 锁住记录
解锁记录 | 全部解锁 | 取平均值 | 求和
取最大值 | 取最小值 | 取最大时间 | 取最小时间
计算数目 | 复制结构 | 复制记录 | 计算排序
排序 | 分类计算 | 添加 | 加记录
加空记录 | 替换 | 修改 | 删除
是否已删除 | 恢复删除 | 彻底删除 | 清空
读 | 写 | 读字段 | 写字段
附加字节集 | 附加备注 | 索引查找 | 查找
到首记录 | 到尾记录 | 跳过 | 取记录号
跳到 | 取标签 | 记录是否存在 | 标签跳转
首记录前 | 尾记录后 | 写出缓存 | 写出所有缓存
编辑 | 是否已加密 | 置数据库密码 | 密码输入框
复制密码 |  |  |

※是否支持多用户

调用格式： 〈逻辑型〉是否支持多用户（）

英文名称：MutiUser

检查本支持库所提供的数据库功能是否支持多用户同时对数据库操作。如果支持，返回真，否则返回假。本命令为初级命令。

※取错误码

调用格式： 〈整数型〉 取错误码 （）

英文名称：GetErrCode

如果执行某数据库命令失败，在其后执行本命令可以取回非 0 的数据库错误码值。如果该数据库命令执行成功，执行本命令将返回 0 。本命令为初级命令。

※取错误信息

调用格式： 〈文本型〉 取错误信息 （）

英文名称：GetErrMsg

如果执行某数据库命令失败，在其后执行本命令可以取回错误信息文本。如果该数据库命令执行成功，执行本命令将返回空文本。本命令为初级命令。

※创建

调用格式： 〈逻辑型〉 创建 （欲创建数据库的文件名，字段信息表）

英文名称：create

创建指定的数据库文件，如果该数据库文件存在，将被覆盖。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲创建数据库的文件名”，类型为“文本型（text）”。

参数<2>的名称为“字段信息表”，类型为“字段信息（FieldInf）”，提供参数数据时只能提供数组数据。参数数组值中顺序指定本数据库中所有字段的信息。

※打开

调用格式： 〈逻辑型〉 打开 （数据库文件名，［在程序中使用的别名］，［是否只读］，［共享方式］，［保留参数1］，［数据库密码］，［索引文件表］，… ）

英文名称：use

打开指定的数据库文件。成功返回真，并自动将当前数据库设置为此数据库，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。

参数<2>的名称为“在程序中使用的别名”，类型为“文本型（text）”，可以被省略。别名为在后面的程序中引用本数据库时可使用的另一个名称。欲引用一个已经被打开的数据库可以使用该数据库本身的名称（数据库名称为数据库文件名的无路径和后缀部分。譬如 c:\my documents\gz.edb ，其数据库名称为 gz ），也可以使用在此处所指定的别名。别名主要用作避开重复的数据库名称或者简化对长数据库名的引用。数据库名称与别名皆不区分大小写，在查找数据库时，系统将优先查找别名。如果本参数被省略，默认为没有别名。

参数<3>的名称为“是否只读”，类型为“逻辑型（bool）”，可以被省略。参数值说明是否仅对数据库进行读操作，如果省略本参数，默认为假。

参数<4>的名称为“共享方式”，类型为“整数型（int）”，可以被省略。参数值指定在多用户环境中限制其它用户操作此数据库的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一：

1、#无限制：允许其它用户任意操作此数据库；

2、#禁止读：禁止其它用户读此数据库；

3、#禁止写：禁止其它用户写此数据库；

4、#禁止读写：独占使用此数据库，禁止其它用户的任何操作。

参数<5>的名称为“保留参数1”，类型为“文本型（text）”，可以被省略。本参数仅用作保留参数位置。

参数<6>的名称为“数据库密码”，类型为“文本型（text）”，可以被省略。本参数提供访问数据库时所需要的密码，如果该数据库没有被加密，请提供空文本。注意“?”（即单个问号）是一个特殊的密码文本，它要求系统当发现所欲打开的数据库具有密码保护时，自动弹出一个密码输入框提示用户输入正确的密码。如果用户在该输入框中取消输入或连续三次输入了错误密码，打开命令将失败，且执行“取错误码”命令将返回-78。如果本参数被省略，默认为空文本。

参数<7>的名称为“索引文件表”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定本数据库的所有索引文件，它们将被同步打开，以便得到及时更新。

※替换打开

调用格式： 〈逻辑型〉 替换打开 （数据库文件名，［在程序中使用的别名］，［是否只读］，［共享方式］，［保留参数1］，［数据库密码］，［索引文件表］，… ）

英文名称：ruse

打开指定的数据库文件。成功返回真，并自动关闭当前数据库后将当前数据库设置为此数据库，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。

参数<2>的名称为“在程序中使用的别名”，类型为“文本型（text）”，可以被省略。别名为在后面的程序中引用本数据库时可使用的另一个名称。欲引用一个已经被打开的数据库可以使用该数据库本身的名称（数据库名称为数据库文件名的无路径和后缀部分。譬如 c:\my documents\gz.edb ，其数据库名称为 gz ），也可以使用在此处所指定的别名。别名主要用作避开重复的数据库名称或者简化对长数据库名的引用。数据库名称与别名皆不区分大小写，在查找数据库时，系统将优先查找别名。如果本参数被省略，默认为没有别名。

参数<3>的名称为“是否只读”，类型为“逻辑型（bool）”，可以被省略。参数值说明是否仅对数据库进行读操作，如果省略本参数，默认为假。

参数<4>的名称为“共享方式”，类型为“整数型（int）”，可以被省略。参数值指定在多用户环境中限制其它用户操作此数据库的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一：

1、#无限制：允许其它用户任意操作此数据库；

2、#禁止读：禁止其它用户读此数据库；

3、#禁止写：禁止其它用户写此数据库；

4、#禁止读写：独占使用此数据库，禁止其它用户的任何操作。

参数<5>的名称为“保留参数1”，类型为“文本型（text）”，可以被省略。本参数仅用作保留参数位置。

参数<6>的名称为“数据库密码”，类型为“文本型（text）”，可以被省略。本参数提供访问数据库时所需要的密码，如果该数据库没有被加密，请提供空文本。注意“?”（即单个问号）是一个特殊的密码文本，它要求系统当发现所欲打开的数据库具有密码保护时，自动弹出一个密码输入框提示用户输入正确的密码。如果用户在该输入框中取消输入或连续三次输入了错误密码，打开命令将失败，且执行“取错误码”命令将返回-78。如果本参数被省略，默认为空文本。

参数<7>的名称为“索引文件表”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定本数据库的所有索引文件，它们将被同步打开，以便得到及时更新。

※置当前库

调用格式： 〈逻辑型〉 置当前库 （数据库别名或名称）

英文名称：select

本命令选择一个已经被打开的数据库为当前数据库，大部分数据库操作命令都针对当前数据库，譬如：记录指针的移动、字段的读写等等。如果指定数据库不存在或者尚未被打开，命令将返回假，否则返回真。本命令为初级命令。

参数<1>的名称为“数据库别名或名称”，类型为“文本型（text）”。参数值指定一个已经被打开的数据库。

※取当前库

调用格式： 〈文本型〉 取当前库 （）

英文名称：dbf

返回当前数据库的别名，如不存在别名，则返回其名称。如果未设置当前数据库，将返回空文本。本命令为初级命令。

※关闭

调用格式： 〈无返回值〉 关闭 （［数据库别名或名称］）

英文名称：CloseDBF

本命令关闭已经被打开的指定数据库。如果没有提供数据库名称，默认为关闭当前数据库。如果当前数据库被关闭，当前数据库状态值将被设置为空，此时可重新使用“置当前库”命令来进行相应设置。本命令为初级命令。

参数<1>的名称为“数据库别名或名称”，类型为“文本型（text）”，可以被省略。参数值如果被省略，默认为关闭当前数据库。

※全部关闭

调用格式： 〈无返回值〉 全部关闭 （）

英文名称：CloseAll

本命令关闭当前已经被打开的所有数据库。本命令为初级命令。

※取库文件名

调用格式： 〈文本型〉 取库文件名 （）

英文名称：GetDBF

返回当前数据库的全路径文件名。如果当前数据库不存在，返回空文本。本命令为初级命令。

※是否已打开

调用格式： 〈逻辑型〉 是否已打开 （欲测试的数据库文件名）

英文名称：used

如果指定数据库文件已经被打开，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“欲测试的数据库文件名”，类型为“文本型（text）”。

※取记录数

调用格式： 〈整数型〉 取记录数 （）

英文名称：RecCount

返回当前数据库的记录数目。如果没有设置当前数据库或者失败，将返回 0 。本命令为初级命令。

※取创建时间

调用格式： 〈日期时间型〉 取创建时间 （）

英文名称：DateCreated

返回当前数据库被创建的时间。本命令为初级命令。

※取字段数

调用格式： 〈整数型〉 取字段数 （）

英文名称：FCount

返回当前数据库中字段的数目。本命令为初级命令。

※取字段名

调用格式： 〈文本型〉 取字段名 （字段名称或位置）

英文名称：GetFieldName

返回当前数据库中指定字段的名称。如果指定字段不存在，将返回空文本。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※改字段名

调用格式： 〈逻辑型〉 改字段名 （字段名称或位置，字段的新名称）

英文名称：ModiFieldName

修改当前数据库中指定字段的名称。本命令只有当数据库的共享打开方式为“#禁止读写”时才有效。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“字段的新名称”，类型为“文本型（text）”。

※取字段类型

调用格式： 〈整数型〉 取字段类型 （字段名称或位置）

英文名称：GetFieldType

返回当前数据库中指定字段的类型，字段类型值为以下常量值之一：

1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 10、#文本型； 11、#字节集型； 12、#备注型。如果指定字段不存在，将返回 0 。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※取字段尺寸

调用格式： 〈整数型〉 取字段尺寸 （字段名称或位置）

英文名称：FSize

返回当前数据库中指定字段在记录中所占的尺寸。如果指定字段不存在，将返回 0 。注意：备注型和字节集型字段将返回 4 。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※新建索引

调用格式： 〈逻辑型〉 新建索引 （欲创建索引文件的名称，［索引类型］，［索引选项］，［索引块尺寸］，被索引字段的名称，… ）

英文名称：CreateIndex

在当前数据库中创建并打开一个索引文件。索引的存在将降低对数据库记录的更新速度，所以除非是较大的数据库（最起码在一千条记录以上），否则一般不用使用索引。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲创建索引文件的名称”，类型为“文本型（text）”。

参数<2>的名称为“索引类型”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值之一，如果被省略，默认为“#通常索引”：

1、#通常索引；

2、#读音索引： 在文本型索引字段中，所有汉字根据标准读音建立索引；

3、#南方读音索引： 在文本型索引字段中，所有汉字根据南方读音建立索引（南方读音不区分卷舌音和平舌音）。

参数<3>的名称为“索引选项”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量值之一或者之和：

1、#不区分大小写：文本型索引字段中不区分英文字母的大小写；

2、#忽略所有空格：文本型索引字段中忽略所有的全、半角空格。

如果本参数被省略，默认为 0 。

参数<4>的名称为“索引块尺寸”，类型为“整数型（int）”，可以被省略。参数值指定索引文件记录索引项时所使用索引块的大小，以 512 字节为单位，最大值为 10 。如果本参数被省略，默认值为 1 。仅在大型数据库中需要建立大索引块的索引文件，一般情况下使用默认值即可。

参数<5>的名称为“被索引字段的名称”，类型为“文本型（text）”，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有被索引字段的名称，支持以数组方式直接提供多个字段。

※置当前索引

调用格式： 〈逻辑型〉 置当前索引 （索引名称）

英文名称：SetIndexTo

为当前数据库指定当前索引，在进行索引查找时将使用当前索引。如果指定索引不存在，将返回假。本命令为初级命令。

参数<1>的名称为“索引名称”，类型为“文本型（text）”。索引名称为索引文件名的无后缀部分。譬如“sy.enx”索引文件，其索引名称为“sy”。

※取当前索引

调用格式： 〈文本型〉 取当前索引 （）

英文名称：ndx

返回当前数据库的当前索引名称。如果未设置当前数据库或无当前索引，返回空文本。本命令为初级命令。

※更新索引

调用格式： 〈逻辑型〉 更新索引 （）

英文名称：reindex

通过完全重建来更新当前数据库的当前索引。成功返回真，失败返回假。本命令为初级命令。

※取索引数

调用格式： 〈整数型〉 取索引数 （）

英文名称：GetIndexCount

返回当前数据库中已经被打开索引的数目。本命令为初级命令。

※取索引名

调用格式： 〈文本型〉 取索引名 （索引位置）

英文名称：GetIndexName

返回当前数据库中指定索引的名称。如果指定位置处不存在索引，将返回空文本。本命令为初级命令。

参数<1>的名称为“索引位置”，类型为“整数型（int）”。参数值指定索引在当前数据库内所有被打开索引中的位置，从 1 开始。

※取索引字段

调用格式： 〈文本型数组〉 取索引字段 （索引位置）

英文名称：GetIndexField

返回当前数据库中指定索引内所有被索引字段的名称数组。如果指定位置处不存在索引，将返回空数组。本命令为初级命令。

参数<1>的名称为“索引位置”，类型为“整数型（int）”。参数值指定索引在当前数据库内所有被打开索引中的位置，从 1 开始。

※置加锁重试时间

调用格式： 〈无返回值〉 置加锁重试时间 （［加锁重试时间］）

英文名称：SetLockTimeout

本命令设置对数据库进行加锁时，如果该位置已经被其他用户锁住或者正在被其他用户访问，系统反复重试加锁的时间。当你的数据库可能被多用户同时访问时，必须在程序首使用本命令设置一个合适的时间值。一般情况下，可以设置为 60 秒，或者根据所处网络的传输和通畅速度来具体设置。本命令为初级命令。

参数<1>的名称为“加锁重试时间”，类型为“整数型（int）”，可以被省略。参数值可以为以下值之一：

1、 大于 0 的值。用于指定具体的重试间隔时间，单位为秒；

2、 0 。不重试，第一次加锁失败后立即返回错误（系统初始值）；

3、 -1。一直重试，直到加锁成功。

如果本参数被省略，默认值为 0 。

※锁住数据库

调用格式： 〈逻辑型〉 锁住数据库 （）

英文名称：LockDBF

本命令执行后独占锁住整个当前数据库，拒绝其它用户的任何访问。成功返回真，失败返回假。本命令为初级命令。

※解锁数据库

调用格式： 〈逻辑型〉 解锁数据库 （）

英文名称：UnlockDBF

本命令解除“锁住数据库”命令对当前数据库加的锁。成功返回真，失败返回假。本命令为初级命令。

※锁住增删

调用格式： 〈逻辑型〉 锁住增删 （）

英文名称：LockCount

本命令执行后独占锁住对当前数据库的增删操作，其它用户可以读写已存在的任何记录，但是不能对数据库记录进行增删。也就是说：不能执行改变数据库记录数目的任何操作。注意：由于“删除”命令仅在记录上加上删除标志，并不实际删除记录，所以不在被加锁的范围内。成功返回真，失败返回假。本命令为初级命令。

※解增删锁

调用格式： 〈逻辑型〉 解增删锁 （）

英文名称：UnlockCount

本命令解除“锁住增删”命令对当前数据库加的锁。成功返回真，失败返回假。本命令为初级命令。

※锁住记录

调用格式： 〈逻辑型〉 锁住记录 （记录号，… ）

英文名称：LockRec

本命令执行后可以锁住指定的一个或多个记录。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“记录号”，类型为“整数型（int）”。参数值指定的记录号从 1 开始。

※解锁记录

调用格式： 〈逻辑型〉 解锁记录 （记录号，… ）

英文名称：UnlockRec

本命令解除“锁住记录”命令对记录所加的锁。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“记录号”，类型为“整数型（int）”。参数值指定的记录号从 1 开始。

※全部解锁

调用格式： 〈逻辑型〉 全部解锁 （）

英文名称：UnlockAll

本命令解除由“锁住数据库”、“锁住增删”、“锁住记录”等命令对当前数据库加上的所有锁。成功返回真，失败返回假。本命令为初级命令。

※取平均值

调用格式： 〈双精度小数型〉 取平均值 （计算表达式，［记录条件］）

英文名称：avg

本命令根据当前数据库计算并返回某数值型表达式的平均值，命令执行后当前记录指针保持不变。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※求和

调用格式： 〈双精度小数型〉 求和 （计算表达式，［记录条件］）

英文名称：sum

本命令根据当前数据库计算并返回某数值型表达式的和，命令执行后当前记录指针保持不变。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※取最大值

调用格式： 〈双精度小数型〉 取最大值 （计算表达式，［记录条件］）

英文名称：max

本命令根据当前数据库计算并返回某数值型表达式的最大值，当前记录指针被移动到具有最大值的记录。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※取最小值

调用格式： 〈双精度小数型〉 取最小值 （计算表达式，［记录条件］）

英文名称：min

本命令根据当前数据库计算并返回某数值型表达式的最小值，当前记录指针被移动到具有最小值的记录。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※取最大时间

调用格式： 〈日期时间型〉 取最大时间 （计算表达式，［记录条件］）

英文名称：MaxTime

本命令根据当前数据库计算并返回某日期时间型表达式的最大值，当前记录指针被移动到具有最大值的记录。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※取最小时间

调用格式： 〈日期时间型〉 取最小时间 （计算表达式，［记录条件］）

英文名称：MinTime

本命令根据当前数据库计算并返回某日期时间型表达式的最小值，当前记录指针被移动到具有最小值的记录。本命令为初级命令。

参数<1>的名称为“计算表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※计算数目

调用格式： 〈整数型〉 计算数目 （［记录条件］）

英文名称：count

本命令返回当前数据库中指定范围记录的数目。命令执行后当前记录指针保持不变。本命令为初级命令。

参数<1>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

※复制结构

调用格式： 〈逻辑型〉 复制结构 （数据库文件名，［字段范围］，… ）

英文名称：CopyStructTo

复制当前数据库的结构到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※复制记录

调用格式： 〈逻辑型〉 复制记录 （数据库文件名，［记录条件］，［字段范围］，… ）

英文名称：CopyTo

复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参数<3>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※计算排序

调用格式： 〈逻辑型〉计算排序（数据库文件名，排序表达式，［排序方向］，［记录条件］，［字段范围］，… ）

英文名称：csort

根据指定数值表达式的计算值排序复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“排序表达式”，类型为“条件语句型（statment）”。本参数所指定的表达式内必须使用了当前数据库的字段，表达式所返回数据的类型必须为数值型。

参数<3>的名称为“排序方向”，类型为“逻辑型（bool）”，可以被省略。本参数的值如果为真或者被省略，将按照从小到大的顺序排序，否则为从大到小。

参数<4>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参数<5>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※排序

调用格式： 〈逻辑型〉 排序 （数据库文件名，排序字段，［排序方向］，［记录条件］，［字段范围］，… ）

英文名称：sort

根据指定字段排序复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“排序字段”，类型为“文本型（text）”，提供参数数据时可以同时提供数组或非数组数据。本参数的数据可以为字段名文本或者字段名文本数组（用作同时指定多个字段）。

参数<3>的名称为“排序方向”，类型为“逻辑型（bool）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的数据可以为一个逻辑值或者逻辑值数组（用作同时为多个字段指定排序方向）。如果逻辑值为真，对应字段将按照从小到大的顺序排序，否则为从大到小。如果本参数被省略，默认为全部按照从小到大的顺序排序。

参数<4>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参数<5>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※分类计算

调用格式： 〈逻辑型〉 分类计算 （数据库文件名，分类字段，［计算方法］，［记录条件］，［字段范围］，… ）

英文名称：total

对当前数据库进行分类计算，将结果输出到另外一个数据库。注意所有的备注或字节集字段内容将不会被输出到目的数据库中。 命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。

参数<2>的名称为“分类字段”，类型为“文本型（text）”，提供参数数据时可以同时提供数组或非数组数据。本参数的数据可以为字段名文本或者字段名文本数组（用作同时指定多个字段）。

参数<3>的名称为“计算方法”，类型为“整数型（int）”，可以被省略。参数值可以为以下常量之一： 1、#取平均值； 2、#求和； 3、#取最大值； 4、#取最小值。 如果本参数被省略，默认为“#求和”。

参数<4>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参数<5>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

※添加

调用格式： 〈逻辑型〉 添加 （数据库别名或名称，［记录条件］，［字段范围］，… ）

英文名称：AppendFrom

将指定数据库中的记录添加到当前数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“数据库别名或名称”，类型为“文本型（text）”。本参数指定一个已打开数据库，命令将从该数据库中获取欲添加的记录数据。

参数<2>的名称为“记录条件”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为添加指定数据库中的所有记录，否则仅添加指定数据库中满足此条件的记录。

参数<3>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲添加字段的名称。如果被省略,默认添加所有同名字段。

※加记录

调用格式： 〈逻辑型〉 加记录 （［记录数据］，… ）

英文名称：Append

本命令在当前数据库的尾部添加一条记录，并将当前记录指针移动到该记录处。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“记录数据”，类型为“通用型（all）”，可以被省略。本参数的每一个参数值用作为记录中对应位置处的一个字段提供数据。如果某参数值被省略，则对应位置处字段的内容被设置为初始值。

※加空记录

调用格式： 〈逻辑型〉 加空记录 （）

英文名称：AppendBlank

本命令在当前数据库的尾部添加一条空记录，并将当前记录指针移动到该记录上。成功返回真，失败返回假。本命令为初级命令。

※替换

调用格式： 〈逻辑型〉 替换 （［替换范围］，字段名称或替换数据，… ）

英文名称：replace

本命令替换当前数据库中的记录数据，当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“替换范围”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为替换当前记录数据，否则替换所有满足此条件记录的数据。如果欲在所有记录内进行替换，请直接将逻辑值“真”赋予本参数。

参数<2>的名称为“字段名称或替换数据”，类型为“通用型（all）”。本参数的每一对参数值顺序指定欲被替换字段的名称及其相应的替换值。替换值的数据类型必须与所对应字段的数据类型一致或可互相转换，否则命令会失败。

※修改

调用格式： 〈逻辑型〉 修改 （［修改数据］，… ）

英文名称：modify

本命令一次性修改当前数据库中当前记录内多个字段的内容，当前记录指针保持不变。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“修改数据”，类型为“通用型（all）”，可以被省略。本参数的每一个参数值用作替换当前记录中对应位置处的一个字段。如果某参数值被省略，则对应位置处字段的内容将保持不变。

※删除

调用格式： 〈逻辑型〉 删除 （［记录范围］）

英文名称：delete

标记删除当前数据库中的当前记录或者指定范围内的记录，当前记录指针位置保持不变。注意：此命令并不实际删除记录，仅仅只加上删除标记，记录依旧存在并可以读写。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“记录范围”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为删除或恢复删除当前记录，否则删除或恢复删除所有满足此条件的记录。如果欲删除或恢复删除全部记录，请直接将逻辑值“真”赋予本参数。

※是否已删除

调用格式： 〈逻辑型〉 是否已删除 （）

英文名称：IsDeleted

如果当前数据库的当前记录已经被“删除”命令加上删除标记,返回真,否则返回假。本命令为初级命令。

※恢复删除

调用格式： 〈逻辑型〉 恢复删除 （［记录范围］）

英文名称：recall

去掉当前数据库中当前记录或者指定范围内记录的删除标记，当前记录指针位置保持不变。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“记录范围”，类型为“条件语句型（statment）”，可以被省略。如果本参数被省略，默认为删除或恢复删除当前记录，否则删除或恢复删除所有满足此条件的记录。如果欲删除或恢复删除全部记录，请直接将逻辑值“真”赋予本参数。

※彻底删除

调用格式： 〈逻辑型〉 彻底删除 （）

英文名称：pack

将当前数据库中所有被加上删除标记的记录从数据库中彻底清除，当前记录指针位置将被移动到数据库首记录。记录被彻底删除后将不复存在，并且无法恢复。注意执行本命令将重组数据库记录，因此速度比较慢。成功返回真，失败返回假。本命令为初级命令。

※清空

调用格式： 〈逻辑型〉 清空 （）

英文名称：zap

彻底清除当前数据库中的所有记录。成功返回真，失败返回假。本命令为初级命令。

※读

调用格式： 〈通用型〉 读 （字段名称或位置）

英文名称：r

返回当前数据库中当前记录处指定字段的数据内容，所返回数据的类型等同于字段的类型。如果指定字段不存在，将产生运行时错误。执行本命令后使用“取错误码”命令可以判断是否读入成功。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

※写

调用格式： 〈逻辑型〉 写 （字段名称或位置，［欲写入数据］）

英文名称：w

将数据写入到当前数据库中当前记录处的指定字段内。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“欲写入数据”，类型为“通用型（all）”，可以被省略。本参数数据的类型必须与所对应字段的数据类型一致或可互相转换。如果本参数被省略，则初始化对应字段中的内容，具体为：数值字段被初始化为零，逻辑字段被初始化为假，日期字段被初始化为 1899 年 12 月 30 日，文本及备注字段被初始化为空文本（“”），字节集字段被初始化为空字节集。

※读字段

调用格式： 〈通用型〉 读字段 （字段名称或位置，［数据库别名或名称］）

英文名称：ReadField

返回指定数据库中当前记录处指定字段的数据内容，所返回数据的类型等同于字段的类型。如果指定字段不存在，将产生运行时错误。本命令与“读”命令的不同之处为本命令可以从非当前数据库中读取字段。执行本命令后使用“取错误码”命令可以判断是否读入成功。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“数据库别名或名称”，类型为“文本型（text）”，可以被省略。参数值指定一个已经被打开的数据库，该数据库内包含所欲读取的字段。如果被省略，默认为当前数据库。

※写字段

调用格式： 〈逻辑型〉 写字段 （字段名称或位置，［数据库别名或名称］，［欲写入数据］）

英文名称：WriteField

将数据写入到指定数据库中当前记录处的指定字段内。成功返回真，失败返回假。本命令与“写”命令的不同之处为本命令可以写入非当前数据库中的字段。本命令为初级命令。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“数据库别名或名称”，类型为“文本型（text）”，可以被省略。参数值指定一个已经被打开的数据库，该数据库内包含所欲写入的字段。如果被省略，默认为当前数据库。

参数<3>的名称为“欲写入数据”，类型为“通用型（all）”，可以被省略。本参数数据的类型必须与所对应字段的数据类型一致或可互相转换。如果本参数被省略，则初始化对应字段中的内容，具体为：数值字段被初始化为零，逻辑字段被初始化为假，日期字段被初始化为 1899 年 12 月 30 日，文本及备注字段被初始化为空文本（“”），字节集字段被初始化为空字节集。

※附加字节集

调用格式： 〈逻辑型〉 附加字节集 （字段名称或位置，欲添加的字节集数据，… ）

英文名称：AppendBin

将字节集数据添加到当前记录处指定字节集型字段的尾部。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“欲添加的字节集数据”，类型为“字节集（bin）”。

※附加备注

调用格式： 〈逻辑型〉 附加备注 （字段名称或位置，欲添加的文本数据，… ）

英文名称：AppendMemo

将文本数据添加到当前记录处指定备注型字段的尾部。成功返回真，失败返回假。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“字段名称或位置”，类型为“通用型（all）”。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参数<2>的名称为“欲添加的文本数据”，类型为“文本型（text）”。

※索引查找

调用格式： 〈逻辑型〉 索引查找 （欲搜寻值，… ）

英文名称：seek

本命令在当前数据库中使用其当前索引来快速寻找某一记录，寻找从当前记录位置（包括当前记录）处开始。注意为命令所提供的欲搜寻值参数的数目必须与被索引字段的数目一致。如成功找到返回真，并且将当前记录指针移至所找到的记录。如出错或未找到则返回假，当前记录指针位置保持不变。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“欲搜寻值”，类型为“通用型（all）”。本参数数据的类型必须与索引字段表中对应位置处字段的类型一致。

※查找

调用格式： 〈逻辑型〉 查找 （查找条件）

英文名称：locate

本命令从当前数据库中当前记录位置处（包括当前记录）开始寻找符合给定条件的记录。如成功找到返回真，并且将当前记录指针移至所找到的记录。如出错或未找到则返回假，当前记录指针位置保持不变。本命令为初级命令。

参数<1>的名称为“查找条件”，类型为“条件语句型（statment）”。参数值指定欲查找记录应该满足的条件。

※到首记录

调用格式： 〈无返回值〉 到首记录 （）

英文名称：GoTop

将当前数据库中当前记录指针移动到数据库的第一条记录上。本命令为初级命令。

※到尾记录

调用格式： 〈逻辑型〉 到尾记录 （）

英文名称：GoBottom

将当前数据库中当前记录指针移动到数据库的最后一条记录上。成功返回真，失败返回假。本命令为初级命令。

※跳过

调用格式： 〈逻辑型〉 跳过 （［欲跳过的记录数］）

英文名称：skip

将当前数据库中当前记录指针向前或者向后移动数条记录。成功返回真,失败返回假。本命令为初级命令。

参数<1>的名称为“欲跳过的记录数”，类型为“整数型（int）”，可以被省略。参数值如果为负数，则向前移动，否则向后移动。如果本参数被省略，默认值为 1 ，即向后移动一条记录。

※取记录号

调用格式： 〈整数型〉 取记录号 （）

英文名称：RecNO

返回当前数据库中当前记录指针所指向记录的记录号。如果当前记录指针在首记录前，返回 0 ；如果在尾记录后，返回值为记录总数加一。本命令为初级命令。

※跳到

调用格式： 〈逻辑型〉 跳到 （欲跳到的记录号）

英文名称：goto

改变当前数据库中的当前记录指针到指定的记录号。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“欲跳到的记录号”，类型为“整数型（int）”。参数值所指定的记录号从 1 开始，即首记录的记录号为 1 ，依此类推。

※取标签

调用格式： 〈整数型〉 取标签 （）

英文名称：GetBookmark

在数据库的存在期间，同一数据库内任何时候任何一条记录（包括已经被实际删除的记录）都有一个唯一的非 0 正整数标签值，使用本命令可以取回当前数据库当前记录的这一标签值。此标签值可以用来在记录间跳转或者在多用户环境中查看记录是否已经被其它用户实际删除。如果命令执行失败，将返回 0 。本命令为初级命令。

※记录是否存在

调用格式： 〈逻辑型〉 记录是否存在 （记录的标签值）

英文名称：IsRecExist

如果当前数据库中存在具有指定标签值的记录，命令返回真，否则返回假。本命令可以用作在多用户环境中检查某记录是否被其它用户实际删除。本命令为初级命令。

参数<1>的名称为“记录的标签值”，类型为“整数型（int）”。

※标签跳转

调用格式： 〈逻辑型〉 标签跳转 （记录的标签值）

英文名称：GotoBookmark

使用本命令可以改变当前数据库中的当前记录指针到具有指定标签的记录。如成功找到返回真，并且将当前记录指针移至该记录。如出错或未找到则返回假，当前记录指针位置保持不变。本命令为初级命令。

参数<1>的名称为“记录的标签值”，类型为“整数型（int）”。

※首记录前

调用格式： 〈逻辑型〉 首记录前 （）

英文名称：bof

如果当前数据库的当前记录指针已在首记录的前面，返回真，否则返回假。本命令为初级命令。

※尾记录后

调用格式： 〈逻辑型〉 尾记录后 （）

英文名称：eof

如果当前数据库的当前记录指针已在尾记录的后面，返回真，否则返回假。本命令为初级命令。

※写出缓存

调用格式： 〈无返回值〉 写出缓存 （）

英文名称：flush

为了加快对数据库数据的存取速度，对数据库所进行的写操作将首先被保存在写缓存区内，等候一段时间后才会被自动写入到数据库文件中。使用本命令可以将当前数据库停留在写缓存区内的数据立即写入数据库磁盘文件中，以确保对当前数据库进行的所有写操作都真实地反映到了数据库文件中。一般情况下无需使用本命令。本命令为初级命令。

※写出所有缓存

调用格式： 〈无返回值〉 写出所有缓存 （）

英文名称：FlushAll

将所有数据库停留在写缓存区内的数据都立即写入到对应的数据库磁盘文件中。一般情况下无需使用本命令。本命令为初级命令。

※编辑

调用格式： 〈无返回值〉 编辑 （［标题］，［编辑方式］，［字段范围］，… ）

英文名称：edit

提供一个对话框，用作查看或编辑修改当前数据库的记录，起始位置从当前记录开始。本命令退出后当前记录指针被移动到首记录。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。

参数<1>的名称为“标题”，类型为“文本型（text）”，可以被省略。本参数指定对话框的标题，如果被省略，默认为“数据库记录编辑”。

参数<2>的名称为“编辑方式”，类型为“整数型（int）”，可以被省略。可以为 0 或者以下常量值的组合： 1、#禁止修改； 2、#禁止添加； 4、#禁止删除； 8、#禁止自动判断（注：在默认情况下，系统将自动判断当前字节集字段的内容是否为图片或者声音，然后以对应的方式显示。使用本常量值可以禁止此功能）。 如果被省略，默认值为 0 。

参数<3>的名称为“字段范围”，类型为“文本型（text）”，可以被省略，提供参数数据时可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲编辑字段的名称。如果被省略，默认为所有字段。

※是否已加密

调用格式： 〈逻辑型〉 是否已加密 （数据库文件名）

英文名称：IsEncrypted

如果需要提供密码才能访问指定的数据库文件（即已经被加密），返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“数据库文件名”，类型为“文本型（text）”。

※置数据库密码

调用格式： 〈逻辑型〉 置数据库密码 （［新密码文本］）

英文名称：SetPassword

本命令用作设置或修改当前数据库的访问密码，注意数据库文件必须可写。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“新密码文本”，类型为“文本型（text）”，可以被省略。建议密码长度最少为6个字符以上，并且最好混合使用汉字、字母、数字、符号，以保证密码本身的安全性。注意不能为“?”（即单个问号）,此密码文本被保留用作其他用途。如果为空文本,表示无密码。如果本参数被省略,则默认为空文本。

※密码输入框

调用格式： 〈逻辑型〉 密码输入框 （存放所输入密码的容器，［已重试次数］）

英文名称：InputDBPwd

本命令用作输入数据库的访问密码，如果用户在确认输入后（按下“确认”按钮或回车键）退出，返回真，否则返回假。本命令为初级命令。

参数<1>的名称为“存放所输入密码的容器”，类型为“文本型（text）”，提供参数数据时只能提供容器。

参数<2>的名称为“已重试次数”，类型为“整数型（int）”，可以被省略。本参数提供已经重试输入密码的次数，用作在对话框中显示剩余次数（允许总次数恒定为3次）。如果本参数被省略，则默认值为0。

※复制密码

调用格式： 〈逻辑型〉 复制密码 （数据库别名或名称）

英文名称：CopyPassword

本命令可以将当前数据库的访问密码设置为等同于其他已打开数据库，注意数据库文件必须可写。成功返回真，失败返回假。本命令为初级命令。

参数<1>的名称为“数据库别名或名称”，类型为“文本型（text）”。参数值指定一个已经被打开的数据库。

网络通信

取主机名

通信测试

转换为主机名

转换为IP地址

※取主机名

调用格式： 〈文本型〉 取主机名 （）

英文名称：GetHostName

返回本机的主机名，用作在网络通讯中标志本机地址。本命令为初级命令。

※通信测试

调用格式： 〈整数型〉 通信测试 （被测试主机地址，［最长等待时间］）

英文名称：ping

测试与指定主机是否能够正常通讯。返回被测试主机的通讯响应时间。如果无法通讯或者测试失败，返回 -1。本命令为初级命令。

参数<1>的名称为“被测试主机地址”，类型为“文本型（text）”。可以为主机名、IP地址等。

参数<2>的名称为“最长等待时间”，类型为“整数型（int）”，可以被省略。指定最长等待被测试主机响应的时间，单位为毫秒。超过此时间即认为无法与被测试主机通讯。如果省略本参数，则默认为 10 * 1000 毫秒，即 10 秒。

※转换为主机名

调用格式： 〈文本型〉 转换为主机名 （欲转换IP地址）

英文名称：IPToHostName

将指定的 IP 地址转换为其主机名。如果失败返回空文本。本命令为初级命令。

参数<1>的名称为“欲转换IP地址”，类型为“文本型（text）”。

※转换为IP地址

调用格式： 〈文本型〉 转换为IP地址 （欲转换主机名）

英文名称：HostNameToIP

将指定的主机名转换为其 IP 地址。如果失败返回空文本。本命令为初级命令。

参数<1>的名称为“欲转换主机名”，类型为“文本型（text）”。


第1节 关键字

第五章：易语言程序设计 | 第一节：关键字 7上一页 下一页 8

第五章：易语言程序设计 [上一章 下一章]

本章主要易语言编程系统内置的编程语言——易语言的语言特征。
本章主要内容包括：1.关键字，2.数据类型，3.常量和变量，4.运算符，5.流程控制，6.数组，7.常用库函数。

第一节：关键字 [上一节 下一节]

易语言中的关键字，从广义上说，主要包括：
1) 基本数据类型名称（如“整数型”“文本型”“逻辑型”等）；
2) 库定义数据类型名称（如“标签”“编辑框”“按钮”等）；
3) 库定义数据类型的属性、方法、事件的名称（如：“标题”“画图片”“被单击”等）；
4) 库定义结构名称（如“菜单”“字体”“字段信息”等）；
5) 运算符名称（如“＋”“－”“×”“÷”“且”“或”等）；
6) 流程控制名称（如“如果真”“如果”“判断循环首”“循环判断首”“计次循环首”等）；
7) 其它支持库函数名称（如“鸣叫”“到文本”“信息框”等）。

关键字也称保留字，是系统中预先定义的具有特定含义的“词”。这些词无论任何时候在程序中出现，系统都能识别它，理解它的意义。（像“如果”“如果真”等都是易语言中的关键字。）
与关键字相对的是“标识符”。所谓标识符，就是一组汉字（或字母、数字）的序列，它由程序员自己定义，用以作为某变量、常量、函数、控件、资源、DLL等的名称。与关键字不同，标识符在使用之前必须事先定义（不定义就使用必然会导致一个编译错误）。

为什么关键字可以自由使用，不需事先定义，而标识符却必须先定义才能使用呢？其实也很好理解。因为关键字是已经存在于系统中了，或者说它是系统中一部分，系统当然可以识别它；而标识符是程序员取的名字，如果不事先向系统登记（定义标识符），当然不能被识别。
请看下面这个例子：从大门口进入一个单位院内，本单位的人员可以自由出入，因为看门的认识（识别）他们；而外来人员由于不能被“识别”，所以不能随便通行，必须经过登记（定义）方可进入。

关于标识符，可以取任何汉字、字母、数字的组合作为标识符。其它语言有通常都规定不能定义与关键字同名的标识符，然而在易语言中并没有这条限制——即在易语言中即使定义与关键字同名的标识符，也不会造成任何冲突。但我还是要建议您：尽量不取与与关键字同名的标识符，以免造成不必要的混乱。（混乱不但来自写代码过程中，还有阅读源代码时：试想一下，如果程序中定义了一个名为“宽度”的变量或函数，不但输入代码时要从提示框中选取(见下图)，而且阅读源代码时也很难辨别它究竟是关键字还是标识符。）要知道，中国的汉字数量比外国的字母多上成百上千倍，取一个唯一的标识符是非常容易的，我们完全没有必要钻牛角尖走独木桥，故意取与关键字重名标识符。
可能您会说，我根本记不清所有的关键字，哪知道要命名的标识符是否与某关键字重名？这个不用担心，当您使用一个已经定义了的标识符时，如果它和某个关键字（或其它标识符）重名，易语言会自动弹出一个对话框(见右图)，请您选择要输入哪一个（虽然名字相同，但它仍然是不同的标识符或关键字）。这时，作为一种好的习惯，您应该考虑为标识符换一个名字。

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7上一页 下一页 8


第2节 数据类型

第五章：易语言程序设计 | 第二节：数据类型 7 上一页 下一页 8

第二节：数据类型 [上一节 下一节]

易语言中，数据类型分为系统基本数据类型、库定义数据类型、用户自定义数据类型三类。

通常所说的数据类型，一般是指“基本数据类型”。易语言中的基本数据类型有：

基本数据类型名称 | 尺寸(字节) | 备注
整数型 | 4 | 可容纳 -2,147,483,648 到 2,147,483,647 之间的数值
短整数型 | 2 | 可容纳 -32,768 到 32,767 之间的数值
长整数型 | 8 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
小数型 | 4 | 可容纳 3.4E +/- 38 (7位小数) 之间的数值(10的±38次方)
双精度小数型 | 8 | 可容纳 1.7E +/- 308 (15位小数) 之间的数值(10的±308次方)
文本型 | (不定) | 用作记录一段文本，文本由以字节0结束的一系列字符组成
逻辑型 | 2 | 其值只可能为真或假(系统预定义常量)
日期时间型 | 8 | 用作记录日期及时间
字节型 | 1 | 可容纳 0 到 255 之间的数值
字节集 | (不定) | 用作记录一段字节型数据
子程序指针 | 4 | 用作指向一个子程序

其中最常用的无疑当属整数型和文本型，其次是逻辑型、小数型、字节集。初学都如果一时不能完全接受所有的基本数据类型，可先熟悉这五种。基本数据类型的作用，就是指定变量的数据类型。这个在介绍变量时将详细讲述。

除了“基本数据类型”，易语言中还有另外两种数据类型分别是“库定义数据类型”和“用户自定义数据类型”。（这里说的“库”是指“系统核心支持库”——易语言的基本、重要、核心组成部分之一。）
“库定义数据类型”主要包括：控件类型（如“标签”“按钮”等）；库定义结构（如“字体”“字段信息”“打印设置信息”等）。库定义数据类型的使用与基本数据类型的使用完全一样。
“用户自定义数据类型”类似于其它语言中的“结构(Struct)”（C/C++）或“记录(Record)”（Pascal）。用户可以随时在程序中自行定义新的数据类型。自定义数据类型时需要设置数据类型的名称及其成员。用户自定义数据类型必须在定义之后，才能象基本数据类型和库定义数据类型一样使用。下面介绍它的定义方法：

用户自定义数据类型的定义方法：

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第3节 常量和变量

第五章：易语言程序设计 | 第三节：常量和变量 7 上一页 下一页 8

第三节：常量和变量 [上一节 下一节]

Ⅰ- 图片框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅱ- 外形框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅲ- 画板
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第4节 运算符

第五章：易语言程序设计 | 第四节：运算符 7 上一页 下一页 8

第四节：运算符 [上一节 下一节]

编程语言中所说的“运算符”，在意义上非常类似于数学上的运算符，但外形上通常有一些差别——这是由键盘上的按键数有限造成的，例如×÷≤≥≠≈等，不可能用通过键盘直接输入，所以分别改为 * / <= >= !=(<>) ?= 等方便直接输入的形式。

易语言中的运算符主要有：＋(+)，－(-)，×(*)，÷(/)，＝(= 或 ==)，≤(<=)，≥(>=)，≠(!= 或 <>)，≈(?=)，％(%)，＼(\) 等。（括号中为该运算符的输入字）
上述运算符中，除了％表示求余数（如：18％6 = 0）、＼表示整除（如：15＼6 = 2）外，其余都和数学中的运算符相同，非常易于理解。

另外，并且(and)，或者(or)等也用括号内的输入字以运算符形式输入。例：rgz(x=1 and y=2) 与 rgz(bq(x=1,y=2)) 两种输入形式是等效的，最终得到的输入结果都是：如果真 (x ＝ 1 且 y ＝ 2) ；对应地，rgz(x=1 or y=2) 与 rgz(hz(x=1,y=2)) 两种输入形式是等效的，最终得到的输入结果都是：如果真 (x ＝ 1 或 y ＝ 2) 。（注：and 和 or 其实分别是并且和或者的英文名称。）

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第5节 流程控制

第五章：易语言程序设计 | 第五节：流程控制 7 上一页 下一页 8

第五节：流程控制 [上一节 下一节]

Ⅰ- 图片框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅱ- 外形框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅲ- 画板
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第6节 数组

第五章：易语言程序设计 | 第六节：数组 7 上一页 下一页 8

第六节：数组 [上一节 下一节]

Ⅰ- 图片框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅱ- 外形框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅲ- 画板
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第7节 函数(子程序)

第五章：易语言程序设计 | 第七节：函数(子程序) 7 上一页 下一页 8

第七节：函数(子程序) [上一节 下一节]

Ⅰ- 图片框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅱ- 外形框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅲ- 画板
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第1节 程序调试

第六章：专题应用 | 第一节：程序调试 7 上一页 下一页 8

第六章：专题应用 [上一章 下一章]

第一节：程序调试 [上一节 下一节]

Ⅰ- 图片框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅱ- 外形框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅲ- 画板
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第2节 资源的应用

第六章：专题应用 | 第二节：资源的应用 7 上一页 下一页 8

第二节：资源的应用 [上一节 下一节]

Ⅰ- 图片框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅱ- 外形框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅲ- 画板
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第3节 数据库应用

第六章：专题应用 | 第三节：数据库应用

7上一页 下一页8

第三节：数据库应用 报表文件的制作[上一节 下一节]

   这一讲我们来学习制作报表文件。所谓报表文件是一种表格形式的文件，在数据的显示、打印和保存等方面发挥重要作用。在易语言中使用的报表文件是grd格式的表格模板文件。
跟易语言的表格控件相似，表格模板文件主要是作为数据处理者来使用，但又可以自由设置表格的大小、线条、位置、字体等，可以制作跟现实生活中的表格一样的各种形式的表格，这一点易语言的表格控件是无法办到的，所以在数据库应用中我们很多时候需要使用表格文件。表格模板本身可以作为一种数据通过数据源读入到表格控件中并显示。
那易语言的表格模板文件是如何制作的？它的制作工具就是易语言系统中附带的报表编辑器（易之表）。报表的编辑方法跟我们用网页制作工具编辑网页表格的方法差不多，下面简单介绍一些编辑报表文件的方法。
⑴、打开报表编辑器。
打开易语言，选菜单“编辑→报表编辑器”即可打开。
⑵、打开或新建报表文件。
选“打开”可以打开已有的报表文件，选“新建”可以建立一个新报表文件。
⑶、删除行或删除列。
选中要删除的列，再选菜单“编辑→行列→删除列”。删除列的方法与此类似。同样我们也可以添加行或列。
⑷、合并或分解单元格。
将几个单元格合并成一个大的单元格，可以选中需要合并的单元格，然后选鼠标右键菜单“组合”。选鼠标右键菜单“分解”可以分解单元格。
⑸、将表格虚线设为实线。选中要设置实线的表格（可以选中全部表格），选菜单“单元格→边框或线条→添加全部表格线”。
⑹、对齐文字。
要对齐表格内的文字，选中表格，再选菜单“单元格→对齐方式”，再选择哪种对齐方式。
⑺、设置字体。
选菜单“单元格→字体”，设置各单元格的字体。
⑻、调整表格大小。
用鼠标拉动表头线或左端表线，可以调整表格大小。
⑼、设置单元格为图片类型。
选中单元格，选菜单“单元格→单元格类型→图片数据型”，设置此单元格位置放置的是图片。
⑽、保存文件。
最后选菜单“文件→保存”，将记录为空的表格模板保存为grd格式的文件，如“学生成绩报表.grd”。

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo

7上一页 下一页8


第4节 DLL应用

第六章：专题应用 | 第四节：DLL应用

7上一页 下一页8

第四节：DLL应用 [上一节 下一节]

易语言的模块就是用来封装代码的，相当于DLL（动态链接库）。如果您使用或接触过API，可能更好理解一些。API是什么呢？就是一组函数，（是微软那帮子人写的，）可以完成预定功能。我们使用API时，只要简单地调用相应的函数即可，而不必再写实现其功能的代码了（因为微软已经写好了）。

易语言的模块可以说是易语言中的API。

它的好处是：实现代码重用，简化编程操作。试想如果要实现某个很复杂又很通用的功能，可能需要非常多的代码。要是每个欲使用该功能的朋友都个自编写代码，首先是重复劳动，资源浪费，再者效率也可能千差万别——先不说有的初学者根本写不出这么复杂的代码。

通过使用模块，我们易语言使用者就可以扩充易的功能。举个例子，我把很多复杂的函数编译为易模块（*.ec文件），其它的朋友只要拥有了这个.ec文件，就可以直接调用其中的函数。再举个例子，现在不少初学者反映不会使用API，所以一些朋友做了封装API的易模块，这交流中心有下载。

本贴内容来自taowen）

Windows下什么东西都有句柄。除了我们比较熟悉的窗口句柄外。还有程序句柄。这就是一个例子：

Dll命令：获得程序句柄
返回值类型：整数型
Dll库文件名：kernel32.dll
在Dll库中的命令名：GetModuleHandleA
参数：lpModuleName 数据类型：整数型

Dll命令：获得路径
返回值类型：整数型
Dll库文件名：kernel32.dll
在Dll库中的命令名：GetModuleFileNameA
参数：hModule 数据类型：整数型
参数：lpFileName 数据类型：文本型
参数：nSize 数据类型：整数型

子程序：_按钮1_被单击

局部容器：读出文本 数据类型：文本型
局部容器：读出整数 数据类型：整数型
局部容器：程序句柄 数据类型：整数型

程序句柄 ＝ 获得程序句柄 (0)
信息框 (取窗口句柄 (), 0, )
信息框 （程序句柄，0，）
读出文本 ＝ 取空白文本 (255)
读出整数 ＝ 255
获得路径 (程序句柄, 读出文本, 读出整数)
信息框 (读出文本, 0, )

拦截窗口消息的示例

易语言等可视化编程已经将视窗消息封装为对象的属性、方法和事件。当我们在窗口中按下鼠标左键，欲出现信息“你点击了窗体”，在易语言中是这样编写的：

子程序：__启动窗口_鼠标左键被按下
返回值类型：逻辑型

参数：横向位置 数据类型：整数型
参数：纵向位置 数据类型：整数型
参数：功能键状态 数据类型：整数型

信息框 (“你点击了窗体”, 0, )

但是如果不用“__启动窗口_鼠标左键被按下”事件能否达到这样的结果？由于对象的事件也只不过是视窗消息的封装，所以我们可以用视窗消息实现这样的功能。
我们需要用到两个API函数：拦截窗口消息函数SetWindowLongA（置窗口信息）、回调函数CallWindowProcA（调窗口信息）。SetWindowLongA用于随时拦截各种窗口消息，通过判断不同的消息类型执行不同的代码（类似于易语言“事件”的作用）；CallWindowProcA用于没有出现需要的消息类型时，将程序的消息返回到操作系统中，使操作系统继续用SetWindowLongA来拦截窗口消息。

请看下面的示例代码：

Dll命令：置窗口信息
返回值类型：整数型
Dll库文件名：user32.dll
在Dll库中的命令名：SetWindowLongA
参数：窗口句柄 数据类型：整数型
参数：取回信息 数据类型：整数型
参数：信息新值 数据类型：子程序指针

Dll命令：调窗口信息
返回值类型：整数型
Dll库文件名：user32.dll
在Dll库中的命令名：CallWindowProcA
参数：过程指针 数据类型：整数型
参数：过程句柄 数据类型：整数型
参数：消息类型 数据类型：整数型
参数：特定信息1 数据类型：整数型
参数：特定信息2 数据类型：整数型

------------------------------

常量：窗信_系统命令 值：274 备注：WM_SYSCOMMAND
常量：窗信_鼠标按下 值：513 备注：WM_LBUTTONDOWN

------------------------------

窗口程序集：窗口程序集1

程序集容器：指针 数据类型：子程序指针
程序集容器：旧窗口信息 数据类型：整数型
程序集容器：旧句柄信息 数据类型：整数型

------------------------------

子程序：__启动窗口_创建完毕

指针 ＝ &回调信息
旧窗口信息 ＝ 置窗口信息 (取窗口句柄 (), -4, 指针)

------------------------------

子程序：回调信息
返回值类型：整数型
备注：回调列表框

参数：窗口句柄 数据类型：整数型
参数：信息类型 数据类型：整数型
参数：值1 数据类型：整数型
参数：值2 数据类型：整数型

判断 (信息类型 ＝ #窗信_鼠标按下)
信息框 (“你点击了窗体”, 0, )
判断 (信息类型 ＝ #窗信_系统命令)
如果 (值1 ＝ 61536)
信息框 (“你点击了关闭按钮”, 0, )
否则
如果 (值1 ＝ 61488)
信息框 (“你点击了最大化按钮”, 0, )
否则
如果 (值1 ＝ 61472)
信息框 (“你点击了最小化按钮”, 0, )
否则
如果结束
如果结束
如果结束
默认
返回 (调窗口信息 (旧窗口信息, 窗口句柄, 信息类型, 值1, 值2))
判断结束
返回 (0)

------------------------------

子程序：_按钮1_被单击

结束 ()

http://zjwutao.w103.leoboard.com/vbs/viewfile.asp?ID=2771

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo

7上一页 下一页8


第5节 易模块应用

第六章：专题应用 | 第五节：易模块应用 7 上一页 下一页 8

第五节：易模块应用 [上一节 下一节]

Ⅰ- 图片框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅱ- 外形框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅲ- 画板
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第6节 易向导应用

第六章：专题应用 | 第六节：易向导应用 7 上一页 下一页8

第六节：易向导应用 [上一节 下一节]

Ⅰ- 图片框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅱ- 外形框
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

Ⅲ- 画板
------------------------

一、画板的重要属性

◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

二、画板的重要方法

三、画板的重要事件

结束语：

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页8


第六章

第六章：专题应用 | 第七节：易模块、易支持库与DLL三者的关系 7 上一页 下一页 8

易模块、易支持库与DLL三者的关系（一）

易支持库（.fne）实质就是动态链接库（DLL），只不过易支持库专用于易语言，而DLL（.dll）可用于包括易语言在内的各种语言。而易模块（.ec）是易语言外部子程序文件，也是一种外部函数库文件，类似于中文“DLL”。
三者有相同或相类似的地方，都要编译成一定的文件格式，都可通过各自的管理器来编写，都有类似于“_启动子程序”的部分（支持库和DLL称之为头文件或启动文件），都有关于本文件的描述（比如易模块要先设置程序信息，包括程序名、作者信息等才能编译），都要有接口函数（接口子程序），接口函数的编写也很类似，区别只在中文和英文。这些都是程序外部扩展库的共同特征。
三者的出现都大大地扩展了易语言的功能，所以我们可以把三者统称为易语言外部扩展库。通过这三种文件，易语言用户自己就可以充分利用微软视窗系统的开放功能（DLL），并通过DLL和OCX组件等有效调用其他编程语言的功能，使易语言在功能实现上与其他语言不相上下。
在易程序中调用支持库当然比调用DLL简单，要不就没有必要有支持库了。调用DLL要先把该DLL文件放到相关目录下，再建立DLL命令来调用，编译时把DLL文件一起带上。而把支持库放到易语言系统下就可以直接调用支持库命令了，编译时把该支持库文件带上即可。支持库命令是一种中文形式的命令，更重要的是支持库已经成为易语言系统的一部分。
而易模块也是易语言专用的外部接口函数文件，易语言应用易模块的方法是直接把该模块程序插入易程序中，再调用它的接口命令；而调用DLL的方法刚才已经说了，是先把该DLL文件放到相关目录下，再建立DLL命令来调用。易模块和DLL当然还有一个大的区别就是一个是中文代码、一个是英文代码。
从上也可以看出，支持库命令的调用与易模块的调用各有千秋。因为编写程序时已经把易模块插入到程序中，所以编译时可不用带上易模块。两者都可以调用DLL。易模块比支持库更具有群众基础，因为只要熟悉易语言，就可以用中文编写易模块，所以易模块编写应成为易语言编程的一个重要部分。
在这里，还要说说OCX组件，有人把OCX组件称为可视化DLL，即通过有形的对象来调用DLL。从实际中可以看出，OCX组件好象也比支持库更有群众基础，因为控件的属性、方法和事件好象比英文程序更容易翻译、更容易看懂，作为有形的对象也更受人们喜欢。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第六章：专题应用 | 第十节：把某一程序的快捷加在IE的工具栏上 7 上一页 下一页 8

我想把某一程序的快捷加在IE的工具栏上,单击该图标就可运行该程序.

有些程序运行后可自动把自己的图标加到IE的工具栏上,在IE界面上就可运行该程序.感觉挺方便的.如图:

用易能做吗?

QQ为例 给你讲解一下

找注册表的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions

建一个新的项取名 {c95fe080-8f5d-11d2-a20b-00aa003c157b}

在右边新建 如下字串值:(如图)

默认

ButtonText 按钮文本

CLSID 照图填写

Default visible Yes

Exec 程序位置(路径)

HotIcon 点燃图标

Icon 程序图标

MenuStatusBar 菜单禁止状态

MenuText 菜单文本

以上是手工添加，能不能直接用易语言写一个呢，跟着下面的步骤来吧.

新建一个易程序，内放两个按钮，如下图所示。

再找一个图标，放在图片资源中，如下图所示：

回到界面设计窗口，双击启动窗口中心，进入“__启动窗口_创建完毕”事件子程序，先建一个程序集变量，变量名为：“路径”，类型为“文本型”。如下图所示。

再在“__启动窗口_创建完毕”事件子程序中输入以下程序代码：

双击第一个“写入”按钮后可以输入以下的程序代码，这些程序代码均是写注册表的。

双击第二个“删除”按钮后，可以输入以下的程序代码，这些程序代码均是删除注册表中的信息，注意最后一个要将根键值也删除。

例程下载

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第六章

第六章：专题应用 | 第十一节:三行代码做个彩色九九表 7 上一页 下一页 8

三行代码　做个彩色九九表

九九表我们再熟悉不过了，她伴随我们渡过了快乐的小学数学年代，我用易语言编程软件，只需三行代码就能做出一个彩色漂亮的九九表（如图1所示）。

    首先打开易语言，在弹出的空白窗体上添加一“画板”控件，调整大小到合适，再添加一“按钮”控件到画板顶端，并将其标题名改为“九九表”，如图1所示。然后双击“九九表”按钮，跳转到程序代码窗口，在_按钮1_被单击程序名下，输入如图2所示的代码，最后按下键盘上的F5键，再单击“九九表”按钮，看看结果是不是很酷？

    当然，你可以在第一行画板1.文本颜色＝多项选择（）代码中修改你喜欢的颜色，也可将其中的j 改为i,你会发现图1中颜色分布的变化。

例程下载

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页


第1节 基础问答

第七章：易语言问答 | 第一节：基础问答 7 上一页 下一页 8

第七章：易语言问答 [上一章 下一章]

第一节：基础问答 [上一节 下一节]

Liigo注：本章中的所有问答，皆是网友西风亲自整理。此处拿来直接使用，几乎一字未改（以后如果有时间也许会做一些修正和扩充）。我在这里代表所有的易语言爱好者对西风朋友表示最衷心的感谢，感谢他长时间以来，为易语言做了这么多有益的工作。同时希望他不会介意我“剽窃”他的劳动成果^_^

  1. 易语言是一种什么样的语言？
  2. 易语言的作者是谁，如何联系？
  3. 易语言的运行环境是什么？它支持什么样的系统？
  4. 如何保存我输入的易程序，默认的易程序扩展名是什么？
  5. 易程序能编译为EXE文件吗？

易语言是一种什么样的语言？

易语言，是由飞扬软件工作室推出的全中文全可视化电脑程序编写语言。她的诞生结束了外国编程语言长期垄断中国市场的局面，使中国人终于可以使用自己的母语来编写各种实用电脑程序。
作为一款由中国人自己设计的编程语言，易语言在中文处理方面做了大量的工作。
易语言内置四种名称输入法：首拼、全拼、双拼、英文。 三种拼音输入法均全面支持南方音。另外，易语言支持任何一种系统支持的汉字输入法。使用这些输入法用户能够以英文语句的录入速度来录入全中文程序语句。
程序全部以中文方式显示，运算符号全部显示为对应的中文符号，日期时间以中文格式呈现，以便于我国用户理解、阅读程序；语言中还专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额处理等等。以后此方面将会继续得到大量扩充及增强。

返回

易语言的作者是谁，如何联系？

易语言是由个人开发的一款中文编程语言，它的作者是吴涛，他所在的工作室叫飞扬软件工作室，所以我们一般也称吴涛为飞扬。
吴涛的联系方法：
Email: zjwutao@yc.hb.cninfo.net
fly@eyuyan.com
电话：（家电）010-62526915
(办电）010-62629999-212
中国易语言网站：http://www.eyuyan.com 或 http://www.ccfly.com

返回

易语言的运行环境是什么，它支持什么样的系统？

易语言是由飞扬工作室出品的 Windows 环境下的全中文实用电脑程序编写语言，她支持现今所有的 Windows 32 位操作系统，即：Windows 9X、ME、2000、NT、XP 等。
在Windows 95下运行易语言需要另外安装补丁程序(Winsock2.2)。点击下载

返回

如何保存我输入的易程序，易程序默认的扩展名是什么？

选择程序菜单中的“保存”（CTRL+S）或“另存为”，在弹出的对话框中输入你要保存到的文件名，就可以保存你的易程序了。
易程序默认的扩展名是e，双击.e文件，将自动运行易语言并打开程序。

返回

易程序能编译为EXE文件吗？

可以。
选择程序菜单中的“编译独立发布版本”（F7）或“编译非独立发布版本”，就可以将你的易程序编译为EXE文件，以后，你运行该文件，将不再需要启动易语言。

返回

用易语言编译的可执行文件能不能在未安装易语言的机器中单独运行？

如果你在编译易程序时选择了“编译为非独立发布版本”，所生成的可执行文件体积将会较小，但在其它电脑中运行时，必须同时把易语言支持库krnln.fne（krnln.fnr)拷贝到Windows的系统目录或该执行程序的相同目录下。
在易语言2.0版以后，提供了“编译为独立发布版本”（F7）功能，选择此功能编译后的可执行文件体积较大（约比前者大500K），但该文件不再需要易语言支持库，可以完全脱离易语言运行。

返回

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第2节 基本操作

第七章：易语言问答 | 第二节：基本操作 7 上一页 下一页 8

第二节：基本操作 [上一节 下一节]

  1. 易语言是一种什么样的语言？
  2. 易语言的作者是谁，如何联系？
  3. 易语言的运行环境是什么？它支持什么样的系统？
  4. 如何保存我输入的易程序，默认的易程序扩展名是什么？
  5. 易程序能编译为EXE文件吗？
  6. 用易语言编译的可执行文件能不能在未安装易语言的机器中单独运行？
  7. 在输入易程序时，能随时查看程序的运行效果吗？
  8. 在预览时，如何关闭没有控制按钮的窗口？
  9. 为什么我输入的易程序总是显示为草稿？
  10. 为什么我在窗口的属性中改变了窗口的图标，可编译后易程序还是默认的易字图标呢？
  11. 我在程序配置中添加图标是总是提示缺少16*16，16色的图标，为什么？
  12. 为什么我对窗口设置了自定义鼠标指针，显示出来的总是一个黑色的方框呢？
  13. 易语言能不能把草稿、备注等和正常的易代码用不同的颜色区分开？
  14. 易语言可以以文本形式保存或查看吗？
  15. 什么是易模块？如何创建和使用易模块？
  16. 打开易语言时，总是新建一个“_启动窗口”，如何直接新建“启动程序集”，“_启动子程序”呢？
  17. 如何在自己的易程序中添加一个新窗口？在窗口中如何添加编辑框或其它控件？
  18. 设置好我的程序窗口后，如何让窗口或窗口中的控件执行相关的动作？
  19. 我在易例程中看到某些子程序与窗口单元没有关联，这样的子程序如何添加又怎样使用？
  20. 两个程序集中各有一个同名的子程序时，系统怎么区别和调用这两个子程序？
  21. 如何将FoxPro的DBF格式转换为e的EDB格式？
  22. 请问图片资源怎样插入和使用？
  23. 编写程序时，如何在不同的窗口或程序集中切换？
  24. 编写程序时，添加了一个窗口，现在要如何才能删除它？
  25. 怎样在窗口中添加菜单？
  26. 怎样制作右键菜单？
  27. 如何在程序中禁止一个菜单项，使它可以被看见但不可以被选择？
  28. 如何控制菜单项的可视属性？
  29. 如何让一个菜单项显示为选中状态（在菜单项的前面显示一个“√”号）？
  30. 怎样在易程序中加入或修改备注？

易语言是一种什么样的语言？

易语言，是由飞扬软件工作室推出的全中文全可视化电脑程序编写语言。她的诞生结束了外国编程语言长期垄断中国市场的局面，使中国人终于可以使用自己的母语来编写各种实用电脑程序。
作为一款由中国人自己设计的编程语言，易语言在中文处理方面做了大量的工作。
易语言内置四种名称输入法：首拼、全拼、双拼、英文。 三种拼音输入法均全面支持南方音。另外，易语言支持任何一种系统支持的汉字输入法。使用这些输入法用户能够以英文语句的录入速度来录入全中文程序语句。
程序全部以中文方式显示，运算符号全部显示为对应的中文符号，日期时间以中文格式呈现，以便于我国用户理解、阅读程序；语言中还专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额处理等等。以后此方面将会继续得到大量扩充及增强。

返回

易语言的作者是谁，如何联系？

易语言是由个人开发的一款中文编程语言，它的作者是吴涛，他所在的工作室叫飞扬软件工作室，所以我们一般也称吴涛为飞扬。
吴涛的联系方法：
Email: zjwutao@yc.hb.cninfo.net
fly@eyuyan.com。
电话：（家电）010-62526915
(办电）010-62629999-212
中国易语言网站：http://eyuyan.com

返回

易语言的运行环境是什么，它支持什么样的系统？

易语言是由飞扬工作室出品的 Windows 环境下的全中文实用电脑程序编写语言，她支持现今所有的 Windows 32 位操作系统，即：Windows 9X、ME、2000、NT 等。
在Windows 95下运行易语言需要另外安装补丁程序(Winsock2.2)。点击下载

返回

如何保存我输入的易程序，易程序默认的扩展名是什么？

选择程序菜单中的“保存”（CTRL+S）或“另存为”，在弹出的对话框中输入你要保存到的文件名，就可以保存你的易程序了。
易程序默认的扩展名是e，双击.e文件，将自动运行易语言并打开程序。

返回

易程序能编译为EXE文件吗？

可以。
选择程序菜单中的“编译独立发布版本”（F7）或“编译非独立发布版本”，就可以将你的易程序编译为EXE文件，以后，你运行该文件，将不再需要启动易语言。

返回

用易语言编译的可执行文件能不能在未安装易语言的机器中单独运行？

如果你在编译易程序时选择了“编译为非独立发布版本”，所生成的可执行文件体积将会较小，但在其它电脑中运行时，必须同时把易语言支持库krnln.fne（krnln.fnr)拷贝到Windows的系统目录或该执行程序的相同目录下。
在易语言2.0版以后，提供了“编译为独立发布版本”（F7）功能，选择此功能编译后的可执行文件体积较大（约比前者大500K），但该文件不再需要易语言支持库，可以完全脱离易语言运行。

返回

在输入易程序时，能随时查看程序的运行效果吗？

在编辑易程序时，你可以随时查看程序的运行效果，方法如下：
1、选择“查看”菜单中的“预览被设计窗口”（CTRL+ENTER）,或在所编辑窗口上单击鼠标右键，选择“预览”，就可以观看到你所设计的程序窗口的实际效果。
2、选择“运行”菜单中的“运行”（F5），或单击工具条中运行按钮（右三角形），就可以运行你所编辑的易程序，从而查看运行效果。在程序运行时，选择“运行”菜单中的“终止”（CTRL+F5）或单击工具条中的终止按钮（方块），你可以随时终止正在运行的易程序。
3、利用易语言“调试”菜单中的各项功能，你还可以对你的易程序进行调试。

返回

在预览时，如何关闭没有控制按钮的窗口？

在预览时，单击窗口右上角的关闭按钮可以关闭正在预览的窗口，但当所预览的窗口被设置为无控制按钮时，要如何关闭呢？
其实很简单，单击Esc键就可以了。在预览时，窗口的“Esc键关闭”属性将被忽略，即使你所预览的窗口的“Esc键关闭”属性被设置为假，也可以用Esc键关闭窗口。

返回

为什么我输入的易程序总是显示为草稿？

编辑易程序时，每输入一行程序，必须使用回车键确认，否则将自动保存为草稿。
保存为草稿的易程序行，只要再次进行编辑，并用回车键确认，就可以保存为正常的易程序了。

返回

为什么我在窗口的属性中改变了窗口的图标，可编译后易程序还是默认的易字图标呢？

在窗口属性中设置图标，只对当前窗口有效，要改变易程序编译后的图标，必须在“程序”菜单中的“程序配置”中设置。

返回

我在程序配置中添加图标是总是提示缺少16*16，16色的图标，为什么？

目前易语言只支持16色的图标，并且该图标中必须同时包含32*32和16*16两种大小的图标。关于这种图标的制作方法，你可以到各大软件下载网站下载一个图标制作工具，易语言论坛中也有很多地方提供相关工具的下载。
备注：在VFP或VB中提供的ico图标，一般都满足易语言的要求。而且，使用VFP中随带的图象编辑器（imagedit.exe）就可以轻松制作类似图标。

返回

为什么我对窗口设置了自定义鼠标指针，显示出来的总是一个黑色的方框呢？

易语言自定义鼠标指针只支持单色（即黑白）的指针文件。如果你使用的是16色或更多颜色的指针，就会出现这种情况。

返回

易语言能不能把草稿、备注等和正常的易代码用不同的颜色区分开？

选择“程序”菜单中的“系统配置”，在弹出的系统配置对话框中，选“程序显示”-“颜色配置”，可以对各种类型的颜色进行设置，选择你所喜欢的就是了。

返回

易语言可以以文本形式保存或查看吗？

由于易语言采用了特殊的流程方式，所以无法直接在文本状态下输入易程序代码。但易语言提供了一项“复制程序文本”功能（在“编辑”菜单中），可以将你所选中的易程序复制为程序文本，保存起来以方便查看或打印。
需要注意的是：易语言的程序文本无法直接还原为易程序。

返回

什么是易模块？如何创建和使用易模块？

易模块实际上是一个特殊的易程序，它与普通的易程序相比，有以下特点：
    1、必须具有程序名称（通过“程序->程序配置”菜单设置），此名称代表模块名称；
    2、必须具有“_启动子程序”，此子程序负责进行易模块的初始化；
    3、必须具有名为“_接口程序集”的程序集，此程序集用作公开此易模块的对外接口，其中的所有子程序均可由外部程序直接调用。

在易语言刚运行时或运行后在“程序”菜单中选择“新建”，在弹出的对话框中选择易模块，就可以进行易模块编辑状态。开发易模块时注意点如下：
    1、请将初始化易模块的代码放置到“_启动子程序”中，任何使用了此模块的易程序在运行前都会首先自动调用该子程序。如果在“_启动子程序”中发现初始化失败，请返回 -1 ，系统会自动终止其所处易程序的执行；
    2、请将所有欲公开给第三方使用的子程序放置到“_接口程序集”中；
    3、程序书写完毕后请选择“编译为易模块”将其编译为易模块。

在使用第三方所提供的易模块之前，请做如下操作：
    1、使用“程序->易模块管理”导入该模块到系统；
    2、使用“程序->易模块管理”创建对应于该模块的模块程序集，该程序集的名称自动为“_模块_”加模块名称；
    模块程序集创建完毕后，就可以直接使用该程序集中的子程序了，就如同这些子程序是自己所编写的一样。在编译易程序时所有被使用的易模块会自动被一起编译进去。

返回

打开易语言时，总是新建一个“_启动窗口”，如何直接新建“启动程序集”，“_启动子程序”呢？

在易语言菜单“程序 - 系统配置”中选择“通常”选择夹，设置程序启动方式为“通过名为“_启动子程序”的子程序启动”，然后再新建易程序就可以不创建_启动窗口，而直接创建“启动程序集”，“_启动子程序”了。

返回

如何在自己的易程序中添加一个新窗口？在窗口中如何添加编辑框或其它控件？

在易语言菜单中选择“插入 - 新窗口”，或在左侧工作夹中选择至“程序”夹，在窗口上单击鼠标右键，选择“插入新窗口”，就可以插入一个新的窗口了。
在易语言右侧的窗口单元箱中，单击你要添加的控件，然后在窗口上单击左键或拖拉，该控件就被添加到窗口中去了。添加的控件，可以在属性中进行属性设置（把左侧的工作夹选择至“属性”夹）。

返回

设置好我的程序窗口后，如何让窗口或窗口中的控件执行相关的动作？

将易语言左侧工作夹选择至“属性”夹，在工作夹最下方有一标题为“在此处选择加入事件处理子程序”的组合框，单击它并选择相应事件，会自动添加一新的子程序，在该子程序中添加相应的程序代码就可以了。
例如：新建一易程序，在_启动窗口中添加一标签，一按钮，选中按钮，在工作夹最下面组合框中选择“被单击”项目，程序将添加子程序“_按钮1_被单击”，并自动转到代码编辑窗口，在子程序中输入以下代码：标签1.标题 = “祖国你好！”。
按F5运行并单击按钮，标签1的标题将变为“祖国你好！”。（其实这就是易语言三分钟要完成的易程序。）

返回

我在易例程中看到某些子程序与窗口单元没有关联，这样的子程序如何添加又怎样使用？

在易语言菜单中选择“插入 - 新子程序”（如果当前窗口尚未创建程序集，需要先插入新程序集），就可以插入一个名字为“子程序1”的子程序。你可以修改子程序的名称，如果有需要，还可为子程序添加参数（直接在子程序上按回车键）。
子程序添加并输入代码后，就可以象命令函数一样使用。如果子程序的参数设置为不可以空，则使用时必须为它提供相应的参数。
例：新建一易程序，添加一名为“乘法”的子程序：

子程序名 | 返回值类型 | 备注
乘法 | 整数型 | 求得两个数的乘积
参数名 | 类型 | 参考 | 可空 | 数组 | 备注
数值一 | 整数型 |  |  |  |
数值二 | 整数型 |  |  |  |

添加代码：返回（相乘（数值一，数值二））
 然后，在_启动窗口中添加一个按钮，三个编辑框，双击按钮，添加子程序“_按钮1_被单击”，输入以下代码：
编辑框3.内容=到文本（乘法（文本到数值（编辑框1.内容），文本到数值（编辑框2.内容）））
按F5运行程序，在编辑框1和编辑框2中输入数值，单击按钮，编辑框3中将显示两个数的乘积。

返回

两个窗口程序集中各有一个同名的子程序时，系统怎么区别和调用这两个子程序？

易程序默认在当前程序集中寻找子程序，如果找不到，再到别的程序集中去寻找。
所以如果两个窗口程序集中有同名的子程序，将只执行本窗口程序集中的那个子程序。如果在窗口程序集2中要调用窗口程序集1中的某个同名子程序，必须在子程序前面注明窗口，例：

窗口1.子程序1。

返回

如何将FoxPro的DBF格式转换为e的EDB格式？

可以在易语言菜单中选择“数据库 - 数据库格式转换”，或直接运行易语言目录下的可执行文件Dbcnv.exe，本命令可以将其它类型的数据库通过0DBC转化为易数据库。在转化之前必须选择或新建一个ODBC驱动程序的文件数据源。

返回

请问图片资源怎样插入和使用？

可以使用以下两种方法之一加入新的空图片资源：
1、使用“插入->新资源->图片”菜单功能；
2、跳转到图片资源表，如果尚未被打开，请在程序夹中双击“资源表->图片...”项，然后使用回车或者 Ins 键即可加入；
图片资源的引用与常量一样，可以用“#”加图片资源名来表示。例：
在程序中加入图片资源，命名为“我的底图”，然后在程序中可以这样引用：

窗口1.底图 = #我的底图。

返回

编写程序时，如何在不同的窗口或程序集中切换？

当程序中有多个窗口和程序集时，可以在易语言的“窗口”菜单中选择相应的窗口或程序集。
也可以在易语言左侧工作夹中，选择至“程序”夹，然后双击相应的程序集，或打开程序集或“窗口”左边的“+”号，在双击相应的子程序或窗口。

返回

编写程序时，添加了一个窗口，现在要如何才能删除它？

在易语言左侧工作夹中，选择至“程序”夹，打开“窗口”左边的“+”号，选中相应的窗口，直接按Del键，或单击鼠标右键，在弹出菜单中选删除，就可以删除这个窗口了。
同样，程序集和子程序也可以用类似方法删除。

返回

怎样在窗口中添加菜单？

选中相应的窗口，在易语言的菜单中选择“编辑 - 菜单编辑器”或在窗口上单击鼠标右键，在弹出菜单中选择“菜单编辑器”，就可以进入菜单编辑界面编辑你自己的菜单了。

返回

怎样制作右键菜单？

编辑右键菜单的方法与普通的窗口菜单一样，如果你不希望右键菜单在窗口菜单栏中显示，必须把该菜单的可视属性设置为假。然后在鼠示右键被按下时，用“弹出菜单（）”来弹出你设置好的右键菜单。例：在程序中设置了一名为“右键”的菜单。希望当鼠标右键在窗口上按下时显示，可添加如下子程序：

子程序：__启动窗口_鼠标右键被按下
返回值类型：逻辑型

参数：横向位置 数据类型：整数型
参数：纵向位置 数据类型：整数型
参数：功能键状态 数据类型：整数型

弹出菜单 ( 右键 , , )

返回

如何禁止一个菜单项，使它可以被看见但不可以被选择？

在菜单编辑器中有一个选择框名为“允许操作”，保持该项为空即不选，则相应菜单项就被禁止。
如果是在程序运行中动态设置，可以用以下代码（设菜单名称为“复制”）：

复制.禁止=真 使该菜单处于禁止状态，不可操作。
 复制.禁止=假 取消菜单的禁止，使该菜单可以操作。

返回

如何控制菜单项的可视属性？

在菜单编辑器中有一个选择框名为“可视”，保持该项为空即不选，则相应菜单项就被隐藏，相反选中该项则菜单可视。
如果是在程序运行中动态设置，可以用以下代码（设菜单名称为“复制”）：

复制.可视=真 使该菜单处于可视状态。
 复制.可视=假 隐藏该菜单，使该菜单不可视。

返回

如何让一个菜单项显示为选中状态（在菜单项的前面显示一个“√”号）？

在菜单编辑器中有一个选择框名为“选中”，选中该项则相应菜单前面将出现一个“√”号。
如果是在程序运行中动态设置，可以用以下代码（设菜单名称为“复制”）：

复制.选中=真 使该菜单处于选中状态，前面有一个“√”号。
 复制.选中=假 隐藏该菜单前面的“√”号。

返回

怎样在易程序中加入或修改备注？

进入程序编辑窗口，选中要修改备注的代码行，在易语言菜单中选择“编辑 - 修改备注”或在代码行上单击鼠标右键，选择“修改备注”即可以输入或修改你的备注。
如果要更方便的话，直接把备注内容作为程序代码输入，然后保存为草稿就可以了。

返回
作者：西风
 Email: westwindxp@163.com
修订时间：2004年03月28日 。
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


程序文本与复制程序文本

如果我们要将易语言的代码复制到记事本等地方，可用鼠标选取所要复制的全部代码，点右键选“复制”，然后在易语言里选菜单“编辑→复制程序文本”，再将已复制的程序文本粘贴到记事本等地方。

但是易语言的代码复制到记事本后文本结构跟在易语言编辑环境里的代码不同，因为记事本难以复制表格型代码，并且为了方便编程，易语言的代码比其他编程语言省略了一些代码结构。以下面代码为例：

如果把以上代码按上面的方法复制到记事本，会变成这样：

如果 (编辑框1.内容 ＝ “7456”)

编辑框2.内容 ＝ “气死我了”

否则

编辑框2.内容 ＝ “找不到所需要的文本”

如果结束

在易语言编程环境里的代码省略了“否则”和“如果结束”等代码行，取而代之以流程线来表示。有些例程的流程控制命令代码行过多，在书里难以用程序文本来表现，所以其中的代码可能会用复制程序文本的方式来表现，这一点要请大家注意。


第3节 控件使用

第七章：易语言问答 | 第三节：控件使用 7 上一页 下一页 8

第三节：控件使用 [上一节 下一节]

  1. 用易语言编程，如何来调节程序里文字与数字的大小？
  2. 窗口中添加了背景音乐，可是要怎么样才能删除它啊？
  3. 能把mp3设为窗口的背景音乐吗？
  4. 窗口中有多个编辑框，我想按下回车键，就让光标转移到下一个编辑框中，怎么做？
  5. 如何才能让我的程序窗口始终保持在其它窗口的上方？
  6. 怎样才能让我的程序缩小到任务栏右侧的托盘区中？
  7. 我想在单击窗口右上角的关闭按钮时，弹出一个询问窗口，怎么做？
  8. 程序窗口缩小到托盘区后，怎样才能让它再次显示啊？
  9. 我想编写一个文本处理器，如何才能使之支持多窗口操作？
  10. 我发现窗口创建完毕这个事件下如有执行语句，会在窗口未显示之前先执行这些语句。
  11. 怎样使设计的程序一启动就最小化？
  12. 我在调试易程序时，弹出来的信息框总是躲在程序窗口的后面，为什么？
  13. 什么是句柄？“取窗口句柄（）”是用来取出窗口的句柄的吗？
  14. 怎样做到程序一启动，窗口的编辑框中就显示我指定的内容？
  15. 如何清空编辑框中的内容，我用“编辑框1.清空（）”行不通啊。
  16. 我想让编辑框中只能输入整数或小数，不能输入字母，怎么做？
  17. 如何通过菜单在编辑框中光标位置插入指定的文本，比如我点菜单“名字”，就会在光标处插入“飞扬”？
  18. 怎么计算出编辑框中输入内容的长度呀？
  19. 有两个编辑框，假若编辑框1的最大允许长度为2，在编辑框1输满2个字符时焦点自动移到编辑框2，要如何实现？
  20. 怎样在程序中清空图片框的图片或画板的底图？
  21. 为什么在窗口创建完毕事件子程序中往画板里写内容，但窗口显示后画板中什么也没有？
  22. 我执行了“画板1.清除（）”命令，但画板中却仍显示原来的图片，为什么？
  23. 画板上有10个点，怎样才能将这些点用线连起来？
  24. 怎样才能把画板中的内容保存为图片文件？
  25. 我设定了标签的字体和宽度，使其正好显示“易语言”三个字，但在其它电脑中运行时却发现标签的宽度变小了，不能显示所有内容，为什么？
  26. 能不能在画板上画出透明的图片？
  27. 标签能不能象编辑框那样显示多行文本？
  28. 我怎么找不到按钮的“默认”属性在哪里呀？它有什么用？
  29. 如果窗口中有两个具有“默认”属性的按钮，按下回车键时会如何响应？
  30. 请问各位高手,如何编写单击按钮后,显示出一个窗口?
  31. 怎样才能在鼠标移到按钮上时，按钮出现一个提示信息，如“关闭”？
  32. 我要设计一组运算的程序，选择单选框1时流程走A路线，选择单选框2时流程走B路线。请问如何设计?
  33. 怎样把设置窗口里面的选择状态传递给主窗口，让主窗口来实现对程序状态的控制。
  34. 请问怎样为组合框赋值，比如点击下拉箭头组合框会显示数值1，数值2……？
  35. 如何取得我在组合框中所选项目的文本内容？
  36. 怎样才能根据组合框中选择的项目，动态改变组合框2中的项目内容？
  37. 如何删除组合框中已有的项目？
  38. 组合框中有三个项目：张三、李四、王五，如何根据编辑框中输入的姓名使组合框当前项目自动为相应的名字？
  39. 组合框中有三个项目：张三、李四、王五，如何根据组合框中选择的项目在编辑框显示相应的名字？
  40. 怎样把数据库中某个文本型字段的记录内容全部加到一个列表框中去？
  41. 选择列表中选择了某些项目，单击按钮如何实现选择列表框中的项目全部反选。
  42. 如何控制进度条中进度的显示？
  43. 如何设置，使进度条的中间有一个百分比的显示？
  44. 我把选择夹的“隐藏自身”属性设为真后，怎样在各个子夹中切换呀？
  45. 怎样取得日期框或月历框中选择的当前日期？
  46. 我在窗口添加的驱动器框、目录框和文件框，但它们好象是互不关联的，怎样才能使三者显示的目录或文件同步改变呀？
  47. 我在文件框中选择了多个文件，可怎样才能得到我选择的文件名呀？
  48. 在我的程序菜单中有一项：联系作者。怎样才能自动打开邮件收发软件发信呢？
  49. 通用对话框的过滤器和初始过滤器怎么用？
  50. 怎样判断我是否在通用对话框中输入了文件名并按了“确定”钮？
  51. 我想在通用对话框一打开时，就显示我所要的默认的文件名，怎么做？
  52. 怎样启动和禁止时钟？用“时钟.禁止 = 真”行不通啊。
  53. 我用“打印机1.定位写出（“易语言”）”为什么没有任何反应？
  54. 打印机的属性中，“左边空”“顶边空”等的单位是什么？
  55. 在窗口上拖放上一个表格控件，白色背景下只显示“未连接数据源”几个字，我要让它与.edb链接，该如何设置？
  56. 怎样在程序中动态改变表格的列宽使它正好显示字段内容呢？
  57. 怎样在表格的某一格中输入特定的文本？
  58. 按数据源的添加删除按钮时，程序没有任何提示就会执行相应动作。怎样才能让程序先提示再执行呢？
  59. 我打印出来的表格为什么没有表格线？
  60. 能不能不显示ODBC数据源选择对话框，而在程序中直接连接外部数据库呢？
  61. 如何通过颜色选择器来改变标签的文本颜色？
  62. 在一个窗口中建了多个输入框和按钮，如何在一个循环程序中，一次把所有输入框和按钮的显示属性修改为假。

用易语言编程，如何来调节程序里文字与数字的大小？

在易语言的窗口和窗口控件中，一般都有一项“字体”属性，在这里就可以设置你要显示的文字与数字的大小。

返回

窗口中添加了背景音乐，可是要怎么样才能删除它啊？

在易语言左侧工作夹中，选中窗口的“背景音乐”属性，直接按Del键就行了。

返回

能把mp3设为窗口的背景音乐吗？

窗口的背景音乐只支持wav或mid音乐，如果要把mp3设置成窗口的背景音乐，可以在“__启动窗口_创建完毕”子程序中加入如下代码：

 播放mp3（-1，mp3音乐文件1，mp3音乐文件2，……）

返回

窗口中有多个编辑框，我想按下回车键，就让光标转移到下一个编辑框中，怎么做？

直接把窗口的“回车下移焦点”属性设为真就可以了。
 也可以对每个编辑框都添加“按下某键”或“字符输入”子程序，如：
子程序：_编辑框1_按下某键
返回值类型：逻辑型

参数：键代码 数据类型：整数型
参数：功能键状态 数据类型：整数型

如果真 (键代码 ＝ #回车键)
编辑框2.获取焦点 ()
如果真结束

注意：窗口的“回车下移焦点”属性设置为真后，按钮的“默认”属性将不再起作用。

返回

如何才能让我的程序窗口始终保持在其它窗口的上方？

窗口有一项属性“总在最前”，把它设置为真就行了。

返回

怎样才能让我的程序缩小到任务栏右侧的托盘区中？

置托盘图标 （［图标数据］，［提示信息］）
一般请把图标文件导入为易程序的图片资源，然后在本命令中调用。
如，把图标导入到图片资源，取名为“图标1”。然后当窗口的最小化按钮被单击时，程序缩小到托盘区中：

子程序：__启动窗口_尺寸被改变

如果真 (_启动窗口.位置 ＝ 2) *备注：判断是否被最小化。
_启动窗口.可视 ＝ 假
_启动窗口.置托盘图标 (#图标1, “我的程序”)
如果真结束

返回

我想在单击窗口右上角的关闭按钮时，弹出一个询问窗口，怎么做？

 子程序：__启动窗口_可否被关闭
 返回值类型：逻辑型

 如果(信息框(“真的要关闭我吗？”,#询问图标＋#是否钮,“关闭”)＝#是钮)
 返回 (真)
 否则
 返回 (假)
 如果结束

返回

程序窗口缩小到托盘区后，怎样才能让它再次显示啊？

把你的窗口缩小到系统托盘区时，必须设置好托盘图标的响应事件，也即窗口的托盘事件（选中当前窗口，在左侧的工作夹中事件处理子程序组合框中选择“托盘事件”），其中参数“操作类型”可以为：1、#左键单击；2、#左键双击；3、#右键单击。例：

子程序：__启动窗口_托盘事件

参数：操作类型 数据类型：整数型

如果真 (操作类型 ＝ 1)
_启动窗口.可视 ＝ 真
_启动窗口.位置 ＝ 0 *备注：通常位置
如果真结束

返回

我想编写一个文本处理器，如何才能使之支持多窗口操作？

目前可以用“载入（窗口名称，_启动窗口，假）”的方法来载入多个窗口，用这种方法载入的窗口，可以互相切换，并且一旦关闭“_启动窗口”，所有的子窗口都将被关闭。
在被载入的窗口“创建完毕”事件子程序中，最好设置好该窗口的位置。

返回

我发现窗口创建完毕这个事件下如有执行语句，会在窗口未显示之前先执行这些语句？

可以在窗口创建完毕事件子程序中，在最前面加入代码：“窗口.可视 = 真”。
这样，在窗口创建完毕后，将首先显示窗口，然后再执行后续代码。

返回

怎样使设计的程序一启动就最小化？

子程序：__启动窗口_创建完毕
_启动窗口.位置 ＝ 2

如果要使设计的程序不在任务条中显示，只显示系统托盘，则可以这样写：

子程序：__启动窗口_创建完毕
_启动窗口.可视 ＝ 假
_启动窗口.置托盘图标 (图标数据，提示信息)

返回

我在调试易程序时，弹出来的信息框总是躲在程序窗口的后面，为什么？

这是因为你把窗口的“总在最前”属性设置为真的缘故，在需要弹出信息框的时候，你可以这样写代码：

窗口1.总在最前 = 假
信息框（………）
窗口1.总在最前 = 真

返回

什么是句柄？“取窗口句柄（）”是用来取出窗口的句柄的吗？

句柄并没有什么神奇之处，不管哪种句柄，实际都是一个整数。它标识一种资源，如窗口、位图等等。就象你找一个人，必须知道它的地址一样，如果你要操作一种资源，必须先获得句柄。
“取窗口句柄（）”并不是只能取出窗口的句柄，所有窗口控件，如编辑框、标签等都可以用本命令取出自己的句柄，如：

 编辑框1.取窗口句柄（）
 标签1.取窗口句柄（）

返回

怎样做到程序一启动，窗口的编辑框中就显示我指定的内容？

你可以在程序编辑时，就在编辑框的“内容”属性中设置好，也可以在窗口创建完毕事件子程序中用赋值的方法设置，例：

子程序：__启动窗口_创建完毕

编辑框1.内容 ＝ “易语言”

返回

如何清空编辑框中的内容，我用“编辑框1.清空（）”行不通啊。

编辑框1.内容=“”

返回

我想让编辑框中只能输入整数或小数，不能输入字母，怎么做？

编辑框有一项属性叫：“输入方式”，你可以在其中设置，使其只能输入数字。

返回

如何通过菜单在编辑框中光标位置插入指定的文本，比如我点菜单“名字”，就会在光标处插入“飞扬”？

这需要用到编辑框的一个属性：“起始选择位置”，也即当前光标所在位置。

子程序：名字_被选择
编辑框1.内容=取文本左边（编辑框1.内容，编辑框1.起始选择位置）+“飞扬”+取文本右边（编辑框1.内容，取文本长度（编辑框1.内容）-编辑框1.起始选择位置）

如果当前编辑框中没有内容，则可以直接用：编辑框1.内容 =“飞扬”来实现。

返回

怎么计算出编辑框中输入内容的长度呀？

可以用：取文本长度（编辑框1.内容）

返回

有两个编辑框，假若编辑框1的最大允许长度为2，在编辑框1输满2个字符时焦点自动移到编辑框2，要如何实现？

子程序：_编辑框1_内容被改变

如果真 (取文本长度 (编辑框1.内容) ＝ 2)
编辑框2.获取焦点 ()
如果真结束

返回

怎样在程序中清空图片框的图片或画板的底图？

“图片框.图片”或“画板.底图”都是字节集型数据，所以，用一个空字节集赋值，就可以实现清空图片的目的。如：
 图片框1.图片 = { }
画板1.底图 = { }

返回

为什么在窗口创建完毕事件子程序中往画板里写内容，但窗口显示后画板中什么也没有？

因为在窗口创建完毕事件处理子程序中，窗口及所有窗口单元都处于不可视状态，此时如果画板的“自动重画”为假，你在画板上写出的内容都不能被保存。
如果要在窗口创建完毕事件处理子程序中执行画板的写画操作，请把画板的“自动重画”属性设为真。

返回

我执行了“画板1.清除（）”命令，但画板中却仍显示原来的图片，为什么？

画板的“清除”命令只能清除在画板上写或画出的内容，不能清除画板初始设置好的底图。
如果要清除画板的底图，请用：
画板1.底图 = { }

返回

画板上有10个点，怎样才能将这些点用线连起来？

取出这十个点人位置，设这十个点分别为x1,y1;x2,y2;....;x10,y10，再用如下代码：

画板1.画直线 (x1,y1,x2,y2)
画板1.画直线 (x2,y2,x3,y3)
………
画板1.画直线 (x9,y9,x10,y10)

返回

怎样才能把画板中的内容保存为图片文件？

用“写到文件（文件名，画板1.取图片（））”。
如果要改变图片的大小，则可以用：
写到文件（文件名，快照（画板1.取窗口句柄（），图片宽，图片高））

返回

我设定了标签的字体和宽度，使其正好显示“易语言”三个字，但在其它电脑中运行时却发现标签的宽度变小了，不能显示所有内容，为什么？

在不同的系统中，相同字体其默认的宽度和高度会有少些误差，你可以用“画板.取高度（）”或“画板.取宽度（）”命令，取出设定字体的具体大小，从而动态改变标签的宽度及高度，使期能显示所有标题内容。
具体方法如下：在窗口中添加一标签，设定好字体及标题（如“易语言”），然后再添加一画板，设置其可视属性为假，其字体与标签的字体一样。然后在窗口创建完毕事件处理子程序中输入如下代码：

标签1.宽度 = 画板1.取宽度（标签1.标题）

返回

能不能在画板上画出透明的图片？

可以，把画板的“复制”命令中的参数“复制方法”或“画图片”命令中的参数“图片画出方法”设为“#位异或”，可以把图片中的白色部分作为透明色。例：

画板1.画图片（载入图片（＃图片资源1），0，0，，，#位异或）

返回

标签能不能象编辑框那样显示多行文本？

可以，在易语言中文本的换行用“#换行符”来实现，例：
标签1.标题 = “全中文全可视易语言”+#换行符+“飞扬软件工作室出品”
显示的效果就是：

全中文全可视易语言
飞扬软件工作室出品

返回

我怎么找不到按钮的“默认”属性在哪里呀？它有什么用？

在按钮的“类型”属性中。
被设置为“默认”属性的按钮，在窗口的任何地方按下回车键，都相当于该按钮被单击。

返回

如果窗口中有两个具有“默认”属性的按钮，按下回车键时会如何响应？

同一窗口中只能有一个具有默认“属性”的按钮，当有两个以上按钮具有“默认”属性时，只有“停留顺序”属性最小的那个按钮会响应回车事件，当几个按钮的“停留顺序”属性相同时（如，都为0），则最先创建的那个按钮会响应回车事件，其余按钮的“默认”属性将被忽略。

返回

请问各位高手,如何编写单击按钮后,显示出一个窗口?

打开一个新窗口，在易语言中用“载入”，如：

子程序：_按钮1_被单击

载入 (窗口1, , 真)

返回

怎样才能在鼠标移到按钮上时，按钮出现一个提示信息，如“关闭”？

目前可通过如下方法：
在按钮的鼠标被移动的事件里，让一个标签.可视＝真，而这个标签上就写的是提示内容，
当然，如果你的鼠标一旦移出了按钮的范围，这个标签的可视就必须为假了。
这样就可以实现按钮上的提示信息。

返回

我要设计一组运算的程序，选择单选框1时流程走A路线，选择单选框2时流程走B路线。请问如何设计?

子程序：_按钮1.被单击

判断(单选框1.选中)
A
……
判断(单选框2.选中)
B
……

返回

怎样把设置窗口里面的选择状态传递给主窗口，让主窗口来实现对程序状态的控制？

在易语言中，不同窗口中的控件，可以在前面加上其所属窗口，从而加以区别，如：
子程序：_按钮1_被单击

如果 (窗口1.选择框1.选中 ＝ 真)
…………
否则
…………
如果结束

返回

请问怎样为组合框赋值，比如点击下拉箭头组合框会显示数值1，数值2…？

组合框有一项“列表项目”属性，点击它就可以设置组合框的项目内容了。
如果要在程序中动态设置，可以用“组合框.加入项目（）”来实现，如：
组合框1.加入项目（“飞扬”，）

返回

如何取得我在组合框中所选项目的文本内容？

组合框1.取项目文本（组合框1.现行选中项）。

返回

怎样才能根据组合框1中选择的项目，动态改变组合框2中的项目内容？

例，我在组合框1中选择部门一，组合框2中的内容变成部门一的人员：王一，王二，王三。我在组合框1中选择部门二，组合框2中的内容变成部门二的人员：李一，李二，李三。

子程序：_组合框1_列表项被选择

判断 (组合框1.取项目文本 (组合框1.现行选中项) ＝ “部门一”)
组合框2.清空 ()
组合框2.加入项目 (“王一”, )
组合框2.加入项目 (“王二”, )
组合框2.加入项目 (“王三”, )
判断 (组合框1.取项目文本 (组合框1.现行选中项) ＝ “部门一”)
组合框2.清空 ()
组合框2.加入项目 (“李一”, )
组合框2.加入项目 (“李二”, )
组合框2.加入项目 (“李三”, )
默认
判断结束

返回

如何删除组合框中已有的项目？

如果要删除单个项目，可以用：组合框.删除项目（项目索引）

如果要删除一个组合框中的所有项目，则应用：组合框.清空（）

返回

组合框中有三个项目：张三、李四、王五，如何根据编辑框中输入的姓名使组合框当前项目自动为相应的名字？

子程序：_按钮1.被单击

组合框1.选择（编辑框1.内容）

返回

组合框中有三个项目：张三、李四、王五，如何根据组合框中选择的项目在编辑框显示相应的名字？

子程序：_组合框1_列表项被选择

编辑框1.内容=组合框1.取项目文本（组合框1.现行选中项）

返回

怎样把数据库中某个文本型字段的记录内容全部加到一个列表框中去？

到首记录（）
判断循环首（尾记录后（）= 假）
列表框1.加入项目（读（1），）
跳过（1）
判断循环尾（）

返回

选择列表中选择了某些项目，单击按钮如何实现选择列表框中的项目全部反选。

用“计次循环”或“容器循环”，如：

计次循环首（选择列表框1.取项目数（），容器1）
选择列表框1.选中项目（容器1-1，取反（选择列表框1.是否被选中（容器1-1））
计次循环尾（）

返回

如何控制进度条中进度的显示？

利用进度条的“位置”属性可以动态改变进度条中进度的显示。例如：用进度条来显示秒数。可以在窗口中添加一时钟，设置时钟周期为1000毫秒，即1秒。

子程序：__启动窗口_创建完毕

进度条1.最大位置=60
进度条1.位置=取时间部分（取现行时间（），#秒）
时钟1.时钟周期=1000

子程序：_时钟1_周期事件

进度条1.位置=取时间部分（取现行时间（），#秒）

返回

如何设置，使进度条的中间有一个百分比的显示？

可以用进度条 + 标签来实现。
在进度条中间加个标签，在进度条进度改变的同时改变标签的标题为相应百分比，注意要把标签置于进度条的上层。

返回

我把选择夹的“隐藏自身”属性设为真后，怎样在各个子夹中切换呀？

利用选择夹的“现行子夹”属性。例：

子程序：_按钮1_被单击

选择夹1.现行子夹 = 1

返回

怎样取得日期框或月历框中选择的当前日期？

日期框中的日期用“日期框.今天”可以取出。
月历中的日期则需要这样做：把月历的“允许选择多天”属性设为真，然后取出“月历.首选择日”。

返回

我在窗口添加的驱动器框、目录框和文件框，但它们好象是互不关联的，怎样才能使三者显示的目录或文件同步改变呀？

需要通过如下子程序把三者关联起来：

子程序：_驱动器框1_驱动器被改变

目录框1.目录 ＝ 驱动器框1.驱动器 ＋ “:”
文件框1.目录 ＝ 目录框1.目录

------------------------------

子程序：_目录框1_目录被改变

文件框1.目录 ＝ 目录框1.目录

返回

我在文件框中选择了多个文件，可怎样才能得到我选择的文件名呀？

当文件框中选择了多个文件时，各个文件名之间将用“;”隔开，所以可以用分隔文本命令来取出所有文件名，并赋值给一个文本数组。在分隔之前，首先要确定所选择的文件数，以确定数据的成员数。例：

子程序：_按钮1_被单击

局部容器：文件 数据类型：文本型 数组：0
局部容器：文件数 数据类型：整数型
局部容器：找到位置 数据类型：整数型

文件数 ＝ 1
找到位置 ＝ 寻找文本 (文件框1.被选择文件, “;”, , 真)
判断循环首 (找到位置 ≠ -1)
文件数 ＝ 文件数 ＋ 1
找到位置 ＝ 寻找文本 (文件框1.被选择文件, “;”, 找到位置 ＋ 1, 真)
判断循环尾 ()
重定义数组 (文件, 假, 文件数)
文件 ＝ 分割文本 (文件框1.被选择文件, “;”, )

返回

在我的程序菜单中有一项“联系作者”，怎样才能自动打开邮件收发软件发信呢？

在窗口中添加一超级链接框，其“可视”属性为假，设置其“类型”为“电子信箱地址”，在“电子信箱地址”属性中输入正确的Email地址，然后，输入如下子程序：

子程序：_联系作者_被选择

超级链接框1.跳转（）

返回

通用对话框的过滤器和初始过滤器怎么用？

通用对话框的过滤器是一个文本，由单个或多个成对的文本串组成，每对文本串的第一个描述显示形式，如：“文本文件（*.txt）”；第二个指定实际的过滤匹配符，如：“*.txt”，所有各文本串之间用“|”号隔开。
如下述过滤器：
所有音乐文件(*.mid;*.wav;*.mp3)|*.mid;*.wav;*.mp3|mid 音乐(*.mid)|*.mid|wav 音乐(*.wav)|*.wav|mp3 音乐(*.mp3)|*.mp3。
其中红色文本为要显示的内容，蓝色文本为实际的过滤器。在通用对话框中显示的是四个可选项：
所有音乐文件(*.mid;*.wav;*.mp3)
 mid音乐(*.mid)
 wav音乐(*.wav)
 mp3音乐(*.mp3)
初始过滤器则用来指定通用对话框刚打开时要显示的文件类型，其序号从0开始。如上例中，如果设定通用对话框的初始过滤器为1，则打开通用对话框，其初始显示的项目为第二项：
 mid音乐(*.mid)

返回

怎样判断我是否在通用对话框中输入了文件名并按了“确定”钮？

如果通用对话框中输入了合法的文件名，并按了”确定“钮，将返回真，否则将返回假。在易程序中可以用如下判断语句：
如果真（通用对话框1.打开（）= 真） 或
如果真（通用对话框1.打开（）） 这二者效果一样。

返回

我想在通用对话框一打开时，就显示我所要的默认的文件名，怎么做？

可以在通用对话框打开之前，先为通用对话框的”文件名“属性赋值，如：

通用对话框1.文件名=取运行目录（）+“\test.txt”
如果真（通用对话框1.打开（））
…………
如果真结束。

这样，在通用对话框打开时，将自动显示你所设置的文件名。

返回

怎样启动和禁止时钟？用“时钟.禁止 = 真”行不通啊。

时钟控件没有禁止属性，要启动或禁止时钟，可以对其“时钟周期”属性赋值。
 如：
时钟1.时钟周期 = 1000（或其它任何数值，单位为毫秒）表示启动时钟。
 时钟1.时钟周期 = 0表示停止时钟。

时钟周期内要执行的代码，都在时钟.周期事件（）子程序中。只要时钟的时钟周期不为0，它就将自动执行，而不需要以程序中以“时钟1.周期事件（）”的形式来启动。

返回

我用“打印机1.定位写出（“易语言”）”为什么没有任何反应？

在打印机的打印操作开始之前，必须先用“打印机.开始打印（）”使打印机进入打印作业，然后才能执行诸如“打印机.定位写出（）”这样的动作。
在打印机打印完毕后，还需要用“打印机.结束打印（）”来关闭打印机。如：

打印机1.开始打印（假，假）
打印机1.字体.字体大小 = 16
打印机1.定位写出（20，20，“全中文全可视易语言”）
打印机1.定位写出（20，60，“飞扬出品”）
打印机1.结束打印（）

返回

打印机的属性中，“左边空”“顶边空”等的单位是什么？

打印机的“左边空”“顶边空”等，其单位就是打印机当前的绘画单位，你可以在打印机的“绘画单位”属性中设置，也可以用代码：打印机1.绘画单位 = 1”这样的形式来设置。

返回

在窗口上拖放上一个表格控件，白色背景下只显示“未连接数据源”几个字，我要让它与.edb链接，该如何设置？在它的“数据源”属性框只是一个下拉菜单选项啊，不是应该是目录框，点击从这儿找到相应数据库文件吗？难道仅仅在这儿填写上我的.edb文件名就能与表格连接吗？

表格控件需要与数据源控件相关联，而与数据源控件关联的又是数据库提供者，在数据库提供者控件中才可以设置你所要的.edb数据库。例：
在窗口中添加一个“数据源1”，一个“数据库提供者1”，在“数据库提供者1”的“数据库文件名”属性中设定关联的数据库，在“数据源1”的“数据提供者”属性中选择“数据库提供者1”，最后在“表格”的“数据源”属性中选择“数据源1”。

返回

怎样在程序中动态改变表格的列宽使它正好显示字段内容呢？

需要在与“表格”相关联的“数据源”控件中设置。例，表格1的数据源为“数据源1”，则可以通过下列语句来实现：

数据源1.置列宽（3，1，500） 将表格1的第三列设置宽度为50毫米。

返回

怎样在表格的某一格中输入特定的文本？

同样可以在与“表格”相关联的“数据源”控件中设置。例：

 数据源1.置文本（3，4，“易语言”）
在表格第三行第四列单元格中输入文本“易语言”。

返回

按数据源的添加删除按钮时，程序没有任何提示就会执行相应动作。怎样才能让程序选提示再执行呢？

如果要这样做，就不能直接用数据源了。
 你可以这样做：
 1、建立对应数据源组件的所有按钮。
 2、在按钮被单击事件中，调用数据源组件的对应方法（其实当数据源组件的按钮被单击后也是简单地调用这些方法）。

返回

我打印出来的表格为什么没有表格线？

你只要把数据源的打印设置信息中的“自动添加表格线”属性设为真，在打印表格时，就会自动为表格单元框添加上边框线。简单地，可以这样实现：

数据源1.打印设置（）

在弹出的对话框中设置。或者：

设置.自动添加表格线 = 真（“设置”为一容器，其数据类型为“打印设置信息”。）
数据源1.置打印设置（设置）

返回

能不能不显示ODBC数据源选择对话框，而在程序中直接连接外部数据库呢？

要连接已经有数据库，注意不是第一次连接，以后就会自己打开的那种，而是在程序中已经进行关联了，而且会随程序和数据库的位置改变而改变。方法是：

外部数据库.打开（［ODBC数据源连接文本］，［是否只读］）

这样就可以成功的打开数据库了，数据库联接文本指的是什么呢？就是和数据库联接时要操作的数据库参数，那么要如何知道联接文本呢？应该是什么呢？下面就是联接本文的内容：

ODBC;DBQ=d:\Downloads\e21\MSAccess.mdb;DefaultDir=d:\Downloads\e21;Driver=
{Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;FILEDSN=C:\Program Files\Common Files\ODBC\DataSources\a.dsn;MaxBufferSize=2048;MaxScanRows=8;
PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;

结合命令起来就是：

外部数据库.打开（"ODBC;DBQ=d:\Downloads\e21\MSAccess.mdb;DefaultDir=
d:\Downloads\e21;Driver={Microsoft Access Driver (*.mdb)};DriverId=25;
FIL=MS Access;FILEDSN=C:\Program Files\CommonFiles\ODBC\DataSources\a.dsn;
MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;
Threads=3;UID=admin;UserCommitSync=Yes; "，）

现在具体说明一下，这里头的参数：

ODBC;DBQ=d:\Downloads\e21\MSAccess.mdb； （指数据库所在位置）
DefaultDir=d:\Downloads\e21； （指数据库所在目录）
Driver={Microsoft Access Driver (*.mdb)}；（指数据库何种类型）
FILEDSN=C:\Program Files\Common Files\ODBC\Data Sources\a.dsn （DSN文件位置）
UID=admin （数据库可访问的用户名，如果你没有设置用户安全设置，就不起作用）
PASS=admin （你设置访问密码后，UID就会生效，注意要先用ACESS里设置密码，这个功能可自行使用）
其它参数可以不用去管他，当然是有它们的意义，以后再说啦，参数并不单只有这些还很多。

当然大家还要问，上面的文件路径就只能死死的定义吗？如果我的文件位置改变了，不就不能使用了吗？其实你只要把上面的路径改成活动的就行了，如用取当前目录命令，当然前提是所有程序及数据库都在同一目录下，还有的是DSN和MDB文件都应该是事先已经建立好的。大家可以使用易语言附的文件格式转换程序来建立，建立后那个转换的窗口就不要管他啦，当然你也可以用LIIGO的全面操作Access数据库这个程序来建立，建立完其它的就不管他，就只管取出刚建立的那两个文件来利用就行了。

返回

如何通过颜色选择器来改变标签的文本颜色？

子程序：_颜色选择器1_颜色被改变

标签1.文本颜色 ＝ 颜色选择器1.颜色

返回

在一个窗口中建了多个输入框和按钮，如何在一个循环程序中，一次把所有输入框和按钮的显示属性修改为假？

比如按钮1.可视=假 输入框1.可视=假 按钮2.可视=假 输入框2.可视=假.........按钮8.可视=假 输入框8.可视=假 这样,有什么好方法可以做到吗,不要告诉我一个一个的去修改哟！我用一个变量i，如：按钮i.可视=假，可是不行。

 用“连续赋值（假，按钮1.可视，按钮2.可视………）”

或建立一个按钮数组，再用容器循环。
按钮数组[1]=按钮1
按钮数组[2]=按钮2
按钮数组[3]=按钮3
……
容器循环首（1，取数组成员数(按钮数组)，1，容器1）
按钮数组[容器1].可视=假
容器循环尾

如果是在程序编辑中，则可以按住SHIFT键点取多个控件，然后修改控件的属性。

返回
作者：西风
 Email: westwindxp@163.com
修订时间：2004年03月28日 。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


第4节 系统库函数

第七章：易语言问答 | 第四节：系统库函数 7 上一页 下一页 8

第四节：系统库函数 [上一节 下一节]

  1. VB或VFP中的Case语句在易语言中如何表示？
  2. “返回()”是什么意思？
  3. 为什么要在“计次循环首”或“容器循环首”的参数中加个容器？VB的同类语句不用加。
  4. 随机数和随机种子数什么意思？
  5. 易语言中，怎样求一个数的“n次方”？怎样求一个数的“开n次根式”？
  6. 怎么定义变量？
  7. 容器如何赋值？赋值以后，如何清空至初始值？
  8. 在用编辑框的内容为容器赋值时，为什么会出错？
  9. 数组型容器该如何赋值？
  10. 如何插入常量？常量如何引用？
  11. “加入数据库常量”有什么用？
  12. 怎样用命令中止当前运行的易程序自身？
  13. "列表框1.加入项目(中文含义 [容器1],)"中的中文含义[容器1]容器中包含容器是何意思?
  14. “取命令行（）”是什么意思？应该怎么用？
  15. 如何取得当前程序所在的文件夹名称？我用“取当前目录（）”为什么有时行有时不行？
  16. 我想在易程序运行时保存一个与程序同名的ini文件，我该如何获得文件名？
  17. “读环境变量（）”和“写环境变量（）”中的环境变量名称指什么，如何获得？
  18. “倒找文本（原文本，子文本）”返回的值是不是子文本距原文本尾部的字符数？
  19. 怎样才能用赋值的方法把“homepage”=dword:00000001赋值给一个文本容器？
  20. 如何把日期框1和日期框2的日期相差的天数显示在标签上？
  21. 请问：当我按下按钮1。过一段时间在按按钮2。请问怎样计算出这段时间？
  22. 请问，在E语言中怎样实现用"标签"来动态显示电脑的时间？
  23. 为什么我用“创建目录（）”命令总是无法创建新的目录？
  24. 在“寻找文件（）”命令中,找文件夹时有时会找出"."来,怎么回事？
  25. 怎样在易程序中运行外部程序？
  26. 怎样才能让易程序调用默认的关联程序来打开txt、wps、chm之类非执行文件呢？
  27. 在易程序中运行了一个Dos程序，怎样才能让那个难看的Dos窗口不出现呢？
  28. 如何才能知道当前屏幕的分辨率是多少？
  29. 怎样取得鼠标相对于屏幕的当前位置？
  30. 请问，“信息框”是如何添加上去的？控件工具箱里没有啊？
  31. 如何向注册表中写入一个dword值0x00000001？
  32. 如何向注册表中写入一个二进制值？
  33. 写注册表项(“HKEY_CURRENT_USER”,“Software\run”,“times”,)为什么会出错？
  34. “写注册项（）”中第一个参数“根目录”分别对应注册表中那个主键？
  35. 在易程序中，要打开新窗口用什么，是打开（）、创建（）还是……？
  36. 我用复制窗口单元复制出来的新单元，其大小为什么与源单元不同？
  37. “处理事件（）”有什么用，怎么用？
  38. 如果不用数据库管理器，能在易程序中用命令方式动态创建一个新数据库吗？
  39. 在易程序中能不能同时打开多个数据库？
  40. 在易程序中打开了多个数据库，如何确定哪个是当前库？
  41. 我用“添加（）”想把两个结构相同的数据库连接在一起，可为什么返回值总是为假？
  42. 窗口中有三个编辑框，如何才能把其中的内容保存为数据库的一个记录呢？
  43. 我用“删除（）”命令删除了一个记录，可用“取记录数（）”发现记录总数并没改变，为什么？
  44. 数据库中：查找（）命令的参数应如何设置？请给个简单的示例。谢谢！
  45. 同时打开多个数据库，用“置当前库（）”命令改变当前库，好象不管用，为什么？
  46. 在我下载的一些E程序中，常见一些*.edt文件，请问它起什么作用，又如何创建？
  47. “判断循环首（取反（尾记录后（））”是什么意思？
  48. 位异或是什么意思，其原理是什么？
  49. 什么是DLL命令？如何插入DLL命令？
  50. 如何在程序中应用DLL命令？
  51. 怎样根据数据库字段1的内容来搜索并取得字段2的内容？

VB或VFP中的Case语句在易语言中如何表示？

可以用多个判断语句表示。
例： 在VFP中，有如下语句：
DO CASE
CASE A=1
B="一"
CASE A=2
B="二"
…
CASE A=10
B="十"
ENDCASE

在易语言中可以用“判断”来完成上述功能：
判断（A=1）
B="一"
判断（A=2）
B="二"
…
判断 （A=10）
B="十"
判断结束

返回

“返回（）”是什么意思？

返回（）：退回到程序开始执行处。
返回（参数）：返回程序执行得到的结果到程序开始调用处。
例：求两个数相除的结果。

子程序：按钮1_被单击

如果（编辑框2.内容=0）
信息框（“除数不能为零！”）
编辑框2.获取焦点（）
返回（）
否则
编辑框3.内容=到文本（除法（文本到数值（编辑框1.内容），文本到数值（编辑框2.内容））
如果结束

子程序 除法 返回值：小数型
参数一，整数型
参数二，整数型

返回（参数一/参数二）

返回

为什么要在“计次循环首”或“容器循环首”的参数中加个容器？我看到VB的同类语句不用加。

在易语言中，这个参数也是可选的，看你需不需要那个值。
 加了以后， 你就可以在循环中引用它。
例：求1到10的积：

子程序：求积
局部容器：结果，整数型
局部容器：容器1，整数型

计次循环首（10，容器1）
结果=结果*容器1
计次循环尾（）

或：

容器循环首（1，10，1，容器1）
结果=结果*容器1
容器循环尾（）

返回

随机数和随机种子数什么意思？

随机种子数可以是数值，也可以是时间或其他任何可以转化成2进制数的东西。
随机数是一个由计算机在随机种子数的基础上用加减乘除和其他的各种运算产生的一个数。
为了确保每次取出的随机数序列不同，在取随机数前，应该选设置一个不同的随机数种子。

返回

易语言中，怎样求一个数的“n次方”？怎样求一个数的“开n次根式”？

求X的n次方用：求次方 ( X , n )；
求X的n次方根用：求次方 ( X , 1/n )。

返回

怎么定义变量？

易语言中变量叫容器。
1、定义全局容器（在整个程序中都可以应用，需要跨窗口应用或传递的变量可以用它），可以用“插入 - 新全局容器”菜单。
2、定义程序集容器（在本程序集中应用），直接在每个程序集的第一行回车就行了。
3、定义局部容器（只在当前子程序中应用），在子程序的任何地方按下Ctrl+L键。可以。
添加容器之后，需要为它指定数据类型，点击数据类型框，可以在出现的下拉选项中选择合适的数据类型。如果此项保留为空，易语言默认为“整数型”。

返回

容器如何赋值？赋值以后，如何清空至初始值？

可以用易语言命令：赋值 （被赋值的容器或容器数组，用作赋于的值或资源）；也可以用等于号直接赋值。如：数值容器 = 123，文本容器=“123”。（容器所赋的值必须与容器的数据类型一致，否则将会出错。）
容器赋值以后，同样可以用“赋值（）”命令或等于号恢复初始值。如：数值容器 = 0；文本容器 = “”；字节集容器 = { }（{ }为空字节集）。
注意：窗口控件类容器赋值后，无法初始化。

返回

在用编辑框的内容为容器赋值时，为什么会出错？

下述语句：
a = 编辑框1.内容
 b = 编辑框2.内容
 c = a * b
 编辑框3.内容 = c
 怎么会出错呀？

c = a * b这一句错了。
a和b都是文本型，是不能相乘的。
应该是：
c=文本到数值（a）* 文本到数值（b）
编辑框3.内容=到文本（c）。

返回

数组型容器该如何赋值？

定义整型数组abc（2,2）后：
 abc(1,1)=1 ……………… 此语句说是错误的？
abc[1,1]=1 ……………… 也是错误的。请问是为什么？

数组型容器在引用时必须用“[]”指明数组下标，对于多维数组，则必须分别指明数组各维的下标。所以应该用：
 abc[1][1] = 1

另外，对于单维数组，也可以这样赋值（假设有数值型5维数组abc）：
abc = { 1，2，3，4，5 }。

返回

如何插入常量？常量如何引用？

通过易语言菜单“插入 - 新常量”可以插入新的常量。把易语言左侧的工作夹选择到“程序”夹，双击“常量表”，在右侧窗口中可以查看已定义的常量。在右侧窗口中按下回车键，也可以添加新的常量，把光标定位在某一常量上，按Del键，可以删除该常量。
 常量是系统或程序设定的某一固定值，目的是方便应用。如设置如下常量：

常量名称 | 常量值 | 备注
作者 | “飞扬软件工作室” |

常量的引用方法是在常量名称前面加上一个“#”号，如：#作者。
例：在程序中输入：
编辑框1.内容=#作者
其效果等同于：
编辑框1.内容=“飞扬软件工作室”。

返回

“加入数据库常量”有什么用？

在开始编写数据库应用程序之前，请将程序中所需使用数据库的名称及其内所有字段名设置为常量，因为常量可以使用系统内部的输入法来很快地输入。

字段名称 | 类型 | 最大文本长度
姓名 | 文本型 | 10
工资 | 小数型 | (非文本型没有长度)
扣除 | 小数型
实发 | 小数型

如：上面数据库内具有一个名称为“姓名”的字段，如果此字段名已经被设置为了常量，那么在程序中需要引用它时可以简单地输入 #xm ，而如果没有设置为常量，您就必须使用 Windows 系统的输入法来一个字一个字地输入 “姓名” 。

返回

怎样用命令中止当前运行的易程序自身？

一般用“结束（）”命令可以强行中止易程序自身的运行。
 对于单窗口易程序，也可以用“销毁（）”来结束程序。
对于多窗口易程序，销毁所有窗口或者某一主窗口销毁后没有新的窗口被载入，用“销毁（）”的效果与单窗口易程序相同。

返回

"列表框1.加入项目(中文含义 [容器1],)"中的中文含义[容器1] 容器中包含容器是何意思?

我看不懂教程中的第24章和第25章的内容特别是以上语句:
"列表框1.加入项目(中文含义 [容器1],)"中的中文含义[容器1] 容器中包含容器是何意思?
望懂者教一教我。

 "中文含义"是一个数组容器，在调用它的值时必须指明调用该数组的那一维，例如“中文含义[1]”，而“容器1”就是用来指明具体维数的一个数值型容器。

返回

“取命令行（）”是什么意思？应该怎么用？

“取命令行（文本数组）”就是取出在启动易程序时附加在其可执行文件名后面的所有以空格分隔的命令行文本段并赋值给文本数组。
例：如果你双击temp.e这个文件，系统会自动调用e.exe来打开temp.e。这时候实际上运行的是：e.exe temp.e 。其中temp.e就是e.exe运行时的参数。
在执行本命令前，必须先定义一个文本型数组，其数组维数可以设为零。如果为多维数组，执行后将自动转换为单维数组。
例：运行“temp.exe a b c”，在程序中输入以下代码：

子程序：__启动窗口_创建完毕
局部容器：参数 数据类型：文本型 数组：0

取命令行 (参数)
信息框 (取数组成员数 (参数), 0, )…………显示为3
信息框 (参数[1] + "," + 参数[2] + "," + 参数[3], 0, )…………显示为“a,b,c”。

返回

如何取得当前程序所在的文件夹名称？我用“取当前目录（）”为什么有时行有时不行？

用取“运行目录（）”可以取得程序所在文件夹名称。当程序位于磁盘根目录下时，返回的文本以“\”结尾，否则，无“\”结尾。
在初始状态下，用“取当前目录（）”取出的文件夹名与“取运行目录（）”是一样的，但当你在程序中通过通用对话框（例：打开其它文件夹下的一个文件）或其它途径改变了当前目录，用“取当前目录（）”取出的就不是程序的运行目录。

返回

我想在易程序运行时保存一个与程序同名的ini文件，我该如何获得文件名？

用“取执行文件名（）”可以取得当前程序的文件名，然后用相关的文本操作命令，就可以设置同名的ini文件名了。
例：程序名 = 取执行文件名（），那么：
配置文件名＝取文本左边(程序名,倒找文本(程序名,“.”, ,真)－1)＋“.ini”

返回

“读环境变量（）”和“写环境变量（）”中的环境变量名称指什么，如何获得？

环境变量名称是关连于一个操作系统配置的变量名称。
在Windows中，你可以进行MS-DOS方式下，输入SET并回车，列出的内容等号前面的就是环境变量名称。

返回

“倒找文本（原文本，子文本）”返回的值是不是子文本距原文本尾部的字符数？

易语言知识库中说：倒找文本（）用于“指定一文本在另一文本中最后出现的位置”，但以下命令：倒找文本（“123,456,78”，“，”）得到值为什么不是3呢？
寻找文本（）和倒找文本（）的区别仅仅在于寻找开始的位置不同，但它们所返回的值都是子文本距源文本首部的字符数。
倒找文本（）返回的是“一文本在另一文本中最后出现的位置”，所以：
倒找文本（“123,456,78”，“，”）得到值应该是8。

返回

怎样才能用赋值的方法把“homepage”=dword:00000001赋值给一个文本容器？

文本容器 = #左引号+“homepage”+#右引号+“=dword:000000001”。
如果是半角引号，则左右引号都用“#引号”来表示。

返回

如何把日期框1和日期框2的日期相差的天数显示在标签上？

标签1.标题＝到文本(取绝对值(取时间间隔(日期框1.今天,日期框2.今天,#日)))

返回

请问：当我按下按钮1，过一段时间在按按钮2。请问怎样计算出这段时间？

你可以用“取启动时间（）”或“取现行时间（）”分别赋值，然后相减得秒数。
例：
窗口程序集：窗口程序集1

程序集容器：时间1 数据类型：日期时间型
程序集容器：时间2 数据类型：日期时间型
------------------------------
子程序：_按钮1_被单击

时间1 ＝ 取现行时间 ()
------------------------------
子程序：_按钮2_被单击

时间2 ＝ 取现行时间 ()
标签1.标题 ＝ 到文本 (取时间间隔 (时间2, 时间1, #秒))

返回

请问，在E语言中怎样实现用"标签"来动态显示电脑的时间？

用时钟周期。
在窗口中加一时钟1，时钟周期为1000，

子程序：时钟1.周期事件
标签1.标题=时间到文本（取现行时间（））

返回

为什么我用“创建目录（）”命令总是无法创建新的目录？

要创建的新目录的上级目录必须存在。例：

创建目录（“c:\test\temp”），如果目录“c:\test”不存在，新目录temp将无法创建。

应该如下执行：

创建目录（“c:\test”）
创建目录（“c:\test\temp”）

返回

在“寻找文件（）”命令中,找文件夹时有时会找出"."来,怎么回事？

“.”代表本级目录。

返回

怎样在易程序中运行外部程序？

用“运行（）”命令，其中被运行的程序可以附加运行参数。例：

运行（“c:\windows\notepad.exe temp.txt” , ,)

返回

怎样才能让易程序调用默认的关联程序来打开txt、wps、chm之类非执行文件呢？

可以用API函数“ShellExecuteA”来实现，具体用法请查看相关资料。
不过，易语言中有一项不被人注意的功能——用超级链接框可轻松实现这项操作：
在窗口添加“超级链接框1”，在属性中设置其类型为“1.Internet地址”，Internet地址属性中填上你要打开的外部文件，然后在需要时，用“超级链接框1.跳转（）”。
怎么样，简单吧！

返回

在易程序中运行了一个Dos程序，怎样才能让那个难看的Dos窗口不出现呢？

“运行（）”命令的最后一个参数可以设置外部程序的运行方式，设为“1.#隐藏窗口”就可以让外部程序（包括Dos程序）在后台运行而不显示程序窗口。

返回

如何才能知道当前屏幕的分辨率是多少？

用“取屏幕宽度（）”和“取屏幕高度（）”。

返回

怎样取得鼠标相对于屏幕的当前位置？

用“取鼠标水平位置（）”和“取鼠标垂直位置（）”。

返回

请问，“信息框”是如何添加上去的？控件工具箱里没有啊？

信息框不是窗口控年，而是一个系统对话框，具体用法为：
信息框 （提示信息，按钮，［窗口标题］）
请参看易语言知识库中的详细信息。

返回

如何向注册表中写入一个dword值0x00000001？

直接在注册表中写入整数型值1，系统将自动转换为dword值0x00000001。

返回

如何向注册表中写入一个二进制值？

把欲写入值转换为字节集，用“写注册表项（）”或“写注册项（）”写入时，系统将自动转换为二进制值。

返回

写注册表项(“HKEY_CURRENT_USER”,“Software\run”,“times”,)为什么会出错？

写注册表项 (“HKEY_CURRENT_USER”, “Software\run”, “times”, )，最后形成的健值是:"HKEY_CURRENT_USER\Software\HKEY_CURRENT_USER\Software\run"，为什么？

“写注册表项（）”写出的值本来就是在“#现行用户”即“HKEY_CURRENT_USER”下，不能再为它指定一个根目录。而“写注册项（）”才需要并可以指定注册表根目录。
可以用以下两种方法实现：
写注册表项（“Software”，“run”，“time”，“test test!”）或
写注册项（#现行用户，“Software\run\time”，“test test!”）
最后形成的键是：HKEY_CURRENT_USER\Software\run\time，其键值为：test test!

返回

“写注册项（）”中第一个参数“根目录”分别对应注册表中那个主键？

1、#根类……………HKEY_CLASSES_ROOT
2、#现行设置………HKEY_CURRENT_CONFIG
3、#现行用户………HKEY_CURRENT_USER
4、#本地机器………HKEY_LOCAL_MACHINE
5、#所有用户………HKEY_USERS。

返回

在易程序中，要打开新窗口用什么，是打开（）、创建（）还是……？

用“载入 （欲载入的窗口，［父窗口］，是否采用对话框方式）”。

返回

我用复制窗口单元复制出来的新单元，其大小为什么与源单元不同？

你一定是在复制前，改变了源单元的大小。
复制窗口单元的作用是“复制创建与指定窗口单元设计状态完全一致的新单元”，在程序中用命令代码改变窗口单元的初始大小后，再用本命令，复制出来的新单元仍然是原来的大小，而不会是改变后的大小。如：
窗口中有一编辑框，初始大小为50*60，在程序中用：
“编辑框1.移动（，，100，120）”，再用
“复制窗口单元（编辑框1，编辑框容器）”，
复制得到的编辑框，其大小是50*60。

返回

“处理事件（）”有什么用，怎么用？

处理事件（）一般用在一个较长的循环中，用来暂停循环的执行，先响应外部事件。一般用法如下（以容器循环首（）为例）：
容器循环首（1，100，1，容器1）
处理事件（）
……（你的运行代码）
容器循环尾
如果你没有加入处理事件（）命令，而你的循环又比较长的话，你的窗口在循环执行完毕之前会失去响应，例如窗口移动等。

返回

如果不用数据库管理器，能在易程序中用命令方式动态创建一个新数据库吗？

可以用“创建（欲创建数据库的文件名，字段信息表）”命令来动态创建数据库。其中字段信息表是一个数据类型为“字段信息”的数组容器。在创建数据库前，必须先对其赋值。如：

局部容器：字段 数据类型：字段信息 数组：4

字段 [1].名称 ＝ “姓名”
字段 [1].类型 ＝ #文本型
字段 [1].最大文本长度 ＝ 10
字段 [2].名称 ＝ “性别”
字段 [2].类型 ＝ #文本型
字段 [2].最大文本长度 ＝ 2
字段 [3].名称 ＝ “年龄”
字段 [3].类型 ＝ #整数型
字段 [4].名称 ＝ “照片”
字段 [4].类型 ＝ #字节集型
创建 (“c:\个人信息.edb”, 字段)

其中字段信息中的“最大文本长度”仅对文本型字段有效。

返回

在易程序中能不能同时打开多个数据库？

可以，用“打开（）”命令打开数据库时，不会关闭已经打开的数据库。同时有多个数据库打开的情况下，当前数据库默认为最后一个打开的数据库。
如果要在打开新数据库的同时关闭已打开的当前数据库，请用“替换打开（）”。

返回

在易程序中打开了多个数据库，如何确定哪个是当前库？

在同时有多个数据库打开的情况下，当前数据库默认为最后一个打开的数据库。
你可以用“取当前库（）”或“取库文件名（）”来获得当前数据库的名称。
如果要更改当前库，请用“置当前库（）”命令。

返回

我用“添加（）”想把两个结构相同的数据库连接在一起，可为什么返回值总是为假？

用“添加（数据库别名或名称，记录条件］，字段范围］，…）”把两个结构相同的数据库连接在一起，前提是两个数据库必须都已打开。如果用来添加的数据库为打开或者当前库为空，执行该命令就会失败。
另外，其参数一是数据库别名或名称，在引用数据库名称时，不应该加“.edb”，否则，执行命令也将失败。例：

打开（“temp2.edb”）
打开（“temp1.edb”） 注：当前库为temp1.edb。
添加（“temp2" , , ) 注：将temp2.edb添加到当前库temp1.edb中去。

返回

窗口中有三个编辑框，如何才能把其中的内容保存为数据库的一个记录呢？

假设当前库已打开，字段一为文本型，字段二为数值型，字段三为字节集型：

方法一：
加记录（编辑框1.内容，文本到数值（编辑框2.内容），转换为字节集（编辑框3.内容））

方法二：
加空记录（）
修改（编辑框1.内容，文本到数值（编辑框2.内容），转换为字节集（编辑框3.内容））

方法三：
加空记录（）
写（1，编辑框1.内容）
写（2，文本到数值（编辑框2.内容））
写（3，转换为字节集（编辑框3.内容））

方法四（设数据库字段名为A、B、C）：
加空记录（）
替换（ ，“A”，编辑框1.内容，“B”，文本到数值（编辑框2.内容），“C”，转换为字节集（编辑框3.内容）） 注意：使用本命令第一个参数请保持为空，即只替换当前记录。

一般情况下请用前两个方法。

返回

我用“删除（）”命令删除了一个记录，可用“取记录数（）”发现记录总数并没改变，为什么？

“删除（）”并不实际删除记录，仅仅只加上删除标记，记录依旧存在并可以读写。要真正删除记录，必须再使用“彻底删除（）”命令把标记为删除的记录真正删除。

返回

数据库中，查找（）命令的参数应如何设置？请给个简单的示例。谢谢！

到首记录（）
查找（读（1）=“飞扬”）

注意：查找命令默认为从当前记录开始查找，所以要从头查找必须在前面加一句：
到首记录（）
如果要继续往下查找，还必须在后面加上一句：
跳过（1） 。

返回

同时打开多个数据库，用“置当前库（）”命令改变当前库，为什么不管用？

我同时打开了“test1.edb”“test2.edb”两个数据库，但用“置当前库（“test1.edb”）”或“置当前库（“test2.edb”）”却不管用，这是为什么？

“置当前库 （数据库别名或名称）”中参数为数据库的别名或名称，当引用数据库名称时，不能加“.edb”，如本例中，就应使用：

置当前库（“test1”） 或
置当前库（“test2”）

返回

在我下载的一些E程序中，常见一些*.edt文件，请问它起什么作用，又如何创建？

易语言数据库中若有备注型或字节集型字段，就会产生.edt文件，它是和.edb文件一起的，千万不能搞丢了哦，否则数据库就打不开了。

返回

“判断循环首（取反（尾记录后（））”是什么意思？

“取反（逻辑值）”就是将参数提供的逻辑值反转，如果参数值为真则返回假，如果参数值为假则返回真。所以：
判断循环首（取反（尾记录后（）））的意思就是：
判断循环首（尾记录后 = 假）。
用于判断当前数据库的当前记录指针是否已在尾记录的后面。

返回

位异或是什么意思，其原理是什么？

位异或（位运算数值一，位运算数值二）就是将参数一与参数二的二进制值进行逐位比较，如果相同，返回0，如果不同返回1。例：
位异或（123，234）
参数一：123 二进制值： 1111011
参数二：234 二进制值：11101010
返回值： 10010001，其十进制值为145。
即：位异或（123，234）= 145。

返回

什么是DLL命令？如何插入DLL命令？

DLL命令是Windows系统外部动态连接库（即DLL库）中的命令，也称API函数。在调用前，必须首先进行定义，定义DLL命令涉及到以下主要属性：
 Dll命令名、返回值类型、Dll库文件名、Dll命令在Dll库中的对应命令名、Dll命令参数。
 通过菜单“插入 - 新DLL命令”可以插入新DLL命令。把易语言左侧的工作夹选择到“程序”夹，双击“DLL命令”（如果其左侧有+号，请单击+号）也可以添加或查看DLL命令。
 例：定义一个“俘获鼠标”DLL命令：

DLL命令名 | 返回值类型 | 备注
俘获鼠标 | 整数型 |
DLL库文件名
user32.dll
本DLL命令在DLL库中对应的命令名
SetCapture
参数名 | 类型 | 传址 | 数组 | 备注
窗口句柄 | 整数型 |  |  |

其中，DLL命令名只要符合命名规则，可以任意设置，但最好是设置成你容易理解的且便于在程序中应用的名字。如果需要取出执行该DLL命令后的返回值，则必须设置返回值类型。
如果是Windows系统自带的DLL库，其DLL库文件名可以省略。如本例的user32.dll。
在设置Dll命令的参数时，必须保证参数的顺序、数据类型都与实际的Dll外部函数一致。

返回

如何在程序中应用DLL命令？

DLL命令添加完毕后，其用法与一般的命令或函数一样，在你的程序中直接调用就可以了。注意在引用时，必须为DLL命令提供相应的参数。
如上述的DLL“俘获鼠标”，在程序中可以这样调用：
俘获鼠标（编辑框1.取窗口句柄）。

返回

怎样根据数据库字段1的内容来搜索并取得字段2的内容？

用数据库建立密度表（液体的温度和对应的密度）：
t1,ρ1
t2,ρ2
t3,ρ3
t4,ρ4
t5,ρ5
t6,ρ6
……
怎样写程序，根据现在已知的温度t检索到对应的ρ，同时将ρ赋予一个容器，从而进入计算阶段？

到首记录（）
如果(查找（读（1）= t))
ρ = 读（2）
否则
信息框（“未找到该温度下的密度值。”）
返回（）
如果结束

返回
作者：西风
 Email: westwindxp@163.com
修订时间：2004年03月28日 。

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


关于易数据库管理系统及应用系统开发的建议
一、关于数据库应用系统开发的建议。

数据库应用系统是指用户基于易语言数据库系统而开发的软件。我认为一个数据库应用系统好不好，不能只根据功能技术而定，而应看它是否能确确实实地充分地满足最终使用者的需要，并且作为应用系统，满足客户需要的重要性应远大于技术。应用是目的，技术只是手段。如果把技术作为目的，就会把你的软件引入歧途。
但是现今的数据库理论却正是把人引入这种歧途！比如所谓的ERP理论，据说其目的是要有组织有计划地输入输出企业的信息数据，促进企业的信息化。他们认为ERP的实质是信息化而不是自动化。这种理论好象很合理、很正确，但恰恰是忘掉了作为一个数据库应用系统原有的目的：确确实实地充分地满足市场的需求和最终使用者的需要。这正是当前ERP应用举步维艰的原因。每当我看见一些专家偏偏要把ERP理论引向只讲技术、偏离实际的方向时，我就感到痛心疾首。我不懂编程，正因为专家们不去满足不会编程的最终客户的需要，而孤芳自赏，所以我觉得他们做错了。
但是最终客户的需求却又很难把握，唯一就是多花一点时间去了解客户的感受（了解感受比了解理论更重要）和想法。很多客户可能感觉到符合自己理想的软件并不存在，其中大多不是客观原因造成，而是软件制作者没有给我满意的功能和使用方便，反而是要我掌握高深的理论和烦琐的步骤才能使用他的软件。大多数软件给客户的感受是：想要的功能没有实现或实现的繁琐的程度让人发悸；不想要的高深的功能却一大堆，多得让人应接不暇。
造成这种状况的根本原因在于客户的需求往往与经典理论或软件工程相背缪！理由如下：
第一、客户的要求大多是要简单实用，传统理论制造的软件却功能繁杂。比如搞一个财务软件 ，还需要让人掌握一大堆艰深的财务制度和软件理论，要了解一大堆让人不知所云的术语。比如明明可以用“结果”或“计算结果”来表达却偏要用“返回值”来表达，现实生活中哪有“返回值”这个词语，客户根本无从查找其意思而梗在那里，可能程序员都把客户当成是编程高手了。
第二、客户的需求大多是不要强行改变原来方便的行为习惯、要给我使用的最大方便，要是不能给人工作带来方便的软件，我要来何用。那什么样的软件才会给客户带来方便呢？客户一般要求数据的输入与手工记帐操作类似。表格式一行行、一页页的数据操作、清楚明了的记录方式才能给客户工作带来方便。相反，很多软件要查看或编辑某记录常常要借助于“难懂”的条件查询功能。
第三、客户需要的大多是一个省心省力的辅助管理工具，而不仅仅是一个应声虫般的电子帐本。客户最希望所关心的数据能一目了然、而不是在枯燥的“输入”、“统计”、“查询”、“报表”等独立模块或窗口间疲于切换，或重复设置繁琐的查询条件。
第四、客户需要的是操作方便、省心，而不是死板地老敲键盘，但是大多数软件却需要用户老老实实的一个栏目一个栏目地填写、甚至很少采用默认值和待选项。这决不是无伤大雅，而是程序员毫无客户观念，没有树立人本思想，以给人最大的方便。很多客户可能都有一种“不正确”的想法：最好是左手抽烟，右手用鼠标点点就能完成数据操作。
第五、客户都要求软件灵活多变、无所不能，一般软件却只有简单的几项功能，无法满足特殊的需要。
.............

综上所描述，建议数据库应用系统开发者，本着最大限度地方便、满足客户感受要求的心态去开发，而不是本着技术心态。最好参考借鉴网页数据库的开发方法，按页来显示大量信息数据。尽量以表格控件作为主界面的主控件，面积占界面的大部分，以最大限度地显示多一点记录数据，并且只操作表格就能完成数据记录的编辑工作。能自动化的就尽量自动化，以减少客户操作的功夫。基于这个原则，帮助系统也尽量给客户方便，尽量应用多媒体的帮助手段，甚至要使客户不用练习就能进行简单的操作，考虑首先以“三分钟操作”之类的例程作为帮助的开头，使客户在未操作之前就有一个大概的认识。

二、关于完善易数据库管理系统的建议。

可以看出，易数据库目前不足之处正是未能给用户操作上的方便，功能各自独立的模块式的散乱的数据库工具使用户感到很不方便，尤其是数据库编辑器，要切换到指定的记录就要再打开一个对话框来输入查询条件。一次界面只能观看一条记录，好象是一个粗劣的数据库管理系统。
建议参考ACCESS管理系统的界面，尽量做到在一个界面里显示大量信息并能完成多项操作；同时把数据库结构编辑器、数据库记录编辑器、加入数据库常量、数据库格式转换器与易之表五合为一，就象ACCESS一样；易数据库管理器要以易之表为主界面，使易之表既能编辑报表模板，又能编辑数据记录，可以复制粘贴图片数据、表格数据和混合数据，将其改造成为一个完善的易数据库综合管理系统。这些工作除了吴涛之外好象其他人也能做。


[数据库初步]数据源控件和数据库提供者控件的使用
从这一讲开始讲解与数据库密切相关的控件的使用方法。
㈠、数据源控件和数据库提供者控件的含义和使用。
数据源控件（Data控件）是一个功能强大的数据访问控件。使用数据源控件我们可以做到不编写任何代码或只编写少量代码，就能对数据库中的数据进行查询、添加、删除、更新等基本操作。数据源控件的主功能属性是“数据提供者”，用于指定提供数据的一方。
数据源用作在数据处理者和数据提供者之间起协调和数据桥接的作用：
1、为所有基于本数据源的数据处理者提供来自数据提供者的数据；
2、将数据处理者处理后的数据写回到数据提供者中；
3、如果更换数据提供者或数据提供者内的数据发生改变，将自动通知所有基于本数据源的数据处理者。
怎样运用数据源控件？比如我们在窗口上只画上一个数据源控件，想设置它的“数据提供者”属性值，发现无法设置，原因是易语言数据源控件无法直接连接数据库，要通过其他控件导入数据库，再通过导人数据的控件设置“数据提供者”的属性值，为此我们还需要配合导人数据的控件来使用。易语言导人数据库的控件是“数据库提供者”控件。
用易语言数据框架图来表示一下与数据库相关的控件的使用关系就是：
数据库→数据提供者→数据源→数据处理者
数据提供者仅仅负责为数据源提供数据的获取和存储方法，即数据操作接口。目前有“通用提供者”和“数据库提供者”两种，以后还要继续增加，譬如“远程数据提供者”等等。
数据提供者的主功能属性是“数据库文件名”，用来设置需要连接的数据库。
各类数据提供者所支持的数据操作接口可能不相同，下面列出目前两种数据提供者的相关情况：
1、通用提供者：
使用内存作为数据的存储仓库，全面支持所有数据操作接口。因此必要时可以将其它类型数据提供者内的数据导入到此类型中，以全面发挥数据源对数据的操纵能力。
2、数据库提供者：
使用数据库作为数据的存储仓库，不支持以下数据操作接口：
1、置行高； 2、置类型； 3、置文本色； 4、置背景色； 5、置字体名； 6、置字体尺寸； 7、置字体属性； 8、置边距； 9、置文本输入格式； 10、置对齐方式； 11、置密码方式； 12、合并； 13、分解； 14、加线条； 15、删线条； 16、初始尺寸时同时改变列数； 17、在中间插入行； 18、插入列； 19、删除列。
如果想对数据进行以上操作，应该先将数据通过数据源导出到通用提供者中。

㈡、数据源控件和数据库提供者控件的使用例程：学生成绩管理。
本实例就是通过数据源控件来访问“学生成绩.edb”这个数据库，对该数据库进行顺序查询，并将所得的数据记录通过“学号”、“姓名”、“数学”、“语文”、“英语”对应的编辑框（用来作为数据处理者）显示出来。
这五个编辑框怎样才能作为数据处理者？需要对这五个编辑框设置两个重要的属性，一个是“数据源”属性，用于指定所使用的数据访问控件，即数据源控件；一个是“数据列”属性，用于绑定数据库中的相应字段，比如“编辑框1”用来显示“学号”字段，“编辑框2”用来显示“姓名”字段、、、这样绑定之后，我们所做的程序界面就可以和数据库端保持同步了，也就是数据库端所做的改变不仅会在我们这个程序界面中反映出来，而且我们在程序界面所做的变动也会使数据库端的数据发生相应的变动。

步骤一：创建程序界面及学生成绩数据库。
创建五个编辑框，分别用五个标签起名为“学号”、“姓名”、“数学”、“语文”、“英语”。
创建一个数据库提供者控件，一个数据源控件。
创建学生成绩数据库，包括“学号”、“姓名”、“数学”、“语文”、“英语”五个字段。
步骤二：设置各控件的主功能属性值。
⑴、设置数据库提供者控件的主功能属性“数据库文件名”的属性值为你目录下的数据库文件名，即“学生成绩.edb”。
⑵、设置数据源控件主功能属性“数据库文件名”的属性值为“数据库提供者1”。
⑶、设置五个编辑框的“数据源”属性值为“数据源1”，再设置这五个编辑框的数据列属性的属性值分别为“学号”、“姓名”、“数学”、“语文”、“英语”，以使编辑框绑定数据库的相关字段，可在下拉列表中选择。
步骤三、编写下列简单的代码（这一步不用也行）：

子程序：__启动窗口_创建完毕

打开 (“#学生成绩数据库”, , , , , , )
标签8.标题 ＝ “学生总人数: ” ＋ 到文本 (取记录数 ()) ＋ “人”

步骤四、运行程序。
对数据源控件进行操作。数据源控件的六个按钮从左到右排列分别是“到首记录”、“向前”、“向后”、“到尾记录”、“添加空记录”、“删除”。也就是说我们可以运用数据源控件，不用编写代码就可以进行六种操作。


[数据库初步]合并和分解易数据库
易本身的数据库操作有时较麻烦，比如合并或分解易数据库，要在两个数据库之间往返手工操作，所以用代码加载较方便一点。但一般的用代码操作易数据库的合并或分解，只针对固定的数据库文件名、固定的记录条件和字段范围。为了使这两项的操作更方便，下面提供比较通用的合并和分解易数据库的例程。
由于嫌麻烦，这里只提供例程代码，先不作解说，等以后再慢慢补充：

窗口程序集：窗口程序集1

------------------------------

子程序：_按钮1_被单击

载入 (窗口1, , 真)

------------------------------

子程序：_按钮2_被单击

载入 (窗口2, , 真)

窗口程序集：复制记录程序集

------------------------------

子程序：_按钮1_被单击

局部容器：记录号范围1 数据类型：整数型
局部容器：记录号范围2 数据类型：整数型
局部容器：数据名称 数据类型：文本型
局部容器：复制条件 数据类型：文本型
局部容器：字段范围 数据类型：文本型
局部容器：当前数据库 数据类型：文本型

当前数据库 ＝ 编辑框4.内容
打开 (当前数据库, , , , , , )
数据名称 ＝ 编辑框3.内容
记录号范围1 ＝ 文本到数值 (编辑框1.内容)
记录号范围2 ＝ 文本到数值 (编辑框2.内容)
复制记录 (数据名称, 取记录号 () ＞ 记录号范围1 且 取记录号 () ＜ 记录号范围2, 字段范围)
如果真 (复制记录 (数据名称, 取记录号 () ＞ 记录号范围1 且 取记录号 () ＜ 记录号范围2, 字段范围) ＝ 真)
信息框 (“复制成功！”, 0, “操作成功”)
如果真结束

子程序：_按钮3_被单击

通用对话框1.打开 ()
编辑框4.内容 ＝ 通用对话框1.文件名

窗口程序集：添加记录程序集

------------------------------

子程序：_按钮1_被单击

局部容器：记录号范围1 数据类型：整数型
局部容器：记录号范围2 数据类型：整数型
局部容器：数据名称 数据类型：文本型
局部容器：复制条件 数据类型：文本型
局部容器：字段范围 数据类型：文本型
局部容器：当前数据库 数据类型：文本型

当前数据库 ＝ 编辑框4.内容
打开 (当前数据库, , , , , , )
数据名称 ＝ 编辑框3.内容
记录号范围1 ＝ 文本到数值 (编辑框1.内容)
记录号范围2 ＝ 文本到数值 (编辑框2.内容)
添加 (数据名称, 取记录号 () ＞ 记录号范围1 且 取记录号 () ＜ 记录号范围2, 字段范围)
如果真 (添加 (数据名称, 取记录号 () ＞ 记录号范围1 且 取记录号 () ＜ 记录号范围2, 字段范围) ＝ 真)
信息框 (“添加成功！”, 0, “操作成功”)
如果真结束

子程序：_按钮3_被单击

通用对话框1.打开 ()
编辑框4.内容 ＝ 通用对话框1.文件名


[数据库初步]表格控件的使用
这一讲我们要用到的表格控件是一个类似于电子数据表的绑定控件，可用一系列的行和列来显示记录和字段，所以我们就可以将数据以一种二维表格的形式一次性地显示出来，而不必象《数据源控件和数据库提供者控件的使用》这一讲的范例中那样，只能一个一个地查看数据。也就是说表格控件一般是作为数据处理者来使用，那么各种处理数据库的控件之间的关系可以表述为：
数据库→数据提供者→数据源→表格（数据处理者）
也就是说要使表格控件发挥作用，还需要配合数据库、数据提供者和数据源来使用。
这里我们重要设置表格控件的主功能属性，即“数据源”属性，就可以制作一个简单的数据浏览表格。

例程制作：学生成绩查询表格。

步骤一、创建程序界面及数据库。
我们要使用到的数据库就是《数据源控件和数据库提供者控件的使用》这一讲例程中的数据库，当然用其他数据库也行。
在界面上添加一个数据提供者控件，一个表格控件，一个数据源控件。
步骤二、设置对象属性值。
将数据源的数据库文件名属性值设为“学生成绩.edb”(该数据库要跟程序在同一目录下），或设为该数据库的路径名，如“E/hahaha/学生成绩.edb”（可以不跟程序在同一目录下），将数据源控件的数据提供者的属性值设为“数据库提供者1”，将表格控件的数据源属性值设为“数据源1”，将表格控件设置为适当大小。
步骤三、不用编写代码即可运行使用。我们可以运用数据源控件对表格控件中是数据进行相应的操作，也可以用鼠标对表格中的数据进行查询、添加、删除、更新等基本操作。


[数据库初步]整齐显示所有记录
多记录浏览在数据库应用程序中是常常用到的，它给数据的查询、统计、汇总等带来方便。
这一讲仍然以一个简单的学生成绩总表来作例程，让大家了解如何整齐地显示所有数据。
★、第一步：规划用户界面。

⑴、画一个大大的编辑框用来显示所有记录。
⑵、在编辑框上方排一行5个标签。
⑶、画一个按钮。

★、第二步：设置对象属性。

五个标签的标题分别是“学号”、“姓名”、“语文”、“数学”、“英语”，五个标签的宽度与编辑框等宽，均匀地排列在编辑框上方。按钮的标题是“显示”。将编辑框设置纵向滚动条。

★、第三步：编写事件过程代码。

子程序：_按钮1_被单击

局部容器：容器1 数据类型：整数型
局部容器：容器2 数据类型：整数型

打开 (#chj数据库, , , , , , )
置当前库 (“chj”)
标签2.标题 ＝ 到文本 (取记录数 ())
标签4.标题 ＝ 到文本 (取字段数 ())
计次循环首 (取记录数 (), 容器1)
计次循环首 (取字段数 (), 容器2)
编辑框1.加入文本 (取文本左边 (到文本 (读字段 (容器2, )) ＋ 取空白文本 (12), 12))
计次循环尾 ()
编辑框1.加入文本 (#换行符)
跳过 ()
计次循环尾 ()
关闭 (#chj数据库)
按钮1.禁止 ＝ 真

※、程序解析：这一子程序用到了较复杂的区块循环（循环之内又有循环），其流程如下——
⑴、先执行的是下面这个循环：

计次循环首 (取字段数 (), 容器2)
编辑框1.加入文本 (取文本左边 (到文本 (读字段 (容器2, )) ＋ 取空白文本 (12), 12))
计次循环尾 ()

上面的循环的意思是：
先在编辑框加上首记录的字段1的文本，再进入循环依次加入字段2、字段3、字段4、字段5的文本，循环次数等于字段总数。
⑵、为了使各字段整齐地显示出来，用这个代码：编辑框1.加入文本 (取文本左边 (到文本 (读字段 (容器2, )) ＋ 取空白文本 (12), 12)) 。它的意思是每次循环（每加入一个字段的文本）加入的文本总字符数是12字节（包括空白字符），加入的空白字符数最多是12字节，这样即使该字段没有文字，其所占的位置仍然是12字节。这样各字段的文本就会整齐地显示在编辑框里。
⑶、添加完某记录的各字段文本后再换行，然后用“跳过 ()”指向下一记录再进入大循环，即依次循环到下一记录（循环次数等于记录总数），再依次添加各字段文本。

★、第四步：运行测试程序。

假设用“编辑框1.加入文本 (到文本 (读字段 (容器2, )))”代替上面“编辑框1.加入文本 (取文本左边 (到文本 (读字段 (容器2, )) ＋ 取空白文本 (12), 12))
”，试比较一下显示效果会怎样。
点击浏览该文件


[数据库应用]在窗口显示所有记录
这一讲继续介绍易语言内部数据库的知识。
前面的课程都是讲在一个界面上如何对单个记录进行操作，在同一窗口上只能显示单个记录，现在我们来讲讲怎样显示所有记录于窗口上。多记录浏览在数据库应用程序中是常常用到的，它给数据的查询、统计、汇总等带来方便。
这一讲仍然以一个简单的学生成绩总表（chj.edb）来作例程，同时让大家了解如何整齐地显示所有数据。
★、第一步：规划用户界面。

⑴、画一个大大的编辑框用来显示所有记录。
⑵、在编辑框上方排一行5个标签。
⑶、画一个按钮。

★、第二步：设置对象属性。

五个标签的标题分别是“学号”、“姓名”、“语文”、“数学”、“英语”，五个标签的宽度与编辑框等宽，均匀地排列在编辑框上方。按钮的标题是“显示”。将编辑框设置纵向滚动条。

★、第三步：编写事件过程代码。

怎样实现显示所有记录的功能呢？宝贝哥哥我一开始对这个简单的问题也难以着手，如果是在一个编辑框上显示当前记录的某个字段，那很简单，用“学号编辑框.内容 ＝ 到文本 (读 (1))”之类的语句即可，但是要在一个编辑框内显示所有记录的所有字段那就有点复杂了。用“学号编辑框.内容”这个方法是办不到的。
我们可以用“学号编辑框1.加入文本”的方法，一步一步地向编辑框添加各个记录的各个字段。比如用“编辑框1.加入文本 (到文本 (读字段 (“学号”)))”可以向编辑框添加当前记录的学号字段。要让程序把各个记录的各个字段逐个添加上去，就要用到循环控制命令，先依次添加首记录的字段一、字段二、字段三、、、再依次添加下一记录的字段一、字段二、字段三、、、如此循环直至将所有记录的所有字段添加上去，如下：

计次循环首 (取记录数 (), 容器1)
计次循环首 (取字段数 (), 容器2)
编辑框1.加入文本 (到文本 (读字段 (容器2 )))
计次循环尾 ()
编辑框1.加入文本 (#换行符)
跳过 ()
计次循环尾 ()

上面的循环比较复杂，大循环之内又有小循环（区块循环），怎样理解？就上面的代码来说，系统首先执行的是小循环，把首记录的各个字段依次添加到编辑框1中，循环的次数等于字段数。首先让容器2（已循环次数记录容器）的值从零开始加1，同时添加字段一（在本例中是“学号”），然后容器2的值再加1变成2，再进入循环时，“编辑框1.加入文本 (到文本 (读字段 (容器2 )))”就等于“编辑框1.加入文本 (到文本 (读字段 (2)))”或“编辑框1.加入文本 (到文本 (读 (2)))”。
通过上面的循环把首记录的各个字段添加上去后，怎样才能循环到下一记录并添加各字段内容？下一记录另起一行显示，所以先添加换行符：“编辑框1.加入文本 (#换行符)”，然后用“跳过 ()”把指针指向下一记录，使下一记录成为当前记录。再次执行循环内的语句时，就会对此记录进行操作，依次添加各字段文本。大循环次数等于记录总数。
如果为了使各字段整齐地显示出来，用这个代码：编辑框1.加入文本 (取文本左边 (到文本 (读字段 (容器2, )) ＋ 取空白文本 (12), 12)) ，代码改变如下：

计次循环首 (取字段数 (), 容器2)
编辑框1.加入文本 (取文本左边 (到文本 (读字段 (容器2, )) ＋ 取空白文本 (12), 12))
计次循环尾 ()

上面代码的意思是每次循环（每加入一个字段的文本）加入的文本总字符数是12字节（包括空白字符），加入的空白字符数最多是12字节，这样即使该字段没有文字，其所占的位置仍然是12字节。这样各字段的文本就会整齐地显示在编辑框里。

★、第四步：运行测试程序。

假设用“编辑框1.加入文本 (到文本 (读字段 (容器2, )))”代替上面“编辑框1.加入文本 (取文本左边 (到文本 (读字段 (容器2, )) ＋ 取空白文本 (12), 12))
”，试比较一下显示效果会怎样。

附：该例程的完整代码如下：

窗口程序集：窗口程序集1

------------------------------

子程序：_按钮1_被单击

局部容器：容器1 数据类型：整数型
局部容器：容器2 数据类型：整数型

打开 (#chj数据库, , , , , , )
置当前库 (“chj”)
标签2.标题 ＝ 到文本 (取记录数 ())
标签4.标题 ＝ 到文本 (取字段数 ())
编辑框1.内容 ＝ “”
※ 在再次操作该子程序之前先清空以前的内容以避免加入重复内容。
计次循环首 (取记录数 (), 容器1)
计次循环首 (取字段数 (), 容器2)
编辑框1.加入文本 (取文本左边 (到文本 (读字段 (容器2, )) ＋ 取空白文本 (12), 12))
计次循环尾 ()
编辑框1.加入文本 (#换行符)
跳过 ()
计次循环尾 ()
关闭 (#chj数据库)

------------------------------

子程序：_按钮2_被单击

全部关闭 ()
销毁 ()

（例程下载：
http://www.91asp.com/bbs.nsf/0/f36ed348beb46dfe48256bf4002f1088/$FILE/zhengqi.zip）


[数据库应用]数据的备份与还原
在数据库应用系统中，我们常常要对数据库作升级、修改、移动、加密、增删、排序等各种操作，如果数据库操作失误，有时会出现以下的情况：数据部分丢失甚至完全丢失、数据库无法打开、结构及次序被打乱而无法使用、无法升级、、、出现这些情况一般是难以处理的，比较好的做法是经常对数据库作备份的工作，以便在原来的数据库无法恢复使用时，还原备份数据库继续使用。尤其是大型管理系统，数据的备份是系统维护的一项经常性工作，比如很多虚拟主机服务商为我们提供空间时，每周进行一次或多次的数据备份，这样网站的内容丢失了也可以恢复。这一讲我们就来学习数据的备份与还原。
所谓数据的备份就是复制原来数据库的记录到另外一个新的数据库，该新数据库必须不存在或者尚未被打开，如果已经存在，将会被覆盖，该新数据库被作为备份数据库。所谓数据的还原就是复制备份数据库的记录到原来的数据库，将原来的数据库覆盖，原来的数据库必须未被打开。
从上可见，数据的备份与数据的还原两者意思差不多，都是复制当前数据库的记录到另外一个数据库。不同的是功能，备份的复制是创建备份数据库，还原的复制是恢复原来的数据库。
数据的备份与还原说简单也简单，使用“复制记录 （数据库文件名，，，）”这个命令即可，“数据库文件名”这个参数指定欲复制到的数据库文件。数据的备份与还原甚至简单到点击一下按钮即可完成，如：

子程序：_备份按钮_被单击

打开 (“chj”, , , , , , )
复制记录 (“E:\易语言1.963版\哈哈哈”, , , )
——————————————————————
子程序：_还原按钮_被单击

打开 (“E:\易语言1.963版\哈哈哈”, , , , , , )
复制记录 (“chj, , ,)

在以上例程中，不时点击一下“备份按钮”就会使原数据库的记录不时覆盖备份数据库，使你对某个数据库的备份成为举手之劳。对某个数据库的还原一样也很轻松，不过原来数据库的记录一般都比备份数据库的新，要注意不到万不得与，不要点击上面的“还原按钮”，因为会覆盖原来的数据库。也就是说，上面这个例程方便性好，但灵活性不够。
在上面的例程中，如果想做到在每周星期三维护程序（打开程序）时自动备份数据，是否可以？可以这样写：

子程序：__启动窗口_创建完毕

如果真 (取星期几 (取现行时间 ()) ＝ 4)
※ 1表示星期日，2表示星期一，依此类推
_备份按钮_被单击（）
如果真结束

好，老板叫你每周星期三备份一次数据，可你不用举手也完成了，老板还以为你备份数据很辛苦呢，哈哈。如果有很多数据库需要备份，那就更方便了。
每打开一次程序就自动备份一次数据更简单，请看：

子程序：__启动窗口_创建完毕

_备份按钮_被单击（）

在本书的光盘里（源码路径：09/3/10），也提供了一个较复杂的数据备份和还原例程，可以选择备份数据和还原数据的名称和路径等，不过都是对“复制记录（）”这个命令的运用。

思考练习：上面说了在维护程序（打开程序）时每周星期三自动备份数据的方法，能否做到在每周星期三每开一次机时自动备份数据？这样你可以在星期三偷偷玩游戏，而电脑却自动帮你完成老板交给的任务。

（例程转载：
http://www.91asp.com/bbs.nsf/0/bc7c78e9cfb8522848256bf6003a94dc/$FILE/_92f5fq4turk9rbh0jm6s17dut2f9um4trn49t9b8_.e）


[数据库应用]报表的显示与打印
在上一讲中我们制作了一个表格模板文件“base.grd”（个人成绩表模板），那么怎样运用报表文件呢？怎样用它来显示记录和打印报表呢？我们就把这一讲作为易内部数据库应用的最后一讲。

★、步骤一、编辑导入有关资源

㈠、编辑数据库结构
我们继续沿用学生成绩库（chj.edb）作为例库，但要添加两个字段：“像片”和“期末评介”，“像片”为字节集型，“期末评介”为备注型。
㈡、导入表格模板
选“工作夹→程序子夹→资源表→图片”，将导入的文件起名为“个人成绩模板”，点击“内容”下的空单元格，选“导入新图片”，类型为“所有文件”，然后将“base.grd”（个人成绩表模板）导入到程序中。当以后要读入导入资源中的模板文件时，可用“数据源1.从字节集读 (#个人成绩模板)”之类的语句读入数据源。
也可不导入模板，用“数据源2.从文件读 (“base.grd”)”之类直接从文件读入表格模板。
★、步骤二、设计程序界面并设置对象属性

在窗口上用表格控件画一个大表格（“成绩表格”），再添加两个数据源控件、两个通用提供者控件（“个人成绩提供者”和“通用提供者1”），再画上标题分别为“打印预览”和“打印报表”的两个按钮。
设置：成绩表格.数据源=数据源1。

★、实现打印预览和报表打印的功能。

㈠、打印预览
先将表格模板读入到数据源1。如果只是简单地实现打印预览的功能，只一句“成绩表格.打印预览 ()”，即可调用windows内设的打印预览器。如果要做到分页分记录预览，又困难了一点，但方法也比较多。这里介绍的是其中一种方法，基本思路是：将表格模板读入到数据源2，然后再将数据记录边读到数据源2，边从数据源2添加到数据源1，按记录总数循环将所有记录逐步从数据源2添加到数据源1，然后在数据源1设置打印时的每页打印行数,以强制每个学生打印一页。代码如下：

子程序：_预览按钮_被单击

局部容器：打印设置 数据类型：打印设置信息
局部容器：列数 数据类型：整数型
局部容器：容器1 数据类型：整数型

数据源1.数据提供者 ＝ “个人成绩提供者”
如果真 (数据源2.从文件读 (“base.grd”) ＝ 假)
*备注：从文件读入表格样板
信息框 (“找不到学生基本情况表格模板!”, 0, “错误”)
返回 ()
如果真结束
打开 (“chj”, , , , , , )

※备注：下面设置打印时的每页打印行数,以强制每个学生打印一页.
打印设置 ＝ 数据源1.取打印设置 ()
打印设置.每页打印行数 ＝ 数据源2.取行数 ()
※ 从数据源2读入表格模板的行数到数据源1
数据源1.置打印设置 (打印设置)

※备注：下面代码将表格模板中的每列列宽数据拷贝到数据源1
列数 ＝ 数据源2.取列数 ()
数据源1.初始尺寸 (0, 列数)
※ 从数据源2读入表格模板的列数到数据源1
※备注：下面循环读取表格模板的各列列宽到数据源1
计次循环首 (列数, 容器1)
数据源1.置列宽 (容器1, 1, 数据源2.取列宽 (容器1))
计次循环尾 ()

※备注：将所有学生的情况表顺序添加到数据源1.您也可以对此进行改进,比如每页打印两个学生表格,表格中间用空表格行隔开.
到首记录 ()
判断循环首 (尾记录后 () ＝ 假)
填充 ()
※ 在读入数据源2的模板里填充记录
数据源1.添加 (数据源2, , )
跳过 ()
判断循环尾 ()
关闭 ()
成绩表格.打印预览 ()
_个人报表窗口_创建完毕 ()
※ 在打印预览结束后刷新数据源1，使之只读入并显示首记录，而不是所有记录

㈡、打印报表

很简单，请看下列代码：

子程序：_打印按钮_被单击

如果真 (数据源1.打印设置 ())
成绩表格.打印 (真, “个人成绩表”)
※ 格式是：表格．打印 （［是否显示进度框］，［打印作业标题］）
如果真结束

总结：要实现报表打印的功能，有以下步骤要做：⑴、将表格模板文件导入到程序中；⑵、再将表格模板读入到数据源（从资源读或从文件读）；⑶、从表格控件中读入数据源的数据进行处理（显示记录等）；⑷添加打印预览和打印报表的代码。
与打印（包括报表打印）直接相关的内容包括：
⑴、数据类型：打印设置信息。成员属性包括“纸张类型”、“纸张方向”、“左边距”、“页号位置”、“打印份数”等十九项。
⑵、数据源的“打印设置”、“取打印设置”、“置打印设置”、“取打印页宽”、“取打印页高”等方法。
⑶、表格控件的“打印”和“打印预览”方法。
⑷、打印机控件的属性和方法。
报表的打印常常跟数据的显示、增删与跳转等紧密相连，这些知识前面已经讲到，就不再重复了。

[附录]本例程的全部代码：

窗口程序集：窗口程序集1

------------------------------

子程序：_个人报表窗口_创建完毕

局部容器：列数 数据类型：整数型
局部容器：容器1 数据类型：整数型

数据源1.数据提供者 ＝ “个人成绩提供者”
数据源2.从字节集读 (#个人成绩模板)
*备注：从资源中读入样板表格文件到个人成绩提供者.样板表格文件由"易之表"生成.
打开 (“chj”, , , , , , )
※备注：下面代码将表格模板中的每列列宽数据拷贝到数据源1
列数 ＝ 数据源2.取列数 ()
数据源1.初始尺寸 (0, 列数)
计次循环首 (列数, 容器1)
数据源1.置列宽 (容器1, 1, 数据源2.取列宽 (容器1))
计次循环尾 ()
填充 ()
数据源1.添加 (数据源2, , )

------------------------------

子程序：填充

数据源2.置文本 (3, 2, 到文本 (读 (“学号”)))
数据源2.置文本 (3, 4, 读 (“姓名”))
数据源2.置文本 (4, 2, 到文本 (读 (“语文”)))
数据源2.置文本 (4, 4, 到文本 (读 (“数学”)))
数据源2.置文本 (4, 6, 到文本 (读 (“英语”)))
数据源2.置数据 (6, 1, 读 (“像片”))
数据源2.置文本 (6, 4, 读 (“期末评介”))

------------------------------

子程序：_预览按钮_被单击

局部容器：打印设置 数据类型：打印设置信息
局部容器：列数 数据类型：整数型
局部容器：容器1 数据类型：整数型

数据源1.数据提供者 ＝ “个人成绩提供者”
如果真 (数据源2.从文件读 (“base.grd”) ＝ 假)
*备注：从文件读入表格样板
信息框 (“找不到学生基本情况表格模板!”, 0, “错误”)
返回 ()
如果真结束
打开 (“chj”, , , , , , )

※备注：下面设置打印时的每页打印行数,以强制每个学生打印一页.
打印设置 ＝ 数据源1.取打印设置 ()
打印设置.每页打印行数 ＝ 数据源2.取行数 ()
数据源1.置打印设置 (打印设置)

※备注：下面代码将表格模板中的每列列宽数据拷贝到数据源1
列数 ＝ 数据源2.取列数 ()
数据源1.初始尺寸 (0, 列数)
计次循环首 (列数, 容器1)
数据源1.置列宽 (容器1, 1, 数据源2.取列宽 (容器1))
计次循环尾 ()

※备注：将所有学生的情况表顺序添加到数据源1.您也可以对此进行改进,比如每页打印两个学生表格,表格中间用空表格行隔开.
到首记录 ()
判断循环首 (尾记录后 () ＝ 假)
填充 ()
数据源1.添加 (数据源2, , )
跳过 ()
判断循环尾 ()
关闭 ()
成绩表格.打印预览 ()
_个人报表窗口_创建完毕 ()

------------------------------

子程序：_打印按钮_被单击

如果真 (数据源1.打印设置 ())
成绩表格.打印 (真, “个人成绩表”)
如果真结束

------------------------------

子程序：_首记录按钮_被单击

重新显示 ()
到首记录 ()
填充 ()

------------------------------

子程序：_向前按钮_被单击

如果真 (取记录号 () ＞ 1)
重新显示 ()
跳过 (-1)
填充 ()
如果真结束

------------------------------

子程序：_向后按钮_被单击

如果真 (取记录号 () ＜ 取记录数 ())
重新显示 ()
跳过 ()
填充 ()
如果真结束

------------------------------

子程序：_尾记录按钮_被单击

重新显示 ()
到尾记录 ()
填充 ()

------------------------------

子程序：_结构按钮_被单击

载入 (结构管理窗口, , 真)

------------------------------

子程序：_查找按钮_被单击

载入 (查找窗口, , 真)

------------------------------

子程序：_删除按钮_被单击

如果真 (信息框 (“警告！你真的要删除该数据吗？删除了就不可恢复，造成严重经济损失本人概不负责，望三思！”, 52, “警告！”) ＝ 5)
删除 ()
彻底删除 ()
数据源1.置文本 (3, 2, “”)
数据源1.置文本 (3, 4, “”)
数据源1.置文本 (4, 2, “”)
数据源1.置文本 (4, 4, “”)
数据源1.置文本 (4, 6, “”)
数据源1.置数据 (6, 1, 取空白字节集 (1))
数据源1.置文本 (6, 4, “”)
如果真结束

------------------------------

子程序：_修改按钮_被单击

置当前库 (“chj”)
写 (1, 文本到数值 (数据源1.取文本 (3, 2)))
写 (2, 数据源1.取文本 (3, 4))
写 (3, 文本到数值 (数据源1.取文本 (4, 2)))
写 (4, 文本到数值 (数据源1.取文本 (4, 4)))
写 (5, 文本到数值 (数据源1.取文本 (4, 6)))
写 (6, 数据源1.取数据 (6, 1))
写 (7, 数据源1.取文本 (6, 4))
信息框 (“个人成绩情况更改成功!”, #信息图标, “写入数据”)

------------------------------

子程序：_个人报表窗口_将被销毁

关闭 ()

------------------------------

子程序：_退出按钮_被单击

关闭 ()
销毁 ()

------------------------------

子程序：_图片按钮_被单击

打开 (“chj”, , , , , , )
编辑 (, , )

------------------------------

子程序：重新显示

数据源1.数据提供者 ＝ “通用提供者1”
数据源1.从文件读 (“base.grd”)
*备注：从资源中读入样板表格文件（报表模板文件）到个人成绩提供者.样板表格文件由"易之表"生成.
打开 (“chj”, , , , , , )

（例程下载：
http://www.91asp.com/bbs.nsf/0/5ddc1ebe934c0e4848256bf800275335/$FILE/_i2f8c44ttl09sth0jnjv17f6g_.zip）

思考练习：在这里为什么用“通用提供者”控件作为数据提供者而不用“数据库提供者”控件作为数据提供者？答案可以参考前面所讲的有关通用提供者和数据库提供者的内容。


[数据库应用]报表文件的制作
这一讲我们来学习制作报表文件。所谓报表文件是一种表格形式的文件，在数据的显示、打印和保存等方面发挥重要作用。在易语言中使用的报表文件是grd格式的表格模板文件。
跟易语言的表格控件相似，表格模板文件主要是作为数据处理者来使用，但又可以自由设置表格的大小、线条、位置、字体等，可以制作跟现实生活中的表格一样的各种形式的表格，这一点易语言的表格控件是无法办到的，所以在数据库应用中我们很多时候需要使用表格文件。表格模板本身可以作为一种数据通过数据源读入到表格控件中并显示。
那易语言的表格模板文件是如何制作的？它的制作工具就是易语言系统中附带的报表编辑器（易之表）。报表的编辑方法跟我们用网页制作工具编辑网页表格的方法差不多，下面简单介绍一些编辑报表文件的方法。
⑴、打开报表编辑器。
打开易语言，选菜单“编辑→报表编辑器”即可打开。
⑵、打开或新建报表文件。
选“打开”可以打开已有的报表文件，选“新建”可以建立一个新报表文件。
⑶、删除行或删除列。
选中要删除的列，再选菜单“编辑→行列→删除列”。删除列的方法与此类似。同样我们也可以添加行或列。
⑷、合并或分解单元格。
将几个单元格合并成一个大的单元格，可以选中需要合并的单元格，然后选鼠标右键菜单“组合”。选鼠标右键菜单“分解”可以分解单元格。
⑸、将表格虚线设为实线。选中要设置实线的表格（可以选中全部表格），选菜单“单元格→边框或线条→添加全部表格线”。
⑹、对齐文字。
要对齐表格内的文字，选中表格，再选菜单“单元格→对齐方式”，再选择哪种对齐方式。
⑺、设置字体。
选菜单“单元格→字体”，设置各单元格的字体。
⑻、调整表格大小。
用鼠标拉动表头线或左端表线，可以调整表格大小。
⑼、设置单元格为图片类型。
选中单元格，选菜单“单元格→单元格类型→图片数据型”，设置此单元格位置放置的是图片。
⑽、保存文件。
最后选菜单“文件→保存”，将记录为空的表格模板保存为grd格式的文件，如“学生成绩报表.grd”。


[数据库应用]记录的查询
[数据库应用]记录的查询

记录查询在数据库应用中是非常重要的，我们上网必用的网址搜索和论坛帖子搜索其实就是应用数据库的记录查询，之前的网址登录就是添加数据记录。对于易语言的内部数据库来说，怎样进行记录查找呢？下面我们就以不用索引的查找方式为例说明，所用例库仍然是学生成绩库（chj.edb）。

★、第一步：没有例外，我们还是先把程序界面建立起来才能说明

分别建立“学号编辑框”、“姓名编辑框”、“语文编辑框”、“数学编辑框”、“英语编辑框”用来显示查找到的记录的各个字段。再建一个组合框用来选择查找的是“学号”还是“姓名”等字段。然后建一个“查找编辑框”用来输入查找的内容。再建一个“查找”按钮用来触发事件执行查找子程序。

★、第二步：设置对象属性。为了突出本讲教学重点，按系统默认（初始）属性即行，控件位置自己安排。

★、编写代码实现查找功能。先把“子程序：_查找按钮_被单击”的代码列在下面：

子程序：_查找按钮_被单击

打开 (#数据库1, , , , , , )
置当前库 (“chj”)
到首记录 ()
※ 将当前记录的指针指向首记录以便从首记录查起
如果 (查找编辑框.内容 ＝ “”)
信息框 (“你还没有选择查找项目”, 0, )
否则
如果 (组合框1.现行选中项 ＝ -1)
信息框 (“你还没有选择查找类型”, 0, )
否则
判断循环首 (查找 (到文本 (读 (组合框1.现行选中项 ＋ 1)) ＝ 查找编辑框.内容))
填充 ()
跳过 ()
判断循环尾 ()
如果结束
如果结束

查找的命令格式是：查找 （查找条件）。上面代码的主要意思是：用“到首记录 ()”先从首记录开始查起，如果找到符合条件的记录就调用“填充 ()”子程序把该记录显示出来，然后再用“跳过 ()”指向下一记录后再循环查找符合条件的记录，直到没有符合“查找 (到文本 (读 (组合框1.现行选中项 ＋ 1)) ＝ 查找编辑框.内容)”的条件时退出循环。
在这里我们还要解释“判断循环首 (查找 (到文本 (读 (组合框1.现行选中项 ＋ 1)) ＝ 查找编辑框.内容))”的意思。组合框的现行选中项的位置是从0开始，在本例中此项是“学号”，其数据库所在字段位置是1，故而读取所选字段需要表达为“读 (组合框1.现行选中项 ＋ 1)”。因为“读 （字段名称或位置）”的数据类型是通用型 ，所以“判断循环首 (查找 (到文本 (读 (组合框1.现行选中项 ＋ 1)) ＝ 查找编辑框.内容))”更好的表达方式应该是：“判断循环首 (查找 (读 (组合框1.现行选中项 ＋ 1) ＝ 查找编辑框.内容))”，但用前一个表达方式也没有什么问题，只不过为了顺便说明一下赋值式两边的数据类型怎样一致罢了。
记录的查找一般跟记录的显示、删除和更新等紧密相连，我们常常要先查找到所需记录才能对该记录进行删除和更新等操作，至于记录的显示、删除和更新等的方法在前面的课程已有解释，这里就不再重复。

[附]该例程完整代码：

窗口程序集：窗口程序集1

------------------------------

子程序：_查找按钮_被单击

打开 (#数据库1, , , , , , )
置当前库 (“chj”)
到首记录 ()
如果 (查找编辑框.内容 ＝ “”)
信息框 (“你还没有选择查找项目”, 0, )
否则
如果 (组合框1.现行选中项 ＝ -1)
信息框 (“你还没有选择查找类型”, 0, )
否则
判断循环首 (查找 (读 (组合框1.现行选中项 ＋ 1) ＝ 查找编辑框.内容))
填充 ()
跳过 ()
判断循环尾 ()
如果结束
如果结束

------------------------------

子程序：填充

学号编辑框.内容 ＝ 到文本 (读 (1))
姓名编辑框.内容 ＝ 到文本 (读 (2))
语文编辑框.内容 ＝ 到文本 (读 (3))
数学编辑框.内容 ＝ 到文本 (读 (4))
英语编辑框.内容 ＝ 到文本 (读 (5))
连续赋值 (真, 学号编辑框.可视, 姓名编辑框.可视, 语文编辑框.可视, 数学编辑框.可视, 英语编辑框.可视)
学号编辑框.获取焦点 ()
删除按钮.禁止 ＝ 假
更新按钮.禁止 ＝ 假

------------------------------

子程序：_窗口4_创建完毕

打开 (#数据库1, , , , , , )
置当前库 (“chj”)
查找编辑框.获取焦点 ()

------------------------------

子程序：_删除按钮_被单击

删除 ()
彻底删除 ()
连续赋值 (“”, 学号编辑框.内容, 姓名编辑框.内容, 语文编辑框.内容, 数学编辑框.内容, 英语编辑框.内容)
删除按钮.禁止 ＝ 真
信息框 (“删除成功”, 0, “删除成功”)

------------------------------

子程序：_按钮3_被单击

全部关闭 ()
销毁 ()

------------------------------

子程序：_更新按钮_被单击

信息框 (“请先修改再按[更新],若已修改,按[是],否则按[否]返回修改”, 4, “修改”)
写 (1, 文本到数值 (学号编辑框.内容))
写 (2, 姓名编辑框.内容)
写 (3, 文本到数值 (语文编辑框.内容))
写 (4, 文本到数值 (数学编辑框.内容))
写 (5, 文本到数值 (英语编辑框.内容))

------------------------------

子程序：_非索引窗口_将被销毁

全部关闭 ()

（例程下载：

http://www.91asp.com/bbs.nsf/c53885e4b38488454825681f0035243d/d66d346c159824ee48256bf000600c7c/$FILE/_o2f5fq4turk9r5q8jq6ng_.zip）


[数据库应用]数据的统计与运算
这一讲和下一讲介绍的是数据统计与数据排序的方法。在应用程序中数据统计与数据排序的应用很广泛，比如商业的统计排序、学生成绩的统计排序、网络竞赛的积分与排名等。这一讲先解释数据的统计，所用例库仍然是学生成绩库（chj.edb）。

★、第一步：设计程序界面并设置对象的属性

放5个编辑框分别用来显示语文一科的考试人数、缺考人数、及格人数、不及格人数、全班单科平均分、语文科及格率，依此类推，再放10个编辑框用来显示数学、英语的单科成绩统计。

★、第二步：实现对全班学生成绩的统计功能（以语文科的成绩统计为例）

㈠、确定各种统计的计算公式。以语文科的统计为例，所用的都是一些简单的算术公式：

语文科考试人数 = 全班总人数 - 语文科缺考人数
语文科及格人数 = 全班总人数 - 语文科不及格人数
语文单科平均分 = 全班语文总分 ÷ 全班总人数
语文单科及格率 = （全班总人数 - 语文科不及格人数） ÷ 全班总人数 × 100%

㈡、取得算式中各元素的变量值（给算式中的变量赋值）。

为什么要取得算式中各元素的变量值？举个例子，有一个算式：总和 = 被加数 + 加数，如果我们不知道“被加数”与“加数”的数值，怎么能够计算？如果我们知道算式中各元素的变量值就可以完成计算，比如：被加数 = 3 ，加数 = 5 ，那么我们可以得出总和为“8”的结果。
我们可以用“取记录数 ()”来表示全班总人数，至于语文科缺考人数、语文科不及格人数、全班语文总分怎样取得，要靠循环语句查找记录来累计。分别建立“语文空数据”、“语文不及格数”、“语文总分”等容器用来存放语文科缺考人数、语文不及格人数和全班语文总分。

⑴、累积计算语文科缺考人数、语文科不及格人数、全班语文总分的代码如下：

局部容器：语文空数据 数据类型：整数型
局部容器：语文不及格数 数据类型：整数型
局部容器：语文总分 数据类型：整数型

打开 (“chj”, , , , , , )
到首记录 ()
判断循环首 (尾记录后 () ＝ 假)
如果真 (到文本 (读 (“语文”)) ＝ “0”)
语文空数据 ＝ 语文空数据 ＋ 1
如果真结束
如果真 (读 (“语文”) ＞ 60)
语文不及格数 ＝ 语文不及格数 ＋ 1
如果真结束
语文总分 ＝ 语文总分 ＋ 读 (“语文”)
跳过 ()
判断循环尾 ()

⑵、以查找并累计语文科缺考人数为例，看代码：

到首记录 ()
判断循环首 (尾记录后 () ＝ 假)
如果真 (到文本 (读 (“语文”)) ＝ “0”)
语文空数据 ＝ 语文空数据 ＋ 1
跳过 ()
判断循环尾 ()

上面代码的意思是：从首记录开始查找语文字段数据为空的记录，每查到一个空数据，就让“语文空数据”的数值加1，再用“跳过 ()”循环查找下一记录。通过这样的方式来累计语文科缺考人数。累计语文科不及格人数和全班语文总分与此类似。

㈢、显示统计结果

确定了各种统计的计算公式及算式中各元素值（变量值）的取得方法，那显示统计结果的代码我们就很容易明白了，以语文科的成绩统计为例，显示统计结果的代码如下：

语文人数编辑框.内容 ＝ 到文本 (取记录数 () － 语文空数据)
※ 显示语文一科的考试人数，以“取记录数 () ”代表全班总人数
缺考编辑框.内容 ＝ 到文本 (语文空数据)
※ 显示语文一科的缺考人数
语文及格编辑框.内容 ＝ 到文本 (取记录数 () － 语文不及格数)
※ 显示语文一科的及格人数
语文不及格编辑框.内容 ＝ 到文本 (语文不及格数)
※ 显示语文一科的不及格人数
语文平均编辑框.内容 ＝ 到文本 (语文总分 ÷ 取记录数 ())
※ 显示语文一科的平均分
语文及格率编辑框.内容 ＝ 到文本 ((取记录数 () － 语文不及格数) ÷ 取记录数 () × 100) ＋ “%”
※ 显示语文一科的及格率

[附]本例程完整代码如下：

窗口程序集：窗口程序集1

------------------------------

子程序：__启动窗口_创建完毕

局部容器：语文空数据 数据类型：整数型
局部容器：数学空数据 数据类型：整数型
局部容器：英语空数据 数据类型：整数型
局部容器：语文不及格数 数据类型：整数型
局部容器：数学不及格数 数据类型：整数型
局部容器：英语不及格数 数据类型：整数型
局部容器：语文总分 数据类型：整数型
局部容器：数学总分 数据类型：整数型
局部容器：英语总分 数据类型：整数型

打开 (“chj”, , , , , , )
到首记录 ()
判断循环首 (尾记录后 () ＝ 假)
如果真 (到文本 (读 (“语文”)) ＝ “0”)
语文空数据 ＝ 语文空数据 ＋ 1
如果真结束
如果真 (到文本 (读 (“数学”)) ＝ “0”)
数学空数据 ＝ 数学空数据 ＋ 1
如果真结束
如果真 (到文本 (读 (“英语”)) ＝ “0”)
英语空数据 ＝ 英语空数据 ＋ 1
如果真结束
如果真 (读 (“语文”) ＞ 60)
语文不及格数 ＝ 语文不及格数 ＋ 1
如果真结束
如果真 (读 (“数学”) ＞ 60)
数学不及格数 ＝ 数学不及格数 ＋ 1
如果真结束
如果真 (读 (“英语”) ＞ 60)
英语不及格数 ＝ 英语不及格数 ＋ 1
如果真结束
语文总分 ＝ 语文总分 ＋ 读 (“语文”)
数学总分 ＝ 数学总分 ＋ 读 (“数学”)
英语总分 ＝ 英语总分 ＋ 读 (“英语”)
跳过 ()
判断循环尾 ()

语文人数编辑框.内容 ＝ 到文本 (取记录数 () － 语文空数据)
语文缺考编辑框.内容 ＝ 到文本 (语文空数据)
语文及格编辑框.内容 ＝ 到文本 (取记录数 () － 语文不及格数)
语文不及格编辑框.内容 ＝ 到文本 (语文不及格数)
语文平均编辑框.内容 ＝ 到文本 (语文总分 ÷ 取记录数 ())
语文及格率编辑框.内容 ＝ 到文本 ((取记录数 () － 语文不及格数) ÷ 取记录数 () × 100) ＋ “%”

数学人数编辑框.内容 ＝ 到文本 (取记录数 () － 数学空数据)
数学缺考编辑框.内容 ＝ 到文本 (数学空数据)
数学及格编辑框.内容 ＝ 到文本 (取记录数 () － 数学不及格数)
数学不及格编辑框.内容 ＝ 到文本 (数学不及格数)
数学平均编辑框.内容 ＝ 到文本 (数学总分 ÷ 取记录数 ())
数学及格率编辑框.内容 ＝ 到文本 ((取记录数 () － 数学不及格数) ÷ 取记录数 () × 100) ＋ “%”

英语人数编辑框.内容 ＝ 到文本 (取记录数 () － 英语空数据)
英语缺考编辑框.内容 ＝ 到文本 (英语空数据)
英语及格编辑框.内容 ＝ 到文本 (取记录数 () － 英语不及格数)
英语不及格编辑框.内容 ＝ 到文本 (英语不及格数)
英语平均编辑框.内容 ＝ 到文本 (英语总分 ÷ 取记录数 ())
英语及格率编辑框.内容 ＝ 到文本 ((取记录数 () － 英语不及格数) ÷ 取记录数 () × 100) ＋ “%”


[数据库应用]数据的排序
小引：与数据统计紧密相连的是数据排序。这一讲继续以学生成绩库（chj.edb）作为例库。如果我们运用学生成绩库（chj.edb），综合以前所讲的数据的显示、数据的增删、更新与跳转、数据的查询、数据的统计与排序、数据的插入，以及后面将要讲的报表的打印、数据备份与还原、数据分页显示技术、库结构编辑、数据库与数组应用、数据库格式转换等，就能作出一个功能全面的学生成绩管理系统单机版，举一反三，就算是作一个大型数据库管理系统的单机版也是可行的。或者可以说，前面及后面关于内部数据库应用的各课程，都是围绕如何制作一个全面的数据库管理系统而展开的。
代码分析：数据的排序有几种方法，运用操作内部数据库的两个命令“排序”和“计算排序”可能是初学者容易明白的方法。排序的命令格式是：

排序 （新数据库文件名，排序字段，［排序方向］，［记录条件］，［字段范围］，… ）

该命令的返回值类型是逻辑型，但是实现的功能却是创建了一个新的数据库，其记录是由原数据库根据指定字段重新排序后复制过来的。
那么在排序中怎样运用这个新创建的数据库呢？如果我们用新数据库显示数据记录，虽然我们可以看到排序的效果，但多出了一个数据库，占用了系统资源；如果删除原数据库，那么原有的数据次序又会完全消失。所以我们可以把新数据库作为临时的数据库，用完即甩，这样既达到了排序的目的，又不会占用系统资源。本例将此数据库称为“临时数据库”。
学生成绩的排名都是由大到小方向排列的，所以本例的排序命令写为：排序 （“临时数据库”，排序字段，假，，，），如果想由小到大方向排，用这个代码就行了：排序 （“临时数据库”，排序字段，，，，）。
至于“计算排序”这个命令，不是根据字段来排序，而是根据一种算式来排序，也即是按计算的结果来排序。比如，数据库里没有“学生考试平均分”这个字段，但可以通过对记录的各字段进行运算得出学生的平均分，在本例中的算式是：(读 (3) ＋ 读 (4) ＋ 读 (5)) ÷ 3，于是按这个算式进行排序的命令写为：计算排序 (“临时数据库”, (读 (3) ＋ 读 (4) ＋ 读 (5)) ÷ 3, 假, , , )

★、第一步：创建程序界面并设置对象属性

用一个大的列表框来显示所有记录或排序结果，再用八个按钮分别选择按“学号”、“姓名”、“语文”、“数学”、“英语”、“平均分”、“总分”、“序次”来排序。

★、第二步：功能实现

我们以按“语文”字段排序为例说明如何实现排序功能。思路是：先打开原数据库，用排序命令根据“语文”字段排序创建一个新数据库，再清空列表框，通过调用“排序显示（）”子程序在列表框显示新数据库的记录（排序结果），然后再关闭删除此临时数据库。代码如下：

子程序：_语文按钮_被单击

打开 (“chj”, , , , , , )
排序 (“临时数据库”, “语文”, 假, , , )
语文按钮.字体.加粗 ＝ 真
※ 让人看清排序的字段
连续赋值 (假, 姓名按钮.字体.加粗, 学号按钮.字体.加粗, 数学按钮.字体.加粗, 英语按钮.字体.加粗, 平均按钮.字体.加粗, 总分按钮.字体.加粗)
※ 突出排序的字段
排序显示 ()

------------------------------

子程序：排序显示

关闭 (“chj”)
打开 (“临时数据库”, , , , , , )
置当前库 (“临时数据库”)
列表框1.清空 ()
记录显示 ()
关闭 (“临时数据库”)
删除文件 (“临时数据库.edb”)
删除文件 (“临时数据库.EDT”)
※ 删除备注文件
------------------------------

子程序：记录显示

判断循环首 (尾记录后 () ＝ 假)
列表框1.加入项目 (取文本左边 (到文本 (读 (1)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (读 (2)) ＋ 取空白文本 (14), 14) ＋ 取文本左边 (到文本 (读 (3)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (读 (4)) ＋ 取空白文本 (11), 11) ＋ 取文本左边 (到文本 (读 (5)) ＋ 取空白文本 (11), 11) ＋ 取文本左边 (到文本 (到文本 ((读 (3) ＋ 读 (4) ＋ 读 (5)) ÷ 3)) ＋ 取空白文本 (16), 16) ＋ 取文本左边 (到文本 (到文本 (读 (3) ＋ 读 (4) ＋ 读 (5))) ＋ 取空白文本 (14), 14) ＋ 取文本左边 (到文本 (到文本 (取记录号 ())) ＋ 取空白文本 (12), 12), 取记录号 ())
跳过 ()
判断循环尾 ()

在上面的代码中，具体显示新记录的代码是：

列表框1.加入项目 (取文本左边 (到文本 (读 (1)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (读 (2)) ＋ 取空白文本 (14), 14) ＋ 取文本左边 (到文本 (读 (3)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (读 (4)) ＋ 取空白文本 (11), 11) ＋ 取文本左边 (到文本 (读 (5)) ＋ 取空白文本 (11), 11) ＋ 取文本左边 (到文本 (到文本 ((读 (3) ＋ 读 (4) ＋ 读 (5)) ÷ 3)) ＋ 取空白文本 (16), 16) ＋ 取文本左边 (到文本 (到文本 (读 (3) ＋ 读 (4) ＋ 读 (5))) ＋ 取空白文本 (14), 14) ＋ 取文本左边 (到文本 (到文本 (取记录号 ())) ＋ 取空白文本 (12), 12), 取记录号 ())

如果我们看过前面一课《整齐显示所有记录》，对这行代码就容易理解了。列表框的“加入项目”跟编辑框的“加入文本”有所不同，列表框每加入一次内容都是自动另起一行添加，所以每次添加一般都不用换行符。而编辑框的添加文本是紧接着上一文本添加的。

[color=#DC143C][附]该例程的完整代码：[/color]

窗口程序集：窗口程序集1

------------------------------

子程序：__启动窗口_创建完毕

_启动窗口.获取焦点 ()
打开 (“chj”, , , , , , )
置当前库 (“chj”)
记录显示 ()
关闭 ()

------------------------------

子程序：记录显示

判断循环首 (尾记录后 () ＝ 假)
列表框1.加入项目 (取文本左边 (到文本 (读 (1)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (读 (2)) ＋ 取空白文本 (14), 14) ＋ 取文本左边 (到文本 (读 (3)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (读 (4)) ＋ 取空白文本 (11), 11) ＋ 取文本左边 (到文本 (读 (5)) ＋ 取空白文本 (11), 11) ＋ 取文本左边 (到文本 (到文本 ((读 (3) ＋ 读 (4) ＋ 读 (5)) ÷ 3)) ＋ 取空白文本 (16), 16) ＋ 取文本左边 (到文本 (到文本 (读 (3) ＋ 读 (4) ＋ 读 (5))) ＋ 取空白文本 (14), 14) ＋ 取文本左边 (到文本 (到文本 (取记录号 ())) ＋ 取空白文本 (12), 12), 取记录号 ())
跳过 ()
判断循环尾 ()

------------------------------

子程序：_学号按钮_被单击

打开 (“chj”, , , , , , )
排序 (“临时数据库”, “学号”, 假, , , )
学号按钮.字体.加粗 ＝ 真
连续赋值 (假, 姓名按钮.字体.加粗, 语文按钮.字体.加粗, 数学按钮.字体.加粗, 英语按钮.字体.加粗, 平均按钮.字体.加粗, 总分按钮.字体.加粗)
排序显示 ()

------------------------------

子程序：排序显示

关闭 (“chj”)
打开 (“临时数据库”, , , , , , )
置当前库 (“临时数据库”)
列表框1.清空 ()
记录显示 ()
关闭 (“临时数据库”)
删除文件 (“临时数据库.edb”)
删除文件 (“临时数据库.EDT”)

------------------------------

子程序：_姓名按钮_被单击

打开 (“chj”, , , , , , )
排序 (“临时数据库”, “姓名”, 假, , , )
姓名按钮.字体.加粗 ＝ 真
连续赋值 (假, 学号按钮.字体.加粗, 语文按钮.字体.加粗, 数学按钮.字体.加粗, 英语按钮.字体.加粗, 平均按钮.字体.加粗, 总分按钮.字体.加粗)
排序显示 ()

------------------------------

子程序：_语文按钮_被单击

打开 (“chj”, , , , , , )
排序 (“临时数据库”, “语文”, 假, , , )
语文按钮.字体.加粗 ＝ 真
连续赋值 (假, 姓名按钮.字体.加粗, 学号按钮.字体.加粗, 数学按钮.字体.加粗, 英语按钮.字体.加粗, 平均按钮.字体.加粗, 总分按钮.字体.加粗)
排序显示 ()

------------------------------

子程序：_数学按钮_被单击

打开 (“chj”, , , , , , )
排序 (“临时数据库”, “数学”, 假, , , )
数学按钮.字体.加粗 ＝ 真
连续赋值 (假, 姓名按钮.字体.加粗, 语文按钮.字体.加粗, 学号按钮.字体.加粗, 英语按钮.字体.加粗, 平均按钮.字体.加粗, 总分按钮.字体.加粗)
排序显示 ()

------------------------------

子程序：_英语按钮_被单击

打开 (“chj”, , , , , , )
排序 (“临时数据库”, “英语”, 假, , , )
英语按钮.字体.加粗 ＝ 真
连续赋值 (假, 姓名按钮.字体.加粗, 语文按钮.字体.加粗, 数学按钮.字体.加粗, 学号按钮.字体.加粗, 平均按钮.字体.加粗, 总分按钮.字体.加粗)
排序显示 ()

------------------------------

子程序：_平均按钮_被单击

打开 (“chj”, , , , , , )
计算排序 (“临时数据库”, (读 (3) ＋ 读 (4) ＋ 读 (5)) ÷ 3, 假, , , )
平均按钮.字体.加粗 ＝ 真
连续赋值 (假, 姓名按钮.字体.加粗, 语文按钮.字体.加粗, 数学按钮.字体.加粗, 英语按钮.字体.加粗, 学号按钮.字体.加粗, 总分按钮.字体.加粗)
排序显示 ()

------------------------------

子程序：_总分按钮_被单击

打开 (“chj”, , , , , , )
计算排序 (“临时数据库”, 读 (3) ＋ 读 (4) ＋ 读 (5), 假, , , )
总分按钮.字体.加粗 ＝ 真
连续赋值 (假, 姓名按钮.字体.加粗, 语文按钮.字体.加粗, 数学按钮.字体.加粗, 学号按钮.字体.加粗, 英语按钮.字体.加粗, 平均按钮.字体.加粗)
排序显示 ()

------------------------------

子程序：__启动窗口_将被销毁

全部关闭 ()

------------------------------

子程序：_还原按钮_被单击

列表框1.清空 ()
__启动窗口_创建完毕 ()

------------------------------

子程序：_退出按钮_被单击

销毁 ()

例程下载：
http://www.91asp.com/bbs.nsf/c53885e4b38488454825681f0035243d/c23b5a48e011324e48256bf50008f2d3/$FILE/_k2f5fq4turk9rbh0jon2h7k7i_.zip


[数据库应用]记录的显示、增删与跳转
我们说过用数据提供者、数据源等控件配合可以自动生成记录显示的程序界面，虽然很方便，但它们能实现的功能还是有限的，灵活性也不够。比如，删除数据就直接删了，连个提示信息都没有，而正规一点的程序都应先弹出一个警告框，问你是否真的要删除数据。
所以这一讲，我们就来看看不用数据源、报表等控件怎样实现记录的显示、增删与跳转。我们会给删除按钮补充一个信息框，先询问你是否真的要删除数据，“添加”按钮给补充一个获得焦点语句使其在确认添加后能将焦点（这里指的就是光标）移到第一个编辑框上。这样就使数据的输入变得方便了。下面我们就来看看所需要的功能是如何实现的，继续沿用前面课程的学生成绩管理库（“chj.edb”）作为例库。

★、界面设计

在启动窗口上放上名称分别为“学号编辑框”、“姓名编辑框”、“语文编辑框”、“数学编辑框”和“英语编辑框”这五个编辑框（数据处理者），用来输入数据或显示记录的各个字段。再在下方放上标题为“添加”、“删除”、“更新”、“退出”、“首记录”、“向前”、“向后”、“尾记录”这八个按钮，名称分别是“添加按钮”、“删除按钮”、“更新按钮”、“退出按钮”、“首记录按钮”、“向前按钮”、“向后按钮”、“尾记录按钮”。

★、功能实现

㈠、数据记录的显示

我们在这里先设置载入程序界面时就显示首记录，并且使第一个编辑框获得焦点。子程序如下：

子程序：__启动窗口_创建完毕

打开 (#chj数据库, , , , , , )
※ 打开数据库时默认（初始）的记录指针在首记录上
置当前库 (“chj”)
学号编辑框.获取焦点 ()
填充 ()

具体实现首记录的显示要调用填充子程序。为什么要把首记录的显示另外放一个子程序呢？直接在“__启动窗口_创建完毕”子程序里放置显示记录的代码不就行了吗？原因是在其他子程序里也要显示运行后的结果（显示当前记录），所以我们把显示记录的代码另外做一个模块（子程序），以供各个子程序调用，也方便以后的修改维护。尤其是大型程序，当多个子程序都有相同的代码的时候，我们最好把这些代码另组模块来调用。在软件工程中，模块分析和模块建立是非常重要的，在这里我们也要学习一下。显示数据记录的子程序如下：

子程序：填充

如果真 (首记录前 () 或 尾记录后 ())
※ 判断记录指针是否到了首记录前面或超过了尾记录
连续赋值 (“”, 学号编辑框.内容, 姓名编辑框.内容, 语文编辑框.内容, 数学编辑框.内容, 英语编辑框.内容)
返回 ()
如果真结束
学号编辑框.内容 ＝ 到文本 (读 (1))
※用编辑框来显示记录字段
姓名编辑框.内容 ＝ 读 (2)
语文编辑框.内容 ＝ 到文本 (读 (3))
数学编辑框.内容 ＝ 到文本 (读 (4))
英语编辑框.内容 ＝ 到文本 (读 (5))

㈡、数据记录的删除

在删除记录的子程序中，我们要做几样工作：先给要删除的记录加上删除标记，再彻底删除，然后清空该记录显示，再使第一个编辑框获得焦点以方便再次输入数据，在删除之前给予提醒，让你决定是否真的删除。子程序如下：

子程序：_删除按钮_被单击

如果真 (信息框 (“警告！你真的要删除该数据吗？删除了就不可恢复，造成严重经济损失本人概不负责，望三思！”, 52, “警告！”) ＝ 5)
※ “5”表示按下了#是钮
删除 () ※ 给要删除的记录加上删除标记
彻底删除 ()
连续赋值 (“”, 学号编辑框.内容, 姓名编辑框.内容, 语文编辑框.内容, 数学编辑框.内容, 英语编辑框.内容)
学号编辑框.获取焦点 ()
如果真结束

㈢、修改数据记录

修改记录的命令格式是：修改 （［修改数据］，… ）。子程序如下：

子程序：_更新按钮_被单击

如果 (修改 (文本到数值 (学号编辑框.内容), 姓名编辑框.内容, 文本到数值 (语文编辑框.内容), 文本到数值 (数学编辑框.内容), 文本到数值 (英语编辑框.内容)) ＝ 假)
信息框 (“修改失败！”, 4, “失败”)
否则
信息框 (“修改成功！”, 4, “成功”)
如果结束

㈣、到首记录（将记录指针移到首记录）

到首记录的语句是：到首记录 （）。子程序如下：

子程序：_首记录按钮_被单击

到首记录 ()
填充 () ※ 显示首记录各字段
㈤、到尾记录

子程序：_尾记录按钮_被单击

到尾记录 ()
填充 () ※ 显示尾记录各字段

㈥、向前

将当前数据库中当前记录指针向前移动一条记录，并显示。移动记录的语句是：跳过 （［欲跳过的记录数］）。该命令的默认值为 1 ，即向后移动一条记录。子程序如下：

子程序：_向前按钮_被单击

如果真 (取记录号 () ＞ 1)
※ 使记录指针不要移到首记录之前
跳过 (-1)
※ “-1”表示指针向前移动一条记录
填充 ()
※ 显示指针移动的记录的各个字段
如果真结束

㈦、向后

子程序：_向后按钮_被单击

如果真 (取记录号 () ＜ 取记录数 ())
※ 使记录指针不会超出尾记录
跳过 ()
※ 该命令的默认值为 1 ，即向后移动一条记录
填充 ()
如果真结束

㈧、添加数据记录

为了不用多开一个窗口来添加记录，我们加上判断：当添加按钮的标题为“添加”时就清空编辑框以便输入添加的数据，然后使添加按钮的标题变为“保存”。当添加按钮的标题变为“保存”时就添加记录。添加记录也最好加上提示信息。子程序如下：

子程序：_添加按钮_被单击

如果 (添加按钮.标题 ＝ “添加”)
添加按钮.标题 ＝ “保存”
学号编辑框.获取焦点 ()
连续赋值 (“”, 学号编辑框.内容, 姓名编辑框.内容, 语文编辑框.内容, 数学编辑框.内容, 英语编辑框.内容)
否则
如果 (加记录 (文本到数值 (学号编辑框.内容), 姓名编辑框.内容, 文本到数值 (语文编辑框.内容), 文本到数值 (数学编辑框.内容), 文本到数值 (英语编辑框.内容)) ＝ 假)
信息框 (“添加记录失败！”, 0, “添加失败”)
否则
信息框 (“已成功添加为尾记录”, 0, “添加成功”)
如果结束
如果结束

（例程下载：http://www.91asp.com/bbs.nsf/c53885e4b38488454825681f0035243d/88fbcd16567942de48256bef0024560c/$FILE/_l2f5fq4turk9svl0jpav0_.zip ）


菜鸟每日一课：操作工资表数据库
现在以一个实例来说明如何操作数据库。

㈠、寻找易语言帮助文件中的“易语言知识库→数据库应用手册”，这一页有一个数据库实例“工资表数据库”，但没有操作这个数据库的示例，现在我们就补充这个示例来学习数据库的管理。

㈡、创建工资表数据库。有两种创建方法：⑴、运行“结构编辑器”来创建（请看“数据库初步应用”一课）。⑵、在程序中创建。运行本课示例程序“工资表管理面板”，点击“创建‘gz’数据库”即可创建一个名叫“gz”数据库。若原来已存在gz数据库，把它删除再重新创建看看。代码如下：

局部容器：字段表 数据类型：字段信息 数组：4

字段表 [1].名称 ＝ “姓名”
字段表 [1].类型 ＝ #文本型
字段表 [1].最大文本长度 ＝ 10
字段表 [2].名称 ＝ “工资”
字段表 [3].名称 ＝ “扣除”
字段表 [4].名称 ＝ “实发”
连续赋值 (#小数型, 字段表 [2].类型, 字段表 [3].类型, 字段表 [4].类型)
创建 (“gz”, 字段表)

在这个子程序中，“连续赋值 (#小数型, 字段表 [2].类型, 字段表 [3].类型, 字段表 [4].类型)”的意思是把这三个字段表的类型的属性值都设为小数型。

㈡、添加新记录到数据库。点击“添加某个记录”按钮，切换到添加记录窗口（“窗口1”）。
...⑴、首先要打开数据库。代码如下：

子程序名：_窗口1_创建完毕
打开 (#gz数据库, , , , , , )
置当前库 (“gz”)
...⑵、声明、定义容器（变量）。要使输入框的数据类型与数据表中相关字段的数据类型一致，就要建立新容器（声明变量），使两种数据类型统一起来。建立相关容器后下一步就是给这两个局部容器赋值（设置属性值），如“小数容器 ＝ 文本到数值 (编辑框2.内容)”，意思是将编辑框内容的数据类型（文本）转为数值型，以便跟字段（2）（名称为“工资”，类型为“小数”）的类型相一致，然后再将“编辑框2.内容”的属性值赋予“小数容器”。
  ...⑶通过下面的子程序来添加新记录到数据库：

子程序名：_按钮1_被单击
容器1 ＝ 到文本 (编辑框1.内容)
小数容器 ＝ 文本到数值 (编辑框2.内容)
查找 (容器1 ＝ 读 (1)) （将数据库中“姓名”的属性值传给“容器1）
查找 (小数容器 ＝ 读 (2))
加记录 (容器1, 小数容器)
销毁 ()

㈢、删除记录、替换记录（在这个例子里是“加薪”）、查找记录的编程思路与添加记录差不多，就不一一解说。

在“删除”子程序中用到一个循环语句：计次循环语句。目的是把数据库中的所有记录显示出来，然后从中寻找符合删除条件的记录。“计次循环首 (取记录数 (), 容器2)”的意思是循环开始，并且使循环的次数等于数据库的总记录数，“容器2”表示已循环次数记录容器，“计次循环尾 ()”表示循环结束。

㈣、在这个工资表管理程序里有一个个别的示例就是“添加张三到数据库”，如果数据库中已存在“张三”，把它删除再添加看看。语句是：加记录 (“张三”, 200)。 “200”表示字段2的数值（张三的工资数）。

㈤、在这个程序示例中，第六、七、八个按钮是读取相关记录的。试变换点击按钮六、按钮七，看看按钮八有什么变化。语句分别为：“到首记录 ()”、“到尾记录 ()”、“读 (#姓名)”。

㈥、本例程的查找不使用索引，不使用索引的查找记录方法类似如下：

到首记录 () （如果当前记录指针在首记录上，则不需要此语句）
判断循环首 (查找 (读 (#姓名) ≈ “王”))
进行所需操作。
跳过 ()
判断循环尾 ()

——————例程下载：http://www.91asp.com/bbs.nsf/0/a83d8506430fc6cc48256bbf00398d2a/$FILE/gongzhi.zip


菜鸟每日一课：数据库应用初步
㈠、本课所用程序例子：征服者多版本启动器2.0版。下载： http://dgsdwz.8u8.com/record/caidang.zip
㈡、简介：从某种意义上说，只有应用数据库的程序才算是真正的程序。我觉得桌面程序数据库的操作好象比网页数据库的操作方便得多。数据库是用来将资料信息记录下来保留到下次（或长期）用的。比如通讯录的数据库可以用来保存好友的姓名、通讯地址、电话等信息。
㈢、新建和编辑数据库。我们要在程序中运用数据库，就要先建立数据库。
...⑴、建立新数据库。运行易语言，在菜单中选“数据库→结构编辑器”来建立数据库。打开结构编辑器后填上字段信息的“名称”和“类型”等就可建立数据表的第一个字段，要建立第二个字段选“向后插入”，依此类推建立其他字段。按“保存”将新建数据库保存到程序所在目录中。从本课例子来说，是用数据库来存放三个版本程序的地址。一个简单的数据库就这样建立起来了。
...⑵、编辑数据库。运行易语言，在菜单中选“数据库→记录编辑器”，来添加、删除、修改各字段及各字段下的记录。就本课例子来说，就是设置好三个征服者游戏版本的地址。设置好后关闭记录编辑器就行了。
㈣、连接数据库。易语言连接数据库的语法非常简单。比如本课的例子，用下面的语法就可将数据库和程序连接起来：
子程序名：__启动窗口_创建完毕
打开 (#qidong数据库, , , , , , )
这表示运行程序后，就可以连接一个名叫“qidong.edb”的数据库。但这还不是真正连接了数据库。还要进行其他设置。比如本课例子还要在常量表中添加数据库这个常量，方法：点程序编辑窗口左边叫“程序”的状态条，再点常量表，在常量名称中添加数据库的名称，比如qidong数据库，再定义好常量值，比如“qidong”（注意要加双引号）。
㈤、读取数据库。包括读取、添加、删除、修改等操作。
...⑴、读取。比如本课例子中，要运行某个版本的程序，可以用“运行 (读 (3), 假, )”之类的语法来读取某个版本的程序地址并运行该版本。“读 (3)”表示读取数据表中第三个字段的数据（即征服者C版的地址）。
...⑵、修改。本课程序有一个标题为“修改数据库”的菜单，它的名称是“修改”，于是我们建立一个叫“_修改_被选择”的子程序来修改数据库（设置三个游戏版本的地址）。语法是：
子程序名：_修改_被选择
编辑 （［标题］，［编辑方式］，［字段范围］，… ）
用这个语法很简单地直接调用了易语言自带的记录编辑器。这个语法的意义可以参看易语言中的帮助文件，用关键词“数据库”来查找。

（题外话：多程序管理器的好处是精简桌面图标，集中管理相关程序，比如游戏类可以放在一起，通讯类放一起，工具类放一起，等等）


[世恒帮您学易]-数据库察看

窗口程序集：窗口程序集1

程序集容器：横线 数据类型：文本型
程序集容器：左线 数据类型：文本型
程序集容器：右线 数据类型：文本型
程序集容器：十线 数据类型：文本型
程序集容器：上左 数据类型：文本型
程序集容器：上右 数据类型：文本型
程序集容器：中左 数据类型：文本型
程序集容器：中右 数据类型：文本型
程序集容器：z 数据类型：文本型
程序集容器：倒丁 数据类型：文本型
程序集容器：丁线 数据类型：文本型
程序集容器：x 数据类型：文本型
程序集容器：w 数据类型：文本型

子程序：_按钮1_被单击

对话框.类型 ＝ 0
对话框.初始目录 ＝ 取当前目录 ()
打开 (对话框.文件名, “XS”, , , , , )
显示 ()

------------------------------

子程序：显示

局部容器：n 数据类型：整数型
局部容器：y 数据类型：文本型

编辑框2.内容 ＝ “”
置当前库 (“XS”)
到首记录 ()
表格 ()
计次循环首 (取记录数 (), n)
y ＝ y ＋ 中右 ＋ 取重复文本 (取字段尺寸 (1) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (2) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (3) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (4) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (5) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (6) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (7) ÷ 2, 横线) ＋ 中左 ＋ #换行符 ＋ “│” ＋ 读 (1) ＋ 取空白文本 (取字段尺寸 (1) － 取文本长度 (读 (1))) ＋ “│” ＋ 读 (2) ＋ 取空白文本 (取字段尺寸 (2) － 取文本长度 (读 (2))) ＋ “│” ＋ 读 (3) ＋ 取空白文本 (取字段尺寸 (3) － 取文本长度 (读 (3))) ＋ “│” ＋ 读 (4) ＋ 取空白文本 (取字段尺寸 (4) － 取文本长度 (读 (4))) ＋ “│” ＋ 读 (5) ＋ 取空白文本 (取字段尺寸 (5) － 取文本长度 (读 (5))) ＋ “│” ＋ 读 (6) ＋ 取空白文本 (取字段尺寸 (6) － 取文本长度 (读 (6))) ＋ “│” ＋ 读 (7) ＋ 取空白文本 (取字段尺寸 (7) － 取文本长度 (读 (7))) ＋ “│” ＋ #换行符
跳到 (n ＋ 1)
计次循环尾 ()
x ＝ x ＋ 右线 ＋ 取重复文本 (取字段尺寸 (1) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (2) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (3) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (4) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (5) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (6) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (7) ÷ 2, 横线) ＋ 左线 ＋ #换行符
w ＝ w ＋ “│” ＋ 取空白文本 ((取字段尺寸 (1) － 取文本长度 (取字段名 (1))) ÷ 2) ＋ 取字段名 (1) ＋ 取空白文本 ((取字段尺寸 (1) － 取文本长度 (取字段名 (1))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (2) － 取文本长度 (取字段名 (2))) ÷ 2) ＋ 取字段名 (2) ＋ 取空白文本 ((取字段尺寸 (2) － 取文本长度 (取字段名 (2))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (3) － 取文本长度 (取字段名 (3))) ÷ 2) ＋ 取字段名 (3) ＋ 取空白文本 ((取字段尺寸 (3) － 取文本长度 (取字段名 (3))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (4) － 取文本长度 (取字段名 (4))) ÷ 2) ＋ 取字段名 (4) ＋ 取空白文本 ((取字段尺寸 (4) － 取文本长度 (取字段名 (4))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (5) － 取文本长度 (取字段名 (5))) ÷ 2) ＋ 取字段名 (5) ＋ 取空白文本 ((取字段尺寸 (5) － 取文本长度 (取字段名 (5))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (6) － 取文本长度 (取字段名 (6))) ÷ 2) ＋ 取字段名 (6) ＋ 取空白文本 ((取字段尺寸 (6) － 取文本长度 (取字段名 (6))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (7) － 取文本长度 (取字段名 (7))) ÷ 2) ＋ 取字段名 (7) ＋ 取空白文本 ((取字段尺寸 (7) － 取文本长度 (取字段名 (7))) ÷ 2) ＋ “│” ＋ #换行符
z ＝ z ＋ 上右 ＋ 取重复文本 (取字段尺寸 (1) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (2) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (3) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (4) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (5) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (6) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (7) ÷ 2, 横线) ＋ 上左
编辑框2.内容 ＝ x ＋ w ＋ y ＋ z
x ＝ “”
w ＝ “”
z ＝ “”

子程序：表格

横线 ＝ “─”
左线 ＝ “┐”
右线 ＝ “┌”
十线 ＝ “┼”
上左 ＝ “┘”
上右 ＝ “└”
中左 ＝ “┤”
中右 ＝ “├”
倒丁 ＝ “┴”
丁线 ＝ “┬”


[外部数据库]外部数据库的连接原理
初学者可能会说，怎么连接外部数据库的语句（命令或称函数）都是些英文啊，比易数据库的连接难理解多了。所以如果我们明白外部数据库的连接原理应该有助于理解如“ODBC;DBQ=E:\Quake III Arena\MSAccess.mdb;DefaultDir=d:\Downloads\e21;Driver={Microsoft Access Driver (*.mdb)};”之类的存取外部数据库的语句，因为此类语句都体现了下面所讲的东西。
在易程序中连接外部数据库的框架可以这样表述：

外部数据库对象模块→外部数据提供者对象模块→外部数据源对象模块→数据处理者对象模块

那么有哪些对象或控件可以作为以上模块中的对象呢？请看：
㈠、外部数据提供者对象模块
由于数据库的安全性考虑及各种数据库之间性能结构和文件格式的差别，在应用程序中不能直接打开外部数据库，而要通过中介(外部数据提供者对象)与程序连接。目前最为流行的解决方案是：使用外部数据库连接来构建系统同数据库的关联，并根据数据库连接所提供的应用程序编程接口（API），实现对外部数据库的读取。常见的连接解决方案有：ODBC连接、DAO连接、RDO连接、ADO连接、RDS连接等。
ODBC API：Open Database Connectivity，意即“开放数据库互联”，简称ODBC，是微软公司就读取数据库提出的解决方案。外部数据提供者对象模块的应用使得应用程序采用一个统一的应用程序编程接口（API）实现对数据库的读写。ODBC提供了对多种数据库的支持，如dBase、Access、MS SQL Server及Oracle。在本书中我们主要介绍这种ODBC连接方式。
“外部数据提供者”控件和“通用提供者”控件：是易语言读取ODBC外部数据库或调用SQL查询语句的解决方案。外部数据提供者用作为数据源提供对外部ODBC数据库的存取操作。它使用外部数据库作为数据的存储仓库，不支持备注和长字节集类型字段，不支持以下数据操作接口： 1、置行高； 2、置类型； 3、置文本色； 4、置背景色； 5、置字体名； 6、置字体尺寸； 7、置字体属性； 8、置边距； 9、置文本输入格式； 10、置对齐方式； 11、置密码方式； 12、合并； 13、分解； 14、加线条； 15、删线条； 16、初始尺寸时同时改变列数； 17、在中间插入行； 18、插入列； 19、删除列。如果想对数据进行以上操作，应该先将数据通过数据源导出到通用提供者中。另外，在支持数据源的“插入行”接口时，将直接插入空白行数据，所以如果目的数据表在某字段上建立了主键索引、强制不为空等类似列约束条件时，将导致插入失败。
㈡、外部数据源对象模块
⑴、外部数据源的设定。以连接Access为例，Access数据库建立好之后，要设定系统的DSN（Data Source Name，数据源名称），才能让程序知道数据库所在的位置以及数据库的相关属性。DSN可以将所有对数据库的底层操作隐藏到ODBC的驱动程序内核里，只要构建了一个指向数据库的链接，就可以采用统一的应用程序编程接口（API）实现对数据库的读写。通过DSN来连接外部数据库的方法较麻烦，但使用DSN有这样的好处：如果移动数据库文件的位置，或是更换数据库类型，只要重新设定DSN即可，不需要去修改原来使用的程序。这种好处是使用代码连接外部数据库所没有的。
DSN的设定方法在易语言中可以这样：使用易语言提供的“数据库格式转换”功能——即Tools目录下的Dbcnv.exe程序，可双击执行，也可通过易语言主菜单“数据库->数据库格式转换”启动。建立的DSN文件的后缀名为“dsn”，如“学生数据库.dsn”。设定DSN的过程其实也是选择数据库驱动程序（数据库类型）、创建ODBC连接的过程。
⑵、易语言的“数据源”控件。数据源提供对各种来源数据的统一操作接口。数据源单元各个按钮的含义分别是：到首记录、到上一记录、到下一记录、到尾记录、添加新记录、删除当前记录。
㈢、易语言的“外部数据库”控件。
本组件提供通过ODBC对外部数据库直接操作的方法。所谓“直接操作”就是它综合了数据提供者和数据源的功能，不用通过这两者就可对外部数据库进行操作。外部数据库控件没有专有属性，也没有专有事件，它只提供通过ODBC对外部数据库直接操作的方法，包括“打开”、“关闭”、“查询”、“执行”等方法。它的功能类似于易语言的数据库命令。在易语言中连接内部数据库的语句是：

打开 （欲打开数据库的文件名，［在程序中使用的别名］，［是否只读］，［共享方式］，［用户代码］，［用户密码］，［索引文件表］，… ）

而连接外部数据库的语句是：

外部数据库．打开 （［ODBC数据源连接文本］，［是否只读］）

至于什么是“ODBC数据源连接文本”我们在下一讲会有解释


[外部数据库]设定Access的数据表索引
在Access数据库里没有“记录号”、“记录数”等概念，所以我们用惯了易数据库，转用Access数据库会感到有很多困难。在易数据库里我们经常要用“取记录号（）”、“取记录数（）”之类才能完成对数据库的查询和编辑，比如在某易数据库中修改某一记录：

跳到 （欲跳到的记录号）
修改 (文本到数值 (学号编辑框.内容), 姓名编辑框.内容, 文本到数值 (语文编辑框.内容), 文本到数值 (数学编辑框.内容), 文本到数值 (英语编辑框.内容)

如果是Access数据库，用SQL语句进行类似的修改是这样表达：

UPDATE chj SET 学号=学号编辑框.内容 姓名=姓名编辑框.内容, 语文=语文编辑框.内容,数学=数学编辑框.内容 ,英语=英语编辑框.内容 WHERE 条件式

问题是上面的“条件式”怎样确定。如果有“记录号”的概念就好办，比如“WHERE 取记录号（）=跳到的记录号”，我们就可以修改符合条件的记录。在Access数据库中，我们要设定表的索引和主键才能完成类似的功能，还常常要设置一个类型为“自动编号”的字段。
比如我们将“成绩单”数据表中的“学号”字段设置为“自动编号”类型，并设定该字段为无重复值的索引字段（默认为升序排序），再设定该字段为主键（以主键的字段值作为预设的排序依据），那“学号”这个字段就在一定程度上具有类似于易语言的记录号功能。但跟易数据库的记录号仍然不一样，因为每个自动编号的字段值是固定不变、不能被修改的，比如我们删除了一个编号为20的尾记录，然后在尾记录后再添加一笔新记录，该新记录会自动编号为21而不是20，编号为20的记录已被删除了。

㈠、设定索引

索引（Index）简单来说就是一个系统查找或排序记录的依据。一个没有设定索引的表就象是将成绩单散乱地放置再抽屉里，当我们要寻找某个学生的成绩单时，便需要大费周章才能找到。而建立索引的成绩数据就象是依姓名笔画顺序来排列的成绩单，使你寻找数据的工程轻松许多。
存放在电脑中的表也是一样，若是不经过索引，则在搜寻记录时，电脑必须逐一查看每一笔记录是否含乎搜寻的条件，在速度上就比已索引过的数据来得慢，这就是为什么我们需要索引的原因。
以下我们就将上例中的“学号”字段设定为自动编号无重复值的索引：
⑴、先将“学号”的字段类型设为自动编号类型，当然设置为其他类型也可，但要设定为自动编号才有类似于易语言的记录号功能。
⑵、打开“成绩单”数据表后，切换到视图模式，选中“学号”字段，再选“常规子夹→索引→有（无重复）”即可创建索引字段。
可再将其他字段设置为索引字段。

㈡、设定主键（Primary Key）

什么是主键？打个比方，就好像每个家庭都要有一个一家之主，这样集体分钱分粮、收缴水电费、查户口等都要先找到一家之主的名单，或公司中每个部门都有一个部门主管，内外事务由他来代表负责。在表中，通常也需要有一个字段能够做为整笔记录的代表，例如，当我们要指明某一笔订单时，最直接的反应就是说：“××号的订单”，因此订单编号就理所当然地有资格成为每笔订单的代表。总之，一笔记录中可以代表整个记录的字段就可以将其设为主键。
那么，什么样的字段才能成为主键呢？该字段需要具备下面两个条件：
⑴、字段中的每一个值都是唯一的（即不能重复）。
⑵、在意义上要具有代表性。
主键跟索引类似，本身也具备索引功能，跟索引不同的是它还是预设的排序依据；也就是说，每当我们看到表的内容时，除非另外指定要排序的字段，否则Access会先以主键字段的值做排序来显示数据。
注意，一个表中可能有多个字段具有唯一值的特性，我们一般只会挑其中一个或几个作为主键字段。通常应挑选占用储存空间较小者，因为这样在搜索、排序时效率会比较高。在上例中，“学号”字段会比“姓名”字段（姓名可能会有重复）更适宜于作为主键。
把“学号”字段设定为主键的方法：
⑴、切换到视图模式，选中“学号”字段。
⑵、点击工具栏中的主键按钮，在“学号”的行头出现一个钥匙符号，表示该字段已设定为主键。

好了，有了没有重复值的“学号”字段作为整笔记录的代表，上面例子中所说的更新记录功能就可以完成了，如：

UPDATE chj SET 学号=学号编辑框.内容 姓名=姓名编辑框.内容, 语文=语文编辑框.内容,数学=数学编辑框.内容 ,英语=英语编辑框.内容 WHERE 学号=学号编辑框.内容


[外部数据库]连接Access数据库
了解外部数据库的连接原理后，我们就来具体看看外部数据库的连接方法。在这里以连接Access数据库为例说明。
前面讲到连接外部数据库的方法有两种，一种是设置ODBC驱动程序（每一个WINDOWS中都有自带的ODBC数据库驱动器），即设定DSN、选择数据库驱动程序（数据库类型）和创建ODBC连接；另一种是运用“外部数据库”对象通过ODBC对外部数据库直接操作，即用外部数据库对象的方法调用链接外部数据库的命令（函数）。至于用哪种方法要根据各人的喜好及程序的具体情况而定，在这一讲我们来介绍第二种方法。
外部数据库对象负责与数据库进行实际的连接动作，建立与外部数据库的连接是进行数据库存取的第一步工作，若没有外部数据库对象连接数据库，则空有数据提供者、数据源等控件也没用。那我们要如何建立一个外部数据库对象呢？很简单，把“外部数据库”控件画到程序界面上就行了。我们可以给该对象重起名，也可以采用“外部数据库1”、“外部数据库2”之类的默认名。

★、连接外部数据库的范例

建立了外部数据库对象后，我们就可以利用外部数据库对象的“打开”方法来连接数据库。连接外部数据库的方法格式是：

外部数据库.打开（［ODBC数据源连接文本］，［是否只读］）

所谓“ODBC数据源连接文本”是指调用微软的ODBC数据源中所提供的连接外部数据库的代码行，该代码行作为“外部数据库.打开（）”这个方法中的文本型参数。
下例为一个连接Access 2000格式的学生.mdb数据库文件的范例：

外部数据库1.打开 （"ODBC;DBQ=d:\Downloads\e21\MSAccess.mdb;DefaultDir=d:\Downloads\e21;Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;FILEDSN=C:\Program Files\Common Files\ODBC\DataSources\a.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;
"，）

注意上面的ODBC数据源连接文本要放在“”号内。ODBC数据源连接文本内的参数并不单只这些还有很多，我们以后再慢慢了解。
以上这个代码怎样理解？我们用伪代码来解释可能容易明白一点。我们先用直译的方法看看（当然这不是真的代码）：

外部数据库1.打开 (“连接方式=ODBC；数据库文件=E:\Quake III Arena\学生.mdb；数据库目录=d:\Downloads\e21；驱动器程序={Microsoft Access Driver (*.mdb)}；驱动器编号=25；数据库类型=MS Access；DSN文件位置=C:\Program Files\Common Files\ODBC\DataSources\a.dsn；Max缓冲器大小=2048；Max扫描行=8；页暂停=5；保存事务=0；线索=3；用户名=admin；用户提交同步=Yes；
”，)

如果用易语言的方法或命令格式来表达这个外部数据库对象的“打开”方法及其中的参数，大概会是这样（当然这不是真的格式）：

外部数据库1.打开 (连接方式，数据库文件，数据库目录，驱动器程序，驱动器编号，数据库类型，DSN文件位置，Max缓冲器大小，Max扫描行，页暂停，保存事务，线索，用户名，用户提交同步，)

具体到上面的例子，如果用易语言的方法或命令格式来表达其中的参数，代码可能会是（注意这不是真的代码，只是作为理解说明用）：

外部数据库1.打开 (ODBC，E:\Quake III Arena\学生.mdb，d:\Downloads\e21，{Microsoft Access Driver (*.mdb)}，25;MS Access，C:\Program Files\Common Files\ODBC\DataSources\a.dsn，2048，8，5，0，3，admin，Yes，，)

注意上面的方法格式及代码只有一个是真的，其余的伪格式、伪代码是用来解释真的格式及代码。下面再分别解释范例代码中的内容及主要参数的意义：
⑴、该外部数据库对象的名称为“外部数据库1”。
⑵、“ODBC；”：指明连接方式采用ODBC连接。
⑶、使用参数（变量）Driver来指定我们要使用的数据库驱动程序：Driver={Microsoft Access Driver (*.mdb)}。
⑷、使用参数变量DBQ来指定数据库文件所在位置，可以自己设置：DBQ=d:\Downloads\e21\MSAccess.mdb。
⑸、使用参数变量DefaultDir来指定数据库所在目录，可以自己设置： DefaultDir=d:\Downloads\e21。
⑹、使用参数变量FILEDSN指定DSN文件所在位置，可以自己设置：FILEDSN=C:\Program Files\Common Files\ODBC\Data Sources\a.dsn。
⑺、使用参数变量UID指定数据库可访问的用户名，如果你没有设置用户安全设置，就不起作用，可以自己设置：UID=admin 。
⑻、使用参数变量pwd设置访问密码，设置访问密码后，UID就会生效，注意要先用ACESS里设置密码，这个功能可自行使用，可以自己设置：pwd=admin
⑼、使用外部数据库对象“打开”的方法来打开指定的数据库文件。


[外部数据库]关于ODBC数据源连接文本
在《外部数据库的连接原理》一讲中我们说过，ODBC提供对多种数据库的支持，如dBase、Access、MS SQL Server及Oracle，也就是说运用ODBC数据源中所提供的连接代码，我们可以实现对多种数据库的连接。以连接Access数据库为例，ODBC数据源连接文本的格式是：

“Driver={数据库驱动程序};Dbq=数据库文件;”

在以上连接文本中，如果数据库跟程序在同一目录下，或者用变量DefaultDir指定了数据库所在目录，则数据库文件可以不用全路径名，如下即可：

“ODBC;DBQ=MSAccess.mdb;Driver={Microsoft Access Driver (*.mdb)};”

如下也可：

“ODBC;DBQ=MSAccess.mdb;DefaultDir=d:\Downloads\e21;Driver={Microsoft Access Driver (*.mdb)};”

如果数据库跟程序不在同一目录下，或者没有用变量DefaultDir指定数据库所在目录，则数据库文件需要用全路径名，如下：

“ODBC;DBQ=E:\Quake III Arena\MSAccess.mdb;Driver={Microsoft Access Driver (*.mdb)};”

以上所说的是连接Access数据库的格式，那么连接其他数据库的ODBC数据源连接文本又是怎样的？连接不同类型的数据库要使用不同的对应驱动程序，没忘记吧！不同的驱动程序当然它们的参数组合也就不同了，每一种不同驱动程序都有其特定的的参数形式：

⑴、MS Access ODBC DSNless 连接：

☆、参数：Driver 设置值：{Microsoft Access Driver (*.mdb)}
☆、参数：Dbq 设置值：实际路径文件名称
☆、例句：
“Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\somepath\dbname.mdb;Uid=Admin;Pwd=pass; ”

⑵、dBase ODBC DSNless 连接：

☆、参数：Driver 设置值：{Microsoft dBASE Driver (*.dbf)}
☆、参数：Dbq 设置值：实际路径文件名称
☆、例句：
“Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\somepath\dbname.dbf; ”

⑶、Oracle ODBC DSNless 连接：

☆、参数：Driver 设置值：{Microsoft ODBC for Oracle}
☆、参数：Dbq 设置值：实际路径文件名称
☆、例句：
“Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=admin;Pwd=pass; ”

⑷、MS SQL Server DSNless 连接：

☆、参数：Driver 设置值：{SQL Server};
☆、参数：Server 设置值：服务器名称
☆、参数：Database 设置值：数据表名称
☆、参数：Uid 设置值：用户名称
☆、参数：Pwd 设置值：密码
☆、例句：
“Driver={SQL Server};Server=servername;Database=dbname;Uid=sa;Pwd=pass; ”

⑸、MS Text Driver DSNless 连接：

☆、参数：Driver 设置值：{Microsoft Text Driver (*.txt; *.csv)}
☆、参数：Dbq 设置值：实际路径文件名称
☆、例句：
“Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\somepath\;Extensions=asc,csv,tab,txt;Persist Security Info=False; ”

⑹、Visual Foxpro DSNless 连接：

☆、参数：Driver 设置值：{Microsoft Visual FoxPro Driver}
☆、参数：SourceType 设置值：DBC
☆、参数：SourceDB 设置值：实际路径文件名称
☆、例句：
“Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c:\somepath\dbname.dbc;Exclusive=No;”

⑺、MySQL DSNless 连接：

☆、参数：Driver 设置值：{mysql}
☆、参数：database 设置值：数据表名称
☆、参数：uid 设置值：用户名称
☆、参数：pwd 设置值：密码
☆、例句：
“driver={mysql}; database=yourdatabase;uid=username;pwd=password;option=16386”


[外部数据库]Access数据库应用综合例程
有了前面的外部数据库的知识垫底，我们就来制作一个简单的学生成绩管理系统，通过它来学习如何实现查询、到首记录、到尾记录、到上一记录、到下一记录等查询动作以及增删、更新等编辑动作。

★、步骤一：设置数据库及程序界面

㈠、建立一个名为“学生.mdb”的数据库，并新建一个名为“chj”的成绩表，加上“学号”、“姓名”、“语文”、“数学”、“英语”五个字段，设置“学号”字段的类型为“自动编号”，并设定为主键。
㈡、在启动窗口中加上名为“学号编辑框”、“姓名编辑框”、“语文编辑框”、“数学编辑框”、“英语编辑框”这五个编辑框作为数据处理者，再加上标题为“到首记录”、“上一记录”、“下一记录”、“到尾记录”、“添加记录”、“查询记录”、“修改记录”、“删除记录”这五个按钮。
㈢、将学号编辑框的“输入方式”属性设为“只读方式”。

★、步骤二、编写实现程序功能的各子程序代码

㈠、打开数据库并显示首记录：

子程序：__启动窗口_创建完毕

如果真 (外部数据库1.打开 (“ODBC;DBQ=学生.mdb;Driver={Microsoft Access Driver (*.mdb)};”, ))
记录集句柄 ＝ 外部数据库1.查询 (“select * from chj ”)
如果真结束
如果 (记录集句柄 ＝ 0)
信息框 (“查询失败！”, 0, )
否则
如果结束
外部数据库1.到首记录 (记录集句柄)
显示记录 ()
姓名编辑框.获取焦点 ()

㈡、显示记录子程序：

子程序：显示记录

学号编辑框.内容 ＝ 到文本 (外部数据库1.读 (记录集句柄, 1))
姓名编辑框.内容 ＝ 外部数据库1.读 (记录集句柄, 2)
语文编辑框.内容 ＝ 到文本 (外部数据库1.读 (记录集句柄, 3))
数学编辑框.内容 ＝ 到文本 (外部数据库1.读 (记录集句柄, 4))
英语编辑框.内容 ＝ 到文本 (外部数据库1.读 (记录集句柄, 5))

㈢、到首记录：

子程序：_首记录按钮_被单击

外部数据库1.到首记录 (记录集句柄)
显示记录 ()

㈣、到尾记录：

子程序：_尾记录按钮_被单击

外部数据库1.到尾记录 (记录集句柄)
显示记录 ()

㈤、到上一记录：

子程序：_向前按钮_被单击

外部数据库1.到前一记录 (记录集句柄)
如果 (外部数据库1.首记录前 (记录集句柄))
信息框 (“前面已无记录！”, 0, )
外部数据库1.到首记录 (记录集句柄)
否则
显示记录 ()
如果结束

㈥、到下一记录：

子程序：_向后按钮_被单击

外部数据库1.到后一记录 (记录集句柄)
如果 (外部数据库1.尾记录后 (记录集句柄))
信息框 (“后面已无记录！”, 0, )
外部数据库1.到尾记录 (记录集句柄)
否则
显示记录 ()
如果结束

㈦、添加记录。下面为什么要加上一个“检查输入”子程序？因为下面所用的SQL指令要求所有项目都要输入，但有时有些字段不用输入，所以就用“？”或“0”号来代替。如下：

子程序：_添加按钮_被单击

检查输入 ()
如果 (添加按钮.标题 ＝ “添加记录”)
添加按钮.标题 ＝ “保存记录”
学号编辑框.获取焦点 ()
连续赋值 (“”, 学号编辑框.内容, 姓名编辑框.内容, 语文编辑框.内容, 数学编辑框.内容, 英语编辑框.内容)
否则
如果 (外部数据库1.执行 (“INSERT INTO chj ” ＋ “(学号,姓名,语文,数学,英语)” ＋ “ valueS ” ＋ “(” ＋ 学号编辑框.内容 ＋ “,’” ＋ 姓名编辑框.内容 ＋ “’,’” ＋ 语文编辑框.内容 ＋ “’,’” ＋ 数学编辑框.内容 ＋ “’,’” ＋ 英语编辑框.内容 ＋ “’)”) ＝ 假)
信息框 (“添加记录失败，请检查是否连接数据库,或填写类型是否适当”, 0, “添加失败”)
否则
信息框 (“已成功添加为尾记录”, 0, “添加成功”)
外部数据库1.重新查询 (记录集句柄)
添加按钮.标题 ＝ “添加记录”
如果结束
如果结束
------------------------------
子程序：检查输入
备注：保证任一编辑框的内容都不为空

如果真 (学号编辑框.内容 ＝ “”)
学号编辑框.内容 ＝ “0”
如果真结束
如果真 (姓名编辑框.内容 ＝ “”)
姓名编辑框.内容 ＝ “？”
如果真结束
如果真 (语文编辑框.内容 ＝ “”)
语文编辑框.内容 ＝ “0”
如果真结束
如果真 (数学编辑框.内容 ＝ “”)
数学编辑框.内容 ＝ “0”
如果真结束
如果真 (英语编辑框.内容 ＝ “”)
英语编辑框.内容 ＝ “0”

㈧、修改记录：

子程序：_更新按钮_被单击

如果 (更新按钮.标题 ＝ “修改记录”)
信息框 (“请直接修改编辑框的内容,然后按” ＋ #左引号 ＋ “保存修改” ＋ #右引号, 0, “修改”)
姓名编辑框.获取焦点 ()
更新按钮.标题 ＝ “保存修改”
否则
如果 (外部数据库1.执行 (“UPDATE chj SET 姓名=” ＋ “’” ＋ 姓名编辑框.内容 ＋ “’,” ＋ “语文=” ＋ “’” ＋ 语文编辑框.内容 ＋ “’,” ＋ “数学=” ＋ “’” ＋ 数学编辑框.内容 ＋ “’,” ＋ “英语=” ＋ “’” ＋ 英语编辑框.内容 ＋ “’ ” ＋ “WHERE 学号=” ＋ 学号编辑框.内容) ＝ 假)
信息框 (“修改失败！”, 0, “失败”)
否则
信息框 (“修改成功！”, 0, “成功”)
外部数据库1.重新查询 (记录集句柄)
更新按钮.标题 ＝ “修改记录”
如果结束

㈨、删除记录：

子程序：_删除按钮_被单击

如果真 (信息框 (“如果你真的想删除当前记录，请按” ＋ #左引号 ＋ “是” ＋ #右引号, 4, “删除”) ＝ 5)
如果 (外部数据库1.执行 (“DELETE * FROM chj ” ＋ “WHERE 学号=” ＋ 学号编辑框.内容) ＝ 假)
信息框 (“删除失败！”, 0, “失败”)
否则
信息框 (“删除成功！”, 0, “成功”)
外部数据库1.重新查询 (记录集句柄)
删除按钮.标题 ＝ “删除记录”
显示记录 ()

㈩、查询记录。为了精简启动窗口的界面，我们把查询放在“查询窗口”进行：

窗口程序集：窗口程序集2
------------------------------
子程序：_查找按钮_被单击

_启动窗口.外部数据库1.到首记录 (记录集句柄)
如果 (查找编辑框.内容 ＝ “”)
信息框 (“你还没有选择查找项目”, 0, )
否则
如果 (组合框1.现行选中项 ＝ -1)
信息框 (“你还没有选择查找类型”, 0, )
否则
如果 (组合框1.内容 ＝ “姓名”)
记录集句柄 ＝ _启动窗口.外部数据库1.查询 (“select * from chj where ” ＋ 组合框1.内容 ＋ “=” ＋ “’” ＋ 查找编辑框.内容 ＋ “’”)
否则
记录集句柄 ＝ _启动窗口.外部数据库1.查询 (“select * from chj where ” ＋ 组合框1.内容 ＋ “=” ＋ 查找编辑框.内容)
如果结束
_启动窗口.外部数据库1.重新查询 (记录集句柄)
显示记录 ()
_启动窗口.外部数据库1.关闭记录集 (记录集句柄)
如果结束
如果结束
------------------------------
子程序：显示记录

列表框1.清空 () ※ 防止再次操作的时候留下上次加入的项目
判断循环首 (_启动窗口.外部数据库1.尾记录后 (记录集句柄) ＝ 假)
列表框1.加入项目 (取文本左边 (到文本 (_启动窗口.外部数据库1.读 (记录集句柄, 1)) ＋ 取空白文本 (7), 7) ＋ 取文本左边 (到文本 (_启动窗口.外部数据库1.读 (记录集句柄, 2)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (_启动窗口.外部数据库1.读 (记录集句柄, 3)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (_启动窗口.外部数据库1.读 (记录集句柄, 4)) ＋ 取空白文本 (10), 10) ＋ 取文本左边 (到文本 (_启动窗口.外部数据库1.读 (记录集句柄, 5)) ＋ 取空白文本 (10), 10), )
_启动窗口.外部数据库1.到后一记录 (记录集句柄)
判断循环尾 ()

★、步骤三、测试运行程序，看看有什么bug（问题）需要解决。通过测试，以上程序虽然简单，还有很多功能需要完善，但基本的功能已经实现，可以作为学习或应


[外部数据库]创建Access数据库新表
从这一讲开始暂时放下易语言内部数据库,转入到易外部数据库的学习。易语言本身附带的数据库虽然可以使我们能够创建数据库应用系统，但如果能够连接操作外部的数据库，那易语言就能涉足广泛的数据库应用领域，整体功能上就会进大大增强。
除了易语言本身的数据库（文件后缀名为edb），我们将其他数据库系统称为易外部数据库，比如微软的Access数据库（文件后缀名为mdb）、dBase数据库（文件后缀名为dbf）、Visual Foxpro数据库（文件后缀名为dbc）、MS SQL Server大型数据库、MySQL大型数据库等 。由于微软的Access数据库（目前的版本是Access 2000）是目前应用最广泛的个人桌面型数据库，所以在外部数据库应用讲座中我们就以Access数据库为例。
跟易数据库不同，Access数据库内可以有多个表，比如一个学生管理系统数据库内包含学生成绩表、学生基本情况表、管理人员表等多个表。这样就很方便地将相关的字段集中在一起管理，各个表之间又可以相互关联。微软的Access数据库软件界面或一个表的界面大约跟易之表相似，但功能更强大。
所谓的表就是关联式数据库中的表格，在储存数据到数据库之前，一定得先在数据库中建立表，让数据有地方可以储存，这样才算一个完整的数据库。由于Access 2000数据库属于Office 2000家族的一员,所以可以在Office 2000内取得,且界面与Office 2000家族相似,学习起来基本上没有什么障碍。
Access数据库的建立方法可以分成两个阶段，第一个阶段是根据要输入的数据性质，新增表并设置表的字段名称、数据类型和语句；第二个阶段是在表内输入数据。
下面就以建立学生数据库（学生.mdb）中的学生成绩表（chj）为例说明如何建立Access数据库。
㈠、打开Microsoft Access 2000，屏幕上会出现如图10-6所示的对话框,请选取“空Access数据库”，然后按“确定”。
㈡、出现“文件新建数据库”对话框，请指定新数据库的储存位置、文件名称（本例为“学生.mdb”），然后按“创建”。
㈢、出现名为“学生数据库”的窗口，请在“使用设计器创建表”上双击鼠标左键。
㈣、在“字段名称”输入表的第一个字段名称“学号”，在“数据类型”的下拉菜单中选“数字”，然后在“说明”中输入“学号”字段的说明文字，如图10-9所示。
㈤、依此类推，分别设置“姓名”、“语文”、“数学”、“英语”等字段，然后关闭表，此时，Office助手会询问您是否储存表,请点取“是”。
㈥、在“另存为”对话框的“表名称”框中输入表的名称为“chj”，然后按“确定”。
接着询问您是否在表上加上主键，如果我们想增加表，建立关系型数据库，可以选“是”，否则选“否”，在这里我们先选“否”。
㈦、“学生数据库”窗口新增了如图10-12所示的表的名称（“chj”）。
㈧、在“学生数据库”窗口新增的表的名称上双击鼠标左键，依次输入记录，完毕后可以关闭Access，Access会自动存盘。如果您再想建立其他表，可以重复以上㈢—㈧的步骤。


问在易语言中如何访问有密码的access文件！！
在易语言中如何访问有密码的access文件！！
下面是我写的
(外部数据库1.打开 (“ODBC;DBQ=ccd.mdb;Driver={Microsoft Access Driver (*.mdb)};UID=admin;PASS=12345;”, ))

但不知为何，每次打开程序时，总会跳出输入密码的窗口，是不是我上面的程序写的有问题？请高手指教！？谢谢！

答：应该如下这么写，不是pass而是pwd
(外部数据库1.打开 (“ODBC;DBQ=ccd.mdb;Driver={Microsoft Access Driver (*.mdb)};UID=admin;Pwd=12345;”, ))


用ODBC操纵MS_Access数据库,欢迎下载！
演示用ODBC操纵MS_Access数据库。
关键是“外部数据库”组件的使用，提供了详细的解说,且附带一个Word帮助文档。

以下是全部源代码：

//----------------------------------------------------------------------------
窗口程序集：窗口程序集1

程序集容器：记录集句柄 数据类型：整数型

------------------------------

子程序：_连接外部数据库按钮_被单击

如果真 (外部数据库1.打开 (, ))
记录集句柄 ＝ 外部数据库1.查询 (“select * from books”)
*备注：books: 是数据库中“表”的名称，表的名称在设计数据库时就已经决定了。“select * from books”是一个SQL语句，意思就是选择(select)"表books"中的所有字段。
如果 (记录集句柄 ＝ 0)
信息框 (“查询失败！”, 0, )
否则
外部数据库1.到首记录 (记录集句柄)
读取并显示当前记录 ()
※备注：连接成功之后，立即显示第一条记录。
如果结束
如果真结束

------------------------------

子程序：__启动窗口_将被销毁

外部数据库1.关闭记录集 (记录集句柄)
外部数据库1.关闭 ()
※备注：两者都要关闭！别忘了！

------------------------------

子程序：_查看连接文本按钮_被单击

信息框 (外部数据库1.取连接文本 () ＋ #换行符 ＋ #换行符 ＋ “以上仅供参考。Liigo向各位问好！”, 0, “当前ODBC数据源连接文本（由” ＋ #左引号 ＋ “取连接文本()” ＋ #右引号 ＋ “获得）：”)
※备注：调用命令“取连接文本 ()”以获取数据源连接文本。获取的文本只是让大家有一些感性认识，此处不用。

------------------------------

子程序：_查看前一记录按钮_被单击

外部数据库1.到前一记录 (记录集句柄)
如果 (外部数据库1.首记录前 (记录集句柄))
信息框 (“前面已无记录！”, 0, )
外部数据库1.到首记录 (记录集句柄)
否则
读取并显示当前记录 ()
如果结束

------------------------------

子程序：_查看后一记录按钮_被单击

外部数据库1.到后一记录 (记录集句柄)
如果 (外部数据库1.尾记录后 (记录集句柄))
信息框 (“后面已无记录！”, 0, )
外部数据库1.到尾记录 (记录集句柄)
否则
读取并显示当前记录 ()
如果结束

------------------------------

子程序：_首记录按钮_被单击

外部数据库1.到首记录 (记录集句柄)
读取并显示当前记录 ()

------------------------------

子程序：_尾记录按钮_被单击

外部数据库1.到尾记录 (记录集句柄)
读取并显示当前记录 ()

------------------------------

子程序：读取并显示当前记录
备注：这是自定义子程序

编辑框1.内容 ＝ 到文本 (外部数据库1.读 (记录集句柄, 1))
编辑框2.内容 ＝ 外部数据库1.读 (记录集句柄, 2)
编辑框3.内容 ＝ 外部数据库1.读 (记录集句柄, 3)
编辑框4.内容 ＝ 外部数据库1.读 (记录集句柄, 4)
编辑框5.内容 ＝ 外部数据库1.读 (记录集句柄, 5)
编辑框6.内容 ＝ 到文本 (外部数据库1.读 (记录集句柄, 6))
编辑框7.内容 ＝ 外部数据库1.读 (记录集句柄, 7)

※备注：以上7行分别读取数据库中的7个字段信息，并显示到对应的编辑框中。
※备注：命令“读（）”所返回的数据的数据类型，就是设计数据库时确定的数据类型（不确切，但可以这么理解）。因为要把它们显示到编辑框中，所以不是“文本型”的要进行类型转换。
※备注：命令“读（）”的第二个参数也可以是字段名称。如上面的第一行就等价于： 编辑框1.内容 ＝ 到文本 (外部数据库1.读 (记录集句柄, “编号”))。 “编号”是什么？数据库的第一个字段的名称呀！是设计数据库时就确定的。
※备注：有人问，你Liigo怎么知道这个数据库有7个字段？你又怎么知道的各字段的数据类型和名称？哈哈，我设计的数据库，我当然知道了！（如果要操纵别人设计的数据库，也必须事先了解这些信息。）
※备注：您的朋友Liigo祝你生活愉快！ Liigo@chinaren.com 2002/3/20

------------------------------

子程序：_退出按钮_被单击

销毁 ()

/////////////////////////////////////////////////////////////源代码结束。

另注：用“外部数据库．执行（）”可以处理其它SQL语句如：Insert Update Delete...

点击浏览该文件


数据库疑难短问短答（一）

★、我建立了启动窗口，并添加了一个连接到数据库的按钮，想连接到自己建的数据库上。 在写命令是是抄袭例程的。输入“如果真 (外部数据库1.打开 (, ))”， 但系统提示无此容器，怎么解决？应该在什么位置定义容器？
西风：外部数据库是一个控件，你得先添加到窗口中去。
★、我的数据库中有10000条记录，如果创建索引的话，能加快记录的查找速度吗？
西风：绝对能。尤其是对记录数很多的数据库，那速度对比绝对非常明显的。注意创建索引后，要用“索引查找（）”，如果继续用“查找（）”，那…………
你可以在数据库打开时就打开索引，至于创建索引么，随你什么时候了。用易的数据库编辑器都可以。 反正你要做的就是保证在需要用索引的时候，它已经创建并打开。
★、请问数据库常量中的用户习惯是什么意思？
小米虫：就是你最后一次打开的数据库。
★、我在写记录的时候遇到下面的问题,麻烦给我讲一下是为什么呢?
1: 计次循环首 (图片列表框.取项目数 (), 图片数目)
加记录 (图片列表框.取项目文本 (图片数目 － 1))
计次循环尾 ()
2: 计次循环首 (图片列表框.取项目数 (), 图片数目)
写 (图片数目,图片列表框.取项目文本 (图片数目 － 1))
计次循环尾 ()
3: 计次循环首 (图片列表框.取项目数 (), 图片数目)
写字段(图片数目,,图片列表框.取项目文本 (图片数目 － 1))
计次循环尾 ()
除了第一句以外.后面两个操作都没有加入记录,是为什么呢?我的当前数据库里面有记录的。
世恒：加纪录（）在操作时加入一条纪录
写（）必须对已存在的纪录操作，不能加入纪录，可以先加入空纪录，再用写操作
写字段（）用法同“写（）” 。
★、我在写记录的时候遇到下面的问题,麻烦给我讲一下是为什么呢?
1: 计次循环首 (图片列表框.取项目数 (), 图片数目)
加空记录（）
写 (图片数目，图片列表框.取项目文本 (图片数目 － 1))
计次循环尾 ()
为什么只能写一个记录呢？
猛子：
计次循环首 (列表框1.取项目数 (), 图片数目)
加空记录 ()
写 (1, 列表框1.取项目文本 (图片数目 － 1))
计次循环尾 ()
〈逻辑型〉 写 （字段名称或位置，［欲写入数据］）第一个参数是字段名,不是行号 。
★、我想做一个数据库浏览器，可以象列表一样一行行的列出来，而且当前位置可以反色。 我应该有什么方法？或者有什么列程吗？大家一定要帮帮忙呀，我先谢了！
Candy：使用表格，数据源，数据库提供者控件实现，可以看E自带的表格教程。
★、表格的数据源如何确定和如何打印表格？譬如一个“易”数据库，如何把它作为表格显示在窗口上？又如何打印出来?
猛子：表格1.打印预览
飞扬工作室：看一下"易之表"里面的对应代码。
★、易语言的数据库用记事本就可以打开，并且可以修改数据。虽然格式不同于记事本，感觉这样不很安全。 能否在以后做上一些加密措施？
tianyu1398：现在可以自己加密呀.我昨天解决好了这个问题,把源程序帖在论坛了 [image] http://eyuyan.com/cgi-bin/lb5000/topic.cgi?forum=1&;topic=3240&show=25
★、我要做一个客房管理的东东，是一个房间做一个库好还是全部房间都用一个库，或者还有其他的方法，能不能指点一下？
世恒：那就根据实际情况，但一般来说建一个库就差不多了。
★、怎要怎样把数据表格里的记录按符合条件记录重新显示在表格里？
西风：易的表格目前好象不支持条件筛选的。只能显示库中所有记录。笨办法是：先对数据库进行条件筛选，生成另外一个临时数据库，再在表格中显示临时数据库的内容。
世恒： 下载“世恒婚介管理系统“看看，里面有相关方法！
★、 易程序的表格文件能否转化为其他文件，比如edb文件，txt文件，mdb文件，xls文件。如果能够转化，应该如何转化，我认为至少应该可以转化我edb文件，以及txt文件，这样我才能够将表格文件转化我其他支持txt文件转化的文件格式，比如mdb文件。
飞扬工作室：所有数据提供者之间的数据格式都可以互相转换。比如将表格文件转换为edb,你可以通过将通用提供者中的数据添加到数据库提供者中即可。
★、在已有数据的表格里，怎样把表格里的数据清除后，再把数据库里符合条件的记录一条一条的加在表格里？
猛子：去看看《学生管理系统2.1》，那里边就有。


数据库疑难短问短答（二）
★、将所有局部容器都设置为全局容器，这样可以随时调用，对程序运行有影响吗？
bb88：有影响，比如你找一个空间存放运行你的程序，假如全局变量过多，空间商会取消你的空间。
西风：占用的内存资源： 全局容器>程序集容器>局部容器。不到万不得已，还是用局部容器好。
jak：太多的全局变量会使程序运行缓慢，比如说循环一个有50个字段10000条记录的数据库，呵呵。尽量使用局部变量或者程序集变量，可以不使用变量的最好就不使用。
★、请问如何查找一个字? 也就是说要查找一个字,第一个字,第二个字的项目也要列出。
xuexiyi：请参考《区号邮编易查询》。
★、子程序：__启动窗口_创建完毕

打开 (#shi数据库, , , , , , )
判断循环首 (取反 (尾记录后 ()))
列表框1.加入项目 (读 (1), 取记录号 ())
跳过 ()
判断循环尾 ()
※就是讲一下，它的运行方法，和作用，我没有理解到。谢谢。

电脑狂：我下面的子程序跟你那个子程序是等效的，只是各人使用的习惯不一样罢了，建议最好使用你说的那个， 因为可以不用定义局部容器，她的好处都明白了？

子程序2
局部容器：容器1 数据类型：整数型

容器1 ＝ 1
计次循环首 (取记录数 (), 容器1)
跳到 (容器1)
列表框1.加入项目 (读 (1), 容器1)
计次循环尾 ()
※再来解释“判断循环首 (取反 (尾记录后 ()))”这一句：
判断循环首（条件）：
本命令根据提供的逻辑参数的值，来决定是否进入循环。如果提供的逻辑参数值为真，程序顺序执行下一条命令进入循环，否则跳转到本命令所对应的“判断循环尾”命令的下一条命令处以跳出循环。
取反 （被反转的逻辑值）：
如果参数值为真则返回假，如果参数值为假则返回真。
尾记录后 （）：
如果当前数据库的当前记录指针已在尾记录的后面，返回真，否则返回假。
判断循环首 (取反 (尾记录后 ()))：
意思是：如果当前记录指针没有在尾记录的后面，就执行循环。
例如：库中共有50条记录，现在当前记录指针指向第30号记录，那么，“尾记录后 ()”就等于“假”，而“取反 (尾记录后 ())”就等于“真”，执行循环体。OK?

西风：呵呵，“判断循环首（取反（尾记录后（）））”的意思就是：“判断循环首（尾记录后（）=假）” 。就是判断当前记录是否已到了数据库尾。各人的喜欢而已，我就比较喜欢用后者。
★、"将数据通过数据源导出到通用提供者中"，请大虾说说如何实现？谢谢！
pingwind：易之表例程中的"浏览数据库"就是那么做的。直接运行E，选该例程，或者打开E目录下的“egrid.e”即可。
★、如何能实现“数据库”的排序？
西风：易语言自己就有数据库排序命令，其实我觉得易语言知识库对我帮助还是挺大的，去找一找吧。
★、请教易语言的数据库中有没有象VFP中的LIST命令，或者类似的，能直接完整的
显示数据库的内容的命令或方法？
大伟：数据库提供者1.数据库文件名 ＝ “xxx.edb”这句话算不算？
jak：呵呵，“表格”控件就是LIST吧。
★、哪位大侠写过打印数据库程序的请给小弟推荐一个？不是打印表格，是按记录一个一个打印。
电脑狂：《通用库管理器28》，交流园地和我的主页上都有。
★、下面一段程序是删除当前记录的。请问为什么要在后面加“数据库提供者1.数据库文件名 ＝ “chj.edb”才能真正删除该数据库中的当前记录？当后面没有这一句时，不会删除当前记录，而是变当前记录为空记录。程序如下：

子程序名：_删除按钮_被单击
删除 ()
彻底删除 ()
编辑框1.内容 ＝ “” （清除该字段的内容）
编辑框2.内容 ＝ “”
编辑框3.内容 ＝ “”
编辑框1.获取焦点 ()
数据库提供者1.数据库文件名 ＝ “chj.edb”

大伟：数据库提供者1.数据库文件名 ＝ “chj.edb” 是对数据库进行重新刷新。程序中处理完记录后，采用此此语句可使记录得到同步更新，在对表格进行操作时，这种现象最明显。用按钮来删除跟“数据源”中的一个删除功能没有冲突。
★、我的程序有下面句子：

打开 (#aaa数据库, , , , , , )
运行 (读 (地址1), 假, )

但“运行 (读 (地址1), 假, )”并不执行，提示“错误(20003)：现行容器或参数不能接受空数据”，为什么？
世恒：问题是你没有定义常量值,却又调用常量。比如没有在常量表中将qidong数据库的常量值命名为“qidong”之类，所以就成了所谓的“空数据”。 我在其中加入的标签是用来验证是否读取了数据库,你可以删掉,并将代码中所有有标签1的地方删去。
★、不好意思，哪位老师请告诉我，怎样全部显示数据库的内容？请给例程。
世恒：例程 [image] http://www.zgjg.com/download/help/data.zip


数据库疑难短问短答（三）
★、软件中用到了数据库，我想让它在数据库更新以后马上刷新读取。所以用了（当窗口激活）的子程序，但是不知为何没有作用，现在只能变通的用一个时钟来让它定时刷新。谁能够帮帮我。
浪花：刷新我觉得好象没有用的。最正确的你应该是先关闭数据库，然后再打开，这样，比你用刷新的效果肯定要好得多。
湖海书生：用“写出缓存”。有时刚录入的数据就查询修改的话，可能数据库中没有。
★、怎么跳到数据库中的任意记录？ 例如：数据库中有100条记录，当选择了跳到第5条记录后，数据库自动显示第5条记录。
iceroy ： http://eyuyan.com/non-cgi/icon/zip.gif
★、怎样插入数据库记录？ 例如：数据库中有5条记录，我想在2-3之中插入一条记录，使这记录号等于3，而原来的记录向后移一位， 等于4。以后的记录以此类推。
电脑狂：通用库管理器28中，你想要的都有。
★、有谁知道, 怎样用命令行方式直接存取备注字段(不用易自带的记录编辑器)? 谢谢!
Candy：字节集操作应该自动存取备注段。
★、为什么我在进行任一范围内复制记录时，复制后的库中会有空记录，（检查后发现是有一些记录没有复制上。）我的语句是这样写的：复制记录 (“库”,取记录数()-取记录号 ()<=30,)
世恒：
判断循环首(到尾纪录后())
复制记录 (“库”,取记录数()-取记录号 ()<=30,)
跳过(1)
判断循环尾()
————————————————————————————
雨点：
打开（数据库1，，，，，，） *此数据库为欲查找内容的库*
置当前库（数据库1）
复制结构（数据库2，所需字段） *此数据库为查找后的库*
打开（数据库2，，，，，，）
置当前库（数据库2）
清空（）
添加（数据库1，条件语句，所需字段)
电脑狂：复制记录 (“库.edb”, 取记录号 () ≥ 2 且 取记录号 () ≤ 4, )
“取记录数()-取记录号 ()<=30”这条语句有问题，分析一下不难看出，执行后始终复制的是最后30个记录。
★、我的程序中有个将（数据库1）中例如以“单位”为字段，其中有“单位A”96个记录，“单位B”148个记录，“单位C”78个记录，“单位D”39个记录，这些记录都是穿插输入的。假如我以查找“单位B”且将“单位B”的所有记录复制到（数据库2）中，记录数148个是对的，可在后面有很多是空白记录。请各位高手们指点该如何处理。
iceroy：
判断循环首（到尾记录后（））
复制记录（“库”，取记录数（）-取记录号（）<=30）
跳过（1）
判断循环尾（）

另外，你可用一个编辑框和一个通用对话框。编辑框的内容=通用对话框的文件名然后再用复制记录（） 命令，当然编辑框的内容（通用对话框的文件名）就是“数据库2”，这样就能将数据库复制。
电脑狂：
排序 (“数据库2.edb”, “单位”, , , )
打开 (“数据库2”, , , , , , )
置当前库 (“数据库2”)
删除 (读 (“单位”) ≠ “单位B”)
彻底删除 ()
编辑 (, , )
★、易数据库没有自动列表功能吗？就像电子表格一样的一个字段占一列的样子。怎么办哪？
雨点：
我给个例程于你试试,
窗口程序集：窗口程序集1

程序集容器：横线 数据类型：文本型
程序集容器：左线 数据类型：文本型
程序集容器：右线 数据类型：文本型
程序集容器：十线 数据类型：文本型
程序集容器：上左 数据类型：文本型
程序集容器：上右 数据类型：文本型
程序集容器：中左 数据类型：文本型
程序集容器：中右 数据类型：文本型
程序集容器：z 数据类型：文本型
程序集容器：倒丁 数据类型：文本型
程序集容器：丁线 数据类型：文本型
程序集容器：x 数据类型：文本型
程序集容器：w 数据类型：文本型

子程序：_按钮1_被单击

对话框.类型 ＝ 0
对话框.初始目录 ＝ 取当前目录 ()
打开 (对话框.文件名, “XS”, , , , , )
显示 ()

------------------------------

子程序：显示

局部容器：n 数据类型：整数型
局部容器：y 数据类型：文本型

编辑框2.内容 ＝ “”
置当前库 (“XS”)
到首记录 ()
表格 ()
计次循环首 (取记录数 (), n)
y ＝ y ＋ 中右 ＋ 取重复文本 (取字段尺寸 (1) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (2) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (3) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (4) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (5) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (6) ÷ 2, 横线) ＋ 十线 ＋ 取重复文本 (取字段尺寸 (7) ÷ 2, 横线) ＋ 中左 ＋ #换行符 ＋ “│” ＋ 读 (1) ＋ 取空白文本 (取字段尺寸 (1) － 取文本长度 (读 (1))) ＋ “│” ＋ 读 (2) ＋ 取空白文本 (取字段尺寸 (2) － 取文本长度 (读 (2))) ＋ “│” ＋ 读 (3) ＋ 取空白文本 (取字段尺寸 (3) － 取文本长度 (读 (3))) ＋ “│” ＋ 读 (4) ＋ 取空白文本 (取字段尺寸 (4) － 取文本长度 (读 (4))) ＋ “│” ＋ 读 (5) ＋ 取空白文本 (取字段尺寸 (5) － 取文本长度 (读 (5))) ＋ “│” ＋ 读 (6) ＋ 取空白文本 (取字段尺寸 (6) － 取文本长度 (读 (6))) ＋ “│” ＋ 读 (7) ＋ 取空白文本 (取字段尺寸 (7) － 取文本长度 (读 (7))) ＋ “│” ＋ #换行符
跳到 (n ＋ 1)
计次循环尾 ()
x ＝ x ＋ 右线 ＋ 取重复文本 (取字段尺寸 (1) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (2) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (3) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (4) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (5) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (6) ÷ 2, 横线) ＋ 丁线 ＋ 取重复文本 (取字段尺寸 (7) ÷ 2, 横线) ＋ 左线 ＋ #换行符
w ＝ w ＋ “│” ＋ 取空白文本 ((取字段尺寸 (1) － 取文本长度 (取字段名 (1))) ÷ 2) ＋ 取字段名 (1) ＋ 取空白文本 ((取字段尺寸 (1) － 取文本长度 (取字段名 (1))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (2) － 取文本长度 (取字段名 (2))) ÷ 2) ＋ 取字段名 (2) ＋ 取空白文本 ((取字段尺寸 (2) － 取文本长度 (取字段名 (2))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (3) － 取文本长度 (取字段名 (3))) ÷ 2) ＋ 取字段名 (3) ＋ 取空白文本 ((取字段尺寸 (3) － 取文本长度 (取字段名 (3))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (4) － 取文本长度 (取字段名 (4))) ÷ 2) ＋ 取字段名 (4) ＋ 取空白文本 ((取字段尺寸 (4) － 取文本长度 (取字段名 (4))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (5) － 取文本长度 (取字段名 (5))) ÷ 2) ＋ 取字段名 (5) ＋ 取空白文本 ((取字段尺寸 (5) － 取文本长度 (取字段名 (5))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (6) － 取文本长度 (取字段名 (6))) ÷ 2) ＋ 取字段名 (6) ＋ 取空白文本 ((取字段尺寸 (6) － 取文本长度 (取字段名 (6))) ÷ 2) ＋ “│” ＋ 取空白文本 ((取字段尺寸 (7) － 取文本长度 (取字段名 (7))) ÷ 2) ＋ 取字段名 (7) ＋ 取空白文本 ((取字段尺寸 (7) － 取文本长度 (取字段名 (7))) ÷ 2) ＋ “│” ＋ #换行符
z ＝ z ＋ 上右 ＋ 取重复文本 (取字段尺寸 (1) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (2) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (3) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (4) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (5) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (6) ÷ 2, 横线) ＋ 倒丁 ＋ 取重复文本 (取字段尺寸 (7) ÷ 2, 横线) ＋ 上左
编辑框2.内容 ＝ x ＋ w ＋ y ＋ z
x ＝ “”
w ＝ “”
z ＝ “”

子程序：表格

横线 ＝ “─”
左线 ＝ “┐”
右线 ＝ “┌”
十线 ＝ “┼”
上左 ＝ “┘”
上右 ＝ “└”
中左 ＝ “┤”
中右 ＝ “├”
倒丁 ＝ “┴”
丁线 ＝ “┬”


[分享]数据库文件的备份方法
数据库文件的备份方法：
第一次运行时生成两个库文件，一个用来编辑（file1.edb），一个用来备份（file2.edb）。
执行程序时，删除第一个进行编辑的文件（file1.edb），再将备份用的文件（file2.edb）复制一份，并命名为file1.edb。程序运行完毕将要销毁时则删除file2.edb，并用文件file1.edb复制一份，命名为file2.edb。
这样在程序编辑过程中即使发生了非正常退出现象，则程序会自动将备份的文件复制一份进行编辑，也就达到了备份文件的目的，避免了因E数据库文件的破坏而导致数据丢失的情况。
如果数据库文件有备注型或字节型，别忘了将edt文件也按以上方法备份。否则数据库文件如果打不开了请别找我哦。


[求助]如何实现数据库记录的任意插入？
看到网友讲数据库时提出的“导出”一词，突然想出个傻办法，且来弄一下斧。不过可能如老吴所讲，应该挺耗内存，就看你的库有多大了。

在启动窗口上建通用提供者1、数据库提供者1、数据源1(指向通用提供者1)、数据源2(指向数据库提供者1)、表格1(指向数据源1)。分别建两个数据源，是为了使用E数据库不支持的表格格式，否则只建一个、来回指就行了。

在程序组里建一个字节集子容器(字节集1)。

1、E数据库的内容到表格：
注：如有E数据库不支持格式设置，则每用此步后都需重新设置一次。
字节集1=数据源2.存到字节集()
数据源1.从字节集读(字节集1)

2、若干表格操作:
数据源1.插入行(2，)

3、表格内容到E数据库：
字节集1=数据源1.存到字节集()
数据源2.从字节集读(字节集1)

若又想用E数据库函数，则同理倒着用：

3、

2、数据库操作：
注：它的操作结果需要下一步显示到

1、
注：如有E数据库不支持格式设置，则每用此步后都需重新设置一次。


学习：编写“案例教程”-“数据库记录的插入”
★、例程来源：自编
㈠、例程名称：数据库记录的插入
㈡、下载地址： http://www.91asp.com/bbs.nsf/0/9fdd37c27d03021948256bf0002615a9/$FILE/15.e
㈢、作者：NAZHGY
㈣、主页：
★、学习目的及意义。熟悉数据库记录操作
★、例程详解。
窗口程序集：窗口程序集2 ※启动窗口（关于-系统窗口）

程序集容器：num1 数据类型：整数型

------------------------------

子程序：_时钟1_周期事件

num1 ＝ num1 ＋ 1
如果真 (num1 ＞ 25)
载入 (主窗口, , 假)
如果真 (num1 ＞ 30)
num1 ＝ 0
_启动窗口.销毁 ()
如果真结束
如果真结束
※显示启动画面（即：关于-系统画面）

窗口程序集：窗口程序集1 ※主窗口

程序集容器：是否被修改 数据类型：逻辑型 ※用来存放数据是否被更改
※以下是数据库字段的定义（与“易之表”同）
程序集容器：字段数 数据类型：整数型
程序集容器：字段索引 数据类型：整数型
程序集容器：字段名称 数据类型：文本型 数组：0

程序集容器：现行文件名 数据类型：文本型 ※用来保存打开文件的路径和名称

------------------------------

子程序：_主窗口_创建完毕

是否被修改 ＝ 假 ※没有数据被修改
主窗口.位置 ＝ 3 ※窗口最大化
主窗口.标题 ＝ “谁说数据不能随意插入！！！” ※窗口标题

标签1.标题 ＝ #换行符 ＋ “ 选择要修改内容的数据库打开，修改后保存即可。”
※窗口下方的“大”标签的内容
------------------------------

子程序：_主窗口_尺寸被改变 ※此段程序定义表格和标签在窗口中的位置

表格1.宽度 ＝ 取用户区宽度 ()
表格1.高度 ＝ 取用户区高度 () － 100
标签1.顶边 ＝ 取用户区高度 () － 100
标签1.宽度 ＝ 取用户区宽度 () － 5
标签1.高度 ＝ 85
表格1.刷新 ()

------------------------------

子程序：询问保存文档 ※拿来主义：抄习“易之表”原程序；用户改数据后没及时保存而进行其他操作时的提示。

返回值类型：逻辑型
※返回真表示用户选择了中止

局部容器：询问返回 数据类型：整数型

如果真 (是否被修改 ＝ 真)
询问返回 ＝ 信息框 (“文件已经被修改，是否保存？”, #取消是否钮 ＋ #询问图标, “询问”)
如果真 (询问返回 ＝ #取消钮)
返回 (真)
如果真结束
如果真 (询问返回 ＝ #是钮)
如果真 (保存文档 () ＝ 真)
返回 (真)
如果真结束
如果真结束
如果真结束
返回 (假)

------------------------------

子程序：保存文档 ※保存表格数据到数据库

返回值类型：逻辑型
※返回真表示用户选择了中止，仍用“易之表”原设置

局部容器：容器1 数据类型：整数型 ※保存表格行数
局部容器：容器2 数据类型：整数型 ※保存表格列数

通用对话框1.类型 ＝ 1 ※定义通用对话框的类型为：保存文件
打开 (通用对话框1.文件名, , , , , , ) ※打开数据库
删除 (真) ※全部删除
彻底删除 () ※清除原数据库所有记录
计次循环首 (数据源1.取行数 () － 1, 容器1) ※取行数（）-1 为表格中第一行存放了数据库字段，此行不应进入数据库
加空记录 () ※此名为要添加记录作准备
计次循环首 (数据源1.取列数 (), 容器2) ※此名实际是读出原数据库的字段数

如果真 (取字段类型 (容器2) ＝ 6 或 取字段类型 (容器2) ＝ 2 或 取字段类型 (容器2) ＝ 3 或 取字段类型 (容器2) ＝ 4 或 取字段类型 (容器2) ＝ 5)
替换 (, 取字段名 (容器2), 文本到数值 (数据源1.取文本 (容器1 ＋ 1, 容器2)))
如果真结束
※判断原字段是不是数值型的
※（2，短整数型；3，整数型；4，长整数型；5，小数型；6，双精度小数型）

如果真 (取字段类型 (容器2) ＝ 8) ※判断原字段是不是日期时间型
替换 (, 取字段名 (容器2), 文本到时间 (数据源1.取文本 (容器1 ＋ 1, 容器2)))
如果真结束
※(8，日期时间型)

替换 (, 取字段名 (容器2), 数据源1.取文本 (容器1 ＋ 1, 容器2))
※其他类型（文本型）
计次循环尾 ()
计次循环尾 ()
主窗口.标题 ＝ “现在正在编辑” ＋ 通用对话框1.文件名 ※显示打开文件路径和名称
关闭 (通用对话框1.文件名) ※关闭数据库
是否被修改 ＝ 假 ※没有修改
返回 (假) ※正常返回

------------------------------

子程序：打开文件1

如果 (询问保存文档 () ＝ 真) ※判断原打开数据有没有修改
询问保存文档 () ※有，跳到“询问保存文档”
否则
通用对话框1.类型 ＝ 0 ※通用对话框的类型为打开文件
如果真 (通用对话框1.打开 () ＝ 真 且 通用对话框1.文件名 ≠ “”)
※打开文件名不能为空
重定义数组 (字段名称, 假, 0) ※复原数组（多次打开文件将使初值改变）
表格1.禁止 ＝ 假 ※表格可以操作,初值为禁止(无数据)
如果真 (打开 (通用对话框1.文件名, , , , , , )) ※打开数据库获取所有字段的名称

※以下是“易之表”原程序
字段数 ＝ 取字段数 ()
计次循环首 (字段数, 字段索引)
如果真 (取字段类型 (字段索引) ≠ #字节集型)
加入成员 (字段名称, 取字段名 (字段索引))
如果真结束
计次循环尾 ()
关闭 ()
字段数 ＝ 取数组成员数 (字段名称)
数据源1.初始尺寸 (1, 字段数)
计次循环首 (字段数, 字段索引)
数据源1.置文本 (1, 字段索引, 字段名称 [字段索引])
计次循环尾 ()
数据源1.置字体属性 (1, 1, , 字段数, #粗体)
数据源1.置表头行数 (1)
数据库提供者1.数据库文件名 ＝ 通用对话框1.文件名
数据源1.添加 (数据库提供者1, , )
是否被修改 ＝ 假
主窗口.标题 ＝ “现在正在编辑” ＋ 通用对话框1.文件名
现行文件名 ＝ “”
如果真结束
如果真结束
如果结束
判断类型 ()

------------------------------

子程序：_打开_被选择

打开文件1 () ※跳至“打开文件1”

------------------------------

子程序：_保存_被选择

保存文档 () ※跳至“保存文档”

------------------------------

子程序：_另存_被选择

局部容器：num1 数据类型：文本型 ※保存原文件名

通用对话框1.类型 ＝ 1 ※通用对话框的类型为保存文件
num1 ＝ 通用对话框1.文件名 ※把原文件名赋给容器num1
通用对话框1.打开 () ※打开对话框
如果真 (通用对话框1.文件名 ≠ num1) ※判断新文件不能与原文件相同
打开 (num1, , , , , , ) ※打开原文件
复制记录 (通用对话框1.文件名, , ) ※把原文件的全部信息（字段、数据）存到（创建）新文件中
※注意：新文件如原存在将被履盖
关闭 (num1) ※关闭原文件
如果真结束
主窗口.标题 ＝ “现在正在编辑” ＋ 通用对话框1.文件名 ※显示现在文件路径和名称

------------------------------

子程序：_预览_被选择

表格1.打印预览 () ※数据打印预览

------------------------------

子程序：_退出_被选择

销毁 () ※关闭程序

------------------------------

子程序：_删除行_被选择

数据源1.删除行 (表格1.取光标行号 (), ) ※删除数据
是否被修改 ＝ 真 ※数据被修改

------------------------------

子程序：_打印_被选择

表格1.打印 (假, ) ※打印数据（没有进度条）

------------------------------

子程序：_系统_被选择

载入 (_启动窗口, , 假) ※载入关于-系统窗口（启动窗口）

------------------------------

子程序：_作者_被选择

信息框 (“易友nazhgy根据’易之表‘改编的，请多提意见！”, 0, “关于”)
※关于-作者的对话框
------------------------------

子程序：_在上方_被选择

如果真 (表格1.取光标行号 () ＞ 1) ※表格第一行为数据字段，不能在其上加数据
数据源1.插入行 (表格1.取光标行号 (), )
表格1.置光标 (表格1.取光标行号 () － 1, 表格1.取光标列号 ())
是否被修改 ＝ 真
如果真结束 ※在现在光标所在行上方加入一个空行，数据被修改

------------------------------

子程序：_在下方_被选择

数据源1.插入行 (表格1.取光标行号 () ＋ 1, )
表格1.置光标 (表格1.取光标行号 () ＋ 1, 表格1.取光标列号 ())
是否被修改 ＝ 真
※在现在光标所在行下方加入一个空行，数据被修改
------------------------------

子程序：_表格1_鼠标右键被放开 ※定义表格右键菜单
返回值类型：逻辑型

参数：横向位置 数据类型：整数型
参数：纵向位置 数据类型：整数型
参数：功能键状态 数据类型：整数型

弹出菜单 (表格, , )

------------------------------

子程序：_表格1_内容被改变 ※数据被修改

是否被修改 ＝ 真
如果 (表格1.取光标列号 () ＋ 1 ＞ 字段数)
表格1.置光标 (表格1.取光标行号 (), 1)
否则
表格1.置光标 (表格1.取光标行号 (), 表格1.取光标列号 () ＋ 1)
如果结束 ※光标移动
判断类型 () ※跳到“判断类型”

------------------------------

子程序：判断类型 ※判断数据字段类型

局部容器：num1 数据类型：整数型 ※定义字段返回值容器

打开 (通用对话框1.文件名, , , , , , ) ※打开数据库
num1 ＝ 取字段类型 (表格1.取光标列号 ()) ※取光标所在字段的返回值
关闭 (通用对话框1.文件名) ※关闭数据库
标签1.标题 ＝ “” ※标签内容清空

以下是相应返回值的判断
如果真 (num1 ＝ 2)
标签1.标题 ＝ #换行符 ＋ “ 当前字段类型：短整数型” ＋ #换行符 ＋ “短整数型：数值在-32,768 到 32,767之间”
如果真结束
如果真 (num1 ＝ 3)
标签1.标题 ＝ #换行符 ＋ “ 当前字段类型：整数型” ＋ #换行符 ＋ “整数型：数值在-2,147,483,648 到 2,147,483,647之间”
如果真结束
如果真 (num1 ＝ 4)
标签1.标题 ＝ #换行符 ＋ “ 当前字段类型：长整数型” ＋ #换行符 ＋ “长整数型：数值在-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间”
如果真结束
如果真 (num1 ＝ 5)
标签1.标题 ＝ #换行符 ＋ “ 当前字段类型：小数型” ＋ #换行符 ＋ “小数型：数值在3.4E +/- 38 (7位小数)之间”
如果真结束
如果真 (num1 ＝ 6)
标签1.标题 ＝ #换行符 ＋ “ 当前字段类型：双精度小数型” ＋ #换行符 ＋ “双精度小数型：数值在1.7E +/- 308 (15位小数)之间”
如果真结束
如果真 (num1 ＝ 7)
标签1.标题 ＝ #换行符 ＋ “ 当前字段类型：逻辑型” ＋ #换行符 ＋ “逻辑型：0、1；真、假 等”
如果真结束
如果真 (num1 ＝ 8)
标签1.标题 ＝ #换行符 ＋ “ 当前字段类型：日期时间型” ＋ #换行符 ＋ “日期时间型：输入方式 年-月-日 时-分-秒”
如果真结束
如果真 (num1 ＝ 10)
标签1.标题 ＝ #换行符 ＋ “ 当前字段类型：文本型”
如果真结束
标签1.刷新 ()

------------------------------

子程序：_设置_被选择

如果真 (数据源1.打印设置 ()) ※更改打印设置
是否被修改 ＝ 真
如果真结束

------------------------------

子程序：_表格1_光标位置改变

判断类型 () ※跳到“判断类型”

------------------------------

子程序：_主窗口_将被销毁

询问保存文档 () ※判断数据是否被修改

㈠、例程说明（主要功能）。⑴、能完成数据的任意插入
⑵、显示当前操作数据的类型
㈡、功能实现。⑴、通过表格中内容增删来实现数据库数据的插入
⑵、通过判断表格列的位置来实现显示字段类型


易数据库插入空记录的几种思路。

点击浏览该文件

根据易友的程序，现有的思路有几种：

（一）、复制记录法。

▲、思路：

1、用“复制记录”命令将插入位置以上的记录复制到一个空数据库a，并在尾记录后添加一个空记录；再将插入位置以下的记录复制到另外一个空数据库b。
2、清空原数据库，先添加数据库a的记录到原数据库，再添加数据库b的记录到原数据库。
3、最后删除数据库a和数据库b。

▲、评价：

建议不要采用这种思路，因为很容易出现问题，比如在运行程序时突然死机，很可能丢失数据。或许可以用改良思路：先在原数据库里添加数据库a和数据库b的记录，再删除原来的记录，最后删除数据库a和数据库b。

（二）、修改记录法。（该思路由rockcat提供）

▲、思路：

1、在原数据库的尾记录后添加一个空记录。
2、循环修改插入位置以下的记录，将原记录的数据下移一个记录：将倒数第二个记录的数据移到尾记录，将倒数第三个记录的数据移到倒数第二个记录。
3、然后修改插入位置的记录（为空或修改数据）。

▲、评价：还没有发现问题。

（三）、数据库提供者法。（该思路由rockcat提供）

▲、思路：数据库提供者不支持在中间插入行、插入列和删除列等，但支持添加行。插入空记录方法跟修改记录法差不多，循环修改插入位置以下的记录，将数据源前一行的数据移到后一行。

（四）、数据源法。

▲、思路：参看一些易友改编的易之表。主要是应用“数据源．插入行 （行号，［行数］）”命令，该命令要用通用提供者控件才能支持。插入思路请大家自行总结。

（五）、尘虚缘法。也是一种运用数据源的方法。

▲、思路：

num=数据源.取记录号（）
数据源.添加行
计次循环首（ num，n)
数据源.置文本（num-n+1，m, 数据源.取文本(num-n，m))
循环结束


SQL语言快速入门之一

SQL是英文Structured Query Language的缩写，意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系，进行沟通。按照ANSI（美国国家标准协会）的规定，SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作，例如更新数据库中的数据，从数据库中提取数据等。目前，绝大多数流行的关系型数据库管理系统，如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展，但是包括Select, Insert, Update, Delete, Create, 以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。下面，我们就来详细介绍一下SQL语言的基本知识。

数据库表格

    一个典型的关系型数据库通常由一个或多个被称作表格的对象组成。数据库中的所有数据或信息都被保存在这些数据库表格中。数据库中的每一个表格都具有自己唯一的表格名称，都是由行和列组成，其中每一列包括了该列名称，数据类型，以及列的其它属性等信息，而行则具体包含某一列的记录或数据。以下，是一个名为天气的数据库表格的实例。

城市 最高气温 最低气温
北京 10 5
上海 15 8
天津 8 2
重庆 20 13

该表格中“城市”， “最高气温”和“最低气温”就是三个不同的列，而表格中的每一行则包含了具体的表格数据。

数据查询

    在众多的SQL命令中，select语句应该算是使用最频繁的。Select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。Select语句的语法格式如下：

select column1 [, column2,etc] from tablename

[where condition];

（[] 表示可选项）

    select语句中位于select关键词之后的列名用来决定那些列将作为查询结果返回。用户可以按照自己的需要选择任意列，还可以使用通配符“*”来设定返回表格中的所有列。

select语句中位于from关键词之后的表格名称用来决定将要进行查询操作的目标表格。

Select语句中的where可选从句用来规定哪些数据值或哪些行将被作为查询结果返回或显示。

在where条件从句中可以使用以下一些运算符来设定查询标准：

= 等于

> 大于

< 小于

>= 大于等于

<= 小于等于

<> 不等于

    除了上面所提到的运算符外，LIKE运算符在where条件从句中也非常重要。LIKE运算符的功能非常强大，通过使用LIKE运算符可以设定只选择与用户规定格式相同的记录。此外，我们还可以使用通配符“%”用来代替任何字符串。举例如下：

select firstname, lastname, city

from employee

where firstname LIKE ‘E%’;

（注意，字符串必须被包含在单括号内）

上述SQL语句将会查询所有名称以E开头的姓名。或者，通过如下语句：

select * from employee

where firstname = ‘May’；

查询所有名称为May的行。


SQL语言快速入门之二

创建表格

SQL语言中的create table语句被用来建立新的数据库表格。Create table语句的使用格式如下：

create table tablename

(column1 data type,

column2 data type,

column3 data type);

如果用户希望在建立新表格时规定列的限制条件，可以使用可选的条件选项：

create table tablename

(column1 data type [constraint],

column2 data type [constraint],

column3 data type [constraint]);

举例如下：

create table employee

(firstname varchar(15),

lastname varchar(20),

age number(3),

address varchar(30),

city varchar(20));

简单来说，创建新表格时，在关键词create table后面加入所要建立的表格的名称，然后在括号内顺次设定各列的名称，数据类型，以及可选的限制条件等。注意，所有的SQL语句在结尾处都要使用“；”符号。

使用SQL语句创建的数据库表格和表格中列的名称必须以字母开头，后面可以使用字母，数字或下划线，名称的长度不能超过30个字符。注意，用户在选择表格名称时不要使用SQL语言中的保留关键词，如select, create, insert等，作为表格或列的名称。

数据类型用来设定某一个具体列中数据的类型。例如，在姓名列中只能采用varchar或char的数据类型，而不能使用number的数据类型。

SQL语言中较为常用的数据类型为：

char(size)：固定长度字符串，其中括号中的size用来设定字符串的最大长度。Char类型的最大长度为255字节。

varchar(size)：可变长度字符串，最大长度由size设定。

number(size)：数字类型，其中数字的最大位数由size设定。

Date：日期类型。

number(size,d)：数字类型，size决定该数字总的最大位数，而d则用于设定该数字在小数点后的位数。

最后，在创建新表格时需要注意的一点就是表格中列的限制条件。所谓限制条件就是当向特定列输入数据时所必须遵守的规则。例如，unique这一限制条件要求某一列中不能存在两个值相同的记录，所有记录的值都必须是唯一的。除unique之外，较为常用的列的限制条件还包括not null和primary key等。Not null用来规定表格中某一列的值不能为空。Primary key则为表格中的所有记录规定了唯一的标识符。

向表格中插入数据

SQL语言使用insert语句向数据库表格中插入或添加新的数据行。Insert语句的使用格式如下：

insert into tablename

(first_column,...last_column)

values (first_value,...last_value);

例如：

insert into employee

(firstname, lastname, age, address, city)

values (‘Li’, ‘Ming’, 45, ‘No.77 Changan Road’, ‘Beijing”);

简单来说，当向数据库表格中添加新记录时，在关键词insert into后面输入所要添加的表格名称，然后在括号中列出将要添加新值的列的名称。最后，在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。

更新记录

SQL语言使用update语句更新或修改满足规定条件的现有记录。Update语句的格式为：

update tablename

set columnname = newvalue [, nextcolumn = newvalue2...]

where columnname OPERATOR value [and|or column OPERATOR value];

例如：

update employee

set age = age+1

where first_name= ‘Mary’and last_name= ‘Williams’;

使用update语句时，关键一点就是要设定好用于进行判断的where条件从句。

删除记录

SQL语言使用delete语句删除数据库表格中的行或记录。Delete语句的格式为：

delete from tablename

where columnname OPERATOR value [and|or column OPERATOR value];

例如：

delete from employee

where lastname = May;

简单来说，当需要删除某一行或某个记录时，在delete from关键词之后输入表格名称，然后在where从句中设定删除记录的判断条件。注意，如果用户在使用delete语句时不设定where从句，则表格中的所有记录将全部被删除。

删除数据库表格

在SQL语言中使用drop table命令删除某个表格以及该表格中的所有记录。Drop table命令的使用格式为：

drop table tablename；

例如：

drop table employee;

如果用户希望将某个数据库表格完全删除，只需要在drop table命令后输入希望删除的表格名称即可。Drop table命令的作用与删除表格中的所有记录不同。删除表格中的全部记录之后，该表格仍然存在，而且表格中列的信息不会改变。而使用drop table命令则会将整个数据库表格的所有信息全部删除。

以上，我们对SQL语言主要的命令和语句进行了较为详细的介绍。应该说SQL语句的语法结构和风格还是相当简单和直观的，只要用户结合实践多加练习，一定会在短期内迅速掌握。


SQL语言快速入门之三

我们日常使用SQL语言的工作过程中，使用最多的还是从已经建立好的数据库中查询信息。下面，我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作。

SELECT…FROM

    为方便讲解，我们在数据库中创建名为Store_Information的如下数据表。

Store_Information

Store_Name
Sales
Date

Los Angeles
$1500
Jan-10-2000

San Diego
$250
Jan-11-2000

Los Angeles
$300
Jan-12-2000

Boston
$700
Jan-12-2000

    SQL语言中用于数据库查询的最简单的命令就是SELECT…FROM，语法格式为：

SELECT "column_name" FROM "table_name"

例如，如果我们希望查询Store_Information数据表中所有的商店名称时，可以使用如下命令：

SELECT store_name FROM Store_Information

查询结果显示为：

Store_Name

Los Angeles

San Diego

Los Angeles

Boston

如果用户希望一次查询多个字段，可以将所要查询的字段名称依次加入SELECT关键字之后，中间用“，”隔开即可。

DISTINCT

    SELECT关键字支持用户查询数据表中指定字段的所有数据，但是这样有时就会不可避免的出现重复信息。如果用户希望只查询那些具有不同记录值的信息的话，可以使用SQL语言的DISTINCT关键字。语法格式如下：

SELECT DISTINCT "column_name"

FROM "table_name"

例如，我们可以使用以下命令查询Store_Information数据表具有不同记录值的所有记录。

SELECT DISTINCT Store_Name FROM Store_Information

查询结果如下：

Store_Name

Los Angeles

San Diego

Boston

WHERE

    除了选择具有不同记录值的记录之外，有时我们可能还会需要根据某些条件对数据库中的数据进行查询。例如，我们可能需要查询Store_Information数据表中销售额超过1000美圆的商店。为此，我们可以使用SQL语言的WHERE关键字设定查询条件。语法格式如下：

SELECT "column_name"

FROM "table_name"

WHERE "condition"

由此，我们可以使用如下命令查询销售额超过1000美圆的商店信息：

SELECT store_name FROM Store_Information WHERE Sales > 1000

查询结果显示为：

store_name

Los Angeles

运算函数

    现在，我们已经了解到在使用SQL语言进行数据库查询操作时可以通过对数值的判断设定灵活的查询条件。为了增强对运算的支持能力，SQL提供了众多实用的运算函数供广大用户使用。例如，我们可以直接在SQL命令中调用SUM或AVG这两个分别用于计算总数和平均数的函数。语法格式如下：

SELECT "function type"("column_name")

FROM "table_name"

如果我们希望查询Store_Information数据表中所有商店的总销售额的话，可以使用如下命令：

SELECT SUM(Sales) FROM Store_Information

查询结果显示为：

SUM(Sales)

$2750

COUNT

    除了SUM和AVG函数之外，COUNT函数是SQL语言中另一个较为常用的运算函数。COUNT函数可以用来计算数据表中指定字段所包含的记录数目。语法格式为：

SELECT COUNT("column_name")

FROM "table_name"

例如，如果我们希望查询Store_Information数据表中的有关商店的记录条数时，可以使用如下命令：

SELECT COUNT(store_name)

FROM Store_Information

查询结果显示为：

Count(store_name)

4

COUNT函数可以和DISTINCT关键字一起使用从而可以查询数据表中指定字段中所有具有不同记录值的记录数目。例如，如果我们希望查询Store_Information数据表中不同商店的数目时，可以使用如下命令：

SELECT COUNT(DISTINCT store_name)

FROM Store_Information

查询结果显示为：

Count(DISTINCT store_name)

3

GROUP BY

下面我们来进一步看一下SQL语言中的集合函数。上文中，我们曾使用SUM函数计算所有商店的销售总额，如果我们希望计算每一家商店各自的总销售额时该怎么办呢？要实现这一目的我们需要做两件事：首先，我们需要查询商店名称和销售额两个字段；然后，我们使用SQL语言的GROUP BY命令将销售额按照不同的商店进行分组，从而计算出不同商店的销售总额。GROUP BY命令的语法格式为：

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

我们可以使用如下命令实现上述查询目的：

SELECT store_name, SUM(Sales)

FROM Store_Information

GROUP BY store_name

查询结果显示为：

store_name SUM(Sales)

Los Angeles $1800

San Diego $250

Boston $700

小注：

GROUP BY关键字一般应用于同时查询多个字段并对字段进行算术运算的SQL命令中。

HAVING

用户在使用SQL语言的过程中可能希望解决的另一个问题就是对由sum或其它集合函数运算结果的输出进行限制。例如，我们可能只希望看到Store_Information数据表中销售总额超过1500美圆的商店的信息，这时我们就需要使用HAVING从句。语法格式为：

SELECT "column_name1", SUM("column_name2")

FROM "table_name"

GROUP BY "column_name1"

HAVING (arithematic function condition)

（GROUP BY从句可选）

由此，我们可以使用如下命令实现上述查询目的：

SELECT store_name, SUM(sales)

FROM Store_Information

GROUP BY store_name

HAVING SUM(sales) > 1500

查询结果显示为：

store_name SUM(Sales)

Los Angeles $1800

小注：

SQL语言中设定集合函数的查询条件时使用HAVING从句而不是WHERE从句。通常情况下，HAVING从句被放置在SQL命令的结尾处。

ALIAS

下面，我们重点介绍一下如何在SQL命令中设定别名。SQL语言中一般使用两种类型的别名，分别为字段别名和数据表别名。

简单的说，使用字段别名可以帮助我们有效的组织查询的输出结果。例如，上文所列举的多个实例中，当我们计算商店销售总额时，显示结果中就会出现SUM(sales)。虽然SUM(sales)并不会对我们理解查询结果带来不便，但是如果我们需要在查询中使用多项复杂运算时，显示结果就不会这么直观了。如果这时我们使用字段别名就会极大的提高查询结果的可读性。

对于数据表别名，我们可以通过将别名直接放置在FROM从句中数据表名称的后面设定。数据表别名在我们下面将要讲述的连接多个数据表进行查询的操作中极为有用。

字段和数据表别名的语法格式如下：

SELECT "table_alias"."column_name1" "column_alias"

FROM "table_name" "table_alias"

即别名都直接放置在各自对应名称的后面，中间用空格分开。

以Store_Information数据表为例，我们可以在GROUP BY一节中所使用的SQL命令中设置如下字段和数据表别名：

SELECT A1.store_name Store, SUM(Sales) "Total Sales"

FROM Store_Information A1

GROUP BY A1.store_name

查询结果显示为：

Store Total Sales

Los Angeles $1800

San Diego $250

Boston $700

连接多个数据表

最后，我们来看一下如果使用SQL语言连接多个数据表，实现对多个数据表的查询。为方便讲解，我们在数据库中分别创建了两个名为Store_Information和Region的数据表。

Store_Information

Store_Name
Sales
Date

Los Angeles
$1500
Jan-10-2000

San Diego
$250
Jan-11-2000

Los Angeles
$300
Jan-12-2000

Boston
$700
Jan-12-2000

Region

Region_Name
Store_Name

East
Boston

East
New York

West
Los Angeles

West
San Diego

下面，我们就来看一下通过数据表的连接实现按不同区域查询销售额。

我们注意到在名为Region的数据表中包含区域和商店两个字段信息，而在名为Store_Information的数据表中则包含每一家商店的销售信息。因此，为了得到按区域划分的销售信息，我们需要将两个不同数据表的信息结合在一起进行查询。通过对上述两个数据表的分析，我们发现每个数据表中都包含一个名为Store_Name的字段，因此，我们可以使用如下命令实现查询目的：

SELECT A1.region_name REGION, SUM(A2.Sales) SALES

FROM Geography A1, Store_Information A2

WHERE A1.store_name = A2.store_name

GROUP BY A1.region_name

查询结果显示为：

REGION SALES

East $700

West $2050

说明：

上述查询命令的前两行用于指定所要查询的目标字段，分别为Region数据表中的Region_Name字段和Store_Information数据表中Sales字段的记录值总数。这里，我们设定两个字段的别名分别为REGION和SALES，两个数据表的别名分别为A1和A2。如果我们只使用字段别名而不设定数据表别名的话，上述SQL命令的第一行就变成 如下形式：

SELECT Region.Region_Name REGION, SUM(Store_Information.Sales) SALES

由此我们可以看出有效的使用数据表别名，可以极大的简化对多个数据表进行操作的SQL命令。

上述查询命令的第3行为WHERE从句，正是该从句设定了两个数据表的连接条件。因为我们希望确保Region数据表中的Store_Name字段能够与Store_Information数据表中的同名字段相对应，所以我们规定两个字段的记录值应当相等。在连接多个数据表时，一定要准确设定数据表的连接条件，如果WHERE从句设定不正确，则可能导致查询结果中出现众多不相关的数据


SQL数据操作基础(初级)1

为了建立交互站点，你需要使用数据库来存储来自访问者的信息。例如，你要建立一个职业介绍服务的站点，你就需要存储诸如个人简历，所感兴趣的工作等等这样的信息。创建动态网叶也需要使用数据库，如果你想显示符合来访者要求的最好的工作，你就需要从数据库中取出这份工作的信息。你将会发现，在许多情况下需要使用数据库。

在这一章里，你将学会怎样使用“结构化查询语言”（SQL〕来操作数据库。SQL语言是数据库的标准语言。在Active SeverPages 中，无论何时你要访问一个数据库，你就要使用SQL语言。因此，掌握好SQL对ASP编程是非常重要的。

注意：

你可以把“SQL”读作“sequel”，也可以按单个字母的读音读作S－Q－L。 两种发音都是正确的，每种发音各有大量的支持者。在本书里，认为“SQL”读作“sequel”。

通过这一章的学习，你将理解怎样用SQL实现数据库查询，你将学会怎样使用这种查询从数据表中取出信息，最后，你将学会怎样设计和建立自己的数据库。

注意：

通过下面几章对SQL的介绍，你将对SQL有足够的了解，从而可以有效地使用Active Sever Pages。但是，SQL是一种复杂的语言，本书不可能包括它的全部细节。要全面掌握SQL语言，你需要学习在Microsoft SQL Sever 中使用SQL。你可以到附近的书店去买一本Microsoft SQL Sever 6.5。

SQL介绍：

本书假设你是在SQL操作Microsoft SQL Sever 的数据库。你也可以用SQL操作许多其它类型的数据库。SQL是操作数据库的标准语言。（事实上，关于SQL语言有一个专门的ANSI标准〕

注意：

不要在你的站点上试图用Microsoft Access代替Microsoft SQL Sever。SQL Sever可以同时服务于许多用户，如果你希望你的站点有较高的访问率，MS Access是不能胜任的。

在学习SQL的细节之前，你需要理解它的两大特点。一个特点容易掌握，另一个掌握起来有点困难。

第一个特点是所有SQL数据库中的数据都存储在表中。一个表由行和列组成。例如，下面这个简单的表包括name 和e-mail
address：

Name Email Address

................................................................

Bill Gates billg@microsoft.com

president Clinton president@whitehouse.com

Stephen Walther swalther@somewhere.com

这个表有两列（列也称为字段，域〕：Name和Email Address。有三行，每一行包含一组数据。一行中的数据组合在一起称为一条记录。

无论何时你向表中添加新数据，你就添加了一条新记录。一个数据表可以有几十个记录，也可以有几千甚至几十亿个记录。虽然你也许永远不需要存储十亿个Email地址，但知道你能这样做总是好的，也许有一天你会有这样的需要。

你的数据库很有可能包含几十个表，所有存储在你数据库中的信息都被存储在这些表中。当你考虑怎样把信息存储在数据库中时，你应该考虑怎样把它们存储在表中。

SQL的第二个特点有些难于掌握。这种语言被设计为不允许你按照某种特定的顺序来取出记录，因为这样做会降低SQL Sever取记录的效率。使用SQL，你只能按查询条件来读取记录。

当考虑如何从表中取出记录时，自然会想到按记录的位置读取它们。例如，也许你会尝试通过一个循环，逐个记录地扫描，来选出特定的记录。在使用SQL时，你必须训练自己，不要有这种思路。

假如你想选出所有的名字是“Bill Gates”的记录，如果使用传统的编程语言，你也许会构造一个循环，逐个查看表中的记录，看名字域是否是“Bill Gates”。

这种选择记录的方法是可行的，但是效率不高。使用SQL，你只要说，“选择所有名字域等于Bill Gates的记录”，SQL就会为你选出所有符合条件的记录。SQL会确定实现查询的最佳方法。

建设你想取出表中的前十个记录。使用传统的编程语言，你可以做一个循环，取出前十个记录后结束循环。但使用标准的SQL查询，这是不可能实现的。从SQL的角度来说，在一个表中不存在前十个记录这种概念。

开始时，当你知道你不能用SQL实现某些你感觉应该能实现的功能，你会受到挫折。你也许会以头撞墙甚至想写恶毒的信件给SQL的设计者们。但后来你会认识到，SQL的这个特点不仅不是个限制，反而是其长处。因为SQL不根据位置来读取记录，它读取记录可以很快。

综上所述，SQL有两个特点：所有数据存储在表中，从SQL的角度来说，表中的记录没有顺序。在下一节，你将学会怎样用SQL从表中选择特殊的记录。

使用SQL从表中取记录。

SQL的主要功能之一是实现数据库查询。如果你熟悉Internet 引擎，那么你已经熟悉查询了。你使用查询来取得满足特定条件的信息。例如，如果你想找到有ASP信息的全部站点，你可以连接到 Yahoo!并执行一个对Active Sever Pages的搜索。在你输入这个查询后，你会收到一个列表，表中包括所有其描述中包含搜索表达式的站点。

多数Internet 引擎允许逻辑查询。在逻辑查询中，你可以包括特殊的运算符如AND、OR和NOT，你使用这些运算符来选择特定的记录。例如，你可以用AND来限制查询结果。如果你执行一个对Active Sever Pages AND SQL的搜索。你将得到其描述中同时包含Active Sever Pages 和SQL的记录。当你需要限制查询结果时，你可以使用AND。

如果你需要扩展查询的结果，你可以使用逻辑操作符OR。例如，如果你执行一个搜索，搜索所有的其描述中包含Active Sever Pages OR SQL的站点，你收到的列表中将包括所有其描述中同时包含两个表达式或其中任何一个表达式的站点。

如果你想从搜索结果中排除特定的站点，你可以使用NOT。例如，查询“Active Sever Pages ”AND NOT “SQL”将返回一个列表，列表中的站点包含Active Sever Pages，但不包含SQL。当必须排除特定的记录时，你可以使用NOT。

用SQL执行的查询与用Internet搜索引擎执行的搜索非常相似。 当你执行一个SQL查询时，通过使用包括逻辑运算符的查询条件，你可以得到一个记录列表。此时查询结果是来自一个或多个表。

SQL查询的句法非常简单。假设有一个名为email_table 的表，包含名字和地址两个字段，要得到Bill Gates 的e_mail地址,你可以使用下面的查询：

SELECT email from email_table WHERE name="Bill Gates"

当这个查询执行时，就从名为email_table的表中读取Bill Gates的e_mail 地址。这个简单的语句包括三部分：

■ SELECT语句的第一部分指名要选取的列。在此例中，只有email列被选取。当执行 时，只显示email列的值 billg@microsoft.com。

■ SELECTT语句的第二部份指明要从哪个（些）表中查询数据。在此例中，要查询的表名为email_table 。

■ 最后，SELECT语句的WHERE子句指明要选择满足什么条件的记录。在此例中，查询条件为只有name列的值为Bill Gates 的记录才被选取。

Bill Gates很有可能拥有不止一个email地址。如果表中包含Bill Gates的多个email地址。用上述的SELECT语句可以读取他所有的email地址。SELECT语句从表中取出所有name字段值为Bill Gates 的记录的email 字段的值。

前面说过，查询可以在查询条件中包含逻辑运算符。假如你想读取Bill Gates 或Clinton总统的所有email地址，你可以使用下面的查询语句：

SELECT email FROM email_table WHERE name="Bill Gates" OR

name="president Clinton"

此例中的查询条件比前一个复杂了一点。这个语句从表email_table中选出所有name列为Bill Gates或president Clinton的记录。如果表中含有Bill Gates或president Clinton的多个地址，所有的地址都被读取。

SELECT语句的结构看起来很直观。如果你请一个朋友从一个表中为你选择一组记录，你也许以非常相似的方式提出你的要求。在SQL SELECT语句中，你“SELECT特定的列FROM一个表WHERE某些列满足一个特定的条件”。

下一节将介绍怎样执行SQL查询来选取记录。这将帮助你熟悉用SELECT语句从表中取数据的各种不同方法。


SQL数据操作基础(初级)2

使用ISQL执行SELECT查询

当你安装SQL Sever时，你同时安装了一个叫作ISQL/w的应用程序。ISQL/w允许你执行交互的SQL查询。在把查询包括到你的ASP网页中之前，用ISQL/w对其进行测试是非常有用的。

注意：

在这本书的第一部份，你学习了怎样安装和配置Microsoft SQL Sever 。如果没有安装SQL Sever或者SQL Sever不能运行，请参阅第三章“安装和使用SQL Sever”。

选择任务上SQL Sever程序组中的ISQL_w以启动该程序。程序启动时，首先会出现一个对话框，要求输入服务器信息和登录信息。在Sever框中，输入你的SQL服务器的名字。如果服务器正运行在本地计算机上，服务器名字就是你计算机的名字。在登录信息框中，输入一个登录帐号和密码或选择使用“可信连接”，然后单击Connect按钮。

注意：

如果你将SQL Sever配置为使用完整安全或混合安全，那么你可以使用可信连接。如果你使用标准安全，你则需要提供用户帐号和密码。要了解更多信息，参见第三章。

如果一切正常，在你单击连接按钮后会出现一个查询窗口。（如果有异常，请参考第三章）

在执行查询之前，你需要选择数据库。安装 SQL Sever时你已为自己创建了一个数据库，SQL Sever还有许多系统数据库，如master，model，msdb，和tempdb。

方便的是，SQL Sever带有一个特殊的名为pubs的例子数据库。库 pubs中包含供一个虚拟的出版商使用的各个表。文档中所有的例子程序都是针对这个库来设计的。本书中的许多例子也使用这个数据库。

在查询窗口顶部的DB下拉框中选择数据库pubs，这样你就选择了数据库。你所有的查询都将针对这个库中的各个表来执行。现在你可以执行你的第一个查询了。这真让人兴奋！

你的第一个查询将针对一个名为autrors的表，表中包含所有为某个虚拟出版商工作的作者的相关数据。单击查询窗口并输入以下的语句：

SELECT phone FROM authors WHERE au_name="Ringer"

输入完成后，单击执行查询按钮（一个绿色三角形，看起来像VCR播放键）。单击此按钮后，任何出现在查询窗口中的语句均会被执行。查询窗口会自动变成结果显示窗口，你可以看到查询的结果。

在SQL Sever的不同版本中，库pubs中的数据会有所不同。对SQL Sever 6.5来说，将会找到两条记录。结果显示窗口中应显示如下内容：

phone

……………….

801 826_0752

801 826_0752

(2 row(s) affected)

你所执行的SELECT语句从表authors中取出所有名字为Ringer的作者的电话号码。你通过在WHERE子句中使用特殊的选择条件来限制查询的结果。你也可以忽略选择条件，从表中取出所有作者的电话号码。要做到这一点，单击Query标签，返回到查询窗口，输入以下的SELECT语句：

SELECT Phone FROM authors

这个查询执行后，会取出表authors中的所有电话号码（没有特定的顺序）。如果表authors中包含一百个电话号码，会有一百个记录被取出，如果表中有十亿个电话号码，这十亿条记录都会被取出（这也许需要一些时间）。

表authrs的字段包括姓，名字，电话号码，地址，城市，州和邮政编码。通过在SELECT语句的第一部份指定它们，你可以从表中取出任何一个字段。你可以在一个SELECT语句中一次取出多个字段，比如：

SELECT au_fname ,au_lname, phone FROM authors

这个SELECT语句执行后，将取出这三个列的所有值。下面是这个查询的结果的一个示例（为了节省纸张，只显示查询结果的一部分，其余记录用省略号代替）：

au_fname au_lname phone

………………………………………………………………………….

Johnson White 408 496_7223

Marjorie Green 415 986_7020

Cheryl Carson 415 548_7723

Michael O’Leary 408 286_2428

…

(23 row(s) affected)

在SELECT语句中，你需要列出多少个字段，你就可以列出多少。不要忘了把字段名用逗号隔开。你也可以用星号（*）从一个表中取出所有的字段。这里有一个使用星号的例子：

SELECT * FROM authors

这个SELECT语句执行后，表中的所有字段的值都被取出。你会发现你将在SQL查询中频繁使用星号。

技巧：

你可以使用星号来查看一个表的所有列的名字。要做到这一点，只需要在执行完SELECT语句后看一下查询结果的列标题。

操作多个表

到现在为止，你只尝试了用一句SQL查询从一个表中取出数据。你也可以用一个SELECT语句同时从多个表中取出数据，只需在SELECT语句的FROM从句中列出要从中取出数据的表名称即可：

SELECT au_lname ,title FROM authors, titles

这个SELECT语句执行时，同时从表authors和表titles中取出数据。从表authors中取出所有的作者名字，从表titles中取出所有的书名。在ISQL/w程序中执行这个查询，看一下查询结果。你会发现一些奇怪的出乎意料的情况：作者的名字并没有和它们所著的书相匹配，而是出现了作者名字和书名的所有可能的组合，这也许不是你所希望见到的。

出了什么差错？问题在于你没有指明这两个表之间的关系。你没有通过任何方式告诉SQL如何把表和表关联在一起。由于不知道如何关联两个表，服务器只能简单地返回取自两个表中的记录的所有可能组合。

要从两个表中选出有意义的记录组合，你需要通过建立两表中字段的关系来关联两个表。要做到这一点的途径之一是创建第三个表，专门用来描述另外两个表的字段之间的关系。

表authors有一个名为au_id的字段，包含有每个作者的唯一标识。表titles有一个名为title_id的字段，包含每个书名的唯一标识。如果你能在字段au_id和字段title_id 之间建立一个关系，你就可以关联这两个表。数据库pubs中有一个名为titleauthor的表，正是用来完成这个工作。表中的每个记录包括两个字段，用来把表titles和表authors关联在一起。下面的SELECT语句使用了这三个表以得到正确的结果：

SELECT au_name,title FROM authors,titles,titleauthor

WHERE authors.au_id=titleauthor.au_id

AND titles.title_id=titleauthor.title_id

当这个SELECT语句执行时，每个作者都将与正确的书名相匹配。表titleauthor指明了表authors和表titles的关系，它通过包含分别来自两个表的各一个字段实现这一点。第三个表的唯一目的是在另外两个表的字段之间建立关系。它本身不包含任何附加数据。

注意在这个例子中字段名是如何书写的。为了区别表authors和表titles中相同的字段名au_id，每个字段名前面都加上了表名前缀和一个句号。名为author.au_id 的字段属于表authors，名为titleauthor.au_id的字段属于表titleauthor，两者不会混淆。

通过使用第三个表，你可以在两个表的字段之间建立各种类型的关系。例如，一个作者也许写了许多不同的书，或者一本书也许由许多不同的作者共同完成。当两个表的字段之间有这种“多对多”的关系时，你需要使用第三个表来指明这种关系。

但是，在许多情况下，两个表之间的关系并不复杂。比如你需要指明表titles和表publishers之间的关系。因为一个书名不可能与多个出版商相匹配，你不需要通过第三个表来指明这两个表之间的关系。要指明表titles和表publishers之间的关系，你只要让这两个表有一个公共的字段就可以了。在数据库pubs中，表titles和表publishers都有一个名为pub_id的字段。如果你想得到书名及其出版商的一个列表，你可以使用如下的语句：

SELECT title,pub_name FROM titles,publishers

WHERE titles.pub_id=publishers.pub_id

当然，如果一本书是由两个出版商联合出版的，那么你需要第三个表来代表这种关系。

通常，当你予先知道两个表的字段间存在“多对多”关系时，就使用第三个表来关联这两个表。反之，如果两个表的字段间只有“一对一”或“一对多”关系，你可以使用公共字段来关联它门。


SQL数据操作基础(初级)3

操作字段

通常，当你从一个表中取出字段值时，该值与创建该表时所定义的字段名联系在一起。如果你从表authors中选择所有的作者名字，所有的值将会与字段名au_lname相联系。但是在某些情况下，你需要对字段名进行操作。在SELECT语句中，你可以在缺省字段名后面仅跟一个新名字来取代它。例如，可以用一个更直观易读的名字Author Last Name来代替字段名au_lname：

SELECT au_lname "Author Last Name" FROM authors

当这个SELECT语句执行时，来自字段au_lname的值会与“Author Last Name”相联系。查询结果可能是这样：

Author Last Name

……………………………………………………………………..

White

Green

Carson

O’Leary

Straight

…

(23 row(s) affected)

注意字段标题不再是au_lname，而是被Author Last Name所取代。

你也可以通过执行运算，来操作从一个表返回的字段值。例如，如果你想把表titles中的所有书的价格加倍，你可以使用下面的SELECT语句：

SELECT price*2 FROM titles

当这个查询执行时，每本书的价格从表中取出时都会加倍。但是，通过这种途径操作字段不会改变存储在表中的书价。对字段的运算只会影响SELECT语句的输出，而不会影响表中的数据。为了同时显示书的原始价格和涨价后的新价格，你可以使用下面的查询：

SELECT price "Original price", price*2 "New price" FROM titles

当数据从表titles中取出时，原始价格显示在标题Original price下面，加倍后的价格显示在标题New price下面。结果可能是这样：

original price new price

……………………………………………………………….

39.98
11.95 23.90

5.98
39.98
…

(18 row(s) affected)

你可以使用大多数标准的数学运算符来操作字段值，如加（+），减（-），乘（*）和除（/）。你也可以一次对多个字段进行运算，例如：

SELECT price*ytd_sales "total revenue" FROM titles

在这个例子中，通过把价格与销售量相乘，计算出了每种书的总销售额。这个SELECT语句的结果将是这样的：

total revenue

……………………………………………..

81,859,05

46,318,20

55,978,78

81,859,05

40,619,68

…

(18 row(s) affected)

最后，你还可以使用连接运算符（它看起来像个加号）来连接两个字符型字段：

SELECT au_fname+" "+au_lname "author name" FROM authors

在这个例子中，你把字段au_fname和字段au_lname粘贴在一起，中间用一个逗号 隔开，并把查询结果的标题指定为author name。这个语句的执行结果将是这样的：

author names

…………………………………………………………

Johnson White

Marjorie Green

Cheryl Carson

Michael O’Leary

Dean Straight

…

(23 row(s) affected)

可以看到，SQL为你提供了对查询结果的许多控制。你应该在ASP编程过程中充分利用这些优点。使用SQL来操作查询结果几乎总是比使用有同样作用的脚本效率更高。

排序查询结果

本章的介绍中曾强调过，SQL表没有内在的顺序。例如，从一个表中取第二个记录是没有意义的。从SQL的角度看来，没有一个记录在任何其他记录之前。

然而，你可以操纵一个SQL查询结果的顺序。在缺省情况下，当记录从表中取出时，记录不以特定的顺序出现。例如，当从表authors中取出字段au_lname时，查询结果显示成这样：

au_lname

…………………………………….

White

Green

Carson

O’Leary

Straight

…

(23 row(s) affected)

看一列没有特定顺序的名字是很不方便的。如果把这些名字按字母顺序排列，读起来就会容易得多。通过使用ORDER BY子句，你可以强制一个查询结果按升序排列，就像这样：

SELECT au_lname FROM authors ORDER BY au_lname

当这个SELECT语句执行时，作者名字的显示将按字母顺序排列。ORDER BY子句将作者名字按升序排列。

你也可以同时对多个列使用ORDER BY子句。例如，如果你想同时按升序显示字段au_lname和字段au_fname，你需要对两个字段都进行排序：

SELECT au_lname,au_fname FROM authors ORDER BY au_lname ,au_fname

这个查询首先把结果按au_lname字段进行排序，然后按字段au_fname排序。记录将按如下的顺序取出：

au_lname au_fname

…………………………………………………………………….

Bennet Abraham

Ringer Albert

Ringer Anne

Smith Meander

…

(23 row(s) affected)

注意有两个作者有相同的名字Ringer。名为Albert Ringer的作者出现名为Anne Ringer的作者之前，这是因为姓Albert按字母顺序应排在姓Anne之前。

如果你想把查询结果按相反的顺序排列，你可以使用关键字DESC。关键字DESC把查询结果按降序排列，如下例所示：

SELECT au_lname,au_fname FROM authors

WHERE au_lname=”Ringer” ORDER BY au_lname ,au_fname DESC

这个查询从表authors中取出所有名字为Ringer的作者记录。ORDER BY子句根据作者的名字和姓，将查询结果按降序排列。结果是这样的：

au_lname au_fname

……………………………………………………………………………………….

Ringer Anne

Ringer Albert

(2 row(s) affectec)

注意在这个表中，姓Anne出现在姓Albert之前。作者名字按降序显示。

你也可以按数值型字段对一个查询结果进行排序。例如，如果你想按降序取出所有书的价格，你可以使用如下的SQL查询：

SELECT price FROM titles ORDER BY price DESC

这个SELECT语句从表中取出所有书的价格，显示结果时，价格低的书先显示，价格高的书后显示。

警告：

不是特别需要时，不要对查询结果进行排序，因为服务器完成这项工作要费些力气。这意味着带有ORDER BY 子句的SELECT语句执行起来比一般的SELECT语句花的时间长。

取出互不相同的记录

一个表有可能在同一列中有重复的值。例如，数据库pubs的表authors中有两个作者的名字是Ringer。如果你从这个表中取出所有的名字，名字Ringer将会显示两次。

在特定情况下，你可能只有兴趣从一个表中取出互不相同的值。如果一个字段有重复的值，你也许希望每个值只被选取一次，你可以使用关键字DISTINCT来做到这一点：

SELCET DISTINCT au_lname FROM authors WHERE au_lname="Ringer"

当这个SELECT语句执行时，只返回一个记录。通过在SELECT语句中包含关键字DISTINCT，你可以删除所有重复的值。例如，假设有一个关于新闻组信息发布的表，你想取出所有曾在这个新闻组中发布信息的人的名字，那么你可以使用关键字DISTINCT。每个用户的名字只取一次——尽管有的用户发布了不止一篇信息。

警告：

如同ORDER BY子句一样，强制服务器返回互不相同的值也会增加运行开销。福气不得不花费一些时间来完成这项工作。因此，不是必须的时候不要使用关键字DISTINCT。

创建新表

前面说过，数据库中的所有数据存储在表中。数据表包括行和列。列决定了表中数据的类型。行包含了实际的数据。

例如，数据库pubs中的表authors有九个字段。其中的一个字段名为为au_lname，这个字段被用来存储作者的名字信息。每次向这个表中添加新作者时，作者名字就被添加到这个字段，产生一条新记录。

通过定义字段，你可以创建一个新表。每个字段有一个名字和一个特定的数据类型（数据类型在后面的“字段类型”一节中讲述），例如字段au_lname存储的是字符型数据。一个字段也可以存储其它类型的数据。

使用SQL Sever，创建一个新表的方法是很多的。你可以可执行一个SQL语句或使用SQL事务管理器（SQL Enterprise Manager）来创建一个新表。在下一节里，你将学会如何用SQL语句来创建一个新表。


SQL数据操作基础(初级)4

用SQL创建新表

注意：

如果你还没有建立自己的数据库，现在就跳回到第三章创建这个库。你绝不能向master,tempdb或任何其他任何系统数据库中添加数据。

从SQL Sever程序组（在任务栏中）中启动ISQL/w程序。出现查询窗口后，从窗口顶部的下拉列表中选择你在第三章所创建的数据库。下一步，在查询窗口中键入下面的SQL语句，单击执行查询按钮，执行这个语句：

CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate

DATETIME)

如果一切正常，你会在结果窗口中看到如下的文字（如果出现异常，请参阅第三章）：

This command dit not return data ,and it did not return any rows

祝贺你，你已经建立了你的第一个表！

你所创建的表名为guestbook，你可以使用这个表来存储来字你站点访问者的信息。你是用REEATE TABLE语句创建的这个表，这个语句有两部分：第一部份指定表的名子；第二部份是括在括号中的各字段的名称和属性，相互之间用逗号隔开。

表guestbook有三个字段：visitor,comments 和entrydate。visitor字段存储访问者的名字，comments字段存储访问者对你站点的意见，entrydate字段存储访问者访问你站点的日期和时间。

注意每个字段名后面都跟有一个专门的表达式。例如，字段名comments后面跟有表达式TEXT。这个表达式指定了字段的数据类型。数据类型决定了一个字段可以存储什么样的数据。因为字段comments包含文本信息，其数据类型定义为文本型。

字段有许多不同的数据类型。下一小节讲述SQL所支持的一些重要的数据类型。

字段类型

不同的字段类型用来存放不同类型的数据。创建和使用表时，更你应该理解五种常用的字段类型：字符型，文本型，数值型，逻辑性和日期型。

字符型数据

字符型数据非常有用。当你需要存储短的字符串信息时，你总是要用到字符型数据。例如，你可以把从HTML form的文本框中搜集到的信息放在字符型字段中。

要建立一个字段用来存放可变长度的字符串信息，你可以使用表达式 VARCHAR。考虑你前面创建的表guestbook：

CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate

DATETIME)

在这个例子中，字段visitor的数据类型为VARCHAR。注意跟在数据类型后面的括号中的数字。这个数字指定了这个字段所允许存放的字符串的最大长度。在这个例子中，字段visitor能存放的字符串最长为四十个字符。如果名字太长，字符串会被截断，只保留四十个字符。

VARCHAR类型可以存储的字符串最长为255个字符。要存储更长的字符串数据，可以使用文本型数据（下一节中讲述）。

另一种字符型数据用来存储固定长度的字符数据。下面是一个使用这种数据类型的例子：

CREATE TABLE guestbook (visitor CHAR(40),comments TEXT,entrydate

DATETIME)

在这个例子中，字段visitor被用来存储四十个字符的固定长度字符串。表达式CHAR指定了这个字段应该是固定长度的字符串。

VARCHAR型和CHAR型数据的这个差别是细微的，但是非常重要。假如你向一个长度为四十个字符的VARCHAR型字段中输入数据Bill Gates。当你以后从这个字段中取出此数据时，你取出的数据其长度为十个字符——字符串Bill Gates的长度。

现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中，那么当你取出数据时，所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。

当你建立自己的站点时，你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时，你不需要为剪掉你数据中多余的空格而操心。

VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时，这种内存和磁盘空间的节省会变得非常重要。

文本型数据

字符型数据限制了字符串的长度不能超过２55个字符。而使用文本型数据，你可以存放超过二十亿个字符的字符串。当你需要存储大串的字符时，应该使用文本型数据。

这里有一个使用文本型数据的例子：

CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate

DATETIME)

在这个例子中，字段comments被用来存放访问者对你站点的意见。注意文本型数据没有长度，而上一节中所讲的字符型数据是有长度的。一个文本型字段中的数据通常要么为空，要么很大。

当你从HTML form的多行文本编辑框（TEXTAREA）中收集数据时，你应该把收集的信息存储于文本型字段中。但是，无论何时，只要你能避免使用文本型字段，你就应该不适用它。文本型字段既大且慢，滥用文本型字段会使服务器速度变慢。文本型字段还会吃掉大量的磁盘空间。

警告：

一旦你向文本型字段中输入了任何数据（甚至是空值），就会有2K的空间被自动分配给该数据。除非删除该记录，否则你无法收回这部分存储空间。

数值型数据

SQL Sever支持许多种不同的数值型数据。你可以存储整数、小数、和钱数。

通常，当你需要在表中的存放数字时，你要使用整型（INT）数据。INT型数据的表数范围是从-2，147，483，647到2，147，483，647的整数。下面是一个如何使用INT型数据的例子：

CREATE TABLE visitlog (visitor VARCHAR(40),numvisits INT)

这个表可以用来记录你站点被访问的次数。只要没有人访问你的站点超过2，147，483，647次，nubvisits字段就可以存储访问次数。

为了节省内存空间，你可以使用SMALLINT型数据。SMALLINT 型数据可以存储从-32768到32768的整数。这种数据类型的使用方法与INT型完全相同。

最后，如果你实在需要节省空间，你可以使用TINYINT型数据。同样，这种类型的使用方法也与INT型相同，不同的是这种类型的字段只能存储从０到255的整数。TINYINT型字段不能用来存储负数。

通常，为了节省空间，应该尽可能的使用最小的整型数据。一个TINYINT型数据只占用一个字节；一个INT型数据占用四个字节。这看起来似乎差别不大，但是在比较大的表中，字节数的增长是很快的。另一方面，一旦你已经创建了一个字段，要修改它是很困难的。因此，为安全起见，你应该预测以下，一个字段所需要存储的数值最大有可能是多大，然后选择适当的数据类型。

为了能对字段所存放的数据有更多的控制，你可以使用NUMERIC型数据来同时表示一个数的整数部分和小数部分。NUMERIC型数据使你能表示非常大的数——比INT型数据要大得多。一个NUMERIC型字段可以存储从-1038到1038范围内的数。NUMERIC型数据还使你能表示有小数部分的数。例如，你可以在NUMERIC型字段中存储小数3.14。

当定义一个NUMERIC型字段时，你需要同时指定整数部分的大小和小数部分的大小。这里有一个使用这种数据类型的例子：

CREATE TABLE numeric_data (bignumber NUMERIC(28,0),

fraction NUMERIC (5,4) )

当这个语句执行时，将创建一个名为numeric_data的包含两个字段的表。字段bignumber可以存储直到28位的整数。字段fraction可以存储有五位整数部分和四位小数部分的小数。

一个NUMERIC型数据的整数部分最大只能有28位，小数部分的位数必须小于或等于整数部分的位数，小数部分可以是零。

你可以使用INT型或NUMERIC型数据来存储钱数。但是，专门有另外两种数据类型用于此目的。如果你希望你的网点能挣很多钱，你可以使用MONEY型数据。如果你的野心不大，你可以使用SMALLMONEY型数据。MONEY型数据可以存储从-922，337，203，685，477.5808到922，337，203，685，477.5807的钱数。如果你需要存储比这还大的金额，你可以使用NUMERIC型数据。

SMALLMONEY型数据只能存储从-214，748.3648到214，748.3647 的钱数。同样，如果可以的话，你应该用SMALLMONEY型来代替MONEY型数据，以节省空间。下面的例子显示了如何使用这两种表示钱的数据类型：

CREATE TABLE products (product VARCHAR(40),price MONEY,

Discount_price SMALLMONEY)

这个表可以用来存储商品的折扣和普通售价。字段price 的数据类型是MONEY，字段discount_price的数据类型是SMALLMONEY。

存储逻辑值

如果你使用复选框（CHECKBOX）从网页中搜集信息，你可以把此信息存储在BIT型字段中。BIT型字段只能取两个值：0或1。这里有一个如何使用这种字段的例子：

CREATE TABLE opinion (visitor VARCHAR(40),good BIT)

这个表可以用来存放对你的网点进行民意调查所得的信息。访问者可以投票表示他们是否喜欢你的网点。如果他们投YES，就在BIT型字段中存入1。反之，如果他们投NO，就在字段中存入0（在下一章里，你将学会如何计算投票）。

当心，在你创建好一个表之后，你不能向表中添加BIT型字段。如果你打算在一个表中包含BIT型字段，你必须在创建表时完成。

存储日期和时间

当你建立一个网点时，你也许需要记录在一段时间内的访问者数量。为了能够存储日期和时间，你需要使用DATETIME型数据，如下例所示：

CREATE TABL visitorlog( visitor VARCHAR (40), arrivaltime DATETIME ,

departuretime DATETIME)

这个表可以用来记录访问者进入和离开你网点的时间和日期。一个DATETIME型的字段可以存储的日期范围是从１７５３年１月１日第一毫秒到9999年12月31日最后一毫秒。

如果你不需要覆盖这么大范围的日期和时间，你可以使用SMALLDATETIME型数据。它与DATETIME型数据同样使用，只不过它能表示的日期和时间范围比DATETIME型数据小，而且不如DATETIME型数据精确。一个SMALLDATETIME型的字段能够存储从１９00年１月１日到２０７９年６月６日的日期，它只能精确到秒。

DATETIME型字段在你输入日期和时间之前并不包含实际的数据，认识这一点是重要的。在下一章，你将学习怎样使用大量的SQL函数来读取和操作日期和时间（参见下面的“缺省值”一节）。你也可以在VBScript和JScript 中使用日期和时间函数来向一个DATETIME型字段中输入日期和时间。

字段属性

上一节介绍了如何建立包含不同类型字段的表。在这一节中，你将学会如何使用字段的三个属性。这些属性允许你控制空值，缺省值和标识值。

允许和禁止空值

大多数字段可以接受空值（NULL）。当一个字段接受了空值后，如果你不改变它，它将一直保持空值。空值（NULL）和零是不同的，严格的说，空值表示没有任何值。

为了允许一个字段接受空值，你要在字段定义的后面使用表达式NULL。例如，下面的表中两个字段都允许接受空值：

CREATE TABLE empty (empty1 CHAR (40) NULL,empty2 INT NULL(

注意：

BIT型数据不能是空值。一个这种类型的字段必须取0或者１。

有时你需要禁止一个字段使用空值。例如，假设有一个表存储着信用卡号码和信用卡有效日期，你不会希望有人输入一个信用卡号码但不输入有效日期。为了强制两个字段都输入数据，你可以用下面的方法建立这个表：

CREATE TABLE creditcards (creditcard_number CHAR(20) NOT NULL,

Creditcard_expire DATETIME NOT NULL)

注意字段定义的后面跟有表达式NOT NULL。通过包含表达式NOT NULL，你可以禁止任何人只在一个字段中插入数据，而不输入另一个字段的数据。

你将会发现，在你建设自己的网点过程中，这种禁止空值的能力是非常有用的。如果你指定一个字段不能接受空值，那么当你试图输入一个空值时，会有错误警告。这些错误警告可以为程序调试提供有价值的线索。

缺省值

假设有一个存储地址信息的表，这个表的字段包括街道、城市、州、邮政编码和国家。如果你预计地址的大部分是在美国，你可以把这个值作为country字段的缺省值。

为了在创建一个表时指定缺省值，你可以使用表达式DEFAULT。请看下面这个在创建表时使用缺省值的例子：

CREATE TABLE addresses (street VARCHAR(60) NULL,

city VARCHAR(40) NULL,

state VARCHAR(20) NULL

zip VARCHAR(20) NULL,

country VARCHAR(30) DEFAULT ‘USA’)

在这个例子中，字段country的缺省值被指定为美国。注意单引号的使用，引号指明这是字符型数据。为了给非字符型的字段指定缺省值，不要把该值扩在引号中：

CREATE TABLE orders(price MONEY DEFAULT $38.00,

quantity INT DEFAULT 50,

entrydate DATETIME DEFAULT GETDATE())

在这个CREATE TABLE语句中，每个字段都指定了一个缺省值。注意DATETIME型字段entrydate所指定的缺省值,该缺省值是函数Getdate()的返回值,该函数返回当前的日期和时间。

标识字段

每个表可以有一个也只能有一个标识字段。一个标识字段是唯一标识表中每条记录的特殊字段。例如，数据库pubs中的表jobs包含了一个唯一标识每个工作标识字段：

job_id job_desc

…………………………………………………………….

New Hire Job not specified
Chief Executive officer
Bushness Operations Manager
Chief Financial Officier
Publisher
字段job_id为每个工作提供了唯一的一个数字。如果你决定增加一个新工作，新增记录的job_id字段会被自动赋给一个新的唯一值。

为了建立一个标识字段，你只需在字段定义后面加上表达式IDENTITY即可。你只能把NUMERIC型或INT型字段设为标识字段，这里有一个例子：

CREATE TABLE visitorID (theID NUBERIC(18) IDENTITY,name VARCHAR(40))

这个语句所创建的表包含一个名为theid的标识字段。每当一个新的访问者名字添加到这个表中时，这个字段就被自动赋给一个新值。你可以用这个表为你的站点的每一个用户提供唯一标识。

技巧：

建立一个标示字段时，注意使用足够大的数据类型。例如你使用TINYINT型数据，那么你只能向表中添加255个记录。如果你预计一个表可能会变得很大，你应该使用NUMERIC型数据。

标识字段的存在会使你想尝试许多不可能的事情。例如，你也许想利用标识字段来对记录进行基于它们在表中位置的运算。你应该抛弃这种意图。每个记录的标识字段的值是互不相同的，但是，这并不禁止一个标识字段的标识数字之间存在间隔。例如，你永远不要试图利用一个表的标识字段来取出表中的前十个记录。这种操作会导致失败，比如说６号记录和7号记录根本不存在。


SQL数据操作基础(初级)5

使用SQL事务管理器创建新表

你可以使用前面几节所讲的方法创建新表。但是，使用事务管理器创建新表会更容易。这一节介绍如何使用这个程序创建新表。

从任务栏的SQL Sever程序组中选择SQL Enterprise Manager，启动该程序。浏览服务管理器窗口中的树形结构，选择名为Database的文件夹。打开文件夹Database后，选择你在第三章中所建立的数据库。

注意：

如果你还没有创建自己的数据库，回到第三章创建它。你决不要向master,tempdb或任何其它系统数据库中添加数据。

在选择了数据库之后，你会看到一个名为Group/users的文件夹和一个名为objects的文件夹。打开文件夹objects，你会看到许多文件夹，其中一个名为Tables。用右键单击文件夹Tables并选择New table。

你可以使用Manager Tables窗口来创建一个新表。Manager Tables窗口有７个列：Key,Column,Name,Datatype,Size,Nulls和Default。Manager Tables窗口中的每一行标明表中一个字段的信息。

要建立一个新表，你至少要输入一行信息。在名为Column Name的列下面键入mycolumn。下一步，选择Datatype列，并从下拉列表中选择CHAR。在这两个列中输入信息。

你已经建立了一个只有一个字段的简单的表。单击保存按扭保存这个新表。当要求你输入新表的名字时，输入mytable并单击OK。现在这个表已经保存到了你的数据库中。

如果你打开服务管理器窗口中的文件夹Tables，你会看到你所建立的新表被列出。你可以双击该表的图表来编辑它，这时Manager Tables窗口会重新出现，你可以增加新的字段并重新保存。

用SQL事务管理器可以做的工作，你都可以用SQL语句来实现。但是，事务管理器使得建表过程变得更加简单。

向表中添加数据

下一章将讨论如何使用SQL向一个表中插入数据。但是，如果你需要向一个表中添加许多条记录，使用SQL语句输入数据是很不方便的。幸运的是，Microsoft SQL Sever带有一个称为Microsoft Query 的客户端应用程序，这个程序使得向表中添加数据变得容易了。

启动位于任务栏SQL Sever程序组中的Microsoft Query程序。从窗口顶部的菜单中选择File|New Query。这时会显示一个Select Data Source对话框。选择你的数据源名字并单击Use。

输入你的登录帐号和密码后，程序要求你选择一个表和一个数据库。选择你在上一节中所建立的表（mytable ），单击按钮Add，然后单击按钮Close关闭该对话框。

在窗口的左上角会出现一个对话框，框中是取自表mytable的一列字段名。你可以双击任何一个字段，把它添加到主窗口中。如果你双击星号（*）字符，所有的字段都会被添加到主窗口中。

如果你的表中有记录，它们现在已经出现在主窗口的字段标题下面了。但是，因为你刚刚建立了这个表，表还是空的。要添加新记录，选择Records|Allow Editing，主窗口中就会出现一条新记录。输入一行数据完成这个记录，就向表中添加了一条新记录。

当你转到下一条新记录时，你向上一条记录中输入的值会自动被保存。如果你需要，你可以用Microsoft Query 向表中输入几百条记录。

删除和修改表

你应该在建立表之前仔细设计它们，因为你在改变一个已经存在的表时会受到很大的限制。例如，一旦已经建立了一个表，你就不能删除表中的字段或者改变字段的数据类型。在这种情况你所能做的是删除这个表，然后重头开始（参见第十一章“中级SQL”中的“使用SQL创建记录和表”一节）。

要删除一个表，你可以使用SQL语句DROP TABLE。例如，又从数据库中彻底删除表mytable，你要使用如下的语句：

DROP TABLE mytable

警告：

使用DROP TABLE命令时一定要小心。一旦一个表被删除之后，你将无法恢复它。

当你建设一个站点时，你很可能需要向数据库中输入测试数据。而当你准备向世界提供你的网点时，你会想清空表中的这些测试信息。如果你想清除表中的所有数据但不删除这个表，你可以使用TRUNCATE TABLE语句。例如，下面的这个SQL语句从表mytable中删除所有数据：

TRUNCATE TABLE mytable

虽然你不能删除和修改已经存在的字段，但你可以增加新字段。最容易的实现方法是使用SQL事务管理器中的Manager Tables窗口。你也可以使用SQL语句ALTER TABLE。下面是一个如何使用这种语句的例子：

ALTER TABLE mytable ADD mynewcolumn INT NULL

这个语句向表mytable中增加了一个新字段mynewcolumn。当你增加新字段时，你必须允许它接受空值，因为表中原来可能已经有了许多记录。

总结

这一章向你介绍了SQL。使用SQL，你可以操作Microsoft SQL Sever数据库。你已经学会了使用SELECT语句从数据库中取出数据，你还学会了怎样使用CREATE TABLE语句和SQL事务管理器来创建新表。最后，你学会了如何指明一系列重要的字段属性。

下一章将介绍如何使用索引来增强SQL查询的操作。还将通过许多其它的SQL语句和函数，使你的SQL知识得到进一步扩充。


SQL数据操作基础(中级)1

第十章“SQL基础”向你初步介绍了SQL。你学会了如何用SELECT语句进行查询，你还学会了如何建立自己的表。在这一章里，你将加深你的SQL知识。你将学习如何建立索引来加快查询速度。你还将学会如果用更多的SQL语句和函数来操作表中的数据。

建立索引

假设你想找到本书中的某一个句子。你可以一页一页地逐页搜索，但这会花很多时间。而通过使用本书的索引，你可以很快地找到你要搜索的主题。

表的索引与附在一本书后面的索引非常相似。它可以极大地提高查询的速度。对一个较大的表来说，通过加索引，一个通常要花费几个小时来完成的查询只要几分钟就可以完成。因此没有理由对需要频繁查询的表增加索引。

注意：

当你的内存容量或硬盘空间不足时，也许你不想给一个表增加索引。对于包含索引的数据库，SQL Sever需要一个可观的额外空间。例如，要建立一个聚簇索引，需要大约１.２倍于数据大小的空间。要看一看一个表的索引在数据库中所占的空间大小，你可以使用系统存储过程sp_spaceused，对象名指定为被索引的表名。

聚簇索引和非聚簇索引

假设你已经通过本书的索引找到了一个句子所在的页码。一旦已经知道了页码后，你很可能漫无目的翻寻这本书，直至找到正确的页码。通过随机的翻寻，你最终可以到达正确的页码。但是，有一种找到页码的更有效的方法。

首先，把书翻到大概一半的地方，如果要找的页码比半本书处的页码小，就书翻到四分之一处，否则，就把书翻到四分之三的地方。通过这种方法，你可以继续把书分成更小的部分，直至找到正确的页码附近。这是找到书页的非常有效的一种方法。

SQL Sever的表索引以类似的方式工作。一个表索引由一组页组成，这些页构成了一个树形结构。根页通过指向另外两个页，把一个表的记录从逻辑上分成和两个部分。而根页所指向的两个页又分别把记录分割成更小的部分。每个页都把记录分成更小的分割，直至到达叶级页。

索引有两种类型：聚簇索引和非聚簇索引。在聚簇索引中，索引树的叶级页包含实际的数据：记录的索引顺序与物理顺序相同。在非聚簇索引中，叶级页指向表中的记录：记录的物理顺序与逻辑顺序没有必然的联系。

聚簇索引非常象目录表，目录表的顺序与实际的页码顺序是一致的。非聚簇索引则更象书的标准索引表，索引表中的顺序通常与实际的页码顺序是不一致的。一本书也许有多个索引。例如，它也许同时有主题索引和作者索引。同样，一个表可以有多个非聚簇索引。

通常情况下，你使用的是聚簇索引，但是你应该对两种类型索引的优缺点都有所理解。

每个表只能有一个聚簇索引，因为一个表中的记录只能以一种物理顺序存放。通常你要对一个表按照标识字段建立聚簇索引。但是，你也可以对其它类型的字段建立聚簇索引，如字符型，数值型和日期时间型字段。

从建立了聚簇索引的表中取出数据要比建立了非聚簇索引的表快。当你需要取出一定范围内的数据时，用聚簇索引也比用非聚簇索引好。例如，假设你用一个表来记录访问者在你网点上的活动。如果你想取出在一定时间段内的登录信息，你应该对这个表的DATETIME型字段建立聚簇索引。

对聚簇索引的主要限制是每个表只能建立一个聚簇索引。但是，一个表可以有不止一个非聚簇索引。实际上，对每个表你最多可以建立249个非聚簇索引。你也可以对一个表同时建立聚簇索引和非聚簇索引。

假如你不仅想根据日期，而且想根据用户名从你的网点活动日志中取数据。在这种情况下，同时建立一个聚簇索引和非聚簇索引是有效的。你可以对日期时间字段建立聚簇索引，对用户名字段建立非聚簇索引。如果你发现你需要更多的索引方式，你可以增加更多的非聚簇索引。

非聚簇索引需要大量的硬盘空间和内存。另外，虽然非聚簇索引可以提高从表中 取数据的速度，它也会降低向表中插入和更新数据的速度。每当你改变了一个建立了非聚簇索引的表中的数据时，必须同时更新索引。因此你对一个表建立非聚簇索引时要慎重考虑。如果你预计一个表需要频繁地更新数据，那么不要对它建立太多非聚簇索引。另外，如果硬盘和内存空间有限，也应该限制使用非聚簇索引的数量。

索引属性

这两种类型的索引都有两个重要属性：你可以用两者中任一种类型同时对多个字段建立索引（复合索引）；两种类型的索引都可以指定为唯一索引。

你可以对多个字段建立一个复合索引，甚至是复合的聚簇索引。假如有一个表记录了你的网点访问者的姓和名字。如果你希望根据完整姓名从表中取数据，你需要建立一个同时对姓字段和名字字段进行的索引。这和分别对两个字段建立单独的索引是不同的。当你希望同时对不止一个字段进行查询时，你应该建立一个对多个字段的索引。如果你希望对各个字段进行分别查询，你应该对各字段建立独立的索引。

两种类型的索引都可以被指定为唯一索引。如果对一个字段建立了唯一索引，你将不能向这个字段输入重复的值。一个标识字段会自动成为唯一值字段，但你也可以对其它类型的字段建立唯一索引。假设你用一个表来保存你的网点的用户密码，你当然不希望两个用户有相同的密码。通过强制一个字段成为唯一值字段，你可以防止这种情况的发生。


SQL数据操作基础(中级)2

用SQL建立索引

为了给一个表建立索引，启动任务栏SQL Sever程序组中的ISQL/w程序。进入查询窗口后，输入下面的语句：

CREATE INDEX mycolumn_index ON mytable (myclumn)

这个语句建立了一个名为mycolumn_index的索引。你可以给一个索引起任何名字，但你应该在索引名中包含所索引的字段名，这对你将来弄清楚建立该索引的意图是有帮助的。

注意：

在本书中你执行任何SQL语句，都会收到如下的信息：

This command did not return data,and it did not return any rows

这说明该语句执行成功了。

索引mycolumn_index对表mytable的mycolumn字段进行。这是个非聚簇索引，也是个非唯一索引。（这是一个索引的缺省属性）

如果你需要改变一个索引的类型，你必须删除原来的索引并重建 一个。建立了一个索引后，你可以用下面的SQL语句删除它：

DROP INDEX mytable.mycolumn_index

注意在DROP INDEX 语句中你要包含表的名字。在这个例子中，你删除的索引是mycolumn_index，它是表mytable的索引。

要建立一个聚簇索引，可以使用关键字CLUSTERED。）记住一个表只能有一个聚簇索引。（这里有一个如何对一个表建立聚簇索引的例子：

CREATE CLUSTERED INDEX mycolumn_clust_index ON mytable(mycolumn)

如果表中有重复的记录，当你试图用这个语句建立索引时，会出现错误。但是有重复记录的表也可以建立索引；你只要使用关键字ALLOW_DUP_ROW把这一点告诉SQL Sever即可：

CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)

WITH ALLOW_DUP_ROW

这个语句建立了一个允许重复记录的聚簇索引。你应该尽量避免在一个表中出现重复记录，但是，如果已经出现了，你可以使用这种方法。

要对一个表建立唯一索引，可以使用关键字UNIQUE。对聚簇索引和非聚簇索引都可以使用这个关键字。这里有一个例子：

CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)

这是你将经常使用的索引建立语句。无论何时，只要可以，你应该尽量对一个对一个表建立唯一聚簇索引来增强查询操作。

最后，要建立一个对多个字段的索引──复合索引──在索引建立语句中同时包含多个字段名。下面的例子对firstname和lastname两个字段建立索引：

CREATE INDEX name_index ON username(firstname,lastname)

这个例子对两个字段建立了单个索引。在一个复合索引中，你最多可以对16个字段进行索引。

用事务管理器建立索引

用事务管理器建立索引比用SQL语句容易的多。使用事务管理器，你可以看到已经建立的索引的列表，并可以通过图形界面选择索引选项。

使用事务管理器你可以用两种方式建立索引：使用Manage Tables窗口或使用Manage Indexes窗口。

要用Manage Tables 窗口建立一个新索引，单击按钮Advanced Options(它看起来象一个前面有一加号的表)。这样就打开了Advanced Options对话框。这个对话框有一部分标名为Primary Key。

要建立一个新索引，从下拉列表中选择你想对之建立索引的字段名。如果你想建立一个对多字段的索引，你可以选择多个字段名。你还可以选择索引是聚簇的还是非聚簇的。在保存表信息后，索引会自动被建立。在Manage Tables窗口中的字段名旁边，会出现一把钥匙。

你已经为你的表建立了“主索引”。主索引必须对不包含空值的字段建立。另外，主索引强制一个字段成为唯一值字段。

要建立没有这些限制的索引，你需要使用Manage Indexes窗口。从菜单中选择Manage|Indexes，打开Manage Indexes 窗口。在Manage Indexes 窗口中，你可以通过下拉框选择表和特定的索引。要建立一个新索引，从Index下拉框中选择New Index.，然后就可以选择要对之建立索引的字段。单击按钮Add，把字段加人到索引中。

你可以为你的索引选择许多不同的选项。例如，你可以选择该索引是聚簇的还是非聚簇的。你还可以指定该索引为唯一索引。设计好索引后，单击按钮Build，建立该索引。

注意：

唯一索引是指该字段不能有重复的值，而不是只能建立这一个索引。

SQL核心语句

在第十章，你学会了如何用SQL SELECT 语句从一个表中取数据。但是，到现在为止，还没有讨论如何添加，修改或删除表中的数据。在这一节中，你将学习这些内容。

插入数据

向表中添加一个新记录，你要使用SQL INSERT 语句。这里有一个如何使用这种语句的例子：

INSERT mytable (mycolumn) VALUES (‘some data’)

这个语句把字符串’some data’插入表mytable的mycolumn字段中。将要被插入数据的字段的名字在第一个括号中指定，实际的数据在第二个括号中给出。

INSERT 语句的完整句法如下：

INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |

Values_list | select_statement}

如果一个表有多个字段，通过把字段名和字段值用逗号隔开，你可以向所有的字段中插入数据。假设表mytable有三个字段first_column,second_column,和third_column。下面的INSERT语句添加了一条三个字段都有值的完整记录：

INSERT mytable (first_column,second_column,third_column)

VALUES (‘some data’,’some more data’,’yet more data’)

注意：

你可以使用INSERT语句向文本型字段中插入数据。但是，如果你需要输入很长的字符串，你应该使用WRITETEXT语句。这部分内容对本书来说太高级了，因此不加讨论。要了解更多的信息，请参考Microsoft SQL Sever 的文档。

如果你在INSERT 语句中只指定两个字段和数据会怎么样呢？换句话说，你向一个表中插入一条新记录，但有一个字段没有提供数据。在这种情况下，有下面的四种可能：

如果该字段有一个缺省值，该值会被使用。例如，假设你插入新记录时没有给字段third_column提供数据，而这个字段有一个缺省值’some value’。在这种情况下，当新记录建立时会插入值’some value’。
如果该字段可以接受空值，而且没有缺省值，则会被插入空值。
如果该字段不能接受空值，而且没有缺省值，就会出现错误。你会收到错误信息：
The column in table mytable may not be null.

最后，如果该字段是一个标识字段，那么它会自动产生一个新值。当你向一个有标识字段的表中插入新记录时，只要忽略该字段，标识字段会给自己赋一个新值。
注意：

向一个有标识字段的表中插入新记录后，你可以用SQL变量@@identity来访问新记录

的标识字段的值。考虑如下的SQL语句：

INSERT mytable (first_column) VALUES(‘some value’)

INSERT anothertable(another_first,another_second)

VALUES(@@identity,’some value’)

如果表mytable有一个标识字段，该字段的值会被插入表anothertable的another_first字段。这是因为变量@@identity总是保存最后一次插入标识字段的值。

字段another_first应该与字段first_column有相同的数据类型。但是，字段another_first不能是应该标识字段。Another_first字段用来保存字段first_column的值。

删除记录

要从表中删除一个或多个记录，需要使用SQL DELETE语句。你可以给DELETE 语句提供WHERE 子句。WHERE子句用来选择要删除的记录。例如，下面的这个DELETE语句只删除字段first_column的值等于’Delete Me’的记录：

DELETE mytable WHERE first_column=’Deltet Me’

DELETE 语句的完整句法如下：

DELETE [FROM] {table_name|view_name} [WHERE clause]

在SQL SELECT 语句中可以使用的任何条件都可以在DELECT 语句的WHERE子句 中使用。例如，下面的这个DELETE语句只删除那些first_column字段的值为’goodbye’或second_column字段的值为’so long’的记录：

DELETE mytable WHERE first_column=’goodby’ OR second_column=’so long’

如果你不给DELETE 语句提供WHERE 子句，表中的所有记录都将被删除。你不应该有这种想法。如果你想删除应该表中的所有记录，应使用第十章所讲的TRUNCATE TABLE语句。

注意：

为什么要用TRUNCATE TABLE 语句代替DELETE语句？当你使用TRUNCATE TABLE语句时，记录的删除是不作记录的。也就是说，这意味着TRUNCATE TABLE 要比DELETE快得多


SQL数据操作基础(中级)3

更新记录

要修改表中已经存在的一条或多条记录，应使用SQL UPDATE语句。同DELETE语句一样，UPDATE语句可以使用WHERE子句来选择更新特定的记录。请看这个例子：

UPDATE mytable SET first_column=’Updated!’ WHERE second_column=’Update Me!’

这个UPDATE 语句更新所有second_column字段的值为’Update Me!’的记录。对所有被选中的记录，字段first_column的值被置为’Updated!’。

下面是UPDATE语句的完整句法：

UPDATE {table_name|view_name} SET [{table_name|view_name}]

{column_list|variable_list|variable_and_column_list}

[,{column_list2|variable_list2|variable_and_column_list2}…

[,{column_listN|variable_listN|variable_and_column_listN}]]

[WHERE clause]

注意：

你可以对文本型字段使用UPDATE语句。但是，如果你需要更新很长的字符串，应使用UPDATETEXT语句。这部分内容对本书来说太高级了，因此不加讨论。要了解更多的信息，请参考Microsoft SQL Sever 的文档。

如果你不提供WHERE子句，表中的所有记录都将被更新。有时这是有用的。例如，如果你想把表titles中的所有书的价格加倍，你可以使用如下的UPDATE 语句：

你也可以同时更新多个字段。例如，下面的UPDATE语句同时更新first_column,second_column,和third_column这三个字段：

UPDATE mytable SET first_column=’Updated!’

Second_column=’Updated!’

Third_column=’Updated!’

WHERE first_column=’Update Me1’

技巧：

SQL忽略语句中多余的空格。你可以把SQL语句写成任何你最容易读的格式。

用SELECT 创建记录和表

你也许已经注意到，INSERT 语句与DELETE语句和UPDATE语句有一点不同，它一次只操作一个记录。然而，有一个方法可以使INSERT 语句一次添加多个记录。要作到这一点，你需要把INSERT 语句与SELECT 语句结合起来，象这样：

INSERT mytable (first_column,second_column)

SELECT another_first,another_second

FROM anothertable

WHERE another_first=’Copy Me!’

这个语句从anothertable拷贝记录到mytable.只有表anothertable中字段another_first的值为’Copy Me！’的记录才被拷贝。

当为一个表中的记录建立备份时，这种形式的INSERT 语句是非常有用的。在删除一个表中的记录之前，你可以先用这种方法把它们拷贝到另一个表中。

如果你需要拷贝整个表，你可以使用SELECT INTO 语句。例如，下面的语句创建了一个名为newtable的新表，该表包含表mytable的所有数据：

SELECT * INTO newtable FROM mytable

你也可以指定只有特定的字段被用来创建这个新表。要做到这一点，只需在字段列表中指定你想要拷贝的字段。另外，你可以使用WHERE 子句来限制拷贝到新表中的记录。下面的例子只拷贝字段second_columnd的值等于’Copy Me!’的记录的first_column字段。

SELECT first_column INTO newtable

FROM mytable

WHERE second_column=’Copy Me!’

使用SQL修改已经建立的表是很困难的。例如，如果你向一个表中添加了一个字段，没有容易的办法来去除它。另外，如果你不小心把一个字段的数据类型给错了，你将没有办法改变它。但是，使用本节中讲述的SQL语句，你可以绕过这两个问题。

例如，假设你想从一个表中删除一个字段。使用SELECT INTO 语句，你可以创建该表的一个拷贝，但不包含要删除的字段。这使你既删除了该字段，又保留了不想删除的数据。

如果你想改变一个字段的数据类型，你可以创建一个包含正确数据类型字段的新表。创建好该表后，你就可以结合使用UPDATE语句和SELECT 语句，把原来表中的所有数据拷贝到新表中。通过这种方法，你既可以修改表的结构，又能保存原有的数据。

集合函数

到现在为止，你只学习了如何根据特定的条件从表中取出一条或多条记录。但是，假如你想对一个表中的记录进行数据统计。例如，如果你想统计存储在表中的一次民意测验的投票结果。或者你想知道一个访问者在你的站点上平均花费了多少时间。要对表中的任何类型的数据进行统计，都需要使用集合函数。

Microsoft SQL 支持五种类型的集合函数。你可以统计记录数目，平均值，最小值，最大值，或者求和。当你使用一个集合函数时，它只返回一个数，该数值代表这几个统计值之一。

注意：

要在你的ASP网页中使用集合函数的返回值，你需要给该值起一个名字。要作到这一点，你可以在SELECT语句中，在集合函数后面紧跟一个字段名，如下例所示：

SELECT AVG(vote) ‘the_average’ FROM opinion

在这个例子中，vote的平均值被命名为 the_average。现在你可以在你的ASP网页的数据库方法中使用这个名字。

统计字段值的数目

函数COUNT（）也许是最有用的集合函数。你可以用这个函数来统计一个表中有多少条记录。这里有一个例子：

SELECT COUNT(au_lname) FROM authors

这个例子计算表authors中名字（last name）的数目。如果相同的名字出现了不止一次，该名字将会被计算多次。如果你想知道名字为某个特定值的作者有多少个，你可以使用WHERE子句，如下例所示：

SELECT COUNT(au_lname) FROM authors WHERE au_lname=’Ringer’

这个例子返回名字为’Ringer’的作者的数目。如果这个名字在表authors中出现了两次，则次函数的返回值是2。

假如你想知道有不同名字的作者的数目。你可以通过使用关键字DISTINCT来得到该数目。如下例所示：

SELECT COUNT(DISTINCT au_lname) FROM authors

如果名字’Ringer’出现了不止一次，它将只被计算一次。关键字DISTINCT 决定了只有互不相同的值才被计算。

通常，当你使用COUNT（）时，字段中的空值将被忽略。一般来说，这正是你所希望的。但是，如果你仅仅想知道表中记录的数目，那么你需要计算表中所有的记录─不管它是否包含空值。下面是一个如何做到这一点的例子：

SELECT COUNT(*) FROM authors

注意函数COUNT（）没有指定任何字段。这个语句计算表中所有记录所数目，包括有空值的记录。因此，你不需要指定要被计算的特定字段。

函数COUNT（）在很多不同情况下是有用的。例如，假设有一个表保存了对你站点的质量进行民意调查的结果。这个表有一个名为vote的字段，该字段的值要么是0，要么是1。0表示反对票，1表示赞成票。要确定赞成票的数量，你可以所有下面的SELECT 语句：

SELECT COUNT(vote) FROM opinion_table WHERE vote=1

计算字段的平均值

使用函数COUNT（），你可以统计一个字段中有多少个值。但有时你需要计算这些值的平均值。使用函数AVG（），你可以返回一个字段中所有值的平均值。

假如你对你的站点进行一次较为复杂的民意调查。访问者可以在1到10之间投票，表示他们喜欢你站点的程度。你把投票结果保存在名为vote的INT型字段中。要计算你的用户投票的平均值，你需要使用函数AVG（）：

SELECT AVG(vote) FROM opinion

这个SELECT语句的返回值代表用户对你站点的平均喜欢程度。函数AVG（）只能对数值型字段使用。这个函数在计算平均值时也忽略空值。

计算字段值的和

假设你的站点被用来出售卡片，已经运行了两个月，是该计算赚了多少钱的时候了。假设有一个名为orders的表用来记录所有访问者的定购信息。要计算所有定购量的总和，你可以使用函数SUM（）：

SELECT SUM(purchase_amount) FROM orders

函数SUM（）的返回值代表字段purchase_amount中所有值的平均值。字段purchase_amount的数据类型也许是MONEY型，但你也可以对其它数值型字段使用函数SUM（）。

返回最大值或最小值

再一次假设你有一个表用来保存对你的站点进行民意调查的结果。访问者可以选择从1到10 的值来表示他们对你站点的评价。如果你想知道访问者对你站点的最高评价，你可以使用如下的语句：

SELECT MAX(vote) FROM opinion

你也许希望有人对你的站点给予了很高的评价。通过函数MAX（），你可以知道一个数值型字段的所有值中的最大值。如果有人对你的站点投了数字10，函数MAX（）将返回该值。

另一方面，假如你想知道访问者对你站点的的最低评价，你可以使用函数MIN（），如下例所示：

SELECT MIN(vote) FROM opinion

函数MIN（）返回一个字段的所有值中的最小值。如果字段是空的，函数MIN（）返回空值。

其它常用的SQL表达式，函数，和过程

这一节将介绍一些其它的SQL技术。你将学习如何从表中取出数据，其某个字段的值处在一定的范围，你还将学习如何把字段值从一种类型转换成另一种类型，如何操作字符串和日期时间数据。最后，你将学会一个发送邮件的简单方法。

通过匹配一定范围的值来取出数据

假设你有一个表用来保存对你的站点进行民意调查的结果。现在你想向所有对你的站点的评价在7到10之间的访问者发送书面的感谢信。要得到这些人的名字，你可以使用如下的SELECT 语句：

SELECT username FROM opinion WHERE vote>6 and vote<11

这个SELECT 语句会实现你的要求。你使用下面的SELECT 语句也可以得到同样的结果：

SELECT username FROM opinion WHERE vote BETWEEN 7 AND 10

这个SELECT 语句与上一个语句是等价的。使用哪一种语句是编程风格的问题，但你会发现使用表达式BETWEEN 的语句更易读。

现在假设你只想取出对你的站点投了1或者10的访问者的名字。要从表opinion中取出这些名字，你可以使用如下的SELECT 语句：

SELECT username FROM opinion WHERE vote=1 or vote

这个SELECT语句会返回正确的结果，没有理由不使用它。但是，存在一种等价的方式。使用如下的SELECT可以得到相同的结果：

SELECT username FROM opinion WHERE vote IN (1,10)

注意表达式IN 的使用。这个SELECT 语句只取出vote的值等于括号中的值之一的记录。

你也可以使用IN来匹配字符数据。例如，假设你只想取出Bill Gates或President Clinton的投票值。你可以使用如下的SELECT 语句：

SELECT vote FROM opinion WHERE username IN (‘Bill Gates’,’President Clinton’)

最后，你可以在使用BETWEEN或IN的同时使用表达式NOT。例如，要取出那些投票值不在7到10之间的人的名字，你可以使用如下的SELECT 语句：

SELECT username FROM opinion WHERE vote NOT BETWEEN 7 and 10

要选取那些某个字段的值不在一列值之中的记录，你可以同时使用NOT 和IN，如下例所示：

SELECT vote FROM opinion

WHERE username NOT IN (‘Bill Gates’,’President Clinton’)

你不是必须在SQL语句中使用BETWEEN或IN，但是，要使你的查询更接近自然语言，这两个表达式是有帮助的。


SQL数据操作基础(中级)4

转换数据

SQL Sever足够强大，可以在需要的时候把大部分数值从一种类型转换为另一种类型。例如，要比较SMALLINT型和INT型数据的大小，你不需要进行显式的类型转换。SQL Sever会为你完成这项工作。但是，当你想在字符型数据和其它类型的数据之间进行转换时，你的确需要自己进行转换操作。例如，假设你想从一个MONEY型字段中取出所有的值，并在结果后面加上字符串“US Dollars”。你需要使用函数CONVERT（），如下例所示：

SELECT CONVERT(CHAR(8),price)+’US Dollars’ FROM orders

函数CONVERT（）带有两个变量。第一个变量指定了数据类型和长度。第二个变量指定了要进行转换的字段。在这个例子中，字段price被转换成长度为8个字符的CHAR型字段。字段price要被转换成字符型，才可以在它后面连接上字符串’US Dollars’。

当向BIT型，DATETIME型，INT型，或者NUMERIC型字段添加字符串时，你需要进行同样的转换操作。例如，下面的语句在一个SELECT语句的查询结果中加入字符串’The vote is’，该SELECT语句返回一个BIT型字段的值:

SELECT ‘The vote is’+CONVERT(CHAR(1),vote) FROM opinion

下面是这个语句的结果示例：

The vote is 1

The vote is 1

The vote is 0

(3 row(s) affected)

如果你不进行显式的转换，你会收到如下的错误信息：

Implicit conversion from datatype ‘varchar’ to ‘bit’ is not allowec.

Use the CONVERT function to run this query.

操作字符串数据

SQL Sever有许多函数和表达式，使你能对字符串进行有趣的操作，包括各种各样的模式匹配和字符转换。在这一节中，你将学习如何使用最重要的字符函数和表达式。

匹配通配符

假设你想建立一个与Yahoo功能相似的Internet目录。你可以建立一个表用来保存一系列的站点名称，统一资源定位器（URL），描述，和类别，并允许访问者通过在HTML form中输入关键字来检索这些内容。

假如有一个访问者想从这个目录中得到其描述中包含关键字trading card的站点的列表。要取出正确的站点列表，你也许试图使用这样的查询：

SELECT site_name FROM site_directory WHERE site_desc=’trading card’

这个查询可以工作。但是，它只能返回那些其描述中只有trading card这个字符串的站点。例如，一个描述为We have the greatest collection of trading cards in the world!的站点不会被返回。

要把一个字符串与另一个字符串的一部分相匹配，你需要使用通配符。你使用通配符和关键字LIKE来实现模式匹配。下面的语句使用通配符和关键字LIKE重写了上面的查询，以返回所有正确站点的名字：

SELECT SITE_name FROM site_directory

WHERE site_desc LIKE ‘%trading cark%’

在这个例子中，所有其描述中包含表达式trading card的站点都被返回。描述为We have the greatest collection of trading cards in the world!的站点也被返回。当然，如果一个站点的描述中包含I am trading cardboard boxes online ，该站点的名字也被返回。

注意本例中百分号的使用。百分号是通配符的例子之一。它代表0个或多个字符。通过把trading card括在百分号中，所有其中嵌有字符串trading card的字符串都被匹配。

现在，假设你的站点目录变得太大而不能在一页中完全显示。你决定把目录分成两部分。在第一页，你想显示所有首字母在A到M之间的站点。在第二页，你想显示所有首字母在N到Z之间的站点。要得到第一页的站点列表，你可以使用如下的SQL语句：

SELECT site_name FROM site_directory WHERE site_name LIKE ‘[A-M]%’

在这个例子中使用了表达式[A-M]，只取出那些首字母在A到M之间的站点。中括号（[]）用来匹配处在指定范围内的单个字符。要得到第二页中显示的站点，应使用这个语句：

SELECT site_name FROM site_directory

WHERE site_name LIKE ‘[N-Z]%’

在这个例子中，括号中的表达式代表任何处在N到Z之间的单个字符。

假设你的站点目录变得更大了，你现在需要把目录分成更多页。如果你想显示那些以A，B或C开头的站点，你可以用下面的查询来实现：

SELECT site_name FROM site_directory WHERE site_name LIKE ‘[ABC]%’

在这个例子中，括号中的表达式不再指定一个范围，而是给出了一些字符。任何一个其名字以这些字符中的任一个开头的站点都将被返回。

通过在括号内的表达式中同时包含一个范围和一些指定的字符，你可以把这两种方法结合起来。例如，用下面的这个查询，你可以取出那些首字母在C到F之间，或者以字母Y开头的站点：

SELECT site_name FROM site_directory WHERE site_name LIKE ‘[C-FY]%’

在这个例子中，名字为Collegescape和Yahoo的站点会被选取，而名字为Magicw3的站点则不会被选取。

你也可以使用脱字符（^）来排除特定的字符。例如，要得到那些名字不以Y开头的站点，你可以使用如下的查询：

SELECT site_name FROM site_directory WHERE site_name LIKE ‘[^Y]%’

对给定的字符或字符范围均可以使用脱字符。

最后，通过使用下划线字符（_），你可以匹配任何单个字符。例如，下面这个查询返回每一个其名字的第二个字符为任何字母的站点：

SELECT site_name FROM site_directory WHERE site_name LIKE ‘M_crosoft’

这个例子既返回名为Microsoft的站点，也返回名为Macrosoft的站点。但是，名字为Moocrosoft的站点则不被返回。与通配符’％’不同，下划线只代表单个字符。

注意：

如果你想匹配百分号或下划线字符本身，你需要把它们括在方括号中。如果你想匹配连字符(-)，应把它指定为方括号中的第一个字符。如果你想匹配方括号，应把它们也括在方括号中。例如，下面的语句返回所有其描述中包含百分号的站点：

SELECT site_name FROM site_directory WHERE site_desc LIKE ‘%[%]%’

匹配发音

Microsoft SQL 有两个允许你按照发音来匹配字符串的函数。函数SOUNDEX（）给一个字符串分配一个音标码，函数DIFFERENCE（）按照发音比较两个字符串。当你不知道一个名字的确切拼写，但多少知道一点它的发音时，使用这两个函数将有助于你取出该记录。

例如，如果你建立一个Internet目录，你也许想增加一个选项，允许访问者按照站点名的发音来搜索站点，而不是按名字的拼写。考虑如下的语句：

SELECT site_name FROM site_directory

WHERE DIFFERENCE(site_name , ‘Microsoft’>3

这个语句使用函数DEFFERENCE（）来取得其名字的发音与Microsoft非常相似的站点。函数DIFFERENCE（）返回一个0到4之间的数字。如果该函数返回4，表示发音非常相近；如果该函数返回0，说明这两个字符串的发音相差很大。

例如，上面的语句将返回站点名Microsoft和Macrosoft。这两个名字的发音与Microsoft都很相似。如果你把上一语句中的大于3改为大于2，那么名为Zicrosoft和Megasoft的站点也将被返回。最后，如果你只需要差别等级大于1即可，则名为Picosoft和Minisoft的站点也将被匹配。

要深入了解函数DIFFERENCE（）是如何工作的，你可以用函数SOUNDEX（）来返回函数DIFFERENCE（）所使用的音标码。这里有一个例子：

SELECT site_name ‘site name’,SOUNDEX(site_name) ‘sounds like’

这个语句选取字段site_name的所有数据及其音标码。下面是这个查询的结果：

site name sounds like

……………………………………………………………….

Yahoo Y000

Mahoo M000

Microsoft M262

Macrosoft M262

Minisoft M521

Microshoft M262

Zicrosoft Z262

Zaposoft Z121

Millisoft M421

Nanosoft N521

Megasoft M221

Picosoft P221

(12 row(s) affected)

如果你仔细看一下音标码，你会注意到音标码的第一个字母与字段值的第一个字母相同。例如，Yahoo和Mahoo的音标码只有第一个字母不同。你还可以发现Microsoft和Macrosoft的音标码完全相同。

函数DIFFERENDE（）比较两个字符串的第一个字母和所有的辅音字母。该函数忽略任何元音字母（包括y），除非一个元音字母是一个字符串的第一个字母。

不幸的是，使用SOUNDEX（）和DIFFERENCE()有一个欠缺。WHERE子句中包含这两个函数的查询执行起来效果不好。因此，你应该小心使用这两个函数。

删除空格

有两个函数，TTRIM（）和LTRIM（），可以用来从字符串中剪掉空格。函数LTRIM（）去除应该字符串前面的所有空格；函数RTRIM（）去除一个字符串尾部的所有空格。这里有一个任何使用函数RTRIM（）的例子：

SELECT RTRIM(site_name) FROM site_directory

在这个例子中，如果任何一个站点的名字尾部有多余的空格，多余的空格将从查询结果中删去。

你可以嵌套使用这两个函数，把一个字符串前后的空格同时删去：

SELECT LTRIM(RTRIM(site_name) FROM site_directory

你会发现，在从CHAR型字段中剪掉多余的空格时，这两个函数非常有用。记住，如果你把一个字符串保存在CHAR型字段中，该字符串会被追加多余的空格，以匹配该字段的长度。用这两个函数，你可以去掉无用的空格，从而解决这个问题。


SQL数据操作基础(中级)5

操作日期和时间

日期和时间函数对建立一个站点是非常有用的。站点的主人往往对一个表中的数据何时被更新感兴趣。通过日期和时间函数，你可以在毫秒级跟踪一个表的改变。

返回当前日期和时间

通过函数GETDATE（），你可以获得当前的日期和时间。例如，语句SELECT GETDATE()返回如下的结果：

……………………………..

NOV 30 1997 3:29AM

(1 row(s) affected)

显然，如果你将来使用这个函数，你得到的日期将比这个时间晚，或者梗早。

函数GETDATE（）可以用来作为DATEDIME（）型字段的缺省值。这对插入记录时保存当时的时间是有用的。例如，假设有一个表用来保存你站点上的活动日志。每当有一个访问者访问到你的站点时，就在表中添加一条新记录，记下访问者的名字，活动，和进行访问的时间。要建立一个表，其中的记录包含有当前的日期和时间，可以添加一个DATETIME型字段，指定其缺省值为函数GETDATE（）的返回值，就象这样：

CREATE TABLE site_log (

username VARCHAR(40),

useractivity VARCHAR(100),

entrydate DATETIME DEFAULT GETDATE())

转换日期和时间

你也许已经注意到，在上一节的例子中，函数GETDATE（）的返回值在显示时只显示到秒。实际上，SQL Sever内部时间可以精确到毫秒级（确切地说，可以精确到3.33毫秒）。

要得到不同格式的日期和时间，你需要使用函数CONVERT（）。例如，当下面的这个语句执行时，显示的时间将包括毫秒：

SELECT CONVERT(VARCHAR(30),GETDATE(),9)

注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时，将显示如下的日期和时间：

…………………………………..

Nov 30 1997 3:29:55:170AM

(1 row(s) affected)

在函数CONVERT（）中你可以使用许多种不同风格的日期和时间格式。表11.1显示了所有的格式。

表11.1 日期和时间的类型

类型值 标准 输出

0 Default mon dd yyyy hh:miAM

1 USA mm/dd/yy

2 ANSI yy.mm.dd

3 British/French dd/mm/yy

4 German dd.mm.yy

5 Italian dd-mm-yy

6 - dd mon yy

7 - mon dd,yy

8 - hh:mi:ss

Default + milliseconds--mon dd yyyy
hh:mi:ss:mmmAM(or )

10 USA mm-dd-yy

11 JAPAN yy/mm/dd

12 ISO yymmdd

13 Europe Default + milliseconds--dd mon yyyy

hh:mi:ss:mmm(24h)

14 - hh:mi:ss:mmm(24h)

类型0，9，和13总是返回四位的年。对其它类型，要显示世纪，把style值加上100。类型13和14返回24小时时钟的时间。类型0，7，和13返回的月份用三位字符表示（用Nov代表November）.

对表11.1中所列的每一种格式，你可以把类型值加上100来显示有世纪的年（例如，00年将显示为2000年）。例如，要按日本标准显示日期，包括世纪，你应使用如下的语句：

SELECT CONVERT（VARCHAR（30），GETDATE（），111）

在这个例子中，函数CONVERT（）把日期格式进行转换，显示为1997/11/30

抽取日期和时间

在许多情况下，你也许只想得到日期和时间的一部分，而不是完整的日期和时间。例如，假设你想列出你的站点目录中每个站点被查询的月份。这时你不希望完整的日期和时间把网页弄乱。为了抽取日期的特定部分，你可以使用函数DATEPART（），象这样：

SELECT site_name ‘Site Name’,

DATEPART(mm,site_entrydate) ‘Month Posted’ FROM site_directory

函数DATEPART（）的参数是两个变量。第一个变量指定要抽取日期的哪一部分；第二个变量是实际的数据。在这个例子中，函数DATEPART（）抽取月份，因为mm代表月份。下面是这个SELECT 语句的输出结果：

Site Name Month Posted

………………………………………………………………

Yahoo 2

Microsoft 5

Magicw3 5

(3 row(s) affected)

Month Posted列显示了每个站点被查询的月份。函数DATEPART（）的返回值是一个整数。你可以用这个函数抽取日期的各个不同部分，如表11.2所示。

表11.2 日期的各部分及其简写

日期部分 简写 值

year yy 1753--9999

quarter qq 1--4

month mm 1--12

day of year dy 1--366

day dd 1--31

week wk 1--53

weekday dw 1--7(Sunday--Saturday)

hour hh 0--23

minute mi 0--59

second ss 0--59

milisecond ms 0--999

当你需要进行日期和时间的比较时，使用函数DATEPART（）返回整数是有用的。但是，上例中的查询结果（2，5）不是十分易读。要以更易读的格式得到部分的日期和时间，你可以使用函数DATENAME（），如下例所示：

SELECT site_name ‘Site Name’

DATENAME(mm,site_entrydate) ‘Month Posted’

FROM site_directory

函数DATENAME（）和函数DATEPART（）接收同样的参数。但是，它的返回值是一个字符串，而不是一个整数。下面是上例该用DATENAME（）得到的结果：

Site Name Month Postec

………………………………………………………………….

Yahoo February

Microsoft June

Magicw3 June

(3 row(s) affected)

你也可以用函数DATENAE（）来抽取一个星期中的某一天。下面的这个例子同时抽取一周中的某一天和日期中的月份：

SELECT site_name ‘Site Name’,

DATENAME(dw,site_entrydate)+ ‘-’ + DATENAME（mm,site_entrydate）

‘Day and Month Posted’ FORM site_directory

这个例子执行时，将返回如下的结果：

Site Name Day and Month Posted

………………………………………………………………………

Yahoo Friday - February

Microsoft Tuesday - June

Magicw3 Monday - June

(3 row(s) affected)

返回日期和时间范围

当你分析表中的数据时，你也许希望取出某个特定时间的数据。你也许对特定的某一天中――比如说2000年12月25日――访问者在你站点上的活动感兴趣。要取出这种类型的数据，你也许会试图使用这样的SELECT语句：

SELECT * FROM weblog WHERE entrydate=”12/25/20000”

不要这样做。这个SELECT语句不会返回正确的记录――它将只返回日期和时间是12/25/2000 12:00:00:000AM的记录。换句话说，只有刚好在午夜零点输入的记录才被返回。

注意：

在本节的讨论中，假设字段entrydate是DATETIME型，而不是SMALLDATETIME型。本节的讨论对SMALLDATETIME型字段也是适用的，不过SMALLDATETIME型字段只能精确到秒。

问题是SQL Sever将用完整的日期和时间代替部分日期和时间。例如，当你输入一个日期，但不输入时间时，SQL Sever将加上缺省的时间“12：00：00：000AM”。当你输入一个时间，但不输入日期时，SQL Sever将加上缺省的日期“Jan 1 1900”。

要返回正确的记录，你需要适用日期和时间范围。有不止一种途径可以做到这一点。例如，下面的这个SELECT 语句将能返回正确的记录：

SELECT * FROM weblog

WHERE entrydate>=”12/25/2000” AND entrydate<”12/26/2000”

这个语句可以完成任务，因为它选取的是表中的日期和时间大于等于12/25/2000 12:00:00:000AM并小于12/26/2000 12:00:00:000AM的记录。换句话说，它将正确地返回2000年圣诞节这一天输入的每一条记录。

另一种方法是，你可以使用LIKE来返回正确的记录。通过在日期表达式中包含通配符“％”，你可以匹配一个特定日期的所有时间。这里有一个例子：

SELECT * FROM weblog WHERE entrydate LIKE ‘Dec 25 2000%’

这个语句可以匹配正确的记录。因为通配符“％”代表了任何时间。

使用这两种匹配日期和时间范围的函数，你可以选择某个月，某一天，某一年，某个小时，某一分钟，某一秒，甚至某一毫秒内输入的记录。但是，如果你使用LIKE 来匹配秒或毫秒，你首先需要使用函数CONVERT（）把日期和时间转换为更精确的格式（参见前面“转换日期和时间”一节）。

比较日期和时间

最后，还有两个日期和时间函数对根据日期和时间取出记录是有用的。使用函数DATEADD（）和DATEDIFF（），你可以比较日期的早晚。例如，下面的SELECT语句将显示表中的每一条记录已经输入了多少个小时：

SELECT entrydate ‘Time Entered’

DATEDIFF(hh,entrydate,GETDATE()) ‘Hours Ago’ FROM weblog

如果当前时间是2000年11月30号下午6点15分，则会返回如下的结果：

Time Entered Hours Ago

…………………………………………………..

Dec 30 2000 4:09PM 2

Dec 30 2000 4:13PM 2

Dec 1 2000 4:09PM 698

(3 row(s) affected)

函数DADEDIFF（）的参数是三个变量。第个变量指定日期的某一部分。在这个例子中，是按小时对日期进行比较，（要了解日期各部分的详细内容，请参考表11.2）在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数，较早的时间应该先给。

函数DATEADD（）把两个日期相加。当你需要计算截止日期这一类的数据时，这个函数是有用处的。例如，假设访问者必须先注册才能使用你的站点。注册以后，他们可以免费使用你的站点一个月。要确定什么时候他们的免费时间会用完，你可以使用如下的SELECT语句：

SELECT username ‘User Name’,

DATEADD(mm,1,firstvisit_date) ‘Registration Expires’

FROM registration_table

函数DATEADD（）的参数有三个变量。第一个变量代表日期的某一部分，这个例子用到了代表月份的mm。第二个变量指定了时间的间隔――在本例中是一个月。最后一个变量是一个日期，在这个例子中，日期是取自DATETIME型字段firstvisit_date.假设当前日期是June 30,2000，这个语句将返回如下的内容：

User Name Registration Expires

……………………………………………………………………………

Bill Gates Jul 30 2000 4:09PM

President Clinton Jul 30 2000 4:13PM

William Shakespeare Jul 1 2000 4:09PM

(3 row(s) affected)

注意：

与你预料的相反，使用函数DATEADD（）把一个日期加上一个月，它并不加上30天。这个函数只简单地把月份值加1。这意味着在11月注册的人将比在2月注册的人多得到2天或3天的时间。要避免这个问题，你可以用函数DATEADD（）直接增加天数，而不是月份。

发送邮件

你可以用SQL Sever发送简单的e_mail信息。要做到这一点，你需要在你的系统中安装邮件服务器，如Microsoft Exchange Sever(参见第四章“Exchange Active Sever,Index Sever,和NetShow”)。你还需要配置SQL Sever 以识别邮件服务器。

要让SQL Sever 能识别邮件服务器，启动事务管理器并从菜单中选择Sever|SQL Mail|Configue，这时会出现一个如图11.3所示的对话框。输入你在邮件服务器中注册的用户名和口令，然后单击OK。

注意：

如果你使用Microsoft Exchange Sever,配置SQL Sever的过程将会大大不同。你需要在同一个（域）用户帐号下运行Microsoft SQL Sever和Exchange Sever。你还需要在安装了SQL Sever的机器上安装Exchange Cliect并给这个帐号创建一个一个配置文件。完成这些之后，你就可以在SQL Mail Configuration对话框中输入该配置文件的名字。

图11。3

在发送邮件之前，你要先启动SQL Mail。从菜单中选择Sever|SQL Mail|Start。如果你的邮件服务器配置正确，并且你输入了正确的用户名和口令，则SQL Mail会成功启动。

注意：

你可以把SQL Sever配置为自动启动邮件服务。要做到这一点，在Set Sever Optons对话框（从菜单中选择Sever|SQL Sever|Configure）中选择Auto Start Mail Client即可。

要发送一个邮件，你可以使用名为xp_sendmail的扩展存储过程。这里有一个如何使用这个过程的例子：

master..xp_sendmail “president@whitehouse.gov”,”Hello Mr. President”

这个过程调用向e_mail地址president@whitehouse.gov发送一个简单的email信息：“Hello Mr. President”。你可以用任何其它的email地址和信息取代上例中相应的内容，但是，你所发送的信息不能超过255个字符长度。

当你想随时了解你的站点数据库的状态时，存储过程xp_sendmail是有用处的。例如，你可以向一个页面管理程序发送信息。如果你的站点出了什么问题，你马上就可以知道。下一章将讲述更多有关存储过程的内容。

总结

这一章加深了你的SQL知识。你学会了如何建立索引，使你的查询速度更快。你还学会了如何插入，删除和更新一个表中的数据，如何使用集合函数得到一个表中数据的统计信息。最后，你学会了许多有价值的表达式，函数和过程，用来操作字符串，日期和时间及邮件。

下一章将进一步加深你对Microsoft SQL Sever的掌握。你将学习如何用SQL来进行程序设计，如何建立存储过程，触发器和执行计划。更另人兴奋的是，你将学会让SQL Sever自动创建网页的一个简单方法。


全面接触SQL语法(1)

SQL功能与特性
    其实，在前面的文章中，已经提及SQL命令的一些基本功能，然而，通过SQL命令，程序设计师或数据库管理员（DBA）可以：
    （一）建立数据库的表格。（包括设置表格所可以使用之空间）
    （二）改变数据库系统环境设置。
    （三）针对某个数据库或表格，授予用户存取权限。
    （四）对数据库表格建立索引值。
    （五）修改数据库表格结构。（新建、删除或是修改表格字段）
    （六）对数据库进行数据的新建。
    （七）对数据库进行数据的删除。
    （八）对数据库进行数据的修改。
    （九）对数据库进行数据的查询。
    这几项便是通过SQL命令可以完成的事情，看起来是不是比起“查询”两个字所代表的功能要多的多了呢？

    SQL语法的分类

    其实SQL命令并不是非常多，可是要把SQL用到出神入化，却也只需要短短几个命令便够，因为SQL命令是针对关系型数据库所建立出来的语法叙述，所以SQL在这类数据库中所发挥的功能非常的强，以下将针对在VB中常用的SQL语法基本命令加以分类介绍。在说明SQL的命令以及使用语法之前，以下将SQL做了的分类，在致上SQL语法所使用到的类型，可以说都已包含在这些类别当中。

    第一类、属性词（Predicates）

    在SQL命令中用来指明所要选择的记录的方式。如ALL、TOP与DISTINCT等等。

    第二类、声明（Declaration）

    针对SQL Parameter或Parameter Query 的名称与数据类型做声明，如PARAMETERS的声明等等。

    第三类、条件子句（Clause）

    在SQL的查询中，利用一些表达式定义出查询的条件，以缩小寻找的范围，如WHERE。

    第四类、运算符（Operator）与操作数（Operation）

    在SQL的查询中，与Operation共同组成表达式（Expression），如BETWEEN....AND 运算符与INNER JOIN操作数。

    第五类、函数（Function）

    一些SQL常见的函数，像是AVG()是求算数平均数的函数。

    第六类、SQL语句（Statement）

    SQL的语句，可以说是SQL语法的主体，用来对某一个特定的数据库发出指示，并返回相关的数据，而SQL的语法结构，基本上可以利用下面

    的式子来表示：命令＋条件子句

    例如：

    SELECT*FROM TAB WHERE TAB.NAME='A'

    其中的“FROM....WHERE”便是一个条件子句，其实SQL的语法并不难，您只需记住这样的一个规则，相信可以很快的了解SQL用法。

    SQL语法与命令

SELECT 语句
SELECT[predicate]{*|table.*|[table.]field [,[table.]field2[,...]]} [AS alias1 [,alias2[,...]]]
FROM tableexpression [,...][IN externaldatabase]
[WHERE...]
[GROUP BY...]
[HAVING...]
[ORDER BY...]
[WITH OWNERACCESS OPTION]
SELECT 语句包括下面几个部分
predicate

如前面所述，包括了ALL，DISTINCT,DISTINCTROW,与TOP 我们可以利用这样的语句去限制查询后所得的结果。

    *

    从指定表格中指定所有的字段。

    table

    针对被选择出的记录的字段，所指定表格的名称。

    field1,field2

    想要读取数据的字段名称，如果包含了一个以上的字段，会依照列出的顺序来读取数据。

    alias1,alias2

    用来替代在表格实际字段名称的化名。

    tableexpression

    表格名称或包含我们所想要的数据的表格。

    externaldatabase

    若使用到不是目前的数据库则将其名字定义在externaldatabase当中。

    ALL,DISTINCT,DISTINCTROW,TOP属性词用法

    SELECT [ALL|DISTINCT|DISTINCTROW|[TOP n[PERCENT]]] FROM table

    ALL

    若是您不指定任何的字段数据，则Microsoft Jet数据库引擎（database engine）将会选择所有的字段，并依据所定的条件查询出需求数据集。


全面接触SQL语法(2)

例如下面这两个例子将会具有相同的效果，都会从职员表格中返回所有字段的数据。

    例如：

    若是我们要查询出职员表格中的所有记录，可以通过下面的语句来完成。

SELECT ALL* FROM 职员表格; DISTINCT

    对某个表格所选择的字段数据，略过重复的情况，也就是说，针对某个字段查询出来的记录结果是唯一的。例如有许多存放在职员表格的职员

    数据，也许会具有相同的姓名，所以若是我们用SQL语句中的SELECT DISTINCT，则查询出来的结果将会针对不一样的姓名加以筛选。若是您把

    DISTINCT 加以省略，则这样的查询会显示所有的记录。

    DISTINCTROW

    将整条记录重复的记录忽略掉，而不是只有针对某一个字段的数据。

    table

    指定查询记录所需要的表格。

    例如：

    SELECT DISTINCTROW 公司名称

    FROM 顾客表格 INNER JOIN 订单表格

    ON 顾客表格.顾客ID＝订单表格.顾客ID

    ORDER BY 公司名称;

    如果您忽略 DISTINCTROW 则会对每个公司产生一行以下的订单数据。此外，若是DISTINCTROW只有用在一个表格当中，则会被省略掉。

    TOP

    从第一条或最后一条开始（利用ORDER BY条件子句），返回特定条数的数据。

    例如：

    当您想要知道在2000年，班上前25名的学生姓名数据时，您可以输入这样的语句：

    SELECT TOP 25 学生姓名

    FORM 学生表格

    WHERE 毕业年份=1994

    ORDER BY 毕业成绩平均分数 DESC；

    如果您没有加上ORDER BY 这行条件的话，您所得到的数据，将会随机的数据。此外，在TOP语句之后，除了可以加上数字以外，还可以利用保留

    字PERCENT来查询。

    例如：

    SELECT TOP 10 PERCENT学生姓名

    FROM学生表格

    WHERE毕业年份=1994

    ORDER BY毕业成绩平均DESC；

    PARAMETERS（参数）声明的用法

    对于参数型的查询语法中，对参数的名称以及数据类型作 声明的操作。

    PARAMETERS name datatype[,name datatype[,...]]

    name

    PARAMETERS的名称。您可以把参数名称当作字符串来使用，若是名称中包含了空字符串，可以利用中括号来处理，例如：“VBeden”。

    datatype

    输入参数的数据类型。

    例如：

    若是您在查询时，需要机动的输入姓名 ，可以利用下列的方式完成：

    PARAMETERS “输入姓名” Text;

    SELECT*

    FROM 职员表格

    WHERE姓名=“输入姓名：”;


全面接触SQL语法(3)

    ORDER BY条件语句

    此条件子句，通常与SELECT语句合并使用目的是将查询的结果，依照指定字段加以排序。

    SELECT fieldlist

    FROM table

    WHERE selectcriteria

    ORDER BY field[ASC|DESC][,field2[ASC|DESC][,...]]

    fieldlist

    欲查询的字段名称。其中可以与ALL，DISTINCT，DISINCTROW，或TOP一起来使用。

    table

    欲查询的表格名称。

    selectcriteria

    查询的标准设置。

    field1

    指定要依照那个字段作为排序的依据，若是你没有加上ORDER BY查询出的数据集将不会作排序的操作。

    ASC

    递增顺序类别。(默认值)

    DESC

    递减顺序类别。

    例如：

    或是我们要将输出数据依据出生的先后次序排列，可以利用下面的命令。

    SELECT 姓名，生日

    FROM 职员表格

    ORDER BY 生日

    SELECT LastName,FirstName

    FROM Employees

    ORDER BY LastName ASC;

    IN 条件子句

    指定要速胜哪一个外部数据库的表格。(必须是Microsoft Jet数据库引擎所可以连接的数据库，如dBase,Paradox等等)

SELECT|INSERT]INTO destination IN
{path|["path" "type"]|[""[type;DATABASE=path]]}
FROM tableexpression IN
{path|["path" "type"]|[""[type;DATABASE=path]]}
destination

    欲插入数据的外部表格名称。

    tableexpression

    表格名称或是被读取数据的表格名称。这个参数可以是一个单一的表格名称，或是一段已经被存储的SQL查询等。

    path

    包含该表格的完整路径名称。

    type

    数据库的类型名称， 通常是当数据库部属于Jet database时才会使用。(例如：dBASE III,dBASE IV,Paradox 3.x,Paradox 4.x,或 Btrieve)

    例如：下面这两段的意义相同

PartA....FROM Table
IN ""[dBASE IV;DATABASE=C:\DBASE\DATA\SALES;];

PartB....FROM Table
IN "C:\DBASE\DATA\SALES" "dBASE IV;"

    例如：Microsoft Jet database

SELECT 顾客编号
FROM 顾客表格
IN CUSTOMER.MDB
WHERE 顾客编号 Like "A*";
其中CUSTOMER.MDBO 为Jet database 的数据库名称，其中包含了顾客表格。

例如：dBASE III or IV
SELECT 顾客编号
FROM 顾客表格
IN "C:\DBASE\DATA\SALES" "dBASE IV;"
WHERE 顾客编号 Like "A*";
所以当我们使用不同于ACCESS 的数据库时，必须指明该数据库的类型名称。


全面接触SQL语法(4)

HAVING 条件子句

    指定一特定的分组记录，并满足HAVING 所指定的条件或状态，但条件是针对分组的条件设置。

SELECT fieldlist
FROM table
WHERE selectcriteria
GROUP BY groupfieldlist
HAVING groupcriteria
fieldlist
显示被查询的字段名称。(可与ALL，DISTINCT，DISTINCTROW，或TOP相结合)
table
欲查询数据的表格名称。
selectcriteria
选取标准。
groupfieldlist
分组记录的字段名称，到多10个字段。而这些字段的顺序决定最高到最低的分组阶层。
groupcriteria
决定什么样的分组记录要被显示。
HAVING跟WHERE 的用法相当类似，不同之处在于HAVING必须用于GROUP之后的分组数据上。
例如：
SELECT 分类编,Sum(库存数量)
FROM 产品表格
GROUP BY 分类编号
HAVING Sum(库存数量)>100 AND 产品名称 LIKE "*纸"；

    GROUP BY 条件子句

    依据指定的字段，将具有相同数值的记录合并成一条。

SELECT fieldlist
FROM table
WHERE criteria
GROUP BY groupfieldlist
fieldlist
欲读取的字段名称。(可与ALL，DISTINCT，DISTINCTROW，或TOP合并使用)
table
被查询的表格名称。
groupfieldlist
分组记录的字段名称，到多10个字段，而这些字段的顺序决定最高到最低的分组层次。
例如：
SELECT 姓名,Count(姓名)AS 职员姓名
FROM 职员表格
WHERE 部门名称='业务部'
GROUP BY 姓名

    FROM 条件子句

    指定表格名称或是查询，其中包含列在SELECT语句的字段数据。

SELECT fieldlist
FROM tableexpression[IN externaldatabase]
fieldlist
表格中的字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)
tableexpression
表格名称，或多个表格的算式。
externaldatabase
若该表格参考到外部的数据库时，将其完整的路径名称记下。
例如：
从职员表格下，查询出所有姓名字段的数据(只有姓名字段被查询，其他则不显示)。
SELECT 姓名 FROM 职员表格；

    WHERE 条件子句

    指定查询的条件与限制。

SELECT fieldlist
FROM tableexpression
WHERE criteria
fieldlist
字段名称。(可与ALL,DISTINCT,DISTINCTROW,或TOP相结合)
tableexpression
表格名称，或多个表格的算式。
criteria
查询的结果，必须依照这一限制标准。
例如：
要查询出职员表格中，所有姓氏是李的数据，可以用下面的语句。
SELECT 姓名
FROM 职员表格
WHERE 姓氏='李'；


全面接触SQL语法(5)

BETWEEN...AND 运算符

    决定某一人数值是否介于特定的范围之内，此运算符只可以用在SQL的语句中。

expr[Not]BETWEEN value1 AND value2
expr
指定要加以计算的字段与表达式的组合。
value1,value2
所指明的数值范围。
例如：
若是要从职员表格查询出所有年龄介于25-30岁的员工，可以利用下面的程序来做。
SELECT 姓名,年龄 BETWEEN 25 AND 30
FROM 职员表格；

    LIKE 操作数

    用来将一字符串与另一特定字符串样式(pattern)比较，并将符合该字符串样式的记录过滤出来。

expression LIKE "pattern"
expression
使用在WHERE条件子句，SQL表达式。
pattern
用以比较的字符串样式。
例如：
若是你要查询出所有以“李”为首的姓氏，可以利用下面的式子。
Like "李*"
LIKE操作数的多种范例：
1、多个字符：
(1)"a*a"
可筛选："aa","aBa","aBBBa"，不能筛选："aBC"
(2)"*ab*"
可筛选："abc","AABB","Xab"，不能筛选："aZb","bac"
2、特殊字符：
"a“*”a"
可筛选："a*a"，不能筛选："aaa"
3、单一字符：
"a?a"
可筛选："aaa","a3a","aBa"，不能筛选："aBBBa"
4、单一数字：
"a#a"
可筛选："a0a","a1a","a2a"，不能筛选："aaa","a10a"
5、字符范围：
"“a-z”"
可筛选："f","p","j"，不能筛选："2","&"
6、指定字符以外部范围：
"“!a-z”"
7、指定非数字：
"“!0-9”"
可筛选："A","a","&","~"，不能筛选："0","1","9"
8、组合式结构：
"a“!b-m”#"
可筛选："An9","az0","a99"，不能筛选："abc","aj0"

    SQL数字函数

    1、AVG：算数平均数

    AVG(expr)

    expr

    字段名称或表达式。

    例如：

    若要计算职员身高超过165厘米的职员平均身高，可以利用下面的SQL语句来完成。

    SELECT Avg(身高)

    AS 平均身高

    FROM 职员表格 WHERE 身高>165；

    2、COUNT：计算记录条数

    COUNT(expr)

    expr

    字段名称或表达式。

    例如：

    若是要统计出业务部门的职员人数，并查询出职员的姓名，可以利用下面的程序。

    SELECT Count(姓名) AS 职员姓名

    FROM 职员表格

    WHERE 部门名称='业务部'；

    3、FIRST与LAST：返回某字段的第一条数据与最后一条数据。

    FIRST(expr)

    LAST(expr)

    expr

    字段名称或表达式。

    例如：

    若是要找出货品数量字段的第一条数据与货品价格字段的最后一条数据时，可以利用下面的查询方式。

    SELECT FIRST(货品数量)，LAST(货品价格)

    FROM 订单表格

    4、MAX，与MIN：返回某字段的最大值与最小值。

    用法同FIRST与LAST。

    5、SUM：返回某特定字段或是运算的总和数值。

    SUM(expr)

    expr

    字段名称或表达式。

    例如：

    要计算出货品总价，可使用下面的程序。

    SELECT

    Sum(单位价格*货品数量)

    AS 货品总价 FROM 订单表格

    多层SQL查询

    顾名思义，多层的SQL查询的便在于：“在一个SQL语句中可以包含另一个SQL查询语句，形成内部嵌套的查询类型。”

comparison[ANY|ALL|SOME](sqlstatement)
expression[NOT]IN (sqlstatement)
[NOT]EXISTS(sqlstatement)
comparison
将表达式与内层查询的结果比较的操作。
expression
对内层查询的结果作搜索的表达式。
sqlstatement
为SELECT语句构成的SQL查询，必须用()将该语句括起来。

    例如：

    我们先从订单表格当中，查询出所有的单位，再将产品表格中的单位与的一一对比，查询出所有高于订单表格的单位价格的记录。

    SELECT * FROM 产品表格

    WHERE 单位价格>ANY (SELECT 单位价格 FROM 订单表格 WHERE 折扣>=.25)；


全面接触SQL语法(6)

SQL与数据库的维护
    表格的建立

    将SQL中的基本语法作了一番介绍以后，但大多是偏向于数据库数据的查询与过滤，但实际上，我们通过SQL命令所可以做的事还有很多，接下来要介绍的便是如何利用SQL的语法命令来建立一个数据库中的表格。

      CREATE TABLE语句

    我们可以利用这个命令，来建立一个全新的表格，但前提则是：数据库必须已经存在。

CREATE TABLE table(field1 type[(size)][index1][,field2 type[(size)][index2][,...]][,nultifieldindex[,...]])
table
欲建立的新的表格名称。
field1,field2
在新表格中的新的字段名称，到少要一个字段以上。
type
字段的数据类型。
size
字段的大小。
index1,index2
利用CONSTRAINT条件子句定义一个单一字段的索引名称。
multifieldindex
利用CONSTRAINT条件子句定义一个多重字段的索引名称。

    例如：

    建立一个拥有职员姓名与部门字段的表格。

CREATE TABLE 职员表格 (姓名TEST，部门TEST，职员编号 INTEGER CONSTRAINT职员字段索引PRIMARY KEY)
在这一个范例中，我们建立了一个表格名称为“职员表格”的表格，并且定义了该表格的主键值，以限制数据不能重复输入。

    表格索引的建立

      CREATE INDEX语句

    这个命令主要是对一个已存在的表格建立索引，其用法如下：

CREATE[UNIQUE]INDEX index ON table(field[ASC|DESC][,field[ASC|DESC],...])
[WITH {PRIMARY|DISALLOWNULL|IGNORENULL}]
index

    欲被建立的索引名称。

    table

    欲建立索引的表格名称。

    field

    欲被建立的索引的字段名称。并可通过DESC保留字，来决定索引的顺序。

    例如：

在职员表格中建立一个索引。
CREATE INDEX 新索引名称
ON 职员表格(姓名部门)；

表格的字段更新
CONSTRAINT条件子句
CONSTRAINT 的功能是类似索引(INDEX)的，虽然CONSTRAINT 也可以建立表格之间的关联性。
单一字段索引：
CONSTRAINT name{PRIMARY KEY|UNIQUE|REFERENCES foreigntable[(foreignfield1,foreignfield2)]}
多字段索引：
CONSTRAINT name
{PRIMARY KEY(primary1[,primary2[,...]])
|UNIQUE(unique1[,unique2[,...]])
|FOREIGN KEY (ref1[,ref2[,...]])
|REFERENCES foreigntable[(foreignfield1[,foreignfield2[,...]])]}
name
要被建立的CONSTRAINT名称。
primary1,primary2
被用来设计成主键值的字段名称(可一个以上)。
unique1,unique2
被用来设计成唯一键值的字段名称(可一个以上)。
foreign key
字段名称，或是参考到别的表格中字段的字段名称。
foreigntable
如前所述，被参考到的表格。
foreignfield1,foreignfield2
在参考到的表格当中，被ref1,ref2字段所指定的字段。如果被参考的字段是参考表格中的主键值，你也可以省略这个条件子句。
例如：
当我们要建立一个新的职员数据表格，表格包含姓名、部门名称与生日三个字段，且由这三个字段建立一个唯一的索引时，可以使用下面这段SQL的语句。
CREATE TABLE 职员数据表格
(姓名 TEST，部门名称 TEST，生日 DATETIME，CONSTRAINT 职员数据表格限制 UNIQUE(姓名，部门名称，生日))；
以上是SQL中，与数据库表格建立相关的命令，你可以利用这些命令，通过SQL的语句，将数据库表格完整的建立出来，接下来的章节，将针对数据库建立之后的维护与增删所要使用的SQL语句作一介绍。


全面接触SQL语法(7)

表的删除

      DELETE语句

    我们可以利用DELETE语句，将表格中的记录删除。(注意：记录被删除后，无法再复原，所以条件设置要正确)

DELETE[table.*]
FROM tableexpression
WHERE criteria
table
欲删除记录的表格名称，也可以用*来取代。
tableexpression
一个或一个以上表格的名称。此一参数可以为单一的表格名称或是从INNER JOIN，LEFT JOIN，或RIGHTJOIN 等运算所得到的结果。
criteria
决定表格中记录要被删除的标准。

    例如：

    若是我们要将职员表格中姓名姓名叫做'李名'的记录删除，我们可以利用下面的SQL语句来完成。

    DELETE * FROM 职员表格

    WHERE 姓名='李名';

    数据库表格相关的操作命令

    SQL除了可以作为查询与数据库表格的建立的工具外，对于数据库与表格的新建、删修、与维护，与具有相当不错的功能，若是读者使用SQL命令得宜，对于整个效率的提高有着很大的帮助，所以对于SQL语句所带来的优势，常常会遇到一个情况，就是：“当我们对多个表格作复杂与多步骤的处理时，或许SQL只要一个语句就可以完成所有的需求与目标”，乍看一下，或许觉得有些玄妙，但是接下来的章节，会让你了解其中的妙处。

    SELECT...INTO语句

    我们可以通过这个命令，利用既存表格查询，来建立一个新表格的查询语句。

SELECT field1[,field2[,...]]INTO newtable[IN externaldatabase]
FROM source
field1,field2
欲拷贝到新表格的字段名称。
newtable
欲建立之新表格的名称，不可是已经存在的表格。
externaldatabase
若是该表格在另外的外部数据库时，该数据库的名称。
source
记录数据拷贝的来源表格名称，可以是单一的表格或是一段SQL查询之语句。
例如：
你可以通过下面的SQL语句，来建立一个新的“训练名册”表格。
SELECT 职员表格.姓名，职员表格.部门
INTO 训练名册 FROM 职员表格
WHERE 职称='新进人员';

    INNER JOIN操作数

    当某一个共同的字段数据相等时，将两个表格的记录加以组合。

SELECT fields
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
table1,table2
欲进行记录组合的表格名称。
field1,field2
欲组合的字段名称。(必须具有相同的数据类型)
compopr
比较关系运算符如下：“=”，“<”，“>”，“<=”，“<>”等。
例如：
若是你要把分类表格与产品表格作组合，可参考下面的SQL语句。
SELECT 分类名称，产品名称
FROM 分类表格 INNER JOIN 产品表格
ON 分类表格.分类编号=产品表格.分类编号；

    UNION操作数

    我们可以通过UNION操作数来建立连接的查询条件，UNION操作数可以将两个以上的表格或是查询的结果组合起来。

[TABLE]query1 UNION [ALL][TABLE]query2 [UNION [ALL]
[TABLE]queryn [...]]
query1,query2,queryn
为一个SELECT的语句，或是一个已存在的查询名称，或是一个已存在的表格名称。

    例如：

    你可以利用下面的SQL语句，将订单数量超过1000的顾客表格记录，与新客户表格作UNION的操作。

TABLE 新客户表格 UNION ALL
SELECT *
FROM 顾客表格
WHERE 订单数量>1000；

    ALTER语句

    在一个表格被建立之后，利用ALTER语句，我们可以去修改表格的字段设计。

ALTER TABLE table
{ADD {COLUMN field type[(size)][CONSTRAINT index]
|CONSTRAINT multifieldindex}
|DROP {COLUMN field|CONSTRAINT indexname}}
table
欲被ALTER的表格名称。
field
要被增加或删除的字段名称。
type
字段数据类型。
size
字段大小。
index
对此字段的索引。
例如：
在职员表格中新建一个“薪水”的字段。
ALTER TABLE 职员表格
ADD COLUMN 薪水 CURRENCY；
例如：
在职员表格中删除一个“薪水”的字段。
ALTER TABLE 职员表格 DROP COLUMN 薪水；

    DROP语句

    针对所指定的表格或字段加以删除，或是把索引删除。

DROP {TABLE table|INDEX index ON table}
table
欲删除之表格或索引依附之表格名称。
index
欲从表格中删除的索引名称。
例如：
从职员表格中，删除编号索引。
DROP INDEX MyIndex ON Employees;
例如：
从数据库中，删除整个表格。
DROP TABLE 职员表格；

    INSERT INTO语句

    新建一条数据到表格当中。

    多条记录新建查询：

INSERT INTO target [IN externaldatabase][(field1[,field2[,...]])]
SELECT [source.]field1[,field2[,...]
FROM tableexpression
单条记录新建查询：
INSERT INTO target[(field1[,field2[,...]])]
VALUES(value1[,value2[,...])
target
新建记录的表格名称。
externaldatabase
外部数据库的路径，搭配IN条件子句使用。
source
若是记录从其它表格中拷贝时，指明该表格的名称。
field1,field2
欲增加数据的字段名称。
tableexpression
表格名称或描述记录是从哪一个表格中插入的表格名称。配合INNER JOIN，LEFT JOIN，或 RIGHT JOIN 运算符一起使用。
value1,value2
欲插入表格中的数值。
例如：
在客户数据表格中，从新的表格插入数据。
INSERT INTO 客户数据表格
SELECT 新客户数据表格.*
FROM 新客户数据表格；
例如：
在职员表格中插入数据。
INSERT INTO 职员表格(姓名，生日，职称)
VALUES("王荣","57/12/11","经理");
例如：
从训练人员表格中，将职员雇用时间超过30天者，加入到正式职员表格中。
INSERT INTO 职员表格
SELECT 训练人员表格.*
FROM 训练人员表格
WHERE 雇用天数>30；

   UPDATE语句

    建立一个UPDATE的查询，通过条件的限制来修改特定的数据。

UPDATE table
SET newvalue
WHERE criteria;
table
欲修改数据的表格名称。
newvalue
欲修改成的数值(将该项数值插入到特定的字段当中)。
criteria
查询条件，用来决定要修改哪些记录。
例如：
若是要把订单表格中的订单数量修改成1.1倍，运费为1.03倍，可利用下列之SQL语句来完成。
UPDATE 订单表格
SET 订单数量=订单数量 * 1.1，运费=运费 * 1.03倍
WHERE 运达地点='美国'；
当我们完成修改后，你可以利用 SELECT 语句，配合同样的 WHERE 条件子句，来察看修改的数据是否正确。
事实上，要利用SQL完成某些看似复杂的操作，并不需要繁琐的SQL命令组合，或是许许多多的步骤才能完成，其实最重要的还是要活用SQL命令，才会在最精简的SQL语句里获得最高的效率。


主要SQL语句详解(1)

1. CREATE DATABASE database_name [WITH LOG IN “pathname”]

创建数据库。

database_name：数据库名称。

“pathname”：事务处理日志文件。

创建一database_name.dbs目录，存取权限由GRANT设定，无日志文件就不能使用

BEGIN WORK等事务语句（可用START DATABASE语句来改变）。

可选定当前数据库的日志文件。

如：select dirpath form systables where tabtype = “L”;

例：create databse customerdb with log in “/usr/john/log/customer.log”;

  2. DATABASE databse-name [EXCLUSIVE]

选择数据库。

database_name：数据库名称。

EXCLUSIVE：独占状态。

存取当前目录和DBPATH中指定的目录下的数据库，事务中处理过程中不要使用此语句。

例：dtabase customerdb;

3. CLOSE DATABASE

关闭当前数据库。

database_name：数据库名称。

此语句之后，只有下列语句合法：

CREATE DATABASE； DATABASE； DROP DATABSE； ROLLFORWARD DATABASE；

删除数据库前必须使用此语句。

例：close database;

4. DROP DATABASE database_name

删除指定数据库。

database_name：数据库名称。

用户是DBA或所有表的拥有者；删除所有文件，但不包括数据库目录；不允许删除当前数据库（须先关闭当前数据库）；事务中处理过程中不能使用此语句，通过ROLLBACK WORK 也不可将数据库恢复。

例：drop databse customerdb;

5. CREATE [TEMP] TABLE table-name (column_name datatype [NOT NULL], …)

[IN “pathname”]

创建表或临时表。

table-name ：表名称。

column_name：字段名称。

data-type：字段数据类型。

path-name：指定表的存放位置

TEMP用于指定建立临时表；表名要唯一，字段要唯一；有CONNECT权限的用户可建立临时表；创建的表缺省允许CONNECT用户存取，但不可以ALTER。

例：create table user

( c0 serial not null, c1 char (10),

c2 char(2),

c3 smallint,

c4 decimal(6,3),

c5 date

) in “usr/john/customer.dbs/user;

6. ALTER TABLE

ALTER TABLE table-name

{ADD (newcol_name newcol_type [BEFORE oldcol_name], …) | DROP (oldcol_name, …)

| MODIFY (oldcol_name newcol_type [NOT NULL], … )}, …

修改表结构。

table-name：表名称。

newcol_name：新字段名称

newcol_type：新字段类型

oldcol_name：老字段名称

可以使用单个或多个ADD子句、DROP子句、MODIFY子句，但某个字句失败，操作即中止；原字段是NULL，不允许MODIFY为NOT NULL，除非所有NULL字段中均非空，反之可以；ALTER使用者是表的拥有者或拥有DBA权限，或被授权；事务中处理过程中不要使用此语句。

例：alter table user

add ( c6 char(20) before c5);

7. RENAME TABLE oldname TO newname

修改表名。

oldname：原名称。

newname：新名称。

RENAME使用者是表的拥有者或拥有DBA权限，或被授权；事务中处理过程中不要使用此语句。

例：rename user to bbb;

8. DROP TABLE table-name

删除表。

table-name：表名称。

删除表意味着删除其中所有数据、各字段上的索引及对表的赋权、视图等；用户不能删除任何系统目录表；语句使用者是表拥有者或拥有DBA权限，事务中处理过程中不要使用此语句。

9. RENAME COLUMN table.oldcolumn， TO newcolumn

修改字段名。

table.oldcolumn：表名及原字段名称

newcolumn：新字段名称。

语句使用者是表的拥有者或拥有DBA权限或有ALTER权限的用户，事务中处理过程中不要使用此语句。

例：rename column user.c6 to c7;

10.CREATE VIEW view-name column-list

CREATE VIEW view-name column-list AS select_statement [WITH CHECK OPTION]

创建视图。

view-name：视图名称。

column-list：字段列表。

select_statement：SELECT语句。

以下语句不使用视图：ALTER TABLE，DROP INDEX，ALTER INDEX，LOCK TABLE，CREATE INDEX， RENAME TABLE；视图将延用基表的字段名，对表达式等虚字段和多表间字段重名必须指明标识其字段名；若对视图中某些字段命名，则所有字段都必须命名；视图中数据类型延用基表中的数据类型，虚字段起诀于表达式；不能使用ORDER BY和UNION子句；对视图中所有的字段要有SELECT权限；事务中处理过程中使用此语句，即使事务回滚，视图也将建立，不能恢复。

例：create view v_user as select * from user where c1 = “B1”;

11.DROP VIEW view-name

删除视图。

view-name：视图名称。

用户可删除自己建立的视图；视图的后代视图也被删除；事务中处理中不要使用此语句。

例：drop view v_user;

12.CREATE INDEX

CREATE [UNIQUE/DISTINCT] [CLUSTER] INDEX index_name ON table_name

([column_name ASC/DESC],…)

创建索引。

index_name：索引名称。

table_name：表名称。

column_name：字段名称。

UNIQUE/DISTINCT：唯一索引。

CLUSTER：使表的物理存放顺序按索引排列。

ASC/DESC：升序或降序，缺省升序。

语句执行时，将表的状态置为EXCLUSIVE；复合索引最多包含8个字段，所有字段长度和不得大于120字节；事务中处理过程中使用此语句，即使事务回滚，索引将建立，不能恢复。

例：create cluster index ix_user on user(c5);

13.ALTER INDEX index-name TO [NOT] CLUSTER

修改索引性质。

index-name：索引名称。

TO [NOT] CLUSTER：去掉或加上CLUSTER属性。

语句执行时，将表的状态置为EXCLUSIVE；事务中处理过程中使用此语句，即使事务回滚，索引性质将改变，不能恢复。

例：alter index ix_user to not cluster;

14.DROP INDEX index-name

删除索引。

index-name：索引名称。

语句使用者是索引的拥有者或拥有DBA权限，事务中处理过程中不要使用此语句，否则事务无法恢复。

例：drop index ix_user;

15.CREATE SYNONYM synonym FOR table-name

创建同义名。

synonym：同义名

table-name：表名称

数据库的创建者可以使用同义名；没有赋予同义名权限的用户不能使用同义名；同义名不能和表名相同；事务中处理过程中不要使用此语句。

例：create synonym user_alias for user;

16.DROP SYNONYM synonym

删除同义名。

synonym：同义名

可以删除自己建立的同义名；事务中处理过程中不要使用此语句，否则无法恢复。

例：drop synonym user_alias;

17.UPDATE STATISTICS [FOR TABLE table-name]

更新数据库的统计数字。

table-name：表名称

此语句仅作用于当前数据库；可提高查询效率；只有执行此语句，才改变统计数据。

例：update statistics for table user;


主要SQL语句详解(2)

  18. GRANT {DBA|RESOURCE|CONNECT} TO {PUBLIC|user-list}

授权命令。

PUBLIC|user-list：全部或指定的用户。

三种权限居且仅居其一，事务处理过程中不要执行GRANT语句。

例：grant resource to pulbic;

GRANT tab-privilege ON table-name TO {PUBLIC|user-list} [WITH GRANT OPTION]

授表级权限。

tab-privilege：表级权限。

table-name：表名称。

PUBLIC|user-list：全部或指定的用户。

[WITH GRANT OPTION]：表示被授权用户有否权限进行二次授权。

用户可以在自己建立表达式或被[WITH GRANT OPTION]准许的表中进行赋权；限定越多的权限优先级越高。

例：grant update(c1,c6) on user to dick with grant option;

附（INFORMIX的权限）

(1) 数据库的权限（控制对数据库的访问以及数据库中表的创建和删除）

DBA权限：全部权利，修改系统表，建立和删除表与索引、增加和恢复表数据，以及授予其他用户数据库权限等；

RESOURCE权限：允许对数据库表中的数据进行存取，建立永久性表以及索引。

CONNECT权限：只允许对数据库表中的数据进行存取，建立和删除视图与临时表。

(2)表级权限（对表的建立、修改、检索和更新等权限）

ALTER：更改权限

DELETE：删除权限

INDEX：索引权限

INSERT：插入权限

SELECT [(cols)]：指定字段或所有字段上的查询权限，不指明字段缺省为所有字段。

UPDATE [(cols)] ：指定字段或所有字段上的更新权限，不指明字段缺省为所有字段。

ALL [PRIVILEGES]：以上所有表级权限

  19. REVOKE {DBA|RESOURCE|CONNECT} FROM {PUBLIC|user-list}

收权命令。

PUBLIC|user-list：全部或指定的用户。

三种权限居且仅居其一，事务处理过程中不要执行GRANT语句。

例：revoke resource from john;

REVOKE tab-privilege ON table-name FROM {PUBLIC|user-list}

收表级权限。

tab-privilege：表级权限。

table-name：表名称。

PUBLIC|user-list：全部或指定的用户。

[WITH GRANT OPTION]：表示被授权用户有否权限进行二次授权。

用户只能取消由其本人赋予其他用户的表级存取权限；不能取消自己的权限，对SELECT和UPDATE作取消时，将取消所有表中字段的SELECT 和UPDATE权限。

例；revoke update on user from dick;

  20. LOCK TABLE table-name IN {SHARE|EXCLUSIVE} MODE

记录级加锁和表级加锁或文件加锁。

table-name：表名称。

SHARE：允许读表中数据，但不允许作任何修改

EXCLUSIVE：禁止其他任何形式访问表

每次只能对表琐定一次；事务处理过程中，BEGIN WORK后立即执行LOCK TABLE以取代记录级加锁，COMMIT WORK和ROLLBACK WORK语句取消所有对表的加锁；若没有事务处理，锁将保持到用户退出或执行UNLOCK为止。

例：lock table user in exclusive mode;

  21. UNLOCK TABLE table-name

取消记录级加锁和表级加锁或文件加锁。

table-name：表名称。

例：unlock user;

  22. SET LOCK MODE TO [NOT] WAIT

改变锁定状态。

TO [NOT]：等待解锁，有可能被死锁或不等待并提示错误信息，表示此记录被锁，缺省值。

访问一个EXCLUSIVE状态下的记录，将返回一个错误。

  23. START DATABSE db_name [WITH LOG IN “pathname”]

启动事务处理。

“pathname”：事务处理日志文件。

执行该语句前，需要先关闭当前数据库。

例；clost database;

start databse customer with log in “/usr/john/log/customer.log”;

  24. BEGIN WORK

开始事务。例：begin work;

  25. COMMIT WORK

提交（正常结束）事务。例：commit work;

  26. ROLLBACK WORK

回滚（非正常结束）事务。例：rollback work;

  27. SELECT

SELECT select_list FROM tab_name|view_name

WHERE condition

GROUP BY column_name

HAVING condition

ORDER BY column_list

INTO TEMP table_name

查询语句。

select_list：选择表或*

tab_name：表名称

view_name：视图名称。

condition：查询条件，可使用BETWEEN、IN、LIKE、IS NULL、LIKE、MATCHES、NOT、

AND、OR、=、!=或<>、>、　>= 、<=、<、ALL、ANY、SOME

column_name：分组字段名称

condition：群聚条件

column_list：排序字段列表，缺省ASC，可指定DSC；排序时，NULL值小于非零值。

table_name：临时表名称

例：略

附（常用函数）

(1)集合函数：

count(*)、

sum(数据项/表达式)、avg(数据项/表达式)、max(数据项/表达式)、min(数据项/表达式)

count(distinct 数据项/表达式)、sum(distinct数据项/表达式)、avg(distinct数据项/表达式)

(2)代数函数和三角函数

HEX(数据项/表达式)、ROUND(数据项/表达式)、TRUNC(数据项/表达式)、

TAN(数据项/表达式)、ABS(数据项/表达式)、MOD(被除数,除数)

(3)统计函数

标准差，stdev()、方差，variance()、范围，rang()

(4)时间函数

DAY(日期/时间表达式)：返回数字型

MONTH(日期/时间表达式)：返回整数

WEEKDAY(日期/时间表达式)：0&#0;&#0;6，0星期天，1星期一；返回整数

YEAR(日期/时间表达式)、返回整数

DATE(非日期表达式)：返回日期型

EXTEND(日期/时间表达式,[第一个至最后一个])：返回指定的整数

MDY(月,日,年)：返回日期型

CURRENT：返回日期型

(5)时间函数

ROUND()，四舍五入。如：ROUND(10.95,position)position进行四舍五入的前一位置

TRUNC()，截取。如：TRUNC(10.95,0)position截取的位置

INFORMIX临时表在下列情况下自动取消：

A.退出数据库访问工具（如DBACCESS）

B.SQL通话结束（DISCONNECT）

C.发出取消表语句

D.退出程序时

  28. INSERT

INSERT INTO view_name|table_name [(column_list)] VALUES (value_list)

或 INSERT INTO view_name|table_name [(column_list)] select_statement

插入数据

view_name|table_name：视图名或表名称

column_list：数据项列表。

value_list：值列表

select_statement：查询语句。

例：略

  29. DELETE FROM view_name|table_name WHERE search-conditions

删除语句。

view_name|table_name：视图名或表名称

search-conditions；删除条件

例：略

  30. UPDATE

UPDATE view_name|table_name SET column_1 = value_1ist WHERE search_conditions

或UPDATE view_name|table_name SET column_1|* = value_1ist WHERE search_conditions

更新数据语句。

view_name|table_name：表名称或视图表名称

value_1ist：字段值

search_conditions：更新数据的条件

例：略

  31. CHECK TABLE table-name

检查索引语句。

语句使用者是表的拥有者或拥有DBA权限；不能对systable使用此语句。

例：略

  32. REPAIR TABLE table-name

修复索引。

语句使用者是表的拥有者或拥有DBA权限；不能对systable使用此语句。

例：略

  33. LOAD FROM “file-name” INSERT INTO table_name [(column_name[,…])]

将文本数据栽入表中。

例：load form “aa.txt” insert into user;

  34. UNLOAD TO “pathname”

将表中数据卸为文本。

例：unload to “aa.txt” select * from user;

  35. INFO

系统信息查询。

INFO TABLES：得到当前数据库上表的名字。

INFO columns FOR table_name：指定表上的字段信息。

INFO INDEXES FOR table_name：指定表上的索引信息。

INFO [ACCESS|PRIVILEGES] FOR table_name：指定表上的存取权限。

INFO STATUS FOR table_name：指定表的状态信息。

例： info tables;


ＳＱＬ 语法参考手册

DB2 提供了关连式资料库的查询语言 ＳＱＬ (Structured Query Language)， 是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都 必须提供的，用以表示关连式的操作，包含了资料的定义（ＤＤＬ）以及资料 的处理（ＤＭＬ）。SQL原来拼成 SEQUEL，这语言的原型以“系统 R“的名 字在 IBM 圣荷西实验室完成，经过 IBM 内部及其他的许多使用性及效率测试， 其结果相当令人满意，并决定在系统R 的技术基础发展出来 IBM 的产品。而 且美国国家标准学会（ANSI）及国际标准化组织（ISO　在 1987 遵循一个几乎 是以 IBM SQL 为基础的标准关连式资料语言定义。
资料定义 ＤＤＬ（Data Definition Language)
资料定语言是指对资料的格式和形态下定义的语言，他是每个资料库要建立时候 时首先要面对的，举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等，都是在开始的时候所必须规划好的。

建表格：
语法：
CREATE TABLE table_name(
column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],
column2 DATATYPE [NOT NULL],
...）
说明
DATATYPE --是资料的格式，详见表。
NUT NULL --可不可以允许资料有空的（尚未有资料填入）。
PRIMARY KEY --是本表的主键。

更改表格
ALTER TABLE table_name
ADD COLUMN column_name DATATYPE
说明　增加一个栏位（没有删除某个栏位的语法）
ALTER TABLE table_name
ADD PRIMARY KEY (column_name)
说明　更改表得的定义把某个栏位设为主键
ALTER TABLE table_name
DROP PRIMARY KEY (column_name)
说明　把主键的定义删除。

建立索引
CREATE INDEX index_name ON table_name (column_name)
说明　对某个表格的栏位建立索引以增加查询时的速度

删除
DROP table_name
DROP index_name

资料形态 DATATYPE
ＳＱＬ 的资料形态 DATATYPEs
smallint
16 位元的整数
interger
32 位元的整数
decimal(p,s)
p 精确值和 s 大小的十进位整数，精确值 p 是指全部有几个数(digits)
大小值 s 是指小数点後有几位数。
如果没有特别指定，则系 统会设为 p=5; s=0 。
float
32位元的实数
double
64位元的实数
char(n)
n 长度的字串，n不能超过 254
varchar(n)
长度不固定且其最大长度为 n 的字串，n不能超过 4000
graphic(n)
和 char(n) 一样，不过其单位是两个字元 double-bytes， n不能超过 127。这个形态是为了支援两个字元长度的字体，例如中文字
vargraphic(n)
可变长度且其最大长度为 n 的双字元字串，n不能超过 2000
date
包含了 年份、月份、日期.
time
包含了 小时、分钟、秒.
timestamp
包含了 年、月、日、时、分、秒、千分之一秒.

资料操作 ＤＭＬ （Data Manipulation Language)
资料定义好之後接下来的就是资料的操作。资料的操作不外乎增加资料（insert)、 查询资料（query）、更改资料（update) 、删除资料（delete）四种模式，以下分别介绍他们的语法：

增加资料：
INSERT INTO table_name (column1,column2,...) VALUES ( value1,value2, ...)
说明：
1.若没有指定column 系统则会按表格内的栏位顺序填入资料
2.栏位的资料形态和所填入的资料必须吻合
3.table_name 也可以是景观 view_name

INSERT INTO table_name (column1,column2,...) SELECT columnx,columny,... FROM another_table
说明：也可以经过一个子查询（subquery）把别的表格的资料填入

查询资料：
基本查询
SELECT column1,columns2,... FROM table_name
说明：把table_name 的特定栏位资料全部列出来
SELECT *
FROM table_name
WHERE column1 = xxx
[AND column2 > yyy] [OR column3 <> zzz]
说明：
1.'*'表示全部的栏位都列出来
2.WHERE 之後是接条件式，把符合条件的资料列出来
SELECT column1,column2
FROM table_name
ORDER BY column2 [DESC]
说明：
ORDER BY 是指定以某个栏位做排序，[DESC]是指从大到小排列，若
没有指明，则是从小到大排列

组合查询
组合查询是指所查询得资料来源并不只有单一的表格，而是联合一个以上的表格才能够得到结果的。
SELECT *
FROM table1,table2
WHERE table1.colum1=table2.column1
说明：
1.查询两个表格中其中 column1 值相同的资料
2.当然两个表格相互比较的栏位，其资料形态必须相同
3.一个复杂的查询其动用到的表格可能会很多个

整合性的查询：
SELECT COUNT (*)
FROM table_name
WHERE column_name = xxx
说明：
查询符合条件的资料共有几笔
SELECT SUM(column1)
FROM table_name
说明：
1.计算出总和，所选的栏位必须是可数的数字形态
2.除此以外还有 AVG() 是计算平均、MAX()、MIN()
计算最大最小值的整合性查询
SELECT column1,AVG(column2)
FROM table_name
GROUP BY column1
HAVING AVG(column2) > xxx
说明：
1.GROUP BY: 以column1 为一组计算 column2 的平均值
必须和 AVG、SUM 等整合性查询的关键字一起使用
2.HAVING : 必须和 GROUP BY 一起使用作为整合性的限制

复合性的查询
SELECT *
FROM table_name1
WHERE EXISTS (
SELECT *
FROM table_name2
WHERE conditions )
说明：
1.WHERE 的 conditions 可以是另外一个的 query
2.EXISTS 在此是指存在与否
SELECT *
FROM table_name1
WHERE column1 IN (
SELECT column1
FROM table_name2
WHERE conditions )
说明
1. IN 後面接的是一个集合，表示column1 存在集合里面
2. SELECT 出来的资料形态必须符合 column1

其他查询
SELECT *
FROM table_name1
WHERE column1 LIKE 'x%'
说明：
1.LIKE 必须和後面的'x%' 相呼应表示以 x为开头的字串
SELECT *
FROM table_name1
WHERE column1 IN ('xxx','yyy',..)
说明
1. IN 後面接的是一个集合，表示column1 存在集合里面
SELECT *
FROM table_name1
WHERE column1 BETWEEN xx AND yy
说明
1. BETWEEN 表示 column1 的值介於 xx 和 yy 之间

更改资料：
UPDATE table_name
SET column1='xxx'
WHERE conditoins
说明：
1.更改某个栏位设定其值为'xxx'
2.conditions 是所要符合的条件、若没有 WHERE 则
整个 table 的那个栏位都会全部被更改

删除资料：
DELETE FROM table_name
WHERE conditions
说明：删除符合条件的资料


SQL实践(1)

1. NULL值的使用

RDSQL中字段缺省值为空；并且对数值型的0和空值，以及字符型的空白和空值区别对待。
数值表达式中某个变为空，则整个表达式值为空；
聚合函数中，对空值忽略不计，若全部为空值，除COUNT（*）返回0外，其余返回空值。
布尔表达式中，结果可能为“未知”（见下表）。如TRUE AND NULL 结果为 “未知”，

对“未知”结果在RDSQL中看作不符合查询条件。

and | T | F | ? | or | T | F | ? | not |
T | T | F | ? | T | T | T | T | T | F
F | F | F | ? | F | T | F | ? | F | T
? | ? | F | ? | ? | T | ? | ? | ? | ?

结合上表，分析下列子句 ，其中n1=20；n2为空；n3=30。结果如右。

where n1*n2 < 1000 and n3 = 30; 结果：不符合查询条件

where n1*n2 < 1000 or n3 = 30; 结果：符合查询条件

ORDER BY子句中的空值，每一个空值为一组。

INSERT或UPDATE时，可使用关键字NULL/null表示空值。

字段是否可以为空，由CREATE TABLE语句中是否有NOT NULL指定或由ALTER修改。

Q：select count(*) from t1和select count(c1) from t1是否一样?

2. 字符查找，主要使用LIKE和MATCHES。

LIKE | MATCHES | 意义
% | * | 匹配0或多个字符
- | ? | 匹配一个字符
\ | \ | 转义字符
无 | [] | 选择匹配

例：matches ‘*Sp’；匹配以任何字符开始，以Sp结束的字段值

matches ‘?l*’； 匹配第一个字符任意，第二个字符为l，其余字符任意的字段值

matches ‘[A-N]*’； 匹配以A到N的字符开始，其余字符任意的字段值

matches ‘*[sS]*’； 匹配含有s或S的字段值，扩展以下可用于case insensitive查询

like ‘%\%%’； 匹配含有%的字段值

3. 用SQL语句求表一中的关于name有多少不同的num，结果如表二。

4. 表一：　　　　　　　　　　　　　　　　　　　　 表二：

5. id　　 name　　 num　　　　　　　　　　　　　　name 　　　　count1

6. 1 　　　AA 　　　1　　　　　　　　　　　　　　　CC　　　　　　 2

7. 2 　　　AA 　　　2　　　　　　　　　　　　　　　BB　　　　　　 2

8. 3 　　　AA 　　　3　　　　　　　　　　　　　　　AA 　　　　　　3

9. 4 　　　AA 　　　1

10. 5 　　　AA 　　　2

11. 6 　　　BB 　　　4

12. 7 　　　BB 　　　5

13. 8 　　　BB 　　　4

14. 9 　　　BB 　　　5

15. 10　　　CC 　　　6

16. 11　　　CC 　　　6

17. 12　　　CC 　　　7

SQL语句如下：

create table t1

(

id smallint,

name char(10),

num smallint

);

insert into t1 values(1,'AA',1);

insert into t1 values(2,'AA',2);

insert into t1 values(3,'AA',3);

insert into t1 values(4,'AA',1);

insert into t1 values(5,'AA',2);

insert into t1 values(6,'BB',4);

insert into t1 values(7,'BB',5);

insert into t1 values(8,'BB',4);

insert into t1 values(9,'BB',5);

insert into t1 values(10,'CC',6);

insert into t1 values(11,'CC',6);

insert into t1 values(12,'CC',7);

A：select name ,count(distinct num) from t1 group by name;

4）使用旋转矩阵，将表一中关于id在不同月份的费用，由纵向变为横向。

其中表一对一个id某个月份的记录数可能>1。表一：

id 　　d1 　fee费用（分）

1 2000-01-24 100

1 2000-04-24 100

2 2000-02-24 200

2 2000-06-24 200

3 2000-04-24 400

4 2000-04-24 400

5 2000-05-24 500

6 2000-06-24 600

7 2000-09-24 900

8 2000-11-24 1100

表二：

id 1月份费用 2月份费用 …… … … 12月份费用

1 　100 0 　0 　100 　0 　0 　0 　0 　0 　0 　0 　　0

2 　0 　200 0 　0 　　0 　200 0　 0 　0 　0 　0 　　0

3 　0 　0 　0 　400 　0 　0 　0 　0 　0 　0 　0 　　0

4 　0 　0 　0 　400 　0 　0 　0 　0 　0 　0 　0 　　0

5 　0 　0 　0 　0 　　500 0 　0 　0 　0 　0 　0 　　0

6 　0 　0 　0 　0 　　0 　600 0 　0 　0 　0 　0 　　0

7 　0 　0 　0 　0 　　0 　0 　0 　0 　900 0 　0 　　0

8 　0 　0 　0 　0 　　0 　0 　0 　0 　0 　0 　1100 　0

SQL语句：

create table t3

(

id smallint,

d1 datetime year to day,

fee int

);

insert into t3 values(1,"2000-01-24", 100);

insert into t3 values(1,"2000-04-24", 100);

insert into t3 values(2,"2000-02-24", 200);

insert into t3 values(2,"2000-06-24", 200);

insert into t3 values(3,"2000-04-24", 400);

insert into t3 values(4,"2000-04-24", 400);

insert into t3 values(5,"2000-05-24", 500);

insert into t3 values(6,"2000-06-24", 600);

insert into t3 values(7,"2000-09-24", 900);

insert into t3 values(8,"2000-11-24", 1100);

create table t4 –旋转矩阵

(

m_code smallint,

y1 smallint,

y2 smallint,

y3 smallint,

y4 smallint,

y5 smallint,

y6 smallint,

y7 smallint,

y8 smallint,

y9 smallint,

y10 smallint,

y11 smallint,

y12 smallint

);

insert into t4 values(1, 1,0,0,0,0,0,0,0,0,0,0,0);

insert into t4 values(2, 0,1,0,0,0,0,0,0,0,0,0,0);

insert into t4 values(3, 0,0,1,0,0,0,0,0,0,0,0,0);

insert into t4 values(4, 0,0,0,1,0,0,0,0,0,0,0,0);

insert into t4 values(5, 0,0,0,0,1,0,0,0,0,0,0,0);

insert into t4 values(6, 0,0,0,0,0,1,0,0,0,0,0,0);

insert into t4 values(7, 0,0,0,0,0,0,1,0,0,0,0,0);

insert into t4 values(8, 0,0,0,0,0,0,0,1,0,0,0,0);

insert into t4 values(9, 0,0,0,0,0,0,0,0,1,0,0,0);

insert into t4 values(10,0,0,0,0,0,0,0,0,0,1,0,0);

insert into t4 values(11,0,0,0,0,0,0,0,0,0,0,1,0);

insert into t4 values(12,0,0,0,0,0,0,0,0,0,0,0,1);

--方法一

select id,month(d1) month,sum(fee) fei from t3 group by 1,2 into temp aa;

select id,

sum(y1*fei) y1,sum(y2*fei) y2,sum(y3*fei) y3,sum(y4*fei) y4,

sum(y5*fei) y5,sum(y6*fei) y6,sum(y7*fei) y7,sum(y8*fei) y8,

sum(y9*fei) y9,sum(y10*fei) y10,sum(y11*fei) y11,sum(y12*fei) y12

from aa, t4 where aa.month = t4.m_code

group by id order by id

--方法二

select id,

sum(y1*fee) y1,sum(y2*fee) y2,sum(y3*fee) y3,sum(y4*fee) y4,

sum(y5*fee) y5,sum(y6*fee) y6,sum(y7*fee) y7,sum(y8*fee) y8,

sum(y9*fee) y9,sum(y10*fee) y10,sum(y11*fee) y11,sum(y12*fee) y12

from t3, t4 where month(d1) = t4.m_code

group by id order by id

方法一和方法二的结果一样，但有所区别：

方法一中是先对id某个月的钱进行累加，然后进行旋转；

方法二中在表一对一个id某个月份的记录数可能>1的情况时，先对每条记录进行旋转，然后在

累加求和。


SQL实践(2)

19.       用SPL写自己的UPPER函数?
    INFORMIX中没有UPPER函数,用存储过程实现如下
例:方法一:

=================== SPL: Upper() ===================
--
-- Procedure: GetCharAt()
-- Get a character from a string at a specified position.
--
DROP PROCEDURE GetCharAt;
  CREATE PROCEDURE GetCharAt(str VARCHAR(255), pos INTEGER)
    RETURNING VARCHAR(1);
    DEFINE i INTEGER;
    IF pos < 1 THEN
        FOR i = 2 TO pos
            LET str = str[2,255];
        END FOR;
    END IF
    RETURN str[1,1];
END PROCEDURE;
--
-- Procedure: Upper()
-- Convert a string to uppercase.
--
DROP PROCEDURE Upper;
CREATE PROCEDURE Upper(str VARCHAR(255))
  RETURNING VARCHAR(255, 0);
    DEFINE i INTEGER;
    DEFINE len INTEGER;
    DEFINE retstr VARCHAR(255);
    IF str IS NULL THEN
        RETURN NULL;
    ELSE
        LET len = LENGTH(str);
        LET retstr = '';
        FOR i = 1 TO len
          LET retstr = retstr||ToUpper(GetCharAt(str, i));
        END FOR;
        LET retstr = retstr[2,255]; -- BUG: req'd to strip off leading blank
        RETURN retstr;
    END IF;
END PROCEDURE;
--
-- Procedure: ToUpper()
-- Convert a single character to upper case.
--
DROP PROCEDURE ToUpper;
CREATE PROCEDURE ToUpper(fromchar VARCHAR(1,1))
  RETURNING VARCHAR(1,1);
    IF fromchar = 'a' THEN
        RETURN 'A';
    ELIF fromchar = 'b' THEN
        RETURN 'B';
    ELIF fromchar = 'c' THEN
        RETURN 'C';
    ELIF fromchar = 'd' THEN
        RETURN 'D';
    ELIF fromchar = 'e' THEN
        RETURN 'E';
    ELIF fromchar = 'f' THEN
        RETURN 'F';
    ELIF fromchar = 'g' THEN
        RETURN 'G';
    ELIF fromchar = 'h' THEN
        RETURN 'H';
    ELIF fromchar = 'i' THEN
        RETURN 'I';
    ELIF fromchar = 'j' THEN
        RETURN 'J';
    ELIF fromchar = 'k' THEN
        RETURN 'K';
    ELIF fromchar = 'l' THEN
        RETURN 'L';
    ELIF fromchar = 'm' THEN
        RETURN 'M';
    ELIF fromchar = 'n' THEN
        RETURN 'N';
    ELIF fromchar = 'o' THEN
        RETURN 'O';
    ELIF fromchar = 'p' THEN
        RETURN 'P';
    ELIF fromchar = 'q' THEN
        RETURN 'Q';
    ELIF fromchar = 'r' THEN
        RETURN 'R';
    ELIF fromchar = 's' THEN
        RETURN 'S';
    ELIF fromchar = 't' THEN
        RETURN 'T';
    ELIF fromchar = 'u' THEN
        RETURN 'U';
    ELIF fromchar = 'v' THEN
        RETURN 'V';
    ELIF fromchar = 'w' THEN
        RETURN 'W';
    ELIF fromchar = 'x' THEN
        RETURN 'X';
    ELIF fromchar = 'y' THEN
        RETURN 'Y';
    ELIF fromchar = 'z' THEN
        RETURN 'Z';
    END IF;
    RETURN fromchar;
END PROCEDURE;
方法二:
=================== SPL: Upper() ===================
--
-- Procedure: Upper()
-- Convert a string to uppercase.
--
DROP PROCEDURE upper;
CREATE PROCEDURE upper (str VARCHAR(255)) RETURNING VARCHAR(255);
    DEFINE i INTEGER;
    DEFINE l INTEGER;
    DEFINE retstr VARCHAR(255);
    IF str IS NULL THEN
        RETURN NULL;
    ELSE
       LET l = LENGTH(str);
       LET retstr = '';

       FOR i = 1 TO l
         IF str[1,1] BETWEEN "a" AND "z" THEN
           IF str[1,1] = 'a' THEN
                 LET retstr = retstr || 'A';
              ELIF str[1,1] = 'b' THEN
                 LET retstr = retstr || 'B';
           ELIF str[1,1] = 'c' THEN
                 LET retstr = retstr || 'C';
           ELIF str[1,1] = 'd' THEN
                 LET retstr = retstr || 'D';
           ELIF str[1,1] = 'e' THEN
                 LET retstr = retstr || 'E';
           ELIF str[1,1] = 'f' THEN
                 LET retstr = retstr || 'F';
           ELIF str[1,1] = 'g' THEN
                 LET retstr = retstr || 'G';
           ELIF str[1,1] = 'h' THEN
                 LET retstr = retstr || 'H';
           ELIF str[1,1] = 'i' THEN
                 LET retstr = retstr || 'I';
           ELIF str[1,1] = 'j' THEN
                 LET retstr = retstr || 'J';
           ELIF str[1,1] = 'k' THEN
                 LET retstr = retstr || 'K';
           ELIF str[1,1] = 'l' THEN
                 LET retstr = retstr || 'L';
           ELIF str[1,1] = 'm' THEN
                 LET retstr = retstr || 'M';
           ELIF str[1,1] = 'n' THEN
                 LET retstr = retstr || 'N';
           ELIF str[1,1] = 'o' THEN
                 LET retstr = retstr || 'O';
           ELIF str[1,1] = 'p' THEN
                 LET retstr = retstr || 'P';
           ELIF str[1,1] = 'q' THEN
                 LET retstr = retstr || 'Q';
           ELIF str[1,1] = 'r' THEN
                 LET retstr = retstr || 'R';
           ELIF str[1,1] = 's' THEN
                 LET retstr = retstr || 'S';
           ELIF str[1,1] = 't' THEN
                 LET retstr = retstr || 'T';
           ELIF str[1,1] = 'u' THEN
                 LET retstr = retstr || 'U';
           ELIF str[1,1] = 'v' THEN
                 LET retstr = retstr || 'V';
           ELIF str[1,1] = 'w' THEN
                 LET retstr = retstr || 'W';
           ELIF str[1,1] = 'x' THEN
                 LET retstr = retstr || 'X';
           ELIF str[1,1] = 'y' THEN
                 LET retstr = retstr || 'Y';
           ELSE
                 LET retstr = retstr || 'Z';
           END IF;
        ELSE
           LET retstr = retstr || str[1,1];
        END IF;
        LET str = str[2,255];
    END FOR;
    LET retstr = retstr[2,255]; -- BUG: req'd to strip off leading blank
    RETURN retstr;
  END IF;
END PROCEDURE;
说明:
某些INFORMIX版本中,语句
DEFINE retstr VARCHAR(255);
LET retstr = '';
LET retstr = retstr || 'A';
将返回' A'. 两个字符,如果确定你的系统没有这个问题
将以上SPL中的语句 LET retstr = retstr[2,255];
-- BUG: req'd to strip off leading blank 去掉

20.       将一个表中重复键值的记录删除?
假定"keycol"是唯一的(即关于某个键值若有>=2条以上的记录时,只保留一条),
且表未分区,没有别的用户正在删除这个表的记录,使用如下语句
delete from sometable as a
where rowid <> (select min(rowid) from sometable where keycol = a.keycol)
如以上条件不满足或没有ROWID,可以使用如下语句
BEGIN WORK;
SELECT DISTINCT * FROM Table INTO TEMP Temp1;
DELETE FROM Table WHERE 1 = 1;
INSERT INTO Table SELECT * FROM Temp1;
COMMIT WORK;
说明:适用于记录数不多,且临时空间足够的情况.

21.       怎样在语句错误时停止使用SQL脚本?
例:
$ dbaccess <database> <sql-file>
<sql-file> :
BEGIN WORK;
INSERT INTO history
SELECT *
FROM current
WHERE momth = 11;
DELETE FROM current
WHERE month = 11;
COMMIT WORK;
插入语句错误(字段momth没有找到),脚本还是会继续执行,这回带来严重的错误.
可以通过设置环境变量DBACCNOIGN=1,使错误发生后,立即停止继续运行.

22.       设置运算结果的返回位数?
例:未使用DBDLTMASK环境变量时,
CREATE TEMP TABLE t
(
col_a DECIMAL(8,4) NOT NULL,
col_b DECIMAL(8,4) NOT NULL,
col_c DECIMAL(8,4) NOT NULL
);
INSERT INTO t VALUES(1.2345, 3.4567, 5.6789);
SELECT (col_a + col_b) / col_c AS value FROM t;
设置环境变量DBDLTMASK前 　　value 　0.82607547236261
    设置环境变量DBDLTMASK=6后　　value 　0.826075


Sql 连接查询

连接查询

通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点，也是它区别于其它类型数据库管理系统的一个标志。

在关系数据库管理系统中，表建立时各数据之间的关系不必确定，常把一个实体的所有信息存放在一个表中。当检索数据时，通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性，他们可以在任何时候增加新的数据类型。为不同实体创建新的表，尔后通过连接进行查询。

连接可以在SELECT 语句的FROM子句或WHERE子句中建立，似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以，在Transact-SQL中推荐使用这种方法。

SQL-92标准所定义的FROM子句的连接语法格式为：

FROM join_table join_type join_table

[ON (join_condition)]

其中join_table指出参与连接操作的表名，连接可以对同一个表操作，也可以对多表操作，对同一个表操作的连接又称做自连接。

join_type 指出连接类型，可分为三种：内连接、外连接和交叉连接。内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作，并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同，内连接又分为等值连接、自然连接和不等连接三种。

外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN)、右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种。与内连接不同的是，外连接不只列出与连接条件相匹配的行，而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。

交叉连接(CROSS JOIN)没有WHERE 子句，它返回连接表中所有数据行的笛卡尔积，其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

连接操作中的ON (join_condition) 子句指出连接条件，它由被连接表中的列和比较运算符、逻辑运算符等构成。

无论哪种连接都不能对text、ntext和image数据类型列进行直接连接，但可以对这三种列进行间接连接。例如：

SELECT p1.pub_id,p2.pub_id,p1.pr_info

FROM pub_info AS p1 INNER JOIN pub_info AS p2

ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)

(一)内连接

内连接查询操作列出与连接条件匹配的数据行，它使用比较运算符比较被连接列的列值。内连接分三种：

1、等值连接：在连接条件中使用等于号(=)运算符比较被连接列的列值，其查询结果中列出被连接表中的所有列，包括其中的重复列。

2、不等连接： 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

3、自然连接：在连接条件中使用等于(=)运算符比较被连接列的列值，但它使用选择列表指出查询结果集合中所包括的列，并删除连接表中的重复列。

例，下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社：

SELECT *

FROM authors AS a INNER JOIN publishers AS p

ON a.city=p.city

又如使用自然连接，在选择列表中删除authors 和publishers 表中重复列(city和state)：

SELECT a.*,p.pub_id,p.pub_name,p.country

FROM authors AS a INNER JOIN publishers AS p

ON a.city=p.city

(二)外连接

内连接时，返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时，它返回到查询结果集合中的不仅包含符合连接条件的行，而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。

如下面使用左外连接将论坛内容和作者信息连接起来：

SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b

ON a.username=b.username

下面使用全外连接将city表中的所有作者以及user表中的所有作者，以及他们所在的城市：

SELECT a.*,b.*

FROM city as a FULL OUTER JOIN user as b

ON a.username=b.username

(三)交叉连接

交叉连接不带WHERE 子句，它返回被连接的两个表所有数据行的笛卡尔积，返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。

例，titles表中有6类图书，而publishers表中有8家出版社，则下列交叉连接检索到的记录数将等

于6*8=48行。

SELECT type,pub_name

FROM titles CROSS JOIN publishers

ORDER BY type


第八章 习题及解答

第十章：习题及解答 7 上一页 下一页8

第十章：习题及解答 [上一章 下一章]

我(Liigo)收集了一些题目，但由于时间关系，来不及给出解答。在此衷心希望有志之士能够为此付出辛勤的汗水。
本章习题基本上全部来自一本Delphi新书的习题分册，好像是机械电子出版社的，记不清了。这本书太好了，专门针对初学者的，稍作修改即可作为易语言的习题。我在图书馆抄了一上午才抄了以下这些。如果哪位找到这本书，千万别忘记对本章进行扩充（或者与我(Liigo)和飞扬联系）。

——简单设计

什么是对象的属性、方法和事件？

简述易语言可视化编程的主要步骤。

如何向窗体中添加控件？

如何设置控件的属性，怎样响应控件的事件？

如何向程序中插入新的窗口？

如何保存源程序？

设计一个只包括一个窗口和一个按钮的程序，要求单击按钮即结束程序。

设计一个程序，要求窗口上有最大化、最小化和关闭按钮，且程序运行时窗口的大小可以用鼠标调整。

设计一个程序，要求窗口上有一个标签和两个按钮，单击第一个按钮使标签的标题变为“易语言”，单击另一个按钮使标签的标题变为“祖国您好”。

——语言基础

写出与x= 相对应的易语言表达式。
写出与x= 相对应的易语言表达式。
怎样求sin30°的值？

——顺序结构

以下哪组语句可实现将整数型变量A、B的值互换？
1、 C=A
B=A
A=C （设C是整数型辅助变量）
2、 A=A+B
B=A-B
A=A-B
解答：两组语句均可。

设计一个程序，要求在编辑框中输入圆的半径，计算并用标签输出圆的内接/外接正方形的面积。

设计一个程序，要求分别输入两种商品的单价和数量，计算并输出这两种商品的总计金额。

设计一个程序，要求分别输入正方体的长、宽、高，计算并输出该正方体的表面积和体积。

设计一个程序，通过编辑框给出时、分、秒，试计算总秒数，要求用信息框的形式输出结果。

设计一个程序，要求能够完成弧度和角度的相互转换。

——选择结构

设计一个程序，要求输入一个整数，判断它的奇偶性。

设计一个程序，分别求指定三个整数中最大的一个、最小的一个和中间的一个（要求三个数从编辑框中写入）

单位发放工资有以下规定：基本工资>=2000元,增加工资20%；1000<=基本工资<2000元,增加工资15%；基本工资<1000元,增加工资10%。请编写程序，根据用户输入的基本工资，计算他应得的实际工资。

设计一个程序，根据输入的学生的考试分数，判断他的成绩等级：优秀(>=90);良好(>=80);中等(>=70);及格(>=60);不及格(<60)。

设计一个程序，根据输入的年份，计算该年是否是闰年（闰年的定义：…… ）。

设计这样一个程序：窗体上有一个编辑框用于输入圆的半径，另有三个单选框（标题分别为“直径”“周长”“面积”），请根据当前被选中的单选框决定计算哪一个项目（如果“面积”被选中则计算圆的面积）。程序中如果需要用到其它控件，请自行添加。

——循环结构

以下关于循环的叙述，不正确的是：
A：内外循环不能交叉；
B：内外循环变量不得重复；
C：同层循环可以使用同一个循环变量；
D：循环只能用“计次循环”完成。
解答（D错误）

有以下程序段，请问循环共执行几次？
……

有以下程序段，执行后的结果为s=?
……

求前N个自然数的和（x=1+2+3+...+N），要求N从编辑框（或输入框）中输入。

求N!（N的阶乘，即N!=1*2*3*...*N）的值，要求N从编辑框（或输入框）中输入。

求以下数列的前N项和（N在程序运行时指定）：2/1 , 3/2 , 5/3 , 8/5 , 13/8 …… 例程下载

编程输出100到500之间所有能被3整除的自然数，结果可以输出到编辑框(多行)或列表框。

编程求100以内的所有“自然数对”，结果可以输出到编辑框(多行)或列表框。（“自然数对”——如果两个自然数的和与差都是平方数，则称两数为“自然数对”。如17和8的和(25)与差(9)分别是5和3平方(25=5*5,9=3*3)，所以18和7是一对“自然数对”。）例程下载

列表输出N、N的平方、N的平方根、N的自然对数，N的e指数。（输出方式自行决定，想一想多少种可能的方式？）

马克思曾经出过下面这个有趣的问题：30个人同餐，其中有男人女人和小孩，每个男人花了3块钱，每个女人花了2块钱，每个小孩花了1块钱，所有人总共花了50块钱，问男女小孩各多少人？（有多种可能，请全部列出。）例程下载

判断某整数N是否为素数，要求N从编辑框（或输入框）中输入。（素数的定义为：如果某整数可以表示成除1和它本身之外的另外两个整数的乘积，则该整数为素数。）

试编程验证1000以内的数是否满足哥德巴赫猜想。（哥德巴赫猜想：任何大于6的偶数，都可以表示成两个素数的乘积。）

根据以下近似公式求圆周率π： π/6 = 1/2 + (1/2)*(1/3*2^3) + (1*3)/(2*4)*(1/(5*2^5)) + (1*3*5)/(2*4*6)*(1/(7*2^7)) + …… (其中2^3表示2的3次为，下同) 例程下载

结束语：

（2002/6/30(周六) 22：30-24：00 将以上习题输入计算机。Liigo）
《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页8


易语言知识库

标题 | 项目 　 | 系统中当前支持库参考手册列表
开发手册 语言手册

1、 系统核心支持库3.3版

2、 超文本浏览框1.1版

3、 互联网支持库1.0版

4、 数据操作支持库一1.0版

5、 操作系统界面功能支持库1.0版

6、 扩展界面支持库一1.1版

7、 汉字编码转换支持库1.0版

8、 端口访问支持库1.0版

9、 扩展界面支持库二1.1版

10、 ｅＬＩＢ＋＋1.2版

11、 liigo_elib1.0版

12、 提示工具支持库1.1版

13、 扩展通用对话框2.0版

14、 通讯端口1.0版

15、 Command1.0版

16、 随想按钮1.0版

17、 EMenu1.0版

18、 vsFlexLib1.0版

19、 MediaPlayer1.0版

20、 WM播放器1.0版
易语言知识库 作者序
数据库应用手册
数据框架手册
易模块开发手册
ActiveX外部组件使用方法
基础知识 | 程序的输入方法
编程基础知识
《一步一步跟我学易语言》教程
操作方法 | 如何安装自己的易程序到其它计算机
编写程序时如何即时查询对应帮助
系统操作手册
系统的安装及运行方法
如何将易程序转换为另一个语言版本
网络资源 | 网站：http://eyuyan.com，上面有易语言用户论坛和大量免费源程序可供下载。
联系作者吴涛：fly@eyuyan.com


语言手册

返回首页

[ 易语言的命名约定 ]
[ 程序的启动方式 ]
[ 易语言的语言要素 ]
    [ 数据类型 ]
        [ 系统基本数据类型 ]
            [ 字节型 ]　[ 短整数型 ]　[ 整数型 ]　[ 长整数型 ]
            [ 小数型 ]　[ 双精度小数型 ]　[ 逻辑型 ]　[ 日期时间型 ]
            [ 文本型 ]　[ 字节集 ]　[ 子程序指针 ]
        [ 库定义数据类型 ]
        [ 自定义数据类型 ]
        [ 引用库定义或自定义数据类型对象的成员 ]
    [ 命令及操作符 ]
    [ 子程序 ]
        [ 子程序参数 ]
    [ Dll 命令 ]
    [ 程序集 ]
    [ 容器 ]
        [ 全局容器 ]　[ 程序集容器 ]　[ 局部容器 ]
        [ 容器的初始化 ]　[ 容器的赋值 ]　[ 容器的定义 ]　[ 参考容器 ]
    [ 常数 ]
        [ 数值型常数 ]　[ 逻辑型常数 ]　[ 日期时间型常数 ]　[ 文本常数 ]
        [ 子程序指针常数 ]　[ 常数集 ]
    [ 常量 ]
    [ 资源 ]
    [ 窗口、窗口单元及窗口程序集 ]
        [ 窗口的载入 ]
        [ 窗口单元的固定事件 ]
        [ 窗口单元的固定属性 ]

易语言的命名约定

    在易应用程序的编写过程中，用户涉及到定义各类名称，如：子程序名、容器名、数据类型名等等，这些名称的命名规则为：名称的首字母必须为全半角字母或汉字，其它字符必须为全半角字母、全半角数字或者汉字。虽然名称中允许半角字符“_”存在，但它被保留为系统专用，因此不要使用。与其它的编程语言相比，易语言的命名规则有以下特点：

  • 无长度限制，用户可以尽情地使用长名称来进行名称描述；

  • 永远不会与易语言的关键字产生冲突。譬如：现已存在“如果”命令，但用户仍然可以定义一个名称为“如果”的容器，两者之间不会产生任何冲突。

程序的启动方式

    每个易应用程序都可以在两种启动方式中选择一种，即：

  • 通过名称为“_启动窗口”的窗口启动；

  • 通过名称为“_启动子程序”的子程序启动。

    系统安装后默认为第一种启动方式，用户可以使用“程序 -> 系统配置 - 通常夹 - 程序启动方式”菜单功能进行更改。

    在第一种启动方式下，程序运行时系统将自动查找并载入名称为“_启动窗口”的窗口。在第二种启动方式下系统将自动执行名称为“_启动子程序”的子程序。

易语言的语言要素

    所有的易应用程序，都由下列语言要素或其中的一部分组成：

    一、 数据类型

    数据类型分为系统基本数据类型、库定义数据类型、用户自定义数据类型三类。

  • 系统基本数据类型列表及其说明如下：

  1. 字节型。可容纳 0 到 255 之间的数值。

  2. 短整数型。可容纳 -32,768 到 32,767 之间的数值，尺寸为 2 个字节。

  3. 整数型。可容纳 -2,147,483,648 到 2,147,483,647 之间的数值，尺寸为 4 个字节。

  4. 长整数型。可容纳 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的数值，尺寸为 8 个字节。

  5. 小数型。可容纳 3.4E +/- 38 (7位小数) 之间的数值，尺寸为 4 个字节。

  6. 双精度小数型。可容纳 1.7E +/- 308 (15位小数) 之间的数值，尺寸为 8 个字节。

  7. 逻辑型。值只可能为“真”或“假”，尺寸为 2 个字节。“真”和“假”为系统预定义常量，其对应的英文常量名称为“true”和“false”。

  8. 日期时间型。用作记录日期及时间，尺寸为 8 个字节。

  9. 文本型。用作记录一段文本，文本由以字节 0 结束的一系列字符组成。

  10. 字节集。用作记录一段字节型数据。字节集与字节数组之间可以互相转换，在程序中允许使用字节数组的地方也可以使用字节集，或者相反。字节数组的使用方法，譬如用中括号对（“[]”）加索引数值引用字节成员，使用数组型数值数据进行赋值等等，都可以被字节集所使用。两者之间唯一的不同是字节集可以变长，因此可把字节集看作可变长的字节数组。

  11. 子程序指针。用作指向一个子程序，尺寸为 4 个字节。

    在以上的基本数据类型中，字节型、短整数型、整数型、长整数型、小数型、双精度小数型被统称为“数值型”，它们之间可以任意转换。不过编程需要注意转换可能带来的精度丢失。譬如：将整数 257 转换为字节后的结果为 1 ，这是因为值 257 超出了字节型数据的最大上限 255 ，从而产生了溢出。

    另外，通用型数据类型仅在系统内部使用，它能够匹配所有的系统基本数据类型、库定义数据类型、自定义数据类型。

  • 库定义数据类型：

    库定义数据类型由运行支持库提供，用户在程序中可以直接使用，就如同是系统基本数据类型一样。

  • 自定义数据类型：

    用户可以随时在程序中自行定义新的数据类型。自定义数据类型时需要设置数据类型的名称及其成员。数据类型成员各属性的设置方法等同于 容器 设置时相应属性的设置方法。

  • 引用库定义或自定义数据类型对象的成员：

    数据类型成员等同于对象的属性，必须通过具有该数据类型的对象来引用。引用方法参见编程基础知识中的《引用对象的属性及方法》节。

    二、命令及操作符

    命令由运行支持库提供给用户在程序中使用，它们被分为很多类。有些命令的最后一个参数可以被扩展，譬如“相加”，它的“加数”参数可以被无限制地扩展，用作支持连续相加。这些命令在录入到程序中后在编辑窗口内其首部会显示出一个右双箭头作为标志。命令中的某些参数也有可能可以被省略，即调用时可以不提供参数数据。具体情况请参阅《支持库手册》。

    下面列出所有具有操作符的命令及其操作符运算优先级，值越小运算优先级越高。优先级高的命令在计算表达式时将被先执行，同优先级的命令按顺序执行：

命令名称 | 优先级 | 中文操作符号 | 英文操作符号
负 | 1 | － | -
相乘 | 2 | × | *
相除 | 2 | ÷ | /
整除 | 3 | ＼ | \
求余数 | 4 | ％ | % 或 Mod
相加 | 5 | ＋ | +
相减 | 5 | － | -
不等于 | 6 | ≠ | <> 或 !=
等于 | 6 | ＝ | = 或 ==
小于 | 6 | ＜ | <
大于 | 6 | ＞ | >
小于等于 | 6 | ≤ | <=
大于等于 | 6 | ≥ | >=
近似等于 | 6 | ≈ | ?=
并且 | 7 | 且 | And 或 &&
或者 | 8 | 或 | Or 或 ||
赋值 | 9 | ＝ | =

    三、子程序

    将程序分割成较小的逻辑单元就可以简化程序设计任务，这些部件被称为子程序。 子程序可用于压缩重复任务或共享任务，例如，压缩频繁的计算处理等等。

用子程序编程有两大好处：

  • 子程序可使程序划分成离散的逻辑单元，每个单元都比无子程序的整个程序容易调试及理解；

  • 一个应用程序中的子程序，往往不必修改或只需稍作改动，便可以成为另一个程序的子程序。

    每次调用子程序时，子程序中的所有语句都将被从第一条开始顺序执行，当执行到子程序尾部或者遇到“返回”命令时即返回到调用此子程序语句的下一条语句处。

    子程序可以接收参数数据和返回值。参数数据由调用子程序的语句传递过来，子程序的返回值被返回到调用子程序的语句处。

    子程序如需要返回值，必须先在子程序定义表的“返回值类型”栏中定义欲返回值的数据类型，然后在子程序中使用“返回”命令返回相应格式的数据。

    子程序如需要接收参数数据，必须先在子程序定义表中参数表部分定义与欲接收数据数目相同的参数。调用子程序时所传递过来的数据将被顺序地填入对应的参数中。如果所传递过来的数据与对应位置处的参数数据类型不一致，在可以互相转换时，系统将自动进行转换，否则会产生运行时错误。参数仅能在子程序内部使用。

定义子程序参数时需要定义以下几项主要属性：

  • 参数名。 定义该参数在子程序中的使用名称。参数可以如同容器一样使用；

  • 类型。所定义的数据类型应该与欲接收数据的数据类型相同或者能够互相转换；

  • 参考。设置系统为当前子程序参数传递数据时是否为传递指向数据的指针。如果所传递过来的参数数据为数组、用户定义数据类型、库定义数据类型、字节集型、文本型数据，则无论此属性是否为真，都将传递指针。如果所传递过来数据的类型与相应位置处参数的数据类型不一致但可以相互转换，譬如将“整数型”数据传递到“小数型”的参数中，则在数据被实际传递前，系统将首先自动将“整数型”数据转换为“小数型” 数据，然后再进行传递。因此在这种情况下，即使本属性为真，系统也无法传递指向原参数数据的指针，只能传递数据本身。如果系统将数据指针成功地传递过来，那么在子程序中对此参数的内容的更改将会相应地反映到调用子程序时所提供的参数数据上。参见例程 sample.e 中的相应部分。

  • 可空。如果本属性为真，那么在调用本子程序时，调用方可以不为此位置处的参数传递数据。主要用作支持具有默认值的参数，也可以在为子程序添加了新参数后又不想去更改以前调用此子程序的语句时使用。在子程序中可以使用“是否为空”命令来查询调用方是否提供了参数数据。参见例程 sample.e 中的相应部分。

  • 数组。设置当前子程序参数是否为接收数组数据。如果本属性为真，则调用方应该为本参数传递数组数据，否则只能传递非数组数据。参见例程 sample.e 中的相应部分。

四、Dll 命令

    在易应用程序中可以直接调用系统外部动态连接库（即 Dll 库）中的命令。在调用前，必须首先进行定义，定义Dll 命令涉及到以下主要属性：

  • Dll 命令名。定义该 Dll 命令在易程序中的使用名称；

  • 返回值类型。定义 Dll 命令返回值的数据类型，只能为无、字节、短整数、整数、逻辑及文本型；

  • Dll 库文件名。 定义当前 Dll 命令所在动态连接库的文件名。如果不指定库文件名，系统将默认在 Kernel32.dll、Gdi32.dll、User32.dll、Mpr.dll、Advapi32.dll 等 Windows 系统的基本应用程序界面函数（API）库中搜寻指定命令；

  • Dll 命令在 Dll 库中的对应命令名。定义当前 Dll 命令在其所在动态连接库中的名称，如果不指定，系统将默认等同于 Dll 命令名；

  • 定义 Dll 命令参数时的主要属性：

  1. 类型。Dll 命令参数所定义的数据类型应该与实际的 Dll 库命令一致。可以使用除了文本数组及字节集数组外的任何数据类型，包括库自定义和用户自定义数据类型。

  2. 传址。某些实际 Dll 库命令的参数需要接收数据地址，设置本属性为真可以确保将参数数据的地址传递过去。如果参数数据的类型为数组、文本、字节集、用户定义数据类型、库定义数据类型，则无论此属性是否为真，都将传递数据地址。如果本属性为真且调用 Dll 命令时所传递过来数据的类型与相应位置处所定义参数的数据类型不一致但可以相互转换，则系统先分配一块临时内存空间，然后进行转换并将转换后的数据存放到该空间，最后将此内存空间的地址传递到实际的 Dll 库命令。参见例程 sample.e 中的相应部分。

  3. 数组。意义同上。

五、程序集

    程序集顾名思义即子程序的集合，用作将应用程序中的子程序分组归类。在程序编辑过程中，每个程序集将在单独的编辑窗口内进行编辑。

六、容器

    容器即其它编程语言中的“变量”。

    在易应用程序执行期间，可以使用赋值语句在容器内临时存储数据。容器有名字（用来引用容器所包含内容的词）和数据类型（确定容器能够存储数据的种类）。

    容器有使用范围，在全局容器表内定义的容器被称为“全局容器”，可以被整个应用程序中的所有子程序使用；在程序集容器表内定义的容器被称为“程序集容器”， 仅能够被此程序集中的所有子程序使用；在子程序容器表内定义的容器被称为“局部容器”，仅能够被此子程序所使用。

  • 容器的初始化

    所有全局容器、程序集容器、局部静态容器在程序被启动运行前、所有非静态局部容器在其所处子程序被开始执行前，都将被自动分配空间并初始化。其中，数值型容器被初始化为零，逻辑型容器被初始化为假，日期时间型容器被初始化为 1899 年 12 月 30 日 0 时 0 分 0 秒，文本型容器被初始化为空文本（“”），字节集型容器被初始化为空字节集，子程序指针型容器被初始化为空子程序指针。
    特例：系统在对库定义数据类型的对象容器进行初始化时，将首先查询该数据类型的各成员在库中是否指定了初始值。如果指定了初始值，则使用该值进行初始化。譬如：“字体”为系统核心支持库中所提供的库定义数据类型，其“字体大小”成员的初始值在库中被指定为 9 点（1 点等于 1 / 72 英寸），“字体名称”成员的初始值被指定为“宋体”。

  • 容器的赋值

    非数组容器可以通过赋予一个常数、常量、资源、对象或者容器来赋值。所赋予过来数据的数据类型必须与被赋予容器的数据类型一致或者可以互相转换。可以将一个对象赋予给容器后再使用该容器间接引用此对象。譬如：假设存在一个数据类型为“标签”，名为“容器1”的容器，使用“容器1 = 窗口1.标签1”语句可以将“窗口1”上的“标签1”窗口单元对象参考到“容器1”上，以后在程序中就可以直接使用“容器1.标题”来引用“窗口1”上“标签1”单元的标题属性。

    数组容器可以通过赋予一个 常数集 或者另外一个数组容器来赋值。

  • 定义容器时的主要属性

  1. 容器名。 定义该容器在程序中的使用名称；

  2. 类型。定义该容器所能储存数据的数据类型；

  3. 静态。本属性仅在定义局部容器时需要被设置。如果局部容器在定义时此属性被设置为假，那么运行应用程序时，此容器在其所在子程序开始被执行前自动分配存储空间并初始化，在所在子程序执行完毕后自动释放所分配的存储空间。也就是说，容器的存储空间仅在其所在子程序执行过程中存在；如果此属性被设置为真，那么此容器与全局、程序集容器一样，被分配给在程序运行期间永久存在的存储空间并仅在应用程序启动运行前被初始化一次。

  4. 数组。设置当前容器是否为数组容器及数组各维的上限值（即成员数目）。如为多维数组，定义时各上限值之间用逗号分隔。引用容器数组中某成员的方法为使用被中括号括住的从 1 开始的索引数值，如：“[1]”（单维数组），“[2][1]”（多维数组）。所有多维数组均可以使用单维数组格式引用其成员。譬如：数组定义为“2, 3”的多维数组，其成员“[2][2]”可以被单维数组格式“[5]”所引用。

七、常数

    常数为可以直接在程序中使用的数据，具有以下几种类型：

  • 数值型常数。如： 1、100 ；

  • 逻辑型常数。如： 真、假 ；

  • 日期时间型常数。日期时间常数的内容必须用中括号括住，并且应按以下格式之一提供，年份后的时间部分可以被省略：

1、[1982年4月23日12时30分25秒]
2、[1982/4/23/12/30/25]
3、[1982/4/23/12:30:25]
4、[1982-4-23-12-30-25]
5、[1982-4-23-12:30:25]
6、[19820423123025]

  • 文本常数。文本常数的内容为一段文本，必须使用全角或半角双引号括住。如："文本"、“文本”等等；

  • 子程序指针常数。子程序指针常数为指向程序中某一子程序代码地址的指针数值，表达方式为符号“&”再加上子程序名称。如：“&子程序1”、“&_启动子程序”等等；

  • 常数集。常数集用作提供其它各类常数或常量的数组形式。表达方式为使用大花括号括住一系列相同类型且通过逗号分隔的各类常数或常量。如：“{ 1, 2, 3 }”、“{ "abc", "bcd" }”、“{ [1982年4月23日], [2000年1月1日12时] }”、“{ &子程序1, &_启动子程序 }”、“{ #红色，#黑色 }”、“{ #图片1，#声音1 }”等等。常数集也可以为空，表达方式为“{ }”，此时它将被认为包含有 0 个数值型常数，可以用作重新初始化一个数值数组或者将某字节集清空，譬如：“数值数组1 = { }”、“字节集1 = { }”等等。

八、常量

    常量用作存储在整个应用程序执行过程中保持不变的数据，其类型可以为数值、文本、逻辑值和日期时间。易语言核心支持库中已经提供了许多常量，但用户也可以在程序中自行定义。常量的引用表达方式为符号“#”再加上常量名称。如：“#pi”常量等同于数值“3.1415926535”、“#换行符”常量等同于文本 <回车> + <换行> 等等。

九、资源

    资源用作存储用户需要在程序中所使用的图片、声音等等字节数据，其数据类型为字节集型。引用表达方式等同于常量。

十、窗口、窗口单元及窗口程序集

    窗口为应用程序的界面，窗口单元为窗口的组成成员。每个窗口拥有一个专用程序集，名为窗口程序集。此窗口上所有的事件处理子程序都必须放在此程序集中。窗口程序集中的子程序引用所属窗口上的窗口单元属性或方法时可以省略窗口对象。譬如：假设程序中存在名为“窗口1”的窗口，该窗口上绘制有一个名为“标签1”的标签窗口单元。在其它程序集中的子程序欲引用“窗口1”的“标题”属性需要使用“窗口1.标题”，引用“标签1” 的“标题”属性需要使用“窗口1.标签1.标题”。而在该窗口的窗口程序集中的子程序可以直接使用“标题”、“标签1.标题”来进行相同的引用。

    系统核心支持库中定义的“窗口”窗口单元数据类型的所有方法能够被其它所有非功能类窗口单元数据类型所共享，就好象这些方法是其本身所具有的一样。

    在一个程序集中可以就象引用窗口对象的属性或方法一样来引用另外一个窗口程序集中的程序集容器和子程序。譬如：假设存在名为“窗口1”的窗口，其窗口程序集中存在名为“容器1”的程序集容器，名为“子程序1”的子程序，在其它程序集中可以使用“窗口1.容器1”及“窗口1.子程序1”来引用此程序集容器和子程序。

    窗口单元的属性除了被标明为“只读”的外，其它属性在运行时皆既支持读也支持写。

  • 窗口的载入

    程序内所设计的所有窗口，运行时在使用前都必须先载入。除开“_启动窗口”由系统在启动程序时自动载入外，其它窗口都必须使用“载入”命令载入。有关查阅“载入”命令详细信息的方法，请参见《支持库手册》。在窗口被载入后，所有对此窗口及其所有单元的对象属性的修改，在窗口被关闭后都将自动被复原到设计状态。但是如果在窗口被载入前修改了窗口或其单元的固定属性，则此属性值将永久存在而不会被复原，就好象是在设计窗口时所设置的一样。

  • 窗口单元的固定事件

    所谓窗口单元固定事件，即由系统而非窗口单元本身提供支持的窗口单元事件。其列表如下：

1、鼠标左键被按下：当在窗口单元上按下鼠标左键时产生本事件。

2、鼠标左键被放开：当在窗口单元上放开被按下的鼠标左键时产生本事件。

3、被双击：当在窗口单元上双击鼠标左键时产生本事件。

4、鼠标右键被按下：当在窗口单元上按下鼠标右键时产生本事件。

5、鼠标右键被放开：当在窗口单元上放开被按下的鼠标右键时产生本事件。

6、鼠标位置被移动：当在窗口单元上移动鼠标时产生本事件。

事件（1 - 6）的事件参数为：

1、横向位置： 指示鼠标在当前所处窗口单元中的横向位置；

2、纵向位置： 指示鼠标在当前所处窗口单元中的纵向位置；

3、功能键状态：用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数值与想要得知功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，表示同时按下了此功能键。

7、按下某键：当用户按下某键时产生本事件。

8、放开某键：当用户放开所按下的键时产生本事件。

事件（7 - 8）的事件参数为：

1、键代码： 为键常量值，如：“#F1键”、“#回车键” 等等。具体所有的键常量见系统核心支持库库常量表；

2、功能键状态。其意义同上。

    对于事件（1 - 8），对应的事件处理子程序皆可以返回一个逻辑值。如果返回假，则取消本事件，不再将此事件传递到所属窗口单元上去；如果不返回值或返回真，则将此事件继续传递到所属窗口单元上去。

9、获得焦点：当窗口单元获得输入焦点时产生本事件。

    所谓“输入焦点”，即当前用户按键操作所对应的目标对象。譬如：用户正在编辑框中输入文本，那么此编辑框就具有输入焦点，因为它将获得目前用户所进行的所有按键操作。所谓“获得”或者“失去”输入焦点，即当前用户按键操作所对应的目标对象发生转移。譬如：现在用户正在编辑框1中输入文本，突然使用鼠标或其它方法切换到了编辑框2上去继续输入。那么此时，编辑框1就“失去”了输入焦点，编辑框2就“得到”了输入焦点，因为在此以后用户所进行的所有按键操作都将被改为编辑框2所获得。

10、失去焦点：当窗口单元失去输入焦点时产生本事件。

11、字符输入：当用户按下和松开一个字符键时产生此事件。

    字符键包括任何可打印的键盘字符及回车（Enter）和退格（BackSpace）键。在对应的事件处理子程序中，将事件处理完毕后可返回一个字符代码，用于替换将继续传递到所属窗口单元上字符键事件中的字符代码；如果返回 0 ，则取消此事件，不再将此事件传递到所属窗口单元上去；如果事件处理完毕后没有返回值，则将本字符键事件继续原样传递到所属窗口单元上去。

本事件的事件参数为：

１、字符代码： 表明所按下的字符键所对应的字符代码，可以使用“字符”命令取出所对应的具体字符。

  • 窗口单元的固定属性

    所谓窗口单元固定属性，即由系统而非窗口单元本身提供支持的窗口单元属性。在窗口单元属性表中，被显示在以粗线条隔开的第二组属性中。固定属性与普通属性在程序中的使用区别为：固定属性在窗口单元被创建之前也能被程序所使用，而普通属性则不能。其列表如下：

1、 左边、顶边、宽度、高度：指定窗口单元的位置及尺寸。如果窗口单元为“窗口”，其位置值相对于屏幕的左上角，如果为窗口单元，其位置值相对于其所在窗口或者父单元的左上角。

2、标记：指定跟随于窗口单元的一段文本，用于在程序中取得或设置与该窗口单元相关联的数据。

3、可视：指定窗口单元是否具有可视外形。

4、禁止：指定窗口单元是否可以被操作者操作。

5、鼠标指针：指定鼠标移动到窗口单元上时的外形。

6、可停留焦点：设置当用户使用 TAB 或光标键在窗口上各单元之间移动输入焦点时是否允许在本单元上停留。

7、停留顺序：本属性必须在上一属性被置为真时才有效。用作设置用户使用 TAB 或光标键在窗口上各单元之间移动焦点时的顺序。当窗口被载入后，输入焦点将被交给具有最小停留顺序值的单元。


易语言数据框架手册

返回首页

易语言的数据应用框架用作快速开发数据应用程序。

一、易语言数据框架图：

数据由数据提供者提供，由数据源协调并分发，由数据处理者使用。

二、数据提供者：

数据提供者仅仅负责为数据源提供数据的获取和存储方法，即数据操作接口。目前有“通用提供者”和“数据库提供者”两种，以后还要继续增加，譬如“远程数据提供者”等等。

各类数据提供者所支持的数据操作接口可能不相同，下面列出目前两种数据提供者的相关情况：

1、通用提供者：
使用内存作为数据的存储仓库，全面支持所有数据操作接口。因此必要时可以将其它类型数据提供者内的数据导入到此类型中，以全面发挥数据源对数据的操纵能力；

2、数据库提供者：
使用数据库作为数据的存储仓库，不支持以下数据操作接口：

1、置行高； 2、置类型； 3、置文本色； 4、置背景色； 5、置字体名； 6、置字体尺寸；
7、置字体属性； 8、置边距； 9、置文本输入格式； 10、置对齐方式； 11、置密码方式；
12、合并； 13、分解； 14、加线条； 15、删线条； 16、初始尺寸时同时改变列数；
17、在中间插入行； 18、插入列； 19、删除列。

如果想对数据进行以上操作，应该先将数据通过数据源导出到通用提供者中。

三、数据源：

数据源用作在数据处理者和数据提供者之间起协调和数据桥接的作用：

1、为所有基于本数据源的数据处理者提供来自数据提供者的数据；
2、将数据处理者处理后的数据写回到数据提供者中；
3、如果更换数据提供者或数据提供者内的数据发生改变，将自动通知所有基于本数据源的数据处理者。

四、数据处理者：

数据处理者仅用作处理从数据源获取的数据，“处理”可以是计算、显示、打印等等所有数据利用方法。


易语言数据库手册

易语言数据库应用手册

返回首页

易语言的数据库功能大部分基于 XBASE 方式，所以您如果曾经接触过 XBASE 数据库系统中的任何一款，如：DBASE、FOXBASE、FOXPRO 等等，就能够相当快地了解并应用易语言的数据库。

所有易语言数据库支持命令的具体解释请在数据库命令参考手册中查看，下面介绍一些概念和编程应用知识。

一、易语言数据库文件的组成：

.edb | 数据库主文件
.edt | 数据库辅助数据文件，仅在数据库中存在备注型或者字节集型字段时才存在，文件名称除了后缀外与数据库主文件相同，它必须与.edb文件放在同一目录中。
.enx | 数据库索引文件。使用 B+ 树结构，由用户根据需要自行创建，用作加快记录的查找速度。

二、数据库的内部结构：

易语言数据库由行和列组成，如下面的数据库内容：

姓名 | 工资 | 扣除 | 实发
周丰 | 1500 | 200 |
王自飞 | 2000 | 350 |
王闯 | 1200 | 25 |
李建业 | 1300 | 340 |

其中每一行被称为一条记录，每一列称为一个字段。如上面的数据库就有四条记录和四个字段。

字段具有“名称”、“类型”、“最大文本长度”三个属性，有关介绍如下：

<1>、名称： 字段名称文本的长度必须在 16 个字符以内；
<2>、类型： 可以为以下常量值之一： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 10、#文本型； 11、#字节集型； 12、#备注型；
<3>、最大文本长度： 此属性仅当字段类型为“文本型”时才有效，用作指定文本的最大可能长度，其值范围必须在 1 到 1024 之间。如果字段类型不为“文本型”，本属性无效。当写入数据到数据库中的文本型字段内时，多出的部分将被自动剪切。

三、系统中的“数据库”菜单功能：

您可以使用“数据库”菜单下的“结构编辑器”来创建一个指定结构的数据库或者修改一个已存在数据库的现有结构。然后，使用“记录编辑器”可以加入或修改初始记录数据。

值得告诉大家的是：这两个菜单功能皆通过调用 dbmanger.exe 文件（由 dbmanger.e 易程序生成）来完成，dbmanger.e 源程序已经随系统一起提供，用户可以对其进行修改或者扩充，使之更能满足您的需要。

下面介绍一些数据库应用程序中常用的编程知识，首先请下载并查看一下示例工资数据库 gz.edb ，其结构如下：

字段名称 | 类型 | 最大文本长度
姓名 | 文本型 | 10
工资 | 小数型 |
扣除 | 小数型
实发 | 小数型

其中的“实发”字段在本数据库中并没有被实际使用，仅用作方便对某些命令进行举例。

一、编程前的准备工作：

强烈推荐：在开始编写数据库应用程序之前，请将程序中所需使用数据库的名称及其内所有字段名设置为常量，因为常量可以使用系统内部的输入法来很快地输入。如：上面数据库内具有一个名称为“姓名”的字段，如果此字段名已经被设置为了常量，那么在程序中需要引用它时可以简单地输入 #xm ，而如果没有设置为常量，您就必须使用 Windows 系统的输入法来一个字一个字地输入 “姓名” ，这样岂非太麻烦了吗？为了让您能够快速地加入所有的相关数据库常量，在“数据库”菜单下有一个“加入数据库常量”功能，使用此功能可以一次性将指定数据库的名称及其所有字段名加入为常量。下面的讲述中假设您已经做了此准备工作。

二、数据库本身的常用操作：

1、创建数据库：

欲在程序中创建数据库请使用“创建”命令，如欲创建上面的示例工资数据库 gz.edb ，可以使用类似以下代码：

局部容器：字段表 数据类型：字段信息 数组：4

字段表 [1].名称 ＝ “姓名”
字段表 [1].类型 ＝ #文本型
字段表 [1].最大文本长度 ＝ 10
字段表 [2].名称 ＝ “工资”
字段表 [3].名称 ＝ “扣除”
字段表 [4].名称 ＝ “实发”
连续赋值 (#小数型, 字段表 [2].类型, 字段表 [3].类型, 字段表 [4].类型)
创建 (“gz”, 字段表)

2、打开数据库：

欲打开指定数据库，请使用“打开”命令。可以同时打开多个数据库（其数目仅受 Windows 操作系统限制）。

注意易语言的数据库抛弃了 XBASE 的工作区概念，以便可以同时打开更多的数据库。

3、置当前数据库：

系统内部有一个“当前数据库”状态值，它被用来指向某一个已被打开的数据库。绝大部分数据库操作命令都针对当前数据库，譬如：记录指针的移动、字段的读写等等。用户可以使用“置当前库”命令来改变系统中“当前数据库”状态值的指向。如：

打开 (“gz”, , , , , , )
打开 (“gz1”, , , , , , )
置当前库 (“gz”)
置当前库 (“gz1”)

4、关闭数据库：

欲关闭当前数据库，请使用“关闭”命令。欲一次性关闭已打开的所有数据库，请使用“全部关闭”命令。

三、记录范围、字段范围、数据库表达式：

易语言中很多数据库命令都支持定义记录范围和字段范围，如：“复制记录”命令能够将当前数据库的记录复制到另外一个数据库文件，其调用格式的后半部分如下：

复制记录 （数据库文件名，记录条件，字段范围，… ）

其中，“记录条件”参数即用作让用户定义记录范围，用户需要使用一个子语句来提供参数数据。如，将示例数据库中所有姓王的员工记录都拷贝到新数据库 gzb.edb 中：

复制记录 (“gzb”, 读 (#姓名) ≈ “王”, )
输入方法：fzjl("gzb",d(#xm)?="王")

其中：读 (#姓名) ≈ “王” 即是用作定义记录范围的子语句，这与 XBASE 的格式基本一样，只不过在 XBASE 中可以直接使用字段名称，而易语言由于不是解释型语言，所以使用 读 （xxx） 替换（其中 xxx 为字段名）。

假如您只想把示例数据库中的“姓名”和“工资”字段复制过去，就需要使用字段范围参数：

复制记录 (“gzb”, , #姓名, #工资)

字段范围参数一般都为数据库命令的最后一个参数，以便让用户通过增加参数来同时提供多个字段，不过您也可以使用数组来做同样的工作：

局部容器：欲复制字段 数据类型：文本型 数组：0

加入成员 (欲复制字段, #姓名)
加入成员 (欲复制字段, #工资)
复制记录 (“gzb”, , 欲复制字段)

假如您想把数据库中所有员工的工资都加上 100 元，就需要使用数据库表达式。完成此工作的相关数据库命令“替换”的调用格式的后半部分如下：

替换 （替换范围，字段名称或替换数据，… ）

其每一个“字段名称或替换数据”参数对应“字段名称”、“替换数据”参数各一个。

语句如下：

替换 (真, #工资, 读 (#工资) ＋ 100)

其中，#工资 为字段名称，读 (#工资) ＋ 100 即为数据库表达式，用作提供“工资”字段替换数据的获取方法。

可以同时替换多个字段，如： 替换 (真, #工资, 读 (#工资) ＋ 100, #扣除, 0) 语句可以同时将“扣除”字段清零。

数据库表达式中也可以同时使用多个字段，如： 替换 (真, #实发, 读 (#工资) － 读 (#扣除)) 语句可以计算出每一个员工的实发工资。

还有很多数据库命令使用了数据库表达式，如：

计算最大的实发工资并跳到其员工记录： 取最大值 (读 (#工资) － 读 (#扣除), )

根据实发工资排序到 gzb.edb ： 计算排序 (“gzb”, 读 (#工资) － 读 (#扣除), , , )

四、当前记录指针：

每一个被打开的数据库都有一个“当前记录指针”状态值，它指向数据库中的某一条记录，用作为一些记录读写命令提供位置指示。如：“读”、“写”、“删除”等等。它除了指向正常的记录外，还可能具有以下状态值之一：

1、首记录前。表明当前记录指针已经移动到了数据库首记录的前面，此时如果执行读写当前记录的命令肯定会失败，因为无法找到对应的记录读写位置。使用“首记录前”命令可以测试到此状态值；

2、尾记录后。表明当前记录指针已经移动到了数据库最后一条记录的后面，此时如果执行读写当前记录的命令也会失败。使用“尾记录后”命令可以测试到此状态值；

使用“取记录号”命令可以取回当前记录指针所指向记录的编号（从 1 开始）。如果为 0 ，表示在首记录前，如果大于最大记录编号，表明在尾记录后。

“到首记录”命令可以将当前记录指针移动到数据库的首记录上，“到尾记录”命令可以将当前记录指针移动到数据库的最后一条记录上。“跳过”命令可以相对移动当前记录指针值。

通过移动当前记录指针，我们可以遍历数据库中的所有记录：

到首记录 ()
判断循环首 (尾记录后 () ＝ 假)
进行所需操作。
 跳过 ()
判断循环尾 ()

反向遍历：

到尾记录 ()
判断循环首 (首记录前 () ＝ 假)
进行所需操作。
 跳过 (-1)
判断循环尾 ()

五、读写字段：

记录字段的读写均在当前数据库的当前记录处进行，主要为以下命令：

1、“读”。如： 读 （#姓名） 可以返回当前记录处员工的姓名；
2、“写”。如： 写 （#姓名，“张三”） 可以将当前记录处员工的姓名改为“张三”；
3、“读字段”和“写字段”可以读写非当前数据库内的记录字段；
4、“修改”命令可以一次性修改当前记录的多个字段。如： 修改 (“王五”, 2000, 100) 语句可以将当前记录的员工姓名改变为“王五”，工资改为 2000 ，扣除改为 100 。

六、添加记录：

使用“加空记录”命令可以在当前数据库的尾部添加一条新的空记录。

使用“加记录”命令可以同时提供欲添加数据。如： 加记录 (“王五”, 2000) 语句可以在当前数据库的尾部添加一条名为“王五”，工资为 2000 ，扣除为 0 的新员工记录。

使用“添加”命令可以将其它数据库内的记录添加到本数据库，如： 添加 (“gzb”, , ) 可以将 gzb.edb 数据库中的所有记录添加到当前数据库的尾部； 添加 (“gzb”, 取记录号 () ≤ 10, ) 语句可以仅添加前 10 条记录； 添加 (“gzb”, 是否已删除 () ＝ 假, ) 语句可以仅添加所有未被删除的记录。

七、删除记录：

与 XBASE 数据库一样，记录使用“删除”命令删除，但删除后并不马上从数据库中清除，仅仅只被加上一个删除标记，依旧存在并可以正常访问。只有当执行“彻底删除”命令后，这些被加上删除标记的记录才会被从数据库中真正清除。

使用“是否已删除”命令可以查看当前记录是否被加上了删除标记，被加上删除标记的记录可以使用“恢复删除”命令取消其删除标记。

使用“清空”命令可以彻底删除当前数据库内的所有记录。

八、查找记录：

查找记录有两种方法：不使用索引和使用索引。

1、不使用索引：

查找在示例数据库中所有姓王的员工记录的方法类似如下：

到首记录 () 如果当前记录指针在首记录上，则不需要此语句。
判断循环首 (查找 (读 (#姓名) ≈ “王”))
进行所需操作。
 跳过 ()
判断循环尾 ()

注意与 XBASE 不同的是：易语言的查找从当前记录开始。

与易语言中的拼音处理类命令结合可以解决在汉字中极常见的近音搜寻问题：

查找 (发音比较 (“王屋”, 删全部空 (读 (#姓名)), 真))
查找 (输入字比较 (“wangwu”, 删全部空 (读 (#姓名)), 真, ))
查找 (输入字比较 (“ww”, 删全部空 (读 (#姓名)), 真, ))

语句中的“删全部空”命令用作预先去除字段数据中可能存在的全半角空格，如果确定所有记录的该字段数据中都不存在空格，可以去掉此命令。

第一条语句可以查找出当前数据库中所有姓名发音为“王屋”的员工，如：“王五”、“王舞”等等； 第二条语句完成类似的工作，不过使用的是全拼拼音编码；第三条语句使用的是首拼拼音编码。

2、使用索引：

可以使用结构管理器预先在 gz.edb 上建立索引文件，也可以在程序中创建：

新建索引 (“gz”, , , , #姓名)

上面的语句建立了一个名为 gz.enx 的索引文件，它基于示例数据库的“姓名”字段，您也可以建立基于多个字段的索引文件。

索引只有被打开后才能被使用。使用“新建索引”命令新建的索引会被自动打开并设置为当前索引。对于已经存在的索引文件，您必须在打开数据库时同步打开：

打开 (“gz”, , , , , , “gz”)

此语句同步打开了 gz.enx 数据库索引文件，并将其设置为当前索引。

在数据库中搜寻所有姓名为“王五”的员工：

置当前索引 (“gz”) 如果当前索引已经为 gz.enx ，则不需要此语句。
到首记录 （） 如果当前记录指针在首记录上，则不需要此语句。
判断循环首 (索引查找 (“王五”))
进行所需操作。
 跳过 ()
判断循环尾 ()

为了解决近音汉字搜寻问题，易语言中可以建立发音索引文件：

新建索引 (“gz”, #读音索引, #不区分大小写 ＋ #忽略所有空格, , #姓名)
新建索引 (“gz”, #南方读音索引, #不区分大小写 ＋ #忽略所有空格, , #姓名)

这两条语句分别建立了一个基于标准读音和一个基于南方读音的索引文件。

使用发音索引文件即可进行近音搜寻，如： 索引查找 (“王屋”) 就可以找到“王五”。

在打开数据库时应该使用其“索引文件表”参数同时打开所有的索引文件，以便索引文件能够得到及时的更新。您也可以使用“更新索引”命令来强制更新当前索引文件。

九、查看数据库命令是否执行成功：

大多数的数据库命令执行完毕后都会返回一个逻辑值，表明是否执行成功。但是也有一部分命令无法做到这一点，如：“取最大值”等。

您可以在任何数据库命令执行完毕后立即调用“取错误码”命令来查看其是否执行成功。如果成功，“取错误码”命令将返回 0 ，否则将返回一个非 0 的错误值。

另外，如果发现命令执行失败，立即调用“取错误信息”命令可以取回对应的错误信息文本，当然是全中文的。


易模块开发手册

返回首页

一、何为易模块：

    易模块实际上是一个特殊的易程序，它与普通的易程序相比，有以下特点：

    １、必须具有程序名称（通过“程序->程序配置”菜单设置），此名称代表模块名称；

    ２、必须具有“_启动子程序”，此子程序负责进行易模块的初始化；

    ３、必须具有名为“_接口程序集”的程序集，此程序集用作公开此易模块的对外接口，其中的所有子程序均可由外部程序直接调用。

二、如何开发易模块：

    任何具有第一条中所述三个特点的易程序均可以作为易模块编译。开发易模块时注意点如下：

    １、请将初始化易模块的代码放置到“_启动子程序”中，任何使用了此模块的易程序在运行前都会首先自动调用该子程序。如果在“_启动子程序”中发现初始化失败，请返回 -1 ，系统会自动终止其所处易程序的执行；

    ２、请将所有欲公开给第三方使用的子程序放置到“_接口程序集”中；

    ３、程序书写完毕后请选择“编译为易模块”将其编译为易模块。

三、使用易模块：

    在使用第三方所提供的易模块之前，请做如下操作：

    １、使用“程序->易模块管理”导入该模块到系统；

    ２、使用“程序->易模块管理”创建对应于该模块的模块程序集，该程序集的名称自动为“_模块_”加模块名称；

    模块程序集创建完毕后，就可以直接使用该程序集中的子程序了，就如同这些子程序是自己所编写的一样。在编译易程序时所有被使用的易模块会自动被一起编译进去。

    注意点如下：

    １、除了删除模块程序集中的不用子程序外，不要修改程序集中的任何地方，否则有可能会导致编译不通过；

    ２、如果想删除对某模块的使用，直接删除为该模块所建立的模块程序集即可。

四、有关“_临时子程序”：

    为了支持对易模块的调试，新增了“_临时子程序”支持，所有在该子程序中书写的代码，仅在调试环境下运行时有效，在编译易模块或者易程序的发布版本前，该子程序中的所有代码将会被自动删除。

    注：有关易模块的示例请见随系统所附带的“我的测试易模块”程序。


编程基础知识

返回首页

[ 窗口单元及事件驱动 ]
[ 对象 ]
    [ 对象的概念 ]　[ 对象的创建 ]　[ 在程序中引用对象的属性及方法 ]
[ 编程举例 ]

    创建一个易应用程序只需要短短几分钟的时间 － 通过在设计窗口上“绘制”诸如编辑框和按钮等窗口单元来创建用户界面。然后，为窗口和窗口单元设置属性以规定诸如标题、位置、尺寸等的值。最后，编写处理程序将生命真正赋于程序。

窗口单元及事件驱动

    窗口单元及事件驱动是使用易语言在 Windows 环境下编程的基础知识。所谓“窗口单元”，即用作组成用户图形界面的基本成员，譬如：窗口、编辑框、图片框等等。窗口单元按可否容纳其它窗口单元划分为容器类和非容器类。按运行时是否可能具有可视外形划分为界面类和功能类。容器类窗口单元内可以包容其它的窗口单元，譬如窗口、选择夹、图片框等都属于容器类。而功能类窗口单元仅用作在其所在窗口上提供某种功能，譬如时钟、打印机等。

    所有窗口单元在其状态被改变或操作者在其上进行了某种操作后，都有可能向用户程序发送某种事件。譬如：当窗口的尺寸被改变后，窗口将向用户程序发送尺寸被改变的事件，用作给予用户程序通过相应的事件处理程序调整窗口单元布局或进行其它处理的机会。当操作者单击按钮后，“按钮”窗口单元将向用户程序发送按钮被单击的事件，等等。但并不是所有的状态改变或操作事件都将被发送到用户程序，那些易系统认为用户程序没有必要处理的或者系统完全能够自行处理的事件，都将被系统直接处理。这样用户可以快速创建强大的应用程序而毋需涉及不必要的细节。

    在传统的应用程序中，应用程序自身控制了执行哪一部分程序和按何种顺序执行程序，即从第一行开始并按应用程序中预定的路径执行。在事件驱动的应用程序中，程序不是按照预定的路径执行而是在响应不同的事件时执行不同的事件处理程序。如前所述，事件可以由窗口单元在其状态被改变或者操作者在其上进行了某种操作后触发。这些事件的顺序决定了程序执行的顺序，因此应用程序每次运行时所经过的程序的路径都是不同的。在执行中由于程序本身也可以对窗口单元的状态进行改变，譬如，在程序中改变编辑框中的内容将引发编辑框的“内容被改变”事件。如果该事件在用户程序中定义了相应的处理程序，则该处理程序将被执行。如果原来假设该事件仅能由操作者在该文本框中进行输入或修改所触发，则可能会产生意料之外的结果。所以在设计应用程序时必须完全理解并牢记事件驱动的特点。

对象

    易语言是一种基于对象的编程语言，能否熟练地使用易语言，理解对象的概念及其使用方法非常重要。

    一、对象的概念：

    所谓“对象”，即为属性、方法和事件的集合。在人们的日常生活中，“对象”也可以理解为“事物”，比如说，一个人、一件东西、一起事情，都可以被认为是一个“对象”。 对象的属性记录对象特征，对象的方法提供了对对象进行某种操作的途径，对象的事件用作通知外部它的状态发生了改变。譬如说一个电源开关，其外形、颜色、使用电压等等都可以认为是该电源开关“对象”的属性，而关闭或打开此电源开关则可以认为是电源开关“对象”的方法。在关闭或打开的同时，它可能产生事件，譬如通知与其相连的电器开始工作或者停止等等。在易程序中，例如“画板”窗口单元，即是一个典型的对象，它具有 “画笔类型”、“画笔粗细”等属性，同时又有“画直线”、“画矩形”等方法，在需要重画时还会产生“绘画”事件；

    二、对象的创建：

    在易程序中，对象通过定义数据类型的实例来创建。定义方法有多种，譬如将一个窗口单元绘制到设计窗口上或者在程序中定义一个具有该数据类型的容器。被绘制到设计窗口上的窗口单元或者所定义的容器即为对象。所谓“数据类型”，只是定义了对象的构架，就好比是房屋设计图和实际房屋之间的关系。设计图只是指定了该房屋的构造和布局，在使用该设计图建造出实际的房屋之前，房屋对象是根本不存在的。同样，一个数据类型可以定义出无限多个对象，就好比使用某一份房屋设计图可以建造出无数同样的房屋一样；

    三、在程序中引用对象的属性及方法：

    通过在对象及其属性或者方法之间加上句点（“.”）即可以引用对象的属性及方法。譬如以下语句：“容器1 = 画板1.画笔粗细”（读取“画板1”对象的“画笔粗细”属性），“画板1.画笔粗细 = 1”（修改属性）或者“画板1.画直线 (100, 100, 200, 200)”（调用方法）等。

举例

    下面举例说明一步步创建显示 “祖国，您好！”信息的易程序。

    创建易应用程序有三个主要步骤：

  • 创建应用程序界面；

  • 设置属性；

  • 编写代码。

    为了说明这一实现过程，按照以下步骤可创建一个简单应用程序，该应用程序的界面由一个标签和一个命令按钮组成。单击命令按钮，标签中会出现 "祖国，您好！" 信息。

    一、创建应用程序界面：

    建造易应用程序的第一步是创建并设计窗口，这些窗口将是应用程序界面的基础。然后在窗口上绘制构成界面的窗口单元。对于目前的应用程序，可用窗口单元工具箱中的两个窗口单元：标签和按钮。

    <1>、进入系统后跳转到名称为“_启动窗口”的窗口设计界面。如果在安装系统后没有使用“程序 -> 系统设置”菜单功能修改易程序的启动方式，新建程序进入编辑后就直接停留在“_启动窗口”窗口的设计界面；

    <2>、在窗口单元工具箱中选中“标签”窗口单元，使用鼠标将它绘制到窗口的上边中部；

    <3>、在窗口单元工具箱中选中“按钮”窗口单元，使用鼠标将它绘制到窗口的下边中部。

    二、设置属性：

    选中被绘制在窗口上的“标签”窗口单元，在属性表中将其“标题”属性值改为空。

    三、编写代码：

    <1>、双击被绘制在窗口上的“按钮”窗口单元或者选中该窗口单元后在属性表最下边的组合框内选取“被单击”事件从而开始编写对应的事件处理子程序；

    <2>、在子程序的程序部分输入“bq1.bt = "祖国，您好！"”后回车。

    至此，我们的第一个应用程序已经创建完毕，按下 F5 键或使用“运行 -> 运行”菜单功能开始执行程序，单击窗口中的按钮，标签中即出现 "祖国，您好！" 信息。编制好的例程请见附带的 FirstApp.e 程序文件。


程序的输入方法

返回首页

[ 概念 ]
[  输入字类型指定  ]
[  书写拼音输入字的方法  ]
[  输入或修改名称本身  ]
[ 程序输入举例
]

请注意：每输入一行程序，必须使用回车键确认，否则将自动保存为草稿。

一、概念：

    为了便于输入程序，易语言内置四种名称输入法：首拼、全拼、双拼、英文。三种拼音输入法均支持南方音及多音字。首拼输入法及全拼输入法在系统中被合并为“首拼及全拼输入法”，系统自动判别所输入的拼音是首拼方式还是全拼方式。双拼输入法的编码规则与 Windows 系统所提供的双拼输入法一致。例如：欲输入“取整 (1.23)”语句，各种输入法的输入文本为：

  • 首拼及全拼输入法：qz (1.23) 或者 quzheng (1.23)

  • 双拼输入法：quvg (1.23)

  • 英文输入法：int (1.23)

    以上各种输入法的名称部分输入文本（如：qz、quzheng、quvg、int）简称为“输入字”。拼音类输入法的输入字（如：qz、quzheng、quvg）简称为“拼音输入字”。首拼及全拼输入法的输入字简称为“首拼及全拼输入字”，双拼输入法的输入字简称为“双拼输入字”。

    输入字可以用来输入程序中所涉及到的一切名称，包括：

  • 所有当前运行支持库中所提供的命令、窗口单元数据类型及其属性和方法、普通数据类型及其成员和方法、库定义常量等等名称；

  • 用户在程序中定义的子程序参数、子程序局部容器、程序集容器、全局容器名称；

  • 用户定义的子程序、 Dll 外部命令名称；

  • 用户定义的数据类型及其成员名称；

  • 用户所加入的资源和所定义的常量的名称；

  • 用户在设计窗口时所定义的窗口单元、菜单项目名称；

  • 系统数据类型名称。如：“整数型”、“小数型”等等；

  • 系统常量名称。如：逻辑值常量“真”和“假”等。

在使用首拼输入字时，需要注意纯韵母发音汉字的输入。如：“按钮”中的“按”字，它的发音是韵母“an”。对于此类汉字，在首拼输入法中必须写全。譬如“按钮”的首拼输入字就应该为“ann”（即an, n）。

二、输入字类型指定：

    在程序中书写输入字时，可以使用一个半角符号来引导该输入字，以指定其类型。各输入字的类型引导符号为：

  • 首拼及全拼输入字： 分号（“;”） 如： ;qz、;quzheng

  • 双拼输入字： 冒号（“:”） 如： :quvg

  • 英文输入字： 单引号（“'”） 如： 'int

    系统具有一个当前默认输入法状态，如果某输入字前没有加上类型引导符号，则默认是属于该输入法的输入字。系统安装完毕后，当前默认输入法为“首拼及全拼输入法”。这就意味着：在当前默认输入法为“首拼及全拼输入法”的时候，要想使用双拼输入字，则必须在输入字的前面加上类型引导符“:”。不过此时英文输入字前可以加也可以不加类型引导符“'”。其原因为：如果当前默认类型输入字不能找到匹配的目标名称时，系统将自动把该输入字转换为英文输入字后再去寻找匹配名称一次。

    可以使用“程序 -> 系统配置 - 输入夹 - 默认输入法”菜单功能修改当前默认输入法。

三、书写拼音输入字的方法（以首拼及全拼输入字举例）

  • 为了匹配目标名称中的大小写英文字母和半角数字，请在相应位置处使用对应的大写英文字母和半角数字。如：“jsjA”匹配“计算机a”和“计算机A”，“jsj1”匹配“计算机1”；

  • 为了匹配目标名称中的汉字符号或不知道发音的汉字，请在相应位置处使用该汉字。如：“j算j1”匹配“计算机1”。此功能用作修改程序非常方便，例如：欲将“如果”命令修改为“如果真”命令，只需要在“如果”的后面加上“z”即可；

  • 拼音输入字内不能包含除了“_”以外的所有其它半角符号。

  • 如果某拼音输入字匹配了多个目标名称，系统将自动列出来以供选择。如果不想让系统列出来，可以在拼音输入字后加上单引号（“'”），再后跟用作指定序号的数字 1 - 9 或大小写字母（对应于数值 10 - 35）即可。如：输入字“xc”具有两个匹配命令名称：“相乘”和“相除”，可以使用输入字“xc'1”来指定“相乘”命令，“xc'2”来指定“相除”命令。

四、输入或修改名称本身

    在程序中经常需要输入或修改各类名称本身，譬如：加入一个新子程序后，可能需要修改其子程序名称；在设计窗口上绘制上一个窗口单元后，可能需要修改其窗口单元名称，等等。在输入或修改名称本身的过程中，输入字不能用来引用其它已有名称，但可以引用专用的名称输入词组。所谓“名称输入词组”，类似于通常中文输入法中的自定义词组。用户在输入或修改名称的过程中按下空格键后，系统将自动使用位于当前光标前的输入字去搜寻系统中的名称输入词组，如果找到，就用匹配词组替换该输入字，否则加亮显示该输入字，表示未找到。系统中所有的名称输入词组都被存放在名为“name.txt”的文本文件中，用户可以使用系统中所提供的功能（程序 -> 系统设置 - 输入夹 - 编辑名称输入词组）进行修改，也可以使用其它文本编辑器直接修改，但注意要以纯文本的格式保存。文本文件中各词组之间应该用换行或全半角空格或制表符分隔开。词组内容必须为全中文，且不能包括 GBK 汉字。系统在处理这些词组时，不符合要求的将被滤去。

程序输入举例

    下面列出了输入一个判别两个数值大小并返回较大值的子程序的全过程，前提为：默认输入法为“首拼及全拼输入法”：

  1. 进入易系统后使用“插入 -> 新子程序集”菜单功能插入一个子程序集到程序（如果程序中已经有了子程序集，直接跳转到该子程序集即可）；

  2. 按下 Ctrl + N 插入一个新的子程序；

  3. 在“返回值类型”栏中输入“zsx”后回车（“zsx”匹配系统数据类型名称“整数型”）；

  4. 回车插入一个空参数，在“参数名”栏中输入“sz”后按空格（“sz”匹配系统安装时提供的名称输入词组文件中的“数值”词组），再输入“1”后回车；

  5. 在“类型”栏中输入“zsx”后回车；

  6. 重复第4、5步一次，但参数名改输入为“数值2”；

  7. 移动光标到参数表下的空程序语句上；

  8. 输入“rg (sz1 > sz2)”（中间的空格可以略去。“rg”匹配“如果”命令名称，“sz1”匹配“数值1”参数名称，“sz2”匹配“数值2”参数名称）；

  9. 下移一行光标后输入“fh (sz1)”（“fh”匹配“返回”命令名称）；

  10. 再下移一行光标后输入“fh (sz2)”。


语法的描述规则：

由下面的语法描述行（请参见画板的滚动写行方法）：

无返回值 画板．滚动写行 （［欲写出数据］，… ）
 1 2 3 4

可得知，语法描述行顺序分为四部分（见上面的标识数）：

1、是否有返回值及返回值的数据类型；

2、是否为方法及其调用对象的名称。如果不为方法，本部分不存在；

3、命令或者方法的名称；

4、参数表。参数表被小括号括住，为该命令或方法的所有参数顺序排列。如果某参数被中括号括住，表示该参数不是必需的，调用时可以被省略。参数表的最后如果有一串省略号，表明最后一个参数可以被扩展。


示例的书写格式

易语言采用流程图编辑并显示程序，而知识库中的示例使用文本方式提供，故在此处对此文本格式进行说明。

如下面的子程序：

srule.gif (5243 字节)

所对应的文本格式为（使用“编辑->复制程序文本”系统菜单功能可以将此子程序拷贝为此文本格式）：

子程序：取最大值
返回值类型：整数型
备注：本子程序用作返回两个数值中的较大值

参数：数值1 数据类型：整数型
参数：数值2 数据类型：整数型

局部容器：容器1 数据类型：整数型 备注：本容器仅用作说明格式，在程序中未使用。

如果 (数值1 ＞ 数值2)
返回 (数值1)
否则
返回 (数值2)
如果结束

其中，为了说明“如果”命令的程序流程，加上了“否则”和“如果结束”语句行，它们以斜体的形式书写，表示在实际程序中此语句行并不存在。其它的一些流程控制类命令，如“如果真”、“判断”等等，中间都会插入这样的斜体语句行以说明程序流程。

示例中如有绿色的文字，表示它为注释。如：

如果 (数值1 ＞ 数值2) 检查数值1是否大于数值2。

其中，“检查数值1是否大于数值2。”即用作注释语句“如果 (数值1 ＞ 数值2)”。


新网页 2

一步一步跟我学易语言

第一章：入门 | 第二章：进一步了解窗口单元属性的使用方法 | 第三章：其它的一些窗口单元知识
第四章：初步了解数据类型 | 第五章：初步了解容器 | 第六章：容器的写入规则
第七章：命令 | 第八章：进一步了解命令 | 第九章：流程控制命令
第十章：窗口单元的方法 | 第十一章：静态容器 | 第十二章：数组容器
第十三章：容器的初始值及动态管理数组容器 | 第十四章：初步了解子程序 | 第十五章：进一步了解子程序
第十六章：窗口程序集与子程序的关系 | 第十七章：子程序参数 | 第十八章：容器的使用范围
第十九章：常数、常量与资源 | 第二十章：自定义数据类型 | 第二十一章： Dll 命令
第二十二章：窗口单元的事件 | 第二十三章：字节集 | 第二十四章：动态创建窗口单元
欢迎光临我们的主页 http://eyuyan.com 查看最新易语言资讯。 欢迎使用电子邮件 fly@eyuyan.com 与我们联系！ 飞扬软件工作室 吴涛


一步一步跟我学易语言

第一章：入门

注意：本章及以后所有叙述都假设您在安装易语言后没有使用 程序->系统配置 菜单项修改过系统的初始配置信息。如果不能确定，请在启动易语言的同时一直按住 Shift 键，出现系统界面后再放开，此时将自动清除以前的设置信息。

我们以软件中自带的一个例程开始讲述，例程名称为：“第一个程序”，启动易语言后请在“打开例程”子夹中选中该程序，然后再按下确定按钮。另外，此程序您也可以根据首页上的《三分钟就能学会编程序》文章自己建立。

进入后我们可以看到易系统的主界面，界面中间用作设计易程序的程序窗口，现在里面已经有了一个，该程序窗口中有两个窗口单元：一个“标签”（上面中部）及一个“按钮”（下面中部）。

请单击系统界面左边工作夹内的“程序”子夹，然后双击列表树中的“窗口程序集1”项目，您现在可以看到易程序代码的编辑界面，里面现已有一个“窗口程序集1”程序集和一个“_按钮1_被单击”子程序。

至此为止您已经看到了此易程序的全部组成部分，可以使用“窗口”菜单或者 Ctrl + Tab 键在程序窗口设计界面和程序代码编辑界面之间跳转查看。

易程序由程序窗口、程序集、子程序、自定义数据类型、全局容器、DLL命令定义、常量、资源等组成。您现在不需要了解那么多，目前只要知道以下基本知识就可以了：
1、程序窗口是易程序用作接收来自用户的输入信息或者显示某项输出信息的界面；
2、程序窗口由窗口单元组成。窗口单元具有很多种类，譬如在此例程中被使用的标签及按钮，还有编辑框、选择框等等，以后还将不断增加。在易系统主界面右边的单元栏工具箱中您可以看到当前可以使用的各种窗口单元；
3、子程序为一系列语句的排列集合，用作完成某一功能，执行子程序即是执行其中的所有语句；
4、程序集用作将子程序进行分类集合。

我们按下 F5 键运行该例程，然后单击窗口中的按钮，窗口中会显示出“祖国，您好！”文本。

下面关闭被运行的例程，我们来分析为什么此程序能够完成这样的功能：

1、请跳转到程序窗口设计界面，然后单击左边工作夹内的“属性”子夹，在属性表中您可以看到“名称”一栏的内容为：“_启动窗口”，该名称就是此已被选中的程序窗口的名称。凡是以短下划线“_”开头的名称都是具有特定意义的名称。名称为“_启动窗口”的程序窗口，易程序在运行起来后会自动载入并显示，这就是例程执行后能够马上显示出窗口的原因。

2、下面请双击程序窗口中的按钮跳转到对应的代码设计界面，您可以看到下面这条语句：

标签1.标题 ＝ “祖国，您好！”

这条语句具体是什么意思呢？为什么它会被放在名称为“_按钮1_被单击”的子程序中？

请跳转到程序窗口设计界面，单击选中窗口中的按钮，在属性表中可以看到其名称为“按钮1”，单击属性表底部显示为“在此处选择加入事件处理子程序”的组合框，在其中我们可以找到名为“被单击”的列表项。然后选中窗口中的标签，在属性表中可以看到其名称为“标签1”，并且属性表中同时还有名为“标题”的属性表栏。这些与上面的程序语句及子程序之间又有什么联系呢？

前面曾经提到过：凡是以短下划线“_”开头的名称都是具有特定意义的名称，此处也不例外。名称为“_按钮1_被单击”或类似名称的子程序被专门用作接收运行时来自程序窗口的事件，被称为事件处理子程序。它们名称的组成格式为“_” + 产生事件的窗口单元名称 + “_” + 事件名称。按照此格式分析即可得知，名称为“_按钮1_被单击”的子程序就是被用来接收名称为“按钮1”的按钮窗口单元上所产生的“被单击”事件。也就是说，易程序运行时用户一旦单击了此按钮，系统将会自动执行具有此名称的子程序。

引用一个窗口单元必须使用它的名称，引用窗口单元的某个属性必须使用： 窗口单元名称 + “.” + 属性名称 的格式，由此我们知道，“标签1.标题”实际上就是引用名称为“标签1”的窗口单元的“标题”属性，而语句： 标签1.标题 ＝ “祖国，您好！” 执行后就是将“标签1”窗口单元的标题改变为“祖国，您好！”。所有在程序中使用的文本数据两边都必须用双引号括起来，譬如“祖国，您好！”。输入时不必用全角符号“”，直接输入半角 " 即可。

下面总结一下：当该易例程开始执行时，将自动载入并显示名称为“_启动窗口”的程序窗口。当用户按下窗口中的按钮后，“_按钮1_被单击”子程序被自动执行，子程序中的 标签1.标题 ＝ “祖国，您好！” 语句被执行，导致窗口中的“标签1”窗口单元的标题被改变，从而显示出对应文本。

-------------------------

试一试：

1、 在 标签1.标题 ＝ “祖国，您好！” 语句处回车向后插入一条新语句，然后输入：

bq1.xg = 2

注：“bq1.xg”为“标签1.效果”文本中各汉字第一个拼音字母的组合，如果不能理解，请先阅读《程序的输入方法》。

运行后查看结果。

2、在程序界面设计窗口中选中“按钮1”窗口单元，在其属性表底部的组合框中选择“鼠标右键被按下”，然后输入：

bq1.zb = 0

运行后，先单击按钮，然后在按钮上按下鼠标右键，查看结果。


一步一步跟我学易语言

第二章：进一步了解窗口单元属性的使用方法

命名规则：从现在开始，对于名称为 “xxx” 的窗口单元，我们一律直接以加粗的 xxx 形式引用。譬如名称为“_启动窗口”的程序窗口，将被直接称为 _启动窗口 。

今天我们要对前一章中提到的“第一个程序”一步一步做下述改进：

1、为_启动窗口加上标题“易语言演示窗口”；

2、运行过程中单击按钮时为标签1加上渐变边框；

3、增加一个编辑框，单击按钮的同时将用户在编辑框内输入的内容显示到标签1中。

为_启动窗口加上标题的工作我们将在设计程序窗口时完成。下面请选中_启动窗口，方法为直接单击该程序窗口内的空白处，注意程序窗口本身同样也是一个窗口单元。选中属性表中的“标题”属性，在其右表列中输入“易语言演示窗口”后回车。

双击窗口中的按钮，直接输入以下文本后回车：

bq1.bk=6

跳回_启动窗口设计界面，按下系统主界面右边单元栏工具箱中的编辑框按钮（在位置 2 ），然后将鼠标指针移回到被设计程序窗口上，可以看到现在鼠标指针的形状已经变为了十字形。在按钮1的下面按下鼠标左键并拖动出一个矩形，放开鼠标后您可以看到一个编辑框已经被加入到了_启动窗口中。此编辑框窗口单元的名称现在被系统自动设置为编辑框1，您如果觉得不合适，可以在其属性表中随意修改其“名称”属性，我们现在将其更改为测试输入框。

再次双击窗口中的按钮，以跳转到对应的代码部分，回车插入空行后输入：

bq1.bt=cssrk.nr

至此，我们的所有改进工作已经完成，您可以运行一下看看效果。_按钮1_被单击子程序中的最后内容如下：

标签1.边框 ＝ 6
标签1.标题 ＝ 测试输入框.内容

此时的程序您可以在此处下载，下一章将在此程序的基础上继续讲述。

对于上面的程序，目前我们第一次接触的可能就是第二行，其实仔细一看就能明白，此语句不过就是将测试输入框的内容属性值读出来后写入到标签1的标题属性中去。另外，您可能要问，被写入到标签1的边框属性中去的数值 6 究竟代表了什么，还有一些其它的数值可以用吗？您可以在标签1的属性表中查看其边框属性，选中该属性后其最右边会出现一个下拉箭头按钮，单击此按钮后您可以看到以下列表项：

0. 无边框； 1. 凹入式 ...... 6. 渐变镜框式

这些数值就是可以写入到边框属性中的值，您如果读取边框属性，也将得到这些值。在列表项中数值的后面您可以看到它们所代表的具体含义。了解了这些后您可以将 标签1.边框 ＝ 6 改变为 标签1.边框 ＝ 1 试一试。

下面总结一下：

1、窗口单元的属性值可以在设计窗口时给予初始值，我们为_启动窗口加上标题的工作就是使用此方法来完成；

2、窗口单元的属性值可以通过在程序中赋值来改变。在窗口单元属性表中列出的所有属性，除了被明确标明的外（为极少数，您可以在譬如文件框、打印机之类窗口单元的属性表中看到），都可以在程序中读写，其效果与在设计时给予其初始值完全一样；

3、窗口单元的属性值可以在程序中被读出，它们代表了窗口单元的最近相关状态值，譬如上面第二条语句中读取测试输入框的内容属性值将取得测试输入框中的最近输入内容。

-------------------------------

试一试：

运行本章最后完成的程序，在测试输入框中输入一段文本，然后按下按钮，再输入一段不同的文本，再按下按钮。了解一下两次标签1中所反映的测试输入框的内容属性值的变化过程。

-------------------------------


一步一步跟我学易语言

第三章：其它的一些窗口单元知识

1、依赖型窗口单元属性：

请打开上一章中所完成的例程，选中标签1后在其属性表中找到边框属性，在此属性的下方我们可以看到四个被缩进一格并显示为灰色的属性：渐变边框宽度、渐变边框颜色1、2、3 。请将渐变边框颜色2属性值改变为黄色，此时标签1并没有任何变化。现在请再将边框属性值改变为渐变镜框式，您马上可以看到标签1的周围被加上了一道黄色的渐变边框。

为什么会产生这种现象呢？这是因为渐变边框颜色2属性依赖于边框属性，它只有当边框属性为渐变镜框式时才会产生作用。渐变边框宽度、渐变边框颜色1、3属性也具有同样的依赖性，此类属性只有当其依赖到的属性为某特定值时才会产生作用，在程序中应用时也一样。

注：现在请按 Ctrl + Z 键直到所作的修改被全部复原，以后类似的实验性操作都不要保存到我们所使用的例程中去。

2、窗口单元层次：

请做以下实验：在_启动窗口的设计界面中拖动测试输入框到按钮1的上面，您可以看到测试输入框将按钮1遮盖了一部分。现在请在测试输入框上单击鼠标右键，在所弹出的菜单中选择“到最底层”菜单项，您可以看到测试输入框被调整到了按钮1的下面。

通过此实验您可以了解到：窗口单元与窗口单元之间存在层次关系，当两个或者多个窗口单元之间存在重叠时，位于高层的窗口单元将遮盖其下面位于低层的窗口单元。

3、父窗口单元及子窗口单元：

我们仍然通过实验来了解此概念。首先请使用“程序->新建”菜单功能新建一个 易程序，然后在单元栏工具箱中按下选择夹窗口单元按钮（位置 18），在被设计窗口上使用鼠标左键拖曳出一个矩形以加入一个选择夹窗口单元（以后我们把此过程称为“加入一个新的xxx窗口单元”），然后再按下工具箱中的按钮窗口单元按钮（位置 8），在刚刚被加入的选择夹1窗口单元上面拖曳加入一个按钮（注意拖曳的起点必须在选择夹1内）。

下面我们来进行下面测试：
1、选中按钮1，用鼠标四处拖动它，您可以看到它始终被限制在选择夹1内；
2、在按钮1上单击鼠标右键，在所弹出的菜单中选择“到最底层”菜单项，您可以看到按钮1始终在选择夹1的上面，无法被调整到其底层；
3、拖动选择夹1到另外一个位置，您可以看到按钮1也一起被移动；
4、设置选择夹1的禁止属性为真以禁止操作者在程序运行时对其操作，然后在被设计窗口上单击鼠标右键，在所弹出的菜单中选择“预览”菜单项，在预览窗口中单击选择夹1和按钮1试一试，您可以发现一旦选择夹1被禁止，按钮1也被自动禁止；
5、设置选择夹1的可视属性为假，然后预览窗口，您可以看到一旦选择夹1不可视，按钮1也自动不可视；
6、选中选择夹1，按下 Del 键删除它，您可以看到按钮1也一起被删除；

为什么会产生上面的现象呢？这是因为创建按钮1窗口单元时，您的操作过程指定了按钮1是选择夹1的子单元，反过来说，选择夹1为按钮1的父单元。并不是所有的窗口单元都可以成为其它窗口单元的父单元，具有此特性的只有图片框、外形框、画板、分组框、选择夹五种，它们被统称为容器类单元。所有种类的窗口单元都可以成为其它窗口单元的子单元。

父单元与其子单元的主要关系为：
1、如果父单元被销毁、禁止或者隐藏，其内部的所有子单元将会自动被销毁、禁止或者隐藏；
2、子单元始终被限制在父单元的内部，其坐标位置相对于父单元的左上角；
3、父单元内的所有子单元之间存在层次关系，但是父单元与子单元之间不存在层次关系；

如果窗口单元已经存在，欲将其设置为另外一个窗口单元的子单元，操作方法为：剪切该窗口单元到剪贴板中，然后选中父窗口单元，粘贴后即可。

关于选择夹，它与其它容器类单元不同之处为：选择夹的每一个子夹都可以单独容纳一批子单元，子夹与子夹之间不会相互干扰，以便于您设计多夹式程序界面。您可以进行以下实验：

选中选择夹1，单击属性表中“子夹管理”行右边的省略号按钮，在所弹出来的子夹管理对话框中单击“向后插入空项目”按钮，然后回车关闭对话框。您现在可以看到选择夹1被增加了一个新的子夹，单击该新子夹的头部以跳转过去，再插入一个新的任意类型子窗口单元到该子夹中。现在，您可以在新子夹和原子夹之间跳转查看，以了解选择夹窗口单元的此特性。此实验最后形成的程序您可以在此处下载查看。

总结：今天讲述了相对较容易理解的一些窗口单元知识，由于举例时很多是操作过程举例，您如果有什么不明白的地方请与我们联系。

下一章将开始讲述易语言编程的重要入门知识： 易语言的基本数据类型 。


一步一步跟我学易语言

第四章：初步了解数据类型

在窗口单元属性表中设置某属性的值时，我们常常会遇到某些属性需要输入一段文本，某些属性需要输入一个数值，还有某些属性需要在真和假之间选择等等，这是由此属性的数据类型所决定的。数据类型用作标明某数据的具体种类，譬如：100 的类型为整数，3.14 的类型为小数，“祖国您好！”的类型为文本，真和假的类型为逻辑值等等。

打开例程后请跳转到窗口程序集1，将光标移动到返回值类型表栏下，按下空格后您可以看到一个数据类型选择框，里面列出了易语言所支持的所有基本数据类型。

字节型、短整数型、整数型、长整数型、小数型、双精度小数型统称为数值型，它们之间的区别在于所容纳数值范围的不同和数据尺寸的不同。

名称 | 数值范围 | 所占字节数
字节型 | 0 到 255 | 1
短整数型 | -32,768 到 32,767 | 2
整数型 | -2,147,483,648 到 2,147,483,647 | 4
长整数型 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 8
小数型 | 3.4E +/- 38 (7位小数) | 4
双精度小数型 | 1.7E +/- 308 (15位小数) | 8

字节是系统中数据的基本存储单位。从上表中您可以看出，数据类型所占字节数越多，所能够容纳数值的范围就越大。打个比方：字节型数值 1 和长整数型数值 1 ，都代表了数值 1 ，但是系统在存储时，所用去的存储空间却大不一样，字节型数值 1 仅仅只用去了 1 个字节，而长整数型数值 1 却要用 8 个字节。在实际应用时，要注意到这一点，您需要根据所可能存储的最大数值决定采用何种数据类型，既不能溢出（关于溢出下一章将会举例讲解）最好也不要浪费空间。譬如：如果您需要存储的数值最大不超过 32767 ，可以使用短整数型。如果您采用长整数型，就会造成存储空间的浪费。一般情况下，如果仅存储整数，推荐您使用整数型数据类型，如果需要存储小数，在精度要求不高的情况下，推荐使用小数型。

另外，还有逻辑型、日期时间型、文本型、字节集、子程序指针等五类数据类型。逻辑型数据只能记录真或者假，日期时间型数据用作记录某日期时间，文本型数据用作记录一段文本，字节集型数据用作记录一段字节，子程序指针指向某子程序的代码地址，可以用作在Dll命令中提供回调支持。

总结，今天的内容可能有一些枯燥，但这是我们进入易语言编程的必经之路，下一章中将继续讨论数据类型，并且开始讲述易程序的重要构成部件：容器 。

-------------------------

试一试：

在教学例程中的 标签1.边框 ＝ 6 语句处直接输入 bq1.bk="6" 将其覆盖，然后运行程序，按下按钮后程序会出错并中断，这是为什么呢？请大家想一想，不久就会讲到这个问题。


一步一步跟我学易语言

第五章：初步了解容器

容器，顾名思义就是容纳东西的器件，只不过在易程序中，容器所容纳的是各种不同类型的数据，程序可以将数据写入到容器中也可以从容器中读回数据。容器具有名称及数据类型，名称用作在程序中访问该容器，可以根据需要随意定义，只要不与其它容器重名即可。数据类型用作标识该容器中所能够容纳数据的类型。

请新建一个易程序，加入一个画板到_启动窗口左边，再加入一个按钮到右边，双击此按钮以创建并跳转到_按钮1_被单击子程序，按下 Ctrl + L 加入一个空容器，在容器名栏内输入“容器1”（快速输入方法：rq + 空格 + 1）后回车，在类型栏中输入“dzsx”（短整数型）后回车。这样，我们就在该子程序内定义了一个名称为“容器1”的容器。

下面请顺序输入以下语句：
rq1=100
hb1.gdxh(rq1)
rq1=rq1+1000
hb1.gdxh(rq1)
rq1=rq1+50000
hb1.gdxh(rq1)

输入完毕后该子程序中的内容如下：
容器1 ＝ 100
画板1.滚动写行 (容器1)
容器1 ＝ 容器1 ＋ 1000
画板1.滚动写行 (容器1)
容器1 ＝ 容器1 ＋ 50000
画板1.滚动写行 (容器1)

对于“画板1.滚动写行 (容器1)”语句，我们将在以后给予讲解，现在您只需要知道此语句的作用就是在画板1上显示出容器1的内容就可以了。

运行此程序，单击窗口中的按钮，您可以看到画板中显示了如下内容：
100
1100
-14436

现在，我们知道了容器确实可以被写入和读出，如“容器1 ＝ 100”语句将数值 100 写入到了容器1中，而“容器1 ＝ 容器1 ＋ 1000”语句先将容器1中上次被写入的值 100 读出来，然后与数值 1000 相加，最后将其和写回到容器1中（先前的数值 100 被覆盖）。

但是为什么执行了“容器1 ＝ 容器1 ＋ 50000”语句后容器1中的内容变成了 -14436 呢？根据我们的计算，100 + 1000 + 50000，其结果应该是 51100 。这就是我们上一章中所提到的溢出。因为，容器1的数据类型被我们定义为短整数型，所以系统仅为此容器分配了一个短整数的存储空间，据上一章中所述，短整数型数值的最大值为 32767，而结果值 51100 大于了此数值，导致系统为容器1所分配的存储空间不能容纳该数值，部分数据被丢弃，从而得到了错误的结果。

本章总结：
1、容器具有名称和数据类型；
2、程序可以从容器内读出数据或者写入数据到容器内；
3、写入数值到数值型容器内时注意防止溢出。

下一章将继续讲述容器。

-------------------------

试一试：

1、将程序中容器1的数据类型改变为整数型，再运行程序，看看其结果有什么不同。

2、试一试将容器1的名称随意更改为另外一个名称，譬如“测试容器”，以表达更加清楚的意思，便于以后阅读程序。

-------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第六章：容器的写入规则

容器的写入规则规定了容器内能够被写入什么类型的数据。

一般来说，容器内仅能被写入类型与容器本身数据类型一致的数据。譬如：将一个整数写入到整数型容器中，将一段文本写入到文本型容器中等。比较特殊的是：任意数值类型的数据可以被写入到任意数值类型的容器中，系统将自动进行转换。譬如将一个短整数写入到整数型容器中，将一个整数写入到小数型容器中等等，但是此时必须注意防止上一章中所提到的溢出问题。

窗口单元属性的写入规则与容器相同。

请打开上一章中所完成的程序，跳转到_按钮1_被单击子程序，删除其中的所有语句，并将容器1的名称改为短整数容器（改名时的快速输入方法：dzs + 空格 + rq + 空格）。然后按下 Ctrl + L 键加入一个空容器，在容器名栏输入“整数容器”（快速输入方法：zs + 空格 + rq + 空格），在类型栏中输入“zsx”（即整数型）。以后我们把类似的操作称为“加入名为xxx的xxx型容器”。然后我们再加入一个名为文本容器的文本型容器。

顺序输入以下语句：

wbrq="100"
zsrq=51100
dzsrq=zsrq
hb1.gdxh(wbrq,zsrq,dzsrq)

输入完毕后该子程序中的内容如下：
文本容器 ＝ “100”
整数容器 ＝ 51100
短整数容器 ＝ 整数容器
画板1.滚动写行 (文本容器, 整数容器, 短整数容器)

运行该程序，单击按钮后其显示结果如下：
100
51100
-14436

程序中的第一行语句将文本数据“100”写入到了文本容器中，第二行将 51100 数值写入到了整数容器中，所以我们看到输出结果的头两行为 100 和 51100 。第三行将整数容器中的整数数值写入到短整数容器中证明了不同类型数值之间可以互相转换，但是此处输出了与上一章中相同的值 -14436 ，说明同样产生了数值溢出。

下面我们来做一些实验：

将第一行程序改为 文本容器 ＝ 100 ，即将 100 两边的双引号删除，然后运行程序，单击按钮后查看程序中断错误信息。

按下 Ctrl + F5 终止被运行的程序后按一下 Ctrl + Z 取消此修改，然后将第二行改为 整数容器 ＝ "51100" ，即在 51100 两边加上双引号，运行程序并单击按钮后查看程序编译错误信息。

可以看到，两次的程序中断错误信息都一致，就是：

错误(20026): 现行容器或参数的数据类型与传递给它的数据的类型不一致

我们知道，用双引号括住的文本为一段文本型数据，那么，第一次修改后的语句就是将一个数值 100 写入到文本容器中，第二次修改后的语句就是将一段文本 “51100” 写入到整数容器中。这两种情况都违背了文首所提到的容器写入规则，导致程序无法继续运行，从而中断报错。

--------------------------------

试一试：

在第一行语句上直接输入 wbrq=dwb(100) 后回车，该语句将改变为：

文本容器 ＝ 到文本 (100)

这条语句中的 100 也是数值，但是为什么被成功地写入到了文本型容器中呢？到文本 (100) 是什么意思？

这就是下一章我们要开始讲述的命令，真的是很重要。同时恭喜您，您的 易语言编程知识将登堂入室了。

-------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第七章：命令

命令是由系统提供的能够完成某一特定功能的指令。它在易程序中的书写格式为：

命令名称 （参数，...... ）

命令名称是程序中调用时所使用的名称，譬如上一章尾所提到的到文本。命令可以接收一些数据以供其处理，这些数据被称为参数。譬如上一章尾的到文本命令就接收了一个数值参数 100 。命令所能接收参数的数目和各参数的数据类型由命令本身所决定。所有参数必须用括号一起括住，多个参数之间用逗号隔开。命令执行完毕后还可能返回数据，是否返回数据及所返回数据的数据类型同样由命令本身所决定。譬如上一章尾的到文本命令就将返回文本型数据。

下面我们通过具体编程来理解上述概念。

请新建一个程序，然后进行以下操作：

1、在_启动窗口的左边加入一个画板，右下加一个按钮；

2、双击按钮1，在_按钮1_被单击子程序中顺序输入以下语句：

mj
hb1.gdxh(qxxsj())
hb1.gdxh(szdrmb(100))

输入完毕后子程序内容如下：

鸣叫 ()
画板1.滚动写行 (取现行时间 ())
画板1.滚动写行 (数值到人民币 (100, 假))

大家可能对第二、三行语句的首部不大理解，我们以后会讲到，现在您只需要知道此语句就是将取现行时间、数值到人民币这两个命令的返回数据显示出来就可以了。

我们在上面的程序中使用了三个不同的命令：鸣叫、取现行时间、数值到人民币。

对于鸣叫命令，通过查看其解释，我们了解到它既不接收参数也不返回数据，仅用作完成发声功能，所以它的参数部分是空的。取现行时间命令将返回一个日期时间型数据，它也没有参数。数值到人民币返回文本型数据并且接收两个参数：参数1类型为双精度小数型，名称为“欲转换形式的数值”；参数2类型为逻辑型，名称为“是否转换为简体”，其默认值为“假”。由于我们在程序中没有为参数2提供数据，所以系统自动取用其默认值。

运行一下程序，单击按钮后查看其结果，了解这三个命令的执行情况。

关闭程序，继续进行以下输入操作：

1、加入一个名称为“容器1”的小数型容器；
2、在子程序尾部继续添加以下语句：
rq1=100.38
hb1.gdxh(szdrmb(rq1,zhen))
hb1.gdxh(szdrmb(sswr(rq1,1)))

输入完毕后所添加的语句如下：

容器1 ＝ 100.38
画板1.滚动写行 (数值到人民币 (容器1, 真))
画板1.滚动写行 (数值到人民币 (四舍五入 (容器1, 1), 假))

从 数值到人民币 (容器1, 真) 语句可以看出，命令的参数数据可以通过容器来提供。而 数值到人民币 (四舍五入 (容器1, 1), 假) 说明，命令的参数数据还可以通过另外一个命令的返回值来提供。关于四舍五入命令，您可以使用前面的方法来查看其详细解释，以后不再提示。

为命令参数提供数据时，必须同样遵循容器的写入规则。您可以将 数值到人民币 (容器1, 真) 改为 数值到人民币 ("文本", 真) 试一试，查看程序运行时的中断错误信息。

下一章我们将继续讲述命令。

-----------------------------------

本章完毕后，请将支持库夹中的所有类别命令浏览一遍，了解一下易语言究竟提供了哪些命令。

-----------------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第八章：进一步了解命令

请打开上一章中所完成的程序，将_按钮1_被单击子程序中的内容全部删空，然后顺序输入以下语句：

hb1.gdxh(dxxz(3,"文本",100,3.14,[2000/10/1],jia))
hb1.gdxh(dxxz(2,3.14,"文本"))

输入完毕后子程序中的内容为：

画板1.滚动写行 (多项选择 (3, “文本”, 100, 3.14, [2000年10月1日], 假))
画板1.滚动写行 (多项选择 (2, 3.14, “文本”))

请先到“其他”类别中看一看多项选择命令的详细解释，从中可以了解到：
1、命令执行后所返回数据的类型为通用型；
2、命令参数表中最后一个被定义的参数可以重复添加；
3、命令一共定义了两个参数，第一个参数为“索引值”，类型为整数型。第二个参数为“待选择项数据”，类型为通用型。

关于通用型数据类型，我们是第一次接触到，它能够代表所有的各种数据类型，就象数值型数据类型能够代表所有的数值数据类型一样，它与数值型数据类型都只能在命令中使用，不能用来定义容器。所谓命令执行后返回通用型数据，即表示命令执行后可能返回任何一种类型的数据，具体在什么情况下返回什么类型的数据，由命令自己决定。譬如多项选择命令所返回数据的数据类型将等同于“索引值”参数所选中的“待选择项数据”参数数据。

“命令参数表中最后一个参数可以被重复添加”意味着可以为命令提供无限个参数，所增加出来的参数是该命令的最后一个定义参数的延续。譬如在上面所输入的两条语句中，第一行语句为多项选择命令提供了六个参数，第二行语句提供了三个参数，都比该命令所定义的两个参数数目多。所多出来的参数为该命令的最后一个定义参数“待选择项数据”的延续，它们的数据类型等所有特性完全一致。

下面我们结合程序来理解：

多项选择 (3, “文本”, 100, 3.14, [2000年10月1日], 假) 语句用作返回第 3 个“待选择项数据”参数，即 3.14 ，因此命令此时所返回数据的类型为小数型。此语句共提供了 5 个“待选择项数据”参数，除开命令本身所定义的一个，共延续了 4 个。语句中为这 5 个通用型参数分别提供了文本型、整数值、小数值、日期时间型（用中括号括住的数据为日期时间型数据）、逻辑型等不同类型的数据。

多项选择 (2, 3.14, “文本”) 语句用作返回第 2 个“待选择项数据”参数，即：“文本”，因此命令此时所返回数据的类型为文本型。此语句共提供了 2 个“待选择项数据”参数，除开命令本身所定义的一个，共延续了 1 个。

如果某语句中命令的参数可以被延续，显示时该语句首部将出现一个右双箭头。

下面讲述可以被省略的参数，请继续输入以下语句：

hb1.gdxh(sswr(100.58))

输入完毕后此语句的内容为：

画板1.滚动写行 (四舍五入 (100.58, ))

我们所注意的是 四舍五入 (100.58, ) 语句，您可以看到该命令的第二个参数“被舍入的位置”没有提供参数数据，那么此时系统是怎么处理的呢？仔细看一看四舍五入命令的解释，可以发现有如下说明：

参数<2>的名称为“被舍入的位置”，类型为“整数型（int）”，本参数可以省略不填。 ... 如果省略本参数，则默认为0。

原来此时系统将自动使用命令所定义的默认值 0 。

总结：这一章我们讲述了关于命令的一些其它知识，下一章将开始具体讲述流程控制类命令。

------------------------

试一试：

将第一行语句改为： 画板1.滚动写行 (多项选择 (4, “文本”, 100, 3.14, [2000年10月1日], 假))，即将原来的 3 改为 4 ，运行程序查看其结果有什么不同。

------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第九章：流程控制命令

易语言中的流程控制类命令目前有下面几种，请先在系统中查看有关各命令的详细解释。

1、分枝类： 如果、如果真、判断
2、循环类： 判断循环首、循环判断首、计次循环首、容器循环首
3、跳转类： 到循环尾、跳出循环、返回、结束

如果命令应当很好理解，当其条件参数的逻辑值为真时，程序就向下执行，否则就跳转到左侧箭头所指向语句处执行。如果真命令与如果命令相比，就是少了条件参数为假时的程序部分。判断语句实际上就是多重分枝语句，当任何一个判断分枝语句的条件参数为真时，相应的程序部分就被执行，如果所有分枝语句的条件参数都为假，那么位于最后的默认分枝的程序被执行。

在循环类命令中，判断循环在循环体的首部判断是否进入或者继续循环，循环判断在循环体的尾部判断是否继续循环。使用循环判断，循环体内的程序至少会被执行一次。

返回命令因与子程序相关，留到以后讲述。结束命令结束当前 易程序的执行。

下面结合例程来具体讲述计次循环首、容器循环首、到循环尾、跳出循环命令。

打开上一章中的例程后，将_按钮1_被单击子程序中的所有内容删空，然后在该子程序中进行以下输入操作：

1、将画板1的“自动重画”属性值设置为真，以便于后面调试时随时查看画板的显示内容；

2、加入一个名为容器1的整数型容器；

3、顺序输入以下语句：
jcxhs(3,rq1)
hb1.gdxh(rq1)

4、移动光标到程序尾部，继续输入：
rqxhs(100,180,50,rq1)
hb1.gdxh(rq1)

5、移动光标到程序尾部，继续输入：
jcxhs(5,rq1)
rgz(rq1=2)
dxhw
rgz(rq1=4)
tcxh
hb1.gdxh(rq1)

6、移动光标到程序尾部，加入一个空行，以便在后面调试时查看跳出循环命令的执行结果。

输入完毕后，子程序中的内容如下：

计次循环首 (3, 容器1)
画板1.滚动写行 (容器1)
计次循环尾 ()
容器循环首 (100, 180, 50, 容器1)
画板1.滚动写行 (容器1)
容器循环尾 ()
计次循环首 (5, 容器1)
如果真 (容器1 ＝ 2)
到循环尾 ()
如果真 (容器1 ＝ 4)
跳出循环 ()
画板1.滚动写行 (容器1)
计次循环尾 ()
< 空行 >

仅依靠文本很难看出程序的真实面目，建议您下载此例程以供查看。

执行程序并单击按钮后，显示结果如下：

1
2
3
100
150
1
3

下面我们来分析为什么会有此结果。

子程序的首部是计次循环首命令，由于其“循环次数”参数值为 3 ，所以循环体将被重复执行 3 次。通过查看上面显示结果的前三行，我们了解到容器1的内容一直被系统自动设置为当前循环体已进入的次数。

容器循环首类似于 Basic 语言中的 for 命令，它规定了循环容器的起始值、目标值、递增值。递增值可以被提供为正数或者负数。每执行循环体内的程序一次，系统将自动把递增值加入到循环容器中，当循环容器中的值大于目标值时循环将被终止。请查看系统中有关此命令的详细解释以具体了解此命令。

在程序的尾部还有一个计次循环，里面有到循环尾和跳出循环命令。到循环尾命令用作跳到当前循环的尾部，即循环尾类命令。跳出循环命令用作跳出当前循环。

下面请使用易语言的调试功能来“身临其境”地了解这些命令的执行情况。

请将光标移动到子程序的第一行语句 计次循环首 (3, 容器1) 上，然后按下 Ctrl + F8 键或者单击“调试->执行到光标处”菜单项。单击被运行程序窗口中的按钮后，程序将被中断，此时请使用 F8 键或者单击“调试->单步跟踪进入”菜单项来一条语句一条语句地执行程序，注意了解此时程序的实际执行过程。在此过程中您可以随时使用 Alt + Tab 键跳转到被调试的易程序中查看其窗口中所显示出来的执行结果。

总结：这一章我们介绍了在易语言命令集中较为重要的程序流程控制类命令，以后我们还会讲到一些其它的重要或者不太容易理解的命令，但是大部分的命令还是要依靠大家自己到系统中去阅读解释，并通过实际试用来了解其特性，如果有不懂的地方请随时咨询我们。

最后，顺便告诉大家几个操作技巧：

1、大家可能经常要在一段已经存在的程序两边加上流程控制类命令，请先将此段程序选作块，然后单击鼠标右键，选择“加到当前块首尾”菜单项，最后单击对应的子菜单项即可；

2、有时候，可能要将一种流程控制类命令改为另外一种，譬如将如果命令改为如果真命令，将判断循环首命令改为循环判断首命令等。请在该语句行上单击鼠标右键，选择“转换为 ->”菜单项，最后单击对应的子菜单项即可。

下一章将暂时回到窗口单元上去，讲述有关窗口单元方法的编程知识。

--------------------------

试一试：

在上面的例程中加入如果、如果真、判断、判断循环首、循环判断首等命令，使用上面所介绍的调试方法来查看其执行过程。

--------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第十章：窗口单元的方法

“画板1.滚动写行 （...... ）”语句我们以前使用了很多次，但一直没有讲述过它，现在终于到了揭开其秘密的时候了。

请新建一个程序，在_启动窗口的左边和中间各加入一个画板，右边加入一个按钮。为了将两个画板在外形上区分开，请将画板1的边框属性设置为“凹入式”，画板2的边框属性设置为“凸出式”。

双击按钮1，在_按钮1_被单击子程序中输入以下行：

hb1.gdxh("画板1")
hb2.gdxh("画板2")

输入完毕后子程序中的内容如下：

画板1.滚动写行 (“画板1”)
画板2.滚动写行 (“画板2”)

运行程序并单击按钮，查看显示结果。

我们发现，“画板1”文本被显示在画板1中，“画板2”文本被显示在画板2中。这说明了画板1.滚动写行仅对画板1进行操作，画板2.滚动写行仅对画板2进行操作。实际上，这就是窗口单元方法的调用。

窗口单元的方法除了具有以下两个特点外与我们前面所讲的命令完全相同：

1、窗口单元的方法必须使用窗口单元来调用，调用格式为 窗口单元名称 + “.” + 方法名称 ；
2、窗口单元的方法仅影响调用该方法时所使用的窗口单元。

欲查看某类窗口单元具有哪些方法及这些方法的详细解释，请到支持库夹中的“数据类型”分枝中寻找。譬如：想了解画板的所有方法，可以到“数据类型 -> 画板”下查看。

为了加深印象，请继续进行以下输入操作：

1、在_启动窗口中按钮的上方加入一个列表框；

2、在_按钮1_被单击子程序的尾部加入以下行：
lbk1.jrxm("新项目")

输入完毕后子程序中被加入的语句如下：

列表框1.加入项目 (“新项目”, )

请查看加入项目方法的详细解释，然后运行程序，查看其执行结果。

--------------------------

下面我们继续讲述窗口单元方法的其它知识，请进行以下输入操作：

1、将列表框1向左边移动一段距离，使之遮盖住画板2的一部分；

2、在_按钮1_被单击子程序的尾部加入以下行：
lbk1.tzcc(#diceng)

输入完毕后子程序中被加入的语句如下：

列表框1.调整层次 (#底层)

上面语句中的“#底层”是一个常量，常量主要用作增强程序的易读性，可以被视为在程序运行期间永久存在并且只能读出而不能被写入的容器。常量的内容可以为一个数值、一段文本或者其它类型数据，具体是什么由其本身的数据类型决定。在程序中使用常量时其名称前必须加上“#”符号。“底层”常量的数据类型为数值型，值为 2 ，欲查看其详细解释请到常量表内寻找。

运行程序并单击按钮，查看所添加语句的运行效果。

不过，我们马上就会发现一个问题，那就是在支持库夹中“数据类型 -> 列表框”下找不到调整层次方法，也就是说，列表框类窗口单元并没有调整层次方法！

最后，我们终于在“数据类型 -> 窗口”下找到了调整层次方法，它怎么会在这里呢？和列表框又有什么关系？事实上，它和所有类别的窗口单元都有关系，也就是说，所有类别的窗口单元都可以调用此方法。“数据类型 -> 窗口”下的所有方法不仅仅可以被窗口本身调用，还可以被其它所有类别的窗口单元调用，这是一个特例。

下一章将回到容器的讲述上去。

--------------------------

试一试：

请在 列表框1.调整层次 (#底层) 语句行上直接输入 hb2.tzcc(#dingceng) 从而将其修改为 画板2.调整层次 (#顶层) ，运行程序后查看其结果。

--------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第十一章：静态容器

请打开第九章中所完成的程序，将_按钮1_被单击子程序中的内容全部删除，然后请进行以下输入操作：

1、加入一个名为非静态容器的整数型容器；

2、加入一个名为静态容器的整数型容器，并同时选中该容器的静态属性；

3、顺序输入以下语句行：

hb1.gdxh(fjtrq)
hb1.gdxh(jtrq)
fjtrq=fjtrq+1
jtrq=jtrq+1

输入完毕后，子程序的内容如下：

画板1.滚动写行 (非静态容器)
画板1.滚动写行 (静态容器)
非静态容器 ＝ 非静态容器 ＋ 1
静态容器 ＝ 静态容器 ＋ 1

运行该程序，连续单击三次按钮，其显示结果如下：

0
0
0
1
 0
2

通过阅读程序我们知道：每次单击按钮时，程序将顺序显示非静态容器和静态容器的内容。我们发现，非静态容器的内容在显示时始终为 0 ，而静态容器的内容却在一直递增，这是为什么呢？

这就是非静态与静态的区别。所谓静态，就是静止存在，当所处子程序退出时，此类容器能够保留住现行内容以供下次继续使用，而非静态的容器就不能，下次进入子程序时它将被重新初始化，例程中的语句 非静态容器 ＝ 非静态容器 ＋ 1 根本没有任何作用，这就是为什么非静态容器的内容在显示时始终为 0 的原因，

下一章我们将讲述数组容器。

-----------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第十二章：数组容器

请打开上一章所完成的程序，将_按钮1_被单击子程序中的内容全部删除，然后进行以下输入操作：

1、加入一个名为数组容器1的整数型容器，在其数组属性中输入“3”，表明此容器为一个单维数组，共有 3 个成员；

2、加入一个名为数组容器2的整数型容器，在其数组属性中输入“2，2”，表明此容器为一个二维数组，共有 4 （2 × 2 的结果）个成员；

3、顺序输入下列语句行：

szrq1[1]=100
szrq2[2][1]=200
hb1.gdxh(szrq1[1],szrq2[2][1])
hb1.gdxh(szrq2[3])
szrq2[4]=300
hb1.gdxh(szrq2[2][2])

输入完毕后子程序中的语句如下：

数组容器1 [1] ＝ 100
数组容器2 [2] [1] ＝ 200
画板1.滚动写行 (数组容器1 [1], 数组容器2 [2] [1])
 画板1.滚动写行 (数组容器2 [3])
数组容器2 [4] ＝ 300
画板1.滚动写行 (数组容器2 [2] [2])

运行结果为：

100
200
200
300

通过上面的程序，我们可以知道：

一、数组容器可以有多个成员容器，每个成员容器等同于一个单独容器。各成员容器的引用方法为：

数组容器名 + “[” + 从 1 开始的成员位置 + “]” + ......

譬如上面的数组容器1，它有“数组容器1 [1]”、“数组容器1 [2]”、“数组容器1 [3]”三个成员。数组容器2有“数组容器2 [1] [1]”、“数组容器2 [1] [2]”、“数组容器2 [2] [1]”、“数组容器2 [2] [2]”四个成员。

二、多维数组的成员也可以使用单维的方式来引用。譬如上面的“数组容器2 [3]”等同于“数组容器2 [2] [1]”，“数组容器2 [4]”等同于“数组容器2 [2] [2]”。此方法可用来遍历数组的所有成员，请继续进行以下输入：

1、加入一个名为容器1的整数型容器；

2、添加以下语句行：

jcxhs(qszcys(szrq2),rq1)
hb1.gdxh(szrq2[rq1])

输入完毕后所添加的语句如下：

计次循环首 (取数组成员数 (数组容器2), 容器1)
画板1.滚动写行 (数组容器2 [容器1])
计次循环尾 ()

此段程序可以顺序显示出数组容器2中所有成员的内容，其中“数组容器2 [1] [1]”、“数组容器2 [1] [2]”由于没有被写入新值，为初始值 0 。

下一章将讲述容器的初始值及动态管理数组容器。

------------------------------

试一试：

将上面添加的程序段中的数组容器2改为数组容器1：

计次循环首 (取数组成员数 (数组容器1), 容器1)
画板1.滚动写行 (数组容器1 [容器1])
计次循环尾 ()

运行后查看结果。

------------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第十三章：容器的初始值及动态管理数组容器

如果容器内从来没有被写入过数据，那么此时容器中的内容是什么呢？我们来做一个实验：

请打开上一章所完成的程序，将_按钮1_被单击子程序中的内容全部删除，然后进行以下输入操作：

一、顺序加入以下容器：

1、 名为字节容器的字节型容器；
2、 名为短整数容器的短整数型容器；
3、 名为整数容器的整数型容器；
4、 名为长整数容器的长整数型容器；
5、 名为小数容器的小数型容器；
6、 名为双精度小数容器的双精度小数型容器；
7、 名为逻辑容器的逻辑型容器；
8、 名为日期时间容器的日期时间型容器；
9、 名为文本容器的文本型容器；
10、名为字节集容器的字节集型容器；

二、输入以下程序语句：

hb1.gdxh(zjrq,dzsrq,zsrq,czsrq,xsrq,sjdxsrq,ljrq,rqsjrq,qwbcd(wbrq),qzjjcd(zjjrq))

输入完毕后子程序中的语句为：

画板1.滚动写行 (字节容器, 短整数容器, 整数容器, 长整数容器, 小数容器, 双精度小数容器, 逻辑容器, 日期时间容器, 取文本长度 (文本容器), 取字节集长度 (字节集容器))

运行程序并单击按钮，显示出来的各行为：

显示结果行 |  | 所显示的数据
0 | -> | 字节容器的内容
0 | -> | 短整数容器的内容
0 | -> | 整数容器的内容
0 | -> | 长整数容器的内容
0 | -> | 小数容器的内容
0 | -> | 双精度小数容器的内容
假 | -> | 逻辑容器的内容
1899年12月30日 | -> | 日期时间容器的内容
0 | -> | 文本容器中文本的长度
0 | -> | 字节集容器中字节的数目

由上面的显示结果我们可以知道：所有数值型容器的初始值都为 0 ，逻辑型容器的初始值为假，日期时间型容器的初始值为1899年12月30日，文本型容器的初始值为长度为 0 的空文本，字节集容器的初始值为空字节集。

如果容器为数组，其每个数组成员的初始值都与单个容器相同。

请在此处下载上面所编写的程序。

------------------------------

下面我们继续讲述如何动态管理数组容器，它是易语言的高级特性之一。

请查看以下命令的详细解释：

名称 | 简要解释
复制数组 | 将数组数据复制到数组容器，数组容器内的原有内容将被全部覆盖。
加入成员 | 将数据加入到数组容器的尾部
插入成员 | 将数据插入到数组容器的指定位置
删除成员 | 删除数组容器中的指定成员
清除数组 | 删除数组容器中的所有成员

为了理解这些命令，请将上面所编写程序中的_按钮1_被单击子程序的内容全部删除，然后进行以下输入操作：

一、分别加入名为容器数组1、容器数组2的整数型容器，将其数组属性都设置为 0 ，表示为具有 0 个成员的容器数组；

二、输入以下语句行：

hb1.gdxh(qszcys(rqsz1),qszcys(rqsz2))
jrcy(rqsz1,200)
crcy(rqsz1,1,100)
jrcy(rqsz2,50)
jrcy(rqsz2,rqsz1)
hb1.gdxh(qszcys(rqsz1),qszcys(rqsz2),rqsz1[1],rqsz1[2],rqsz2[1],rqsz2[2],rqsz2[3])
sccy(rqsz1,1)
qcsz(rqsz2)
hb1.gdxh(qszcys(rqsz1),qszcys(rqsz2),rqsz1[1])
fzsz(rqsz2,rqsz1)
hb1.gdxh(qszcys(rqsz2),rqsz2[1])

输入完毕后，子程序中的语句为：

画板1.滚动写行 (取数组成员数 (容器数组1), 取数组成员数 (容器数组2))
加入成员 (容器数组1, 200)
插入成员 (容器数组1, 1, 100)
加入成员 (容器数组2, 50)
加入成员 (容器数组2, 容器数组1)
画板1.滚动写行 (取数组成员数 (容器数组1), 取数组成员数 (容器数组2), 容器数组1 [1], 容器数组1 [2], 容器数组2 [1], 容器数组2 [2], 容器数组2 [3])
删除成员 (容器数组1, 1, )
清除数组 (容器数组2)
画板1.滚动写行 (取数组成员数 (容器数组1), 取数组成员数 (容器数组2), 容器数组1 [1])
复制数组 (容器数组2, 容器数组1)
画板1.滚动写行 (取数组成员数 (容器数组2), 容器数组2 [1])

运行程序并单击按钮，显示出来的各行及其对应的意义为：

显示行 | 所显示的数据
0 | 容器数组1内的初始成员数目
0 | 容器数组2内的初始成员数目
2 | 由于加入和插入了一个成员，容器数组1内的成员数增为 2。
3 | 由于加入了一个成员，然后又加入了容器数组1内的现行所有成员，容器数组2内的成员数增为 3。
100 | “插入成员 (容器数组1, 1, 100)”语句插入到容器数组1首部的成员数据。
200 | “加入成员 (容器数组1, 200)”语句加入到容器数组1内的成员数据。
50 | “加入成员 (容器数组2, 50)”语句加入到容器数组2内的成员数据。
100 | “加入成员 (容器数组2, 容器数组1)”加入到容器数组2内的成员数据。
200
1 | “删除成员 (容器数组1, 1, )”语句执行后容器数组1内的成员数目
0 | “ 清除数组 (容器数组2)”语句执行后容器数组2内的成员数目
200 | 由于容器数组1的第一个成员被“删除成员 (容器数组1, 1, )”语句删除，后面的成员被顺序前移，200 为此时的容器数组1 [1]成员内容。
1 | 由于“复制数组 (容器数组2, 容器数组1)”语句将容器数组1内的所有数据复制到了容器数组2，所以此时容器数组2内的成员数目与容器数组1相同。
200 | 由于“复制数组 (容器数组2, 容器数组1)”语句将容器数组1内的所有数据复制到了容器数组2，所以此时容器数组2 [1]成员的内容与容器数组1 [1]相同。

由此可见，使用这些命令可以相当灵活地对容器数组进行操作。

请在此处下载上面所编写的程序。

------------------------------

下一章我们将开始讲述非常重要的易语言编程知识：子程序。


一步一步跟我学易语言

第十四章：初步了解子程序

终于到了学习子程序的时候，现在我们可以开始写一些有趣点的程序了。

请新建一个程序，进行以下输入操作：

1、加入两个编辑框到_启动窗口的上部，并将它们的“输入方式”属性设置为“整数输入”，以限制只能输入数值；

2、加入一个按钮到_启动窗口的下部并双击它跳转到对应的事件处理子程序；

3、按下 Ctrl + N 插入一个名为子程序1的新子程序；

4、在子程序1中输入以下文本（ 注意：在本章以后将不再提供语句的输入文本）：

rg(wbdsz(bjk1.nr)>wbdsz(bjk2.nr))
bjk1.bjys=#huangse
bjk2.bjys=#bs

5、下移一行，继续输入：

bjk1.bjys=#bs
bjk2.bjys=#huangse

6、在_按钮1_被单击子程序中输入：

zcx1

完成以上输入后，程序中现在有了两个子程序:

1、_按钮1_被单击，其中的内容为：

子程序1 ()

2、子程序1，其中的内容为：

如果 (文本到数值 (编辑框1.内容) ＞ 文本到数值 (编辑框2.内容))
编辑框1.背景颜色 ＝ #黄色
编辑框2.背景颜色 ＝ #白色
<否则> （斜体行用作表明程序流程，实际程序中并无此类语句行）
编辑框1.背景颜色 ＝ #白色
编辑框2.背景颜色 ＝ #黄色
<如果结束>

运行程序，在两个编辑框中各输入一个数值，单击按钮后，包含较大值的编辑框的底色将被置为黄色。

总结：在以上的程序中，我们第一次创建并调用了一个名为子程序1的子程序，子程序的调用方法与命令的调用方法完全一致，其书写格式为：

子程序名称 （参数，...... ）

下一章我们将继续讲述子程序。

--------------------------------------------

试一试：

在_按钮1_被单击子程序中的 子程序1 () 语句行上按下 Ctrl + F8 键运行程序，单击窗口中的按钮后程序将被中断，请再连续按 F8 键一步一步跟踪程序的整个执行过程，以了解子程序是如何被调用的。

--------------------------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第十五章：进一步了解子程序

请打开上一章中的程序，将_按钮1_被单击及子程序1中的内容删空，然后输入以下内容：

1、在_启动窗口的左下加入一个标签，将标题属性清空，将边框属性设置为“浅凹入式”；

2、将按钮1的类型属性设置为“默认”，以支持操作者直接按回车进行比较；

3、将光标移动到子程序1的头部，即子程序名所在行，然后按回车加入一个空参数。在参数名栏中输入“数值文本1”，在类型栏中输入“wbx”（文本型）。以后我们把类似的过程称为加入名为xxx的xxx类型参数。然后继续回车后加入名为数值文本2的文本型参数；

4、将子程序1的名称改为取最大值文本；

5、在返回值类型栏中输入“wbx”（文本型）；

6、在子程序中输入以下语句：

返回 (选择 (文本到数值 (数值文本1) ＞ 文本到数值 (数值文本2), 数值文本1, 数值文本2))

7、在_按钮1_被单击子程序中输入以下语句：

标签1.标题 ＝ 取最大值文本 (编辑框1.内容, 编辑框2.内容)

现在请运行程序，在两个编辑框中输入不同的数值，然后按回车进行比较，较大的值将会被显示在标签1中。

在上面的程序中，我们定义了一个名为取最大值文本的子程序，它接收数值文本1、数值文本2两个文本型参数，返回文本型数据。在_按钮1_被单击子程序中，调用了此子程序。

理解了此程序后，我们可以总结如下：

1、子程序可以接收参数，所定义的各参数的数据类型及参数数目决定了该子程序所能够接收的参数数据的类型和数目，具有参数的子程序在被调用时必须提供与参数数目相同的数据。如上面的第 7 步在调用子程序的同时就把编辑框1.内容和编辑框2.内容作为参数数据对应地传递到了取最大值文本子程序内的数值文本1、数值文本2参数内；

2、子程序的参数可以在子程序内部被使用（如：“文本到数值 (数值文本1)”），使用方法等同于容器；

3、子程序可以返回数据，但必须首先定义返回数据的类型（上面第 5 步），并且在程序中使用“返回”命令进行返回。

下一章我们将讲述窗口程序集与子程序的关系。

--------------------------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第十六章：窗口程序集与子程序的关系

今天的例程中我们要建立两个窗口。

请新建一个程序后进行如下输入操作：

1、使用“插入->新窗口”菜单功能插入一个新的窗口，该窗口被系统自动命名为窗口1；

2、在_启动窗口及窗口1中均加入一个标签和一个按钮；

3、双击_启动窗口中的按钮1，在对应子程序中输入：

窗口1.标签1.标题 ＝ “来自启动窗口”
注：输入文本为 ck1.bq1.bt ＝ “来自启动窗口”。

4、选中_启动窗口，将其标题属性改为“启动窗口”，位置属性改为“通常”，然后在属性表底部的事件组合框中选择“创建完毕”，以加入一个名为“__启动窗口_创建完毕”的事件处理子程序（以后我们把类似的操作称为“为 xxx 加入 xxx 事件处理子程序”），然后在该子程序中输入语句：

载入 (窗口1, , 假)

5、将窗口1的标题属性改为“窗口1”，位置属性改为“通常”，顶边属性改为 300 ，然后双击其中的按钮1，在对应子程序中输入：

_启动窗口.标签1.标题 ＝ “来自窗口1”

6、将窗口程序集1的名称改为“启动窗口的程序集”，窗口程序集2的名称改为“窗口1的程序集”（仅用作说明窗口与窗口程序集之间的对应关系，实际程序中可以省略此步）。

运行程序，你可以看到屏幕上同时出现两个窗口，单击“启动窗口”中的按钮，“窗口1”中的标签将显示“来自启动窗口”；单击“窗口1”中的按钮，“启动窗口”中的标签将显示“来自窗口1”。

上面的程序中，我们所不明白的可能是“窗口1.标签1.标题”、“_启动窗口.标签1.标题”。之所以必须这样书写的原因为：任何窗口都有一个也仅有一个程序集与它对应，譬如上面程序中的_启动窗口对应启动窗口的程序集，窗口1对应窗口1的程序集。所有该窗口内所产生事件的事件处理子程序都必须放在该窗口所对应的程序集中，任何不在此程序集中的子程序如果需要访问该窗口或其内部单元的属性或方法，都必须加上前缀文本： 所在窗口名称 + “.” ，以明确指定所在窗口。

下一章将继续讲述子程序参数。

-----------------------------------

试一试：

将 窗口1.标签1.标题 ＝ “来自启动窗口” 语句改为 窗口1.销毁 () ，执行后查看效果，以了解在程序中如何调用位于其它窗口中的窗口单元方法。

-----------------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第十七章：子程序参数

请下载本章的示范程序，其中讲述了子程序参数的“参考”、“可空”、“数组”属性的使用方法。

------------------------------------


一步一步跟我学易语言

第十八章：容器的使用范围

请新建一个程序，进行如下输入操作：

1、在_启动窗口中加入一个画板和一个按钮；

2、双击按钮1，在_按钮1_被单击子程序中加入一个名为子程序容器的整数型容器；

3、将光标移动到此程序集的首行，按下回车加入一个空程序集容器，将其名称改为“程序集容器”，其类型设置为整数型；

4、使用“插入->新全局命令”菜单功能插入一个空全局容器，将其名称改为“全局容器”，其类型设置为整数型；

5、在窗口程序集1中加入一个名为子程序1的子程序，在其中输入语句：

程序集容器 ＝ 2
全局容器 ＝ 2

6、使用“插入->新程序集”菜单功能插入一个名为程序集1的程序集，然后在其中加入一个名为子程序2的子程序，在其中输入语句：

全局容器 ＝ 3

6、在窗口程序集1中的_按钮1_被单击子程序中输入以下语句：

子程序容器 ＝ 1
程序集容器 ＝ 1
全局容器 ＝ 1
画板1.滚动写行 (子程序容器, 程序集容器, 全局容器)
子程序1 ()
画板1.滚动写行 (程序集容器, 全局容器)
子程序2 ()
画板1.滚动写行 (全局容器)

运行程序后的显示结果为：

显示行 | 说明
1 | 窗口程序集1中的_按钮1_被单击子程序对子程序容器、程序集容器、全局容器所写入的内容。
1
1
2 | 窗口程序集1中的子程序1对程序集容器、全局容器所写入的内容。
2
3 | 程序集1中的子程序2对全局容器所写入的内容。

总结：

1、可以在子程序内、程序集首、全局容器表这三个不同的位置定义容器；

2、在子程序内定义的容器只能在该子程序内部使用（例如：子程序容器只能被窗口程序集1中的_按钮1_被单击子程序使用）；

3、在程序集首部定义的容器只能被该程序集内的所有子程序使用（例如：程序集容器可以被窗口程序集1中的所有子程序使用）；

4、在全局容器表中定义的容器可以被任何子程序使用（例如：全局容器可以在任何子程序中被使用）。

---------------------------------------------

试一试：

尝试进行以下输入操作，想一想为什么不能输入成功：

1、在窗口程序集1中的子程序1内加入以下语句：

子程序容器 = 2

2、在程序集1中的子程序2内加入以下语句：

程序集容器 = 3

---------------------------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第十九章：常数、常量与资源

常数、常量、资源用作在程序中提供恒定不变的数据，程序中任何可以使用容器提供数据的地方都可以使用它们，反之亦然。

----------------------------------------

第一节、常数

常数为可以直接在程序中使用的数据，它具有以下几种类型：

1、数值型常数。如： 1、100、3.14 等；

2、逻辑型常数。如： 真、假 ；

3、日期时间型常数。日期时间常数的内容必须用中括号括住，并且应按以下格式之一提供，在书写时年份后的时间部分可以被省略：

<1>、[1982年4月23日12时30分25秒]
<2>、[1982/4/23/12/30/25]
<3>、[1982/4/23/12:30:25]
<4>、[1982-4-23-12-30-25]
<5>、[1982-4-23-12:30:25]
<6>、[19820423123025]

4、文本常数。文本常数的内容为一段文本，必须使用全角或半角双引号括住。如："祖国您好！"、“祖国您好！”等等；

5、子程序指针常数。子程序指针常数为代表程序中某一子程序的指针数值，表达方式为符号“&”再加上子程序名称。如：“&子程序1”、“&_启动子程序”等等。上一章中的“&子程序1”、“&子程序2”、“&子程序3”就是子程序指针常数；

6、常数集。常数集用作提供各类常数或常量的数组形式。表达方式为使用花括号括住一系列相同类型且通过逗号分隔的各类常数或常量。如：“{ 1, 2, 3 }”、“{ "abc", "bcd" }”、“{ [1982年4月23日], [2000年1月1日12时] }”、“{ &子程序1, &_启动子程序 }”、“{ #红色，#黑色 }”、“{ #图片1，#声音1 }”等等。常数集也可以为空，表达方式为“{ }”，此时它将被认为包含有 0 个数值型常数，可以用作重新初始化一个数值数组或者将某字节集清空，譬如：“数值数组1 = { }”、“字节集1 = { }”等等。上一章中的“{ &子程序1, &子程序2, &子程序3 }”就是子程序指针常数集。

----------------------------------------

第二节、常量：

    1、常量用作存储在整个应用程序执行过程中保持不变的数据，其类型可以为数值、文本、逻辑值和日期时间。易语言中已经提供了许多常量，但用户也可以在程序中自行定义。常量的引用表达方式为符号“#”再加上常量名称。如：“#pi”常量等同于数值“3.1415926535”、“#换行符”常量等同于文本 回车 + 换行 等等；

2、可以使用以下两种方法之一加入新的空常量：

<1>、使用“插入->新常量”菜单功能；

<2>、跳转到常量数据表，如果尚未被打开，请在程序夹中双击“常量表...”项，然后使用回车或者 Ins 键即可加入；

3、空常量加入后，可以直接修改其常量名称、常量值、备注等各属性栏。在修改常量值时以 Alt + Enter 结束输入可以强行将当前输入的所有文本作为文本类型常量内容保存，此方法可用作输入带有双引号的文本常量内容。

----------------------------------------

第三节、资源：

    1、资源用作存储用户需要在程序中使用的图片、声音等数据，其数据类型为字节集型，可以被看作为字节集型常量，其引用方式等同于 常量 。

2、可以使用以下两种方法之一加入新的空图片资源：

<1>、使用“插入->新资源->图片”菜单功能；

<2>、跳转到图片资源表，如果尚未被打开，请在程序夹中双击“资源表->图片...”项，然后使用回车或者 Ins 键即可加入；

3、可以使用以下两种方法之一加入新的空声音资源：

<1>、使用“插入->新资源->声音”菜单功能；

<2>、跳转到声音资源表，如果尚未被打开，请在程序夹中双击“资源表->声音...”项，然后使用回车或者 Ins 键即可加入；

4、空图片或者空声音资源被加入后，可以直接修改其名称和内容。

5、可以将任何非图片或声音的数据加入到资源中，以便定义字节集型的常量数据。

----------------------------------------

下面用一个例程来详细说明，请新建一个程序，进行以下输入操作：

1、在_启动窗口中加入一个画板和一个按钮；

2、使用第二节中所介绍的方法加入四个空常量，将它们分别改为以下内容：

常量序号 | 名称栏 | 常量值栏
1 | 数值常量 | 3.14
2 | 文本常量 | "飞扬"
3 | 逻辑常量 | 真 （输入文本：zhen）
4 | 日期常量 | 2000年11月1日 （输入文本：[2000/11]）

3、使用第三节中所介绍的方法加入一个空图片资源，将其名称改为“测试图片”，然后单击“内容”栏或者在其上按下空格，随意导入一个图片文件后，单击“加入/修改到程序并关闭对话框”按钮返回，此时图片数据将被保存入 易程序文件中，图片文件不再被需要；

4、使用第三节中所介绍的方法加入一个空声音资源，将其名称改为“测试声音”，然后单击“内容”栏或者在其上按下空格，随意导入一个声音文件后，单击“加入/修改到程序并关闭对话框”按钮返回，此时声音数据将被保存入 易程序文件中，声音文件不再被需要；

5、双击_启动窗口中的按钮1，在_按钮1被单击子程序中进行以下输入：

<1>、加入一个名为数组容器，数组属性为 3 的整数型数组容器和一个名为图片号的整数型容器；

<2>、输入以下语句：

画板1.滚动写行 (“数值型常数：” ＋ 到文本 (3.14), “逻辑型常数：” ＋ 到文本 (真), “日期时间型常数：” ＋ 到文本 ([2000年11月1日]), “文本常数：” ＋ “祖国您好！”)
输入文本为：hb1.gdxh("数值型常数："+dwb(3.14),"逻辑型常数："+dwb(zhen),"日期时间型常数："+dwb([2000/11]),"文本常数："+"祖国您好！")
 图片号 ＝ 载入图片 (#测试图片)
输入文本为：tph=zrtp(#cstp)
 如果真 (图片号 ≠ 0)
输入文本为：rgz(tph<>0)
 画板1.画图片 (图片号, 100, 0, , , )
卸载图片 (图片号)
<如果真结束>
播放音乐 (#测试声音, )
数组容器 [3] ＝ 3
数组容器 ＝ { 1, 2 }
画板1.滚动写行 (数组容器 [1], 数组容器 [2], 数组容器 [3])

您可能会觉得：画一个图片还要先载入后卸载，太麻烦了。不过，采用这种方法可以保证以最高的效率画出图片，而且图片号还可以被反复使用。

上面程序中的第一行演示了绝大部分常数的使用方法，子程序指针常数由于我们上一章刚刚讲述，所以在此处被略去。在后面顺序演示了图片资源、声音资源、常数集的使用方法。对于语句 数组容器 ＝ { 1, 2 } 我们需要解释一下：数组容器的成员数目我们定义为 3 ，但此处的常数集中只提供了两个数值，没有被提供数值的 数组容器 [3] 系统将自动对其重新初始化，所以最后显示出来的结果是 0 ，而不是 3 。

下一章我们将讲述自定义数据类型，这是易语言的高级特性之一。

-------------------------------

试一试：

1、加入语句：

_启动窗口.底图 ＝ #测试图片

2、将 播放音乐 (#测试声音, ) 语句改为：

_启动窗口.背景音乐 ＝ #测试声音

运行后查看效果，以了解如何使用资源去改变窗口单元的属性。

-------------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第二十章：自定义数据类型

自定义数据类型分为支持库自定义数据类型（如：窗口、字体、编辑框等）和用户自定义数据类型。在程序中的任何位置，只要可以使用系统基本数据类型（如：整数型、文本型等），就可以使用自定义数据类型。

所有的支持库自定义数据类型在支持库夹的“数据类型”分枝下可以找到，用户自定义数据类型由用户自行在自定义数据类型表中加入。

下面我们一起来写一个有一点意思的程序，该程序执行后将允许你在画板上涂抹各种随机颜色的方块。请新建一个程序后进行以下输入：

1、在_启动窗口上加入一个尽可能大的画板，将画板背景色属性改为白色，以便能够突出我们的显示；

2、使用菜单功能“插入->新数据类型”加入一个用户自定义数据类型，将数据类型名修改为“坐标”，回车加入一个新成员，将成员名修改为“水平坐标”，类型改为整数型，再加入一个名为“垂直坐标”的整数型成员；

3、再按下 Ctrl + N 加入一个新数据类型，将数据类型名修改为“矩形”，回车加入一个新成员，将成员名修改为“起始坐标”，类型改为坐标（输入文本：zb），再加入一个名为“结束坐标”的坐标数据类型成员；

4、使用菜单功能“插入->新Dll命令”加入一个Dll命令（Dll命令将在下一章中讲述，本章中仅作了解），将其名称改为“俘获鼠标”（此名称可以随意取），在“本Dll命令在Dll库中的对应命令名”栏中输入“SetCapture”（此名称对应Windows系统的一个API函数名，不能修改），回车后加入一个参数，将参数名改为“窗口句柄”，类型改为整数型；

5、再按下 Ctrl + N 加入一个新Dll命令，将其名称改为“释放鼠标”，在“本Dll命令在Dll库中的对应命令名”栏中输入“ReleaseCapture”；

6、跳转到_启动窗口，选中画板1，在其属性表底部的组合框中分别选择“鼠标左键被按下”、“鼠标左键被放开”、“鼠标位置被移动”加入三个事件处理子程序；

7、在窗口程序集1中加入一个名为绘画矩形，数据类型为矩形（输入文本：jx）的程序集容器和一个名为绘画已开始的逻辑型程序集容器；

8、在_画板1_鼠标左键被按下子程序中输入：

连续赋值 (横向位置, 绘画矩形.起始坐标.水平坐标, 绘画矩形.结束坐标.水平坐标)
输入文本：lxfz(hxwz,hhjx.qszb.spzb,hhjx.jszb.spzb)
另注：事件处理子程序的参数（如本子程序中的横向位置、纵向位置）的内容由系统自动提供。
连续赋值 (纵向位置, 绘画矩形.起始坐标.垂直坐标, 绘画矩形.结束坐标.垂直坐标)
绘画已开始 = 真
俘获鼠标 (画板1.取窗口句柄 ())
输入文本：fhsb(hb1.qckjb())

9、在_画板1_鼠标位置被移动子程序中输入：

如果真 (绘画已开始)
画板1.翻转矩形区 (绘画矩形.起始坐标.水平坐标, 绘画矩形.起始坐标.垂直坐标, 绘画矩形.结束坐标.水平坐标, 绘画矩形.结束坐标.垂直坐标)
绘画矩形.结束坐标.水平坐标 ＝ 横向位置
绘画矩形.结束坐标.垂直坐标 ＝ 纵向位置
画板1.翻转矩形区 (绘画矩形.起始坐标.水平坐标, 绘画矩形.起始坐标.垂直坐标, 绘画矩形.结束坐标.水平坐标, 绘画矩形.结束坐标.垂直坐标)
<如果真结束>

10、在_画板1_鼠标左键被放开子程序中输入：

如果真 (绘画已开始)
置随机数种子 ()
画板1.刷子颜色 ＝ 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))
画板1.刷子类型 ＝ 取随机数 (0, 55)
画板1.填充矩形 (绘画矩形.起始坐标.水平坐标, 绘画矩形.起始坐标.垂直坐标, 绘画矩形.结束坐标.水平坐标, 绘画矩形.结束坐标.垂直坐标)
释放鼠标 ()
输入文本：sfsb
绘画已开始 ＝ 假
<如果真结束>

运行程序后，在画板上使用鼠标拖动，可以绘制出随机颜色和填充类型的矩形。

------------------------------------------

最后，我们总结如下：

1、用户可以在自定义数据类型表中定义自己所需要的数据类型；

2、自定义数据类型由一系列成员组成，每个成员在程序中可以被单独访问，成员的数据类型可以是系统基本数据类型或者其它的自定义数据类型；

3、引用自定义数据类型容器成员的格式为：

容器名称 + “.” + 成员名称

如果欲引用成员内的成员，请使用连续的句点分隔。如上面的“绘画矩形.起始坐标.水平坐标”。

------------------------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第二十一章：Dll命令

首先声明：本章内容只适合对 Windows 系统的 API 函数有所了解的中级用户，初级用户可以跳过本章。

在上一章的程序中，我们定义了两个 Dll 命令：俘获鼠标、释放鼠标，它们所对应的 Windows API 函数分别为 SetCapture 和 ReleaseCapture 。在程序中使用这两个 API 函数可以保证当鼠标移到画板1外面时，画板1仍然能够接收到鼠标事件。

请新建一个程序，我们来继续了解有关 Dll 命令的其它情况。

1、插入一个自定义数据类型，将其名称改为“矩形”，为其增加左边、上边、右边、下边四个整数型成员；

2、插入一个 Dll 命令，将其名称改为“取窗口当前位置”，返回值设置为逻辑型，在“本Dll命令在Dll库中的对应命令名”栏中输入“GetWindowRect”，然后加入一个名为“窗口句柄”的整数型参数和一个名为“返回位置”的矩形型参数；

3、插入一个 Dll 命令，将其名称改为“取系统目录”，返回值设置为整数型，在对应命令名栏中输入“GetWindowsDirectoryA”，然后加入一个名为“返回文本储存区”的文本型参数和一个名为“文本储存区尺寸”的整数型参数；

4、继续插入一个 Dll 命令，将其名称改为“取键盘速度”，返回值设置为逻辑型，在对应命令名栏中输入“SystemParametersInfoA”，然后顺序加入四个名称分别为“查询动作”、“查询参数”、“返回数据”、“更新标志”的整数型参数，并将“返回数据”参数的传址属性设置为真；

5、在_启动窗口中加入一个按钮，双击它，在_按钮1_被单击子程序中加入一个名为“文本容器”的文本型容器、一个名为“容器1”的整数型容器、一个名为“容器2”的整数型容器、一个名为“窗口位置”的矩形型容器；

6、输入以下语句：

文本容器 ＝ 取空白文本 (260)
容器1 ＝ 取系统目录 (文本容器, 取文本长度 (文本容器))
取键盘速度 (10, 0, 容器2, 0)
取窗口当前位置 (取窗口句柄 (), 窗口位置)
信息框 (“Windows系统目录为： ” ＋ 文本容器 ＋ “ ，目录文本长度为： ” ＋ 到文本 (容器1) ＋ #换行符 ＋ “键盘速度为： ” ＋ 到文本 (容器2) ＋ #换行符 ＋ “窗口左边：” ＋ 到文本 (窗口位置.左边) ＋ #换行符 ＋ “窗口顶边：” ＋ 到文本 (窗口位置.上边), 0, )

----------------------------

在上面的程序中，我们通过 Dll 命令使用了三个外部函数：GetWindowRect、GetWindowsDirectoryA、SystemParametersInfoA ，因为它们都是 Windows API 函数，所以“Dll库文件名”栏可以省略不填，系统将自动搜寻所有基本 Windows API 库文件（Kernel32.dll、Gdi32.dll、User32.dll、Mpr.dll、Advapi32.dll），否则必须提供该 Dll 命令所在的 Dll 文件名称。在“本Dll命令在Dll库中的对应命令名”栏中必须输入该 Dll 命令在库文件中的输出名称，系统将使用它在 Dll 文件中寻找对应的调用入口。

在设置 Dll 命令的参数时，必须保证参数的顺序、数据类型都与实际的 Dll 外部函数一致，如果某个参数需要地址指针，将“传址”属性置为真即可。对于文本型、字节集型、自定义数据类型参数和数组参数，系统将自动传递地址指针，这就是 GetWindowRect 中的“返回位置”和 GetWindowsDirectoryA 中的“返回文本储存区”参数没有设置“传址”属性的原因（也可以设置，不过是多余的）。

----------------------------

附：将 Win32Api.txt 中的定义转换到易语言中的方法。

由于时间有限，易语言目前还没有提供现成的 Dll 命令定义表以供用户使用 Windows 的 API 函数，您可以按照以下大致规则来转换：

1、由于易语言是纯粹的 32 位编程系统，而 VB 是从 16 位版本发展过来的，所以 VB 中的 Long 对应易语言中的整数型；

2、如果某参数具有 ByRef 属性，请在易 语言中将“传址”属性选中；

3、如果某参数的类型为复合类型，如 RECT ，需要先在自定义数据类型表中定义出该数据类型。

----------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第二十二章：窗口单元的事件：

今天我们来一起做一个儿童英文测试程序。

1、新建程序后在_启动窗口中加入列表框、标签、编辑框、按钮各一个，将标签的标题属性设置为“请输入当前中文含义所对应的英文单词：”，边框属性置为“浅凹入式”。布局方式为列表框在上，标签、编辑框、按钮在下，其中标签在编辑框的上面，按钮在标签和编辑框的右边；

2、双击_启动窗口中的空白处，跳转到窗口程序集1，定义中文含义、英文单词、已输入单词三个文本型程序集容器，将它们的数组属性都置为 5 。

3、双击列表框1，在_列表框1_列表项被选择子程序中输入以下语句：

如果真 (列表框1.现行选中项 ≥ 0)
编辑框1.内容 ＝ 已输入单词 [列表框1.现行选中项 ＋ 1]
<如果真结束>
 编辑框1.被选择字符数 ＝ -1
选中编辑框1中的所有字符，以便于修改。
 编辑框1.获取焦点 ()
将输入焦点转移到编辑框1，以便可以直接输入单词。

4、在__启动窗口_创建完毕子程序中加入一个名为容器1的整数型容器后输入以下语句：

中文含义 ＝ { “书本”, “课桌”, “朋友”, “学校”, “家” }
英文单词 ＝ { “book”, “desk”, “friend”, “school”, “home” }
初始化数组数据。
 计次循环首 (取数组成员数 (中文含义), 容器1)
列表框1.加入项目 (中文含义 [容器1], )
将所有欲测试单词的中文含义加入到列表框中。
计次循环尾 ()
列表框1.现行选中项 ＝ 0
默认选中列表框的第一项。
_列表框1_列表项被选择 ()

5、选中编辑框1，在其属性表下方的组合框中选择“字符输入”，在被建立的_编辑框1_字符输入子程序中进行以下输入：

<1>、加入一个名为文本容器的文本型容器和一个名为现行选中项的整数型容器；

<2>、输入以下语句：

现行选中项 ＝ 列表框1.现行选中项
如果真 (现行选中项 ≥ 0 且 字符代码 ＝ #回车键)
文本容器 ＝ 到小写 (删全部空 (编辑框1.内容))
已输入单词 [现行选中项 ＋ 1] ＝ 文本容器
列表框1.置项目文本 (现行选中项, 中文含义 [现行选中项 ＋ 1] ＋ “ ” ＋ 文本容器)
如果真 (现行选中项 ＜ 取数组成员数 (中文含义))
列表框1.现行选中项 ＝ 现行选中项 ＋ 1
自动下移一项。
_列表框1_列表项被选择 ()
<如果真结束>
<如果真结束>

6、最后，双击按钮1，在_按钮1_被单击子程序中进行以下输入：

<1>、加入以下容器：

容器名 | 类型 | 静态 | 数组 | 备注
总共题数 | 整数型 |  |  |
错误题数 | 整数型 |  |  |
信息 | 文本型 |  |  |
容器1 | 整数型 |  |  |

<2>、顺序输入以下语句：

总共题数 ＝ 取数组成员数 (中文含义)
计次循环首 (总共题数, 容器1)
如果真 (英文单词 [容器1] ≠ 已输入单词 [容器1])
错误题数 ＝ 错误题数 ＋ 1
信息 ＝ 信息 ＋ #左引号 ＋ 中文含义 [容器1] ＋ #右引号 ＋ “的正确英文单词为：” ＋ #左引号 ＋ 英文单词 [容器1] ＋ #右引号 ＋ #换行符
如果真结束
计次循环尾 ()
信息框 (“共答错 ” ＋ 到文本 (错误题数) ＋ “ 题，得分为： ” ＋ 到文本 ((总共题数 － 错误题数) × 100 ÷ 总共题数) ＋ #换行符 ＋ #换行符 ＋ 信息, 0, )
销毁 ()

至此为止，我们的这个程序就编写完毕了，您可以对其进行改进，以更适合您的要求。

-----------------------

总结：

1、欲为窗口单元的某一个事件加入事件处理子程序，选中它后在其属性表底部的组合框中选择对应的事件名称即可；

2、每个窗口单元都有一个默认事件，譬如窗口的“创建完毕”，按钮的“被单击”等等，直接双击窗口单元将自动加入默认事件的处理子程序。

3、不要对事件处理子程序的名称、返回值、参数定义作任何修改，修改后将导致系统不能将事件传递到该子程序；

4、事件处理子程序参数的数据由系统在调用时自动提供；

5、事件处理子程序可以象普通子程序一样被其它程序行调用。

另外，告诉大家一个操作技巧：将光标移动到事件处理子程序的子程序名行上时提示夹中将提供有关该事件的相关帮助信息，将光标移动到参数行上时提示夹中将提供有关该参数的相关帮助信息。

-----------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第二十三章：字节集：

字节集用作记录一段字节型数据。字节集与字节数组较相似，字节数组的使用方法，譬如用中括号对（“[]”）加索引数值引用字节成员，也可以被字节集所使用。两者之间最大的不同是字节集可以变长。另外，与文本数据一样，多个字节集之间也可以使用相加命令连接为一个字节集。

下面我们一起来写一个程序，它能够读出并显示指定文件首部的 100 个字节。

我们准备使用一个多行只读编辑框来显示字节数据，为了让操作者能够指定文件，还需要一个通用对话框和一个按钮。

1、请新建一个程序，在_启动窗口中分别加入编辑框、按钮、通用对话框窗口单元各一个，将编辑框的“是否允许多行”属性设置为真，“输入方式”属性设置为“只读方式”，将按钮的“标题”属性改为“选择文件(&F)”，“类型”属性改为“默认”，以便操作者按下回车键时能够选择文件。

2、双击“选择文件”按钮，在_按钮1_被单击子程序中作以下输入：

<1>、加入以下容器：

容器名 | 类型 | 静态 | 数组 | 备注
字节数据 | 字节集 |  |  |
文件句柄 | 整数型 |  |  |
数据长度 | 整数型 |  |  |
容器1 | 整数型 |  |  |
文本容器 | 文本型 |  |  |

<2>、输入以下语句：

编辑框1.内容 ＝ “” 首先将编辑框的原有内容清空。
如果真 (通用对话框1.打开 ()) 检查操作者是否选择了有效的文件名。
文件句柄 ＝ 打开文件 (通用对话框1.文件名, , ) 打开该文件。
如果真 (文件句柄 ≠ 0) 检查是否打开成功。
字节数据 ＝ 读入字节集 (文件句柄, 100) 读入首部的 100 字节。
数据长度 ＝ 取字节集长度 (字节数据) 由于有些文件可能没有 100 字节，在此处获取实际所读入的字节数。
计次循环首 (数据长度, 容器1)
文本容器 ＝ 文本容器 ＋ 到文本 (字节数据 [容器1]) ＋ “, ” 将每个字节转换为文本后加入到文本容器中去。
计次循环尾 ()
编辑框1.内容 ＝ 文本容器
关闭文件 (文件句柄) 注意成功打开文件之后必须将其关闭。
<如果真结束>
<如果真结束>

最后，告诉大家两个操作技巧：

1、如果您不大习惯易程序编辑时所画的方框图，请使用“程序->系统配置->程序显示->自动配置为紧凑布局”菜单功能就可以了；

2、如果您认为在使用容器之前要先定义该容器比较麻烦，请选中“程序->系统配置->输入->输入错误语句后询问”，此后系统将自动为您添加容器。

明天我们将讲述《一步一步跟我学易语言》的最后一章：动态创建窗口单元，以后我们将进入《一步一步跟我编 易程序》教程。

--------------------------

请在此处下载本章所编写的程序。


一步一步跟我学易语言

第二十四章：动态创建窗口单元：

到目前为止，我们在程序中所使用的窗口单元都是在设计时加进去的，有没有办法可以在运行时动态加入窗口单元呢？

请大家先在系统中阅读一下“其他”类中的“取事件单元”、“事件转移”、“复制窗口单元”三个命令的详细解释。

我们这个程序能够根据操作者所提供的输入项的数目来自动创建相应数目的编辑框：

1、新建程序后在_启动窗口中加入标签、编辑框各一个。将标签的“标题”属性设置为“输入项的数目（1 - 5）：”，编辑框的“输入方式”属性设置为“整数输入”。布局方式为：标签与编辑框位于同一行，放在窗口顶部，标签在左；

2、由于我们希望当操作者在编辑框1内输入一个数值并按下回车后能够马上创建出对应数目的新标签和新编辑框，所以我们必须处理编辑框1的“字符输入”事件以截获操作者键入的回车。现在请选中编辑框1后加入该事件的处理子程序；

3、在窗口程序集1中加入以下程序集容器：

容器名 | 类型 | 数组 | 备注
提示标签 | 标签 | 0 | 数组属性为 0 表示将动态建立成员
输入编辑框 | 编辑框 | 0 |

4、在我们在第 2 步所加入的_编辑框1_字符输入子程序中作以下输入：

<1>、加入以下容器：

容器名 | 类型 | 静态 | 数组 | 备注
当前编辑框 | 编辑框 |  |  |
编辑框数目 | 整数型 |  |  |
容器1 | 整数型 |  |  |
容器2 | 整数型 |  |  |

<2>、输入以下语句：

如果真 (字符代码 ≠ #回车键) 检查是否键入了回车键
返回 (字符代码) 如果没有就直接返回
<如果真结束>
 当前编辑框 ＝ 取事件单元 () 由于所有被创建出来的编辑框的事件都会传递到此事件处理子程序，因此首先取出按下回车键时的实际编辑框。
如果 (当前编辑框 ＝ 编辑框1) 如果在编辑框1内按下回车键，则去进行创建编辑框处理。
编辑框数目 ＝ 取数组成员数 (输入编辑框) 取出先前已经创建出来的编辑框数目
编辑框1.被选择字符数 ＝ -1 将编辑框1内的所有内容选中，以方便下次直接输入。
计次循环首 (编辑框数目, 容器1) 销毁先前创建出来的所有标签和编辑框
提示标签 [容器1].销毁 ()
输入编辑框 [容器1].销毁 ()
计次循环尾 ()
编辑框数目 ＝ 文本到数值 (编辑框1.内容) 取回操作者所输入的项目数目
如果真 (编辑框数目 ＜ 1 或 编辑框数目 ＞ 5) 判断项目数目是否有效
清除数组 (提示标签) 如果无效则清除以前的所有记录数据并提示操作者
清除数组 (输入编辑框)
信息框 (“项目数目必须在 1 - 5 之间”, 0, )
返回 (字符代码)
<如果真结束>
 重定义数组 (提示标签, 假, 编辑框数目) 准备对应数目的空间以存储创建出来的标签和编辑框
重定义数组 (输入编辑框, 假, 编辑框数目)
计次循环首 (编辑框数目, 容器2)
容器1 ＝ 编辑框数目 ＋ 1 － 容器2 倒序创建，以支持 TAB 键操作顺序。
复制窗口单元 (标签1, 提示标签 [容器1]) 创建新标签
复制窗口单元 (编辑框1, 输入编辑框 [容器1]) 创建新编辑框
提示标签 [容器1].标题 ＝ “请输入第 ” ＋ 到文本 (容器1) ＋ “ 项：” 设置标签的标题
提示标签 [容器1].顶边 ＝ 标签1.顶边 ＋ (标签1.高度 ＋ 10) × 容器1 设置标签的位置
提示标签 [容器1].可视 ＝ 真 将新的标签显示出来
输入编辑框 [容器1].输入方式 ＝ 0 将编辑框的输入方式还原为“通常方式”
输入编辑框 [容器1].顶边 ＝ 编辑框1.顶边 ＋ (编辑框1.高度 ＋ 10) × 容器1 设置编辑框的位置
输入编辑框 [容器1].标记 ＝ 到文本 (容器1) 为新建的编辑框加上标记
输入编辑框 [容器1].可视 ＝ 真 将新的编辑框显示出来
计次循环尾 ()
<否则> 如果是在创建出来的编辑框内输入，则进行提示
 信息框 (“在第 ” ＋ 当前编辑框.标记 ＋ “ 项上输入了内容” ＋ #左引号 ＋ 当前编辑框.内容 ＋ #右引号, 0, )
<如果结束>

运行该程序，在编辑框内分别输入 1 - 5 后回车，查看效果。在创建出来的编辑框内输入文本后回车，查看效果。

---------------------------------

总结：

1、使用“复制窗口单元”命令可以动态创建出某窗口单元的副本，该副本除了“可视”属性被自动设置为假外（以便于进行调整），其它属性与原窗口单元完全一致；

2、所创建出来的窗口单元的所有事件都将发送到原窗口单元上，原窗口单元的事件处理子程序必须能够处理此情况；

3、在事件处理子程序中使用“取事件单元”命令可以取回事件产生时的实际窗口单元。

------------------------

请在此处下载本章所编写的程序。


支持库手册

即时查询帮助信息

返回首页

    如欲对系统中各运行支持库内的命令、库定义数据类型、库定义常量等等信息进行查找，请在易系统启动后使用以下方法之一：

  • 直接在工作夹内的支持库夹中单击对应的所欲查找其信息的项目，此时所有的相关信息将会显示在系统的提示夹或者状态行中；
  • 如果欲将这些信息提取出来打印或者以后阅读，请在相应项目上单击鼠标右键，在所弹出的菜单中选择“拷贝帮助文本到剪贴板”或者“写帮助文本到文件”功能输出与该项目及该项目所有子项目相关的帮助信息。譬如：在支持库名项目上进行此操作将输出此支持库内的所有信息。


操作手册

返回首页

[ 系统主窗口布局 ]
[ 工作夹 ]
    [ 支持库夹 ]　[ 程序夹 ]　[ 属性夹 ]
[ 状态夹 ]
     [ 提示夹 ]　[ 输出夹 ]　[ 调用表夹 ]　[ 查改容器夹 ]
[ 状态行 ]
[ 设计窗口界面 ]
    [ 绘制新的窗口单元 ]　[ 选择窗口单元 ]　[ 使用鼠标改变窗口单元的位置 ]
    [ 使用鼠标改变窗口单元的尺寸 ]　[ 编辑窗口菜单 ]　[ 预览 ]
[ 程序编辑窗口 ]
    [ 程序集的组成 ]　 [ 输入备注 ]　[ 草稿 ]　[ 光标键操作 ]　 [ 编辑 ]　 [ 选择块 ]
[ 失去关联的名称 ]
[ 其它 ]

一、系统主窗口布局

    在系统安装后第一次进入时，主窗口的顶端为菜单条，菜单条的下面为标准工具条，左边为工作夹，下边为 状态夹 ，中间为“_启动窗口”的 窗口设计界面 ，右边为窗口单元工具箱。另外，系统状态条默认是不显示的，使用组合夹可以将工作夹与输出夹组合到一起，编写程序时将使用程序编辑窗口。
    在主窗口或其各类工具条上单击鼠标右键可以弹出用作设置各种工具条、工具夹显示状态的菜单。

二、工作夹

    在工作夹中包括三个子夹，名为：“支持库”、“程序”、“属性”。

    1、支持库夹：

    在支持库夹中可以查看到当前所有被引入的支持库及其中的所有内容和信息。每选中一条项目，在提示夹或状态行上均可以看到有关此项目的详细帮助文本。在某项目上单击鼠标右键可以弹出一个菜单，在此菜单中可以进行譬如输出此项目及其所有子项目的帮助文本、将现行项目所对应的命令输入到程序中等等操作。双击某项目可以将此项目所对应的命令输入到程序中；

    2、程序夹：

    在程序夹中可以查看到当前程序的所有组成部分。譬如：程序中的所有程序集、所有全局容器、窗口等等。双击某项目可以跳转到该项目所对应的程序部分。在某项目上单击鼠标右键可以弹出一个跳转、插入或删除对应程序项目的菜单；

    3、属性夹：

    属性夹用作显示当前被选中窗口单元的属性表。各组属性之间用粗线条隔开。某属性的子属性将比其父属性缩进一格。灰色文本标题的属性表示此属性需要在其父属性被设置为某值后才有效，但仍然可以进行设置。选中某属性后按下 Delete 键可以删除此属性中的内容（譬如图片、声音等等），按下空格可以进行编辑或修改。
    在属性夹的顶部有一个组合框，用作选择当前设计窗口中的某窗口单元。在属性夹的底部也有一个组合框，用作自动加入或跳转到当前被选择窗口单元的某事件处理子程序。

三、 状态夹

    在状态夹中包括三个子夹，名为：“提示”、“输出”、“调用表”。

    1、提示夹：

    提示夹中始终具有针对于当前用户操作的提示，此为用户获取帮助信息的最有效、最直接的地方；

    2、输出夹：

    输出夹中提供当前系统输出给用户的信息。譬如：编译易程序的全过程；易程序在调试运行方式下使用“输出调试文本”命令所输出的文本；易程序的编译及运行错误等等；

    3、调用表夹：

    调用表夹中提供调试时当前被中断运行的易程序的子程序调用过程记录。用户可以双击某项目或者选中某项目后按回车以直接跳转到该调用位置。

    4、查改容器夹：

    查改容器夹中提供调试时当前被中断运行易程序的所有容器内容，用户可以对容器值进行查看或者修改。

四、状态行

    状态行中的内容等同于提示夹中的内容，如信息有多行或超出行外，在任何时候（包括正在显示对话框时）均可使用 Ctrl + / 键浏览其全部。

五、设计窗口界面

    1、绘制新的窗口单元：

    在窗口单元工具箱中选取所欲绘制入的窗口单元（窗口单元工具箱的第一个按钮为返回选择方式，不是窗口单元），然后使用鼠标拖动绘制在窗口上。在绘制过程中如果想中途放弃，可以按 Esc 键或者单击鼠标右键。

    2、选择窗口单元：

  • 使用鼠标直接单击欲选择的窗口单元；

  • 使用鼠标拖动选择在一个指定矩形区域内的所有窗口单元；

  • 使用 Shift + 鼠标左键 选择或者取消选择指定的窗口单元而不影响其它窗口单元的选择状态；

  • 使用 Shift + 鼠标拖动 选择或者取消选择指定矩形区域内的窗口单元而不影响其它窗口单元的选择状态；

  • 在属性夹顶部的组合框中直接选择某窗口单元。

    3、使用鼠标改变窗口单元的位置：

  • 拖动已经被选择的窗口单元即可。

    4、使用鼠标改变窗口单元的尺寸：

  • 拖动已经被选择的单个窗口单元四周的对应调节器即可。

    5、编辑窗口菜单：

  • 使用 Ctrl + E 即可调入窗口菜单编辑器。

    6、预览：

  • 使用 Ctrl + Enter 即可预览窗口在运行时的实际情况，在预览时不会去调用事件的处理子程序。

    7、其它可以进行的操作请参见主菜单及设计窗口上的右键菜单。

六、程序编辑窗口

    1、程序集的组成

    在程序集的首部为程序集定义表，其中可以定义程序集名称、备注和程序集容器。如果程序集容器定义表尚不存在，在程序集定义表上使用 回车 或者 Insert 键即可创建并插入一个空的程序集容器。

    在程序集定义表后面顺序记录有此程序集中的所有子程序。

    子程序由子程序定义表、局部容器定义表和程序语句系列组成。在子程序定义表中可以定义子程序名称、返回值类型、备注和子程序参数。如果子程序参数定义表尚不存在，在子程序定义表上使用 回车 或者 Insert 键即可创建并插入一个空的参数。在局部容器定义表中可以定义仅在此子程序中使用的容器。如果局部容器定义表尚不存在，在子程序中使用 Ctrl + L 键即可创建并插入一个空的局部容器。

    2、输入备注

    在用户编写易程序的过程中，所有地方均允许用户直接输入相关的备注信息。在子程序中，用户可以使用菜单功能“编辑 -> 修改备注”或者 Alt + Enter 来输入与当前语句相关的备注。

    3、草稿

    由于易系统对用户所输入的语句是先编译后存放，因此不符合语法规则的语句就不能被输入到程序。但是，在实用过程中，用户可能经常需要在输入语句时跳转到其它地方去查阅相关信息，或者需要暂时存放一些临时性的语句文本、需要暂时屏蔽某些语句等等。此时可以使用草稿来满足此需求。在语句上按下 Ctrl + Enter 或者在输入时按下 Ctrl + Enter 键均可以将当前语句以草稿的形式保存。另外，如果在输入的过程中跳转到程序中的其它地方，当前语句将自动以草稿的形式保存，在查看完毕返回此程序编辑窗口后，按下 Tab 键可以继续先前的输入。

    4、光标键操作（同样适用于自定义数据类型表、全局容器表、Dll命令定义表、常量数据表、资源表等等编辑窗口）

← | 在语句行上关闭参数，在表格上左移一列。
→ | 在语句行上打开参数，在表格上右移一列。
↑ | 上移一行
↓ | 下移一行
Ctrl + ↑ | 上滚一行
Ctrl + ↓ | 下滚一行
Shift + ↑ | 向上选择一行
Shift + ↓ | 向下选择一行
Ctrl + Alt + ↑ | 跳转到上一子程序／自定义数据类型／Dll命令
Ctrl + Alt + ↓ | 跳转到下一子程序／自定义数据类型／Dll命令
Ctrl + Shift + ↑ | 移动光标到与当前行有箭头关连的前面的行
Ctrl + Shift + ↓ | 移动光标到与当前行有箭头关连的后面的行
Ctrl + = | 打开所有参数
Ctrl + [ | 水平向左滚动一页
Ctrl + ] | 水平向右滚动一页
PageUp | 垂直向上滚动一页
PageDown | 垂直向下滚动一页
Shift + PageUp | 向上选择一页
Shift + PageDown | 向下选择一页
Ctrl + PageUp | 跳到头部
Ctrl + PageDown | 跳到尾部
Ctrl + Shift + PageUp | 选择到头部
Ctrl + Shift + PageDown | 选择到尾部
Home | 在表格中到首列
Ctrl + Home | 跳到当前页头部
Ctrl + Shift + Home | 选择到当前页头部
End | 在表格中到尾列
Ctrl + End | 跳到当前页尾部
Ctrl + Shift + End | 选择到当前页尾部
Insert | 在当前行前插入新行
Enter | 在当前行后插入新行
Delete | 删除当前行
Ctrl + / | 如果当前所提示信息不能被看到或完全看到，则跳转到提示夹或另弹出窗口显示之；如果执行此操作时提示夹已经被显示但无输入焦点，则赋予其输入焦点，以便于用户使用键盘浏览提示信息；如果已有输入焦点，则将焦点转移回程序编辑窗口继续进行编辑。
Ctrl + Tab | 在编辑窗口之间跳转。按下 Ctrl 键后不放，然后反复按 Tab 键可以在目前所有的编辑窗口之间跳转；按下 Ctrl 键后同时按下 Tab 键，然后都放开，可以在最近两个编辑窗口之间跳转。

    5、编辑

    <1>、进入编辑状态：

  • 按下空格键即可进入编辑，此时原有内容将被调入；

  • 按下 Ctrl + V 可以使用当前剪辑板中的文本内容进入编辑，此时原有内容将被此文本替换；

  • 直接输入字符或汉字也可以进入编辑，此时原有内容将被该字符或汉字替换；

    <2>、欲删除整个子程序，只需要在子程序表的子程序名称行上进行删除操作即可。

    <3>、编辑过程中可进行的操作（此信息在编辑时可在提示夹或状态行上查阅到）：

  • F1 键可以浏览并选择输入文件名；

  • Ctrl + F 可以进行搜寻，F3 或 Shift + F3 键可以继续向后或向前搜寻文本；

  • Ctrl + → 或 Ctrl + ← 以单词为单位移动光标，同时按下 Shift 键可以进行选择；

  • Tab、Alt + → 或 Shift + Tab、Alt + ← 以 8 个字符为单位快速移动光标，使用光标键时同时按下 Shift 键可以进行选择；

  • Ctrl + A 可以全选；

  • 在输入程序语句时以 Ctrl + Enter 键结束可以强行将当前输入内容以草稿形式保存；

  • 在常量表中输入常量值时以 Alt + Enter 结束可以强行将当前输入内容作为文本类型常量保存，此方法可用作输入带有双引号的文本常量内容。

    6、选择块

    易编辑窗口中的块与其它软件不同之处为：可以同时选择多块。块选择的方法为：

    <1>、键盘方式：使用 Shift + 光标键 进行块选择或者添加，使用 Alt + 光标键 进行不影响当前块定义的光标移动。

    <2>、鼠标方式：使用鼠标直接拖动可以选择一个区域，单击标志列可以选择对应的行。使用 Shift + 鼠标单击或者拖动 可以增加一个选择区域。使用 Ctrl + 鼠标单击或者拖动 可以取消一个选择区域。

七、失去关联的名称

    易程序中的所有名称，都被系统内置的名称管理器所管理，以便进行改名跟踪等处理。但有时候某些名称可能会被失去关联管理，譬如：假设程序中存在名为“子程序1”的子程序，在程序中的“子程序2”子程序内调用了“子程序1”。那么，用户如果进行了类似以下的系列操作，“子程序1”名称将会与“子程序2”中的相应调用名称失去关联：
    1、剪切“子程序1”到剪辑板。此时由于“子程序1”已被删除，“子程序2”中的相应调用名称将失去其关联对象；
    2、再将剪辑板中的“子程序1”代码粘贴到程序中。此时系统因为无法确认用户是否确切想将其与“子程序2”中的“子程序1”调用名称关联起来，所以不会去自动关联。
    至此，“子程序2”中的“子程序1”调用名称失去了其关联对象，现在用户如果修改“子程序1”的名称，“子程序2”中的相应调用名称不会被自动更改。如果“标记程序中失去关联的名称”系统选项被置位（系统安装后默认不置位。修改设置的方法：使用“程序 -> 系统配置 -> 程序显示夹 - 标记程序中失去关联的名称”菜单功能），“子程序2”中的调用名称前将会被显示一个五角星号。
    将两者重新关联起来的方法是在具有失去关联名称的语句行上按下 Shift + Enter 键重新处理。
    在编译或者运行程序时，系统将会自动寻找与失去关联的名称相匹配的对象名称。

八、其它

    有关所有菜单功能的介绍，请参见易系统中对应菜单项目的提示信息。


系统的安装及运行

返回首页

一、安装方法

    执行所提供的 setup 可执行文件即可完成安装。

二、运行方法及配置要求

    安装后直接执行 E.EXE 文件即可运行。

    本软件运行的最低计算机配置要求为：

  • Windows 任何版本操作系统；

  • 486DX/66 MHz 或更高的处理器（推荐 Pentium 或更高的处理器)；

  • VGA 或分辨率更高的显示器；

  • 16M 内存；

  • 鼠标或其它定点设备。


用户如何发布自己的程序到其它计算机

如何在程序中使用ActiveX组件

返回首页

ActiveX是目前极为通用的Windows组件格式（也称为ocx组件），易语言从3.2版本开始，就支持了直接在程序中使用此类型的组件。那么，如果您有一个很好用的ActiveX组件，如何使其能够在易语言中使用呢？

步骤如下：

1、首先，您需要将其包装成可以在易语言中使用的支持库格式，请执行“工具->OCX组件包装器”，选中您欲在易语言中使用的ocx组件，如果该组件没有在列表中列出，请单击“注册组件”按钮将其注册到Windows系统中。

2、然后单击“下一步”按钮将该组件中的所有英文信息中文化（您也可以不进行翻译而直接使用，但是如果这样在源程序中将显示英文），最后单击“保存”按钮保存为.opk易语言包装支持库文件，系统会询问您是否将此文件复制到易语言系统中，点击“是”按钮后重新启动易语言即可使用该ocx组件。

3、注意：以上1和2步骤都是假设您没有对应该ocx组件的.opk文件，如果您有对应该ocx组件的.opk文件，则不需要经过以上两个步骤，直接将其拷贝到易语言安装目录的lib子目录内即可使用该ocx组件。

使用ocx组件与使用易语言本身提供的内部组件没有任何区别，欢迎经常到我们的网站或论坛内下载更多已经翻译汉化好的.opk文件使用。


作 者 序

返回首页

作 者 序

自从2000年初开始开发易语言，逾今已有三年多，期间也曾经历了不少风雨，有成功，也有失败。但是记忆中最深刻的还是2000年9月16日晚上将易语言1.0版本上传到网站上的那一刻，是多么的令人激动。这种激动更多地包含着一种期望，期望自己所付出的所有努力能够被大家所认可，更期望这属于中国人自己的编程语言能够在大家的关心和支持下茁壮成长，直至成为参天大树。
当然，直到现在还有一些朋友都有一种困惑，那就是为什么要学习易语言，市面上还有那么多的国外同类产品，它们的功能至少目前比易语言更强大，为何不去学习它们呢？
我们知道，编程语言实际上仅仅只是一种工具，是一种将您的想法变成现实的工具。您的付出通过这种工具能够获得所需要的收获，并且收获价值要大于付出，这才是您的最终目的。任何其他目的，如片面追求编程语言功能的强大、技术的完美，都偏离了工具本身的用途，是错误的。
那么，假设您是一位很少接触电脑编程的用户，您会选择什么编程语言来实现您的梦想呢？至少有以下因素需要考虑：
1、 您能够付出什么，及您能不能作出这种付出。众所周知，学习编程语言需要投入时间和精力，并且有可能学习失败，是要承担风险的。每种编程语言对其用户都有一个最基本要求，如是否懂外语，是否具有一定的编程基础等等，它们的学习曲线是否平缓，决定了您能不能学会，是您能不能作出这种付出的关键。另外，所需学习时间的多少也决定了您投入的多少。
2、 您希望获得什么。即您希望获得的最终软件产品能否通过这种编程语言来实现；
3、 您的收获是否能够大于付出。您通过学习这种编程语言所获得的收益能否大于您的付出?
从以上各方面来说，易语言因为其易学、易用、实用而成为初级用户的首选。她所独有的全中文和全可视（可视化界面设计、可视化程序流程图）决定了其易学和易用，用户不用支出额外的学习成本去学习外语，轻松跨越这道最大的门槛，并且流程图方式可以让没有编程基础的人轻松上手。相对于我国用户来说，易语言应该是目前最容易学习的，您可以付出最少的时间和精力来学会编写程序，并且如果您的软件产品具有很强的时效性，学习时间的缩短将是至关重要的。
从实用的角度讲，易语言包含从桌面型数据库到大型数据库的支持，可以进行网络及端口通讯，以及具有丰富的界面单元、数百条系统命令等等，基本上涵盖了绝大部分应用领域，可以满足各个领域不同应用层次的开发要求。另外，易语言是完全本地化、最符合中国国情的编程语言，如对人民币金额、汉字拼音、数据库汉字同音搜索等方面的支持，都是其它国外产品所不能够提供的，并且这个差距将在以后越来越大。
易语言支持目前最先进的编程理念，如面向对象的编程方式、基于事件的程序驱动等等，如果您的目的是单纯地学习编程技术，易语言也能够为您在其它具有更强大功能但很难入门的编程语言之间架起一座桥梁，让天堑变通途。
这三年多来，易语言的用户从无到有，直至成千上万，易语言本身也从最初的1.0版一直到现在的2.5版，事实证明了她在辽阔的祖国大地上是有着其生存空间，是能够和国外同类产品一相抗衡的，在此我对曾经无私帮助过易语言发展的所有朋友表示深深的感谢！
易语言仍在继续前进，没有什么能够阻挡她的脚步。未来的她在遵循"易"的前提下，将越来越强大！
我和大家的梦想是一致的：就是让神洲大地上无数的具有各种各样职业的人们，能够轻松拿起易语言这只笔，在电脑屏幕上尽情挥洒，让电脑传承下他们丰富的业务经验、让他们驾驭这匹快马，风驰电掣、美梦成真！
愿中华民族永远长青！

易语言作者 吴涛 于
2002年9月22日夜


系统核心支持库3

附录：常量表

常量 | 常量值 | 描 述
#引号 | “"” | 半角双引号。
#左引号 | ““” | 全角左双引号。
#右引号 | “”” | 全角右双引号。
#换行符 | “字符（13）+字符（10）” | 一个回车符（13）和一个换行符（10）的组合。
#pi | 3.1415926535 |
#e | 2.718282 |
#黑色 | 0 | 常用颜色值。
#藏青 | 8388608 |
#墨绿 | 32768 |
#深青 | 8421376 |
#红褐 | 128 |
#紫红 | 8388736 |
#褐绿 | 32896 |
#浅灰 | 12632256 |
#灰色 | 8421504 |
#蓝色 | 16711680 |
#绿色 | 65280 |
#艳青 | 16776960 |
#红色 | 255 |
#品红 | 16711935 |
#黄色 | 65535 |
#白色 | 16777215 |
#蓝灰 | 16744576 |
#藏蓝 | 14692440 |
#嫩绿 | 57472 |
#青绿 | 8445952 |
#黄褐 | 24768 |
#粉红 | 16754943 |
#嫩黄 | 55512 |
#银白 | 15527148 |
#紫色 | 16711824 |
#天蓝 | 16746496 |
#灰绿 | 8429696 |
#青蓝 | 12607488 |
#橙黄 | 33023 |
#桃红 | 8409343 |
#芙红 | 12615935 |
#深灰 | 6316128 |
#透明 | -16777216 |
#隐藏窗口 | 1 |
#普通激活 | 2 |
#最小化激活 | 3 |
#最大化激活 | 4 |
#普通不激活 | 5 |
#最小化不激活 | 6 |
#读入 | 1 |
#写出 | 2 |
#读写 | 3 |
#重写 | 4 |
#改写 | 5 |
#改读 | 6 |
#无限制 | 1 |
#禁止读 | 2 |
#禁止写 | 3 |
#禁止读写 | 4 |
#文件首 | 1 |
#文件尾 | 2 |
#现行位置 | 3 |
#只读文件 | 1 |
#隐藏文件 | 2 |
#系统文件 | 4 |
#子目录 | 16 |
#存档文件 | 32 |
#无属性文件 | 128 |
#字节型 | 1 |
#短整数型 | 2 |
#整数型 | 3 |
#长整数型 | 4 |
#小数型 | 5 |
#双精度小数型 | 6 |
#逻辑型 | 7 |
#日期时间型 | 8 |
#子程序指针型 | 9 |
#文本型 | 10 |
#年份 | 1 |
#季度 | 2 |
#月份 | 3 |
#周 | 4 |
#自年首周数 | 4 |
#日 | 5 |
#小时 | 6 |
#分钟 | 7 |
#秒 | 8 |
#星期几 | 9 |
#自年首天数 | 10 |
#确认钮 | 0 | “信息框”命令使用。
#确认取消钮 | 1 |
#放弃重试忽略钮 | 2 |
#取消是否钮 | 3 |
#是否钮 | 4 |
#重试取消钮 | 5 |
#错误图标 | 16 |
#询问图标 | 32 |
#警告图标 | 48 |
#信息图标 | 64 |
#默认按钮一 | 0 |
#默认按钮二 | 256 |
#默认按钮三 | 512 |
#默认按钮四 | 768 |
#程序等待 | 0 |
#系统等待 | 4096 |
#位于前台 | 65536 |
#文本右对齐 | 524288 |
#取消钮 | 1 |
#放弃钮 | 2 |
#重试钮 | 3 |
#忽略钮 | 4 |
#是钮 | 5 |
#否钮 | 6 |
#首拼及全拼 | 1 |
#双拼 | 2 |
#自动判别 | 3 |
#Ctrl键状态 | 1 |
#Shift键状态 | 2 |
#Alt键状态 | 4 |
#键0 | 48 | 按键代码值。
#键1 | 49 |
#键2 | 50 |
#键3 | 51 |
#键4 | 52 |
#键5 | 53 |
#键6 | 54 |
#键7 | 55 |
#键8 | 56 |
#键9 | 57 |
#A键 | 65 |
#B键 | 66 |
#C键 | 67 |
#D键 | 68 |
#E键 | 69 |
#F键 | 70 |
#G键 | 71 |
#H键 | 72 |
#I键 | 73 |
#J键 | 74 |
#K键 | 75 |
#L键 | 76 |
#M键 | 77 |
#N键 | 78 |
#O键 | 79 |
#P键 | 80 |
#Q键 | 81 |
#R键 | 82 |
#S键 | 83 |
#T键 | 84 |
#U键 | 85 |
#V键 | 86 |
#W键 | 87 |
#X键 | 88 |
#Y键 | 89 |
#Z键 | 90 |
#F1键 | 112 |
#F2键 | 113 |
#F3键 | 114 |
#F4键 | 115 |
#F5键 | 116 |
#F6键 | 117 |
#F7键 | 118 |
#F8键 | 119 |
#F9键 | 120 |
#F10键 | 121 |
#F11键 | 122 |
#F12键 | 123 |
#F13键 | 124 |
#F14键 | 125 |
#F15键 | 126 |
#F16键 | 127 |
#Break键 | 3 |
#退格键 | 8 |
#Tab键 | 9 |
#回车键 | 13 |
#Shift键 | 16 |
#Ctrl键 | 17 |
#Alt键 | 18 |
#Pause键 | 19 |
#CapsLock键 | 20 |
#NumLock键 | 144 |
#ScrollLock键 | 145 |
#Esc键 | 27 |
#空格键 | 32 |
#PageUp键 | 33 |
#PageDown键 | 34 |
#Home键 | 36 |
#End键 | 35 |
#左光标键 | 37 |
#上光标键 | 38 |
#右光标键 | 39 |
#下光标键 | 40 |
#Ins键 | 45 |
#Del键 | 46 |
#分号键 | 186 |
#等号键 | 187 |
#逗号键 | 188 |
#减号键 | 189 |
#圆点键 | 190 |
#除号键 | 191 |
#反撇号键 | 192 |
#左中括号键 | 219 |
#右中括号键 | 221 |
#斜杠键 | 220 |
#单引号键 | 222 |
#顶层 | 1 | 在窗口 Z 顺序的最前面。
#底层 | 2 | 在窗口 Z 顺序的最后面。
#最高层 | 3 | 在所有现行窗口的最前面并一直保持此位置。
#次高层 | 4 | 在最高层窗口的下面但在其他窗口的前面。
#全部转换 | 1 |
#日期部分 | 2 |
#时间部分 | 3 |
#输入文本 | 1 |
#输入整数 | 2 |
#输入小数 | 3 |
#拷贝 | 1 |
#翻转拷贝 | 2 |
#位异或 | 3 |
#位或 | 4 |
#位与 | 5 |
#从上到下 | 1 |
#从左到右 | 2 |
#从左上到右下 | 3 |
#从右上到左下 | 4 |
#从下到上 | 5 |
#从右到左 | 6 |
#从右下到左上 | 7 |
#从左下到右上 | 8 |
#字节集型 | 11 | 可以存储大量的不定长字节数据。
#备注型 | 12 | 文本型的扩充，可以存储大量的不定长文本数据。
#通常索引 | 1 |
#读音索引 | 2 |
#南方读音索引 | 3 |
#不区分大小写 | 1 |
#忽略所有空格 | 2 |
#取平均值 | 1 |
#求和 | 2 |
#取最大值 | 3 | 取最大数值及日期。
#取最小值 | 4 | 取最小数值及日期。
#禁止修改 | 1 | 如果禁止修改，则自动禁止添加和删除。
#禁止添加 | 2 |
#禁止删除 | 4 |
#禁止自动判断 | 8 |
#根类 | 1 |
#现行设置 | 2 |
#现行用户 | 3 |
#本地机器 | 4 |
#所有用户 | 5 |
#单击左键 | 1 |
#双击 | 2 |
#单击右键 | 3 |
#默认底色 | -16777216 |
#文本 | 1 |
#图片文件名 | 2 |
#图片数据 | 3 |
#字节集数据 | 4 |
#上左 | 1 |
#上中 | 2 |
#上右 | 3 |
#中左 | 4 |
#中中 | 5 |
#中右 | 6 |
#下左 | 7 |
#下中 | 8 |
#下右 | 9 |
#缩放图片 | 10 |
#居中图片 | 11 |
#缩放居中图片 | 12 |
#平铺图片 | 13 |
#缩放平铺图片 | 14 |
#粗体 | 1 |
#斜体 | 2 |
#下划线 | 4 |
#删除线 | 8 |
#通常型 | 0 |
#左边框 | 1 |
#上边框 | 2 |
#右边框 | 4 |
#下边框 | 8 |
#水平线 | 16 |
#垂直线 | 32 |
#单斜线 | 64 |
#双斜线 | 128 |
#交叉线 | 256 |
#左单元格 | 1 |
#上单元格 | 2 |
#右单元格 | 3 |
#下单元格 | 4 |
#无页号 | 0 |
#上左页号 | 1 |
#上中页号 | 2 |
#上右页号 | 3 |
#下左页号 | 4 |
#下中页号 | 5 |
#下右页号 | 6 |
#全部页 | 0 |
#仅打印奇数页 | 1 |
#仅打印偶数页 | 2 |
#页范围 | 1 |
#行范围 | 2 |
#纵向 | 0 |
#横向 | 1 |
#默认纸 | 0 |
#A3纸 | 1 | 297 x 420 毫米。
#A4纸 | 2 | 210 x 297 毫米。
#A5纸 | 3 | 148 x 210 毫米。
#B4纸 | 4 | 250 x 354 毫米。
#B5纸 | 5 | 182 x 257 毫米。
#四开 | 6 | 215 x 275 毫米。
#十六开 | 7 | 146 x 215 毫米。
#三十二开 | 8 | 97 x 151 毫米。
#信纸 | 9 | 216 x 279 毫米。
#法律用纸 | 10 | 216 x 355 毫米。
#行政用纸 | 11 | 184 x 266 毫米。
#声明 | 12 | 140 x 216 毫米。
#小报 | 13 | 279 x 432 毫米。
#笔记 | 14 | 216 x 279 毫米。
#帐本 | 15 | 432 x 279 毫米。
#对开纸 | 16 | 216 x 330 毫米。
#输入密码 | 4 |
#缩放到纸宽 | -1 |
#限定到纸宽 | -2 |
#常量 | 0 |
#资源 | 1 |
#清除信号 | 1 |
#发送或置位 | 2 |
#DTR信号 | 1 |
#RTS信号 | 2 |
#Break信号 | 3 |


置字体 (随想按钮)

置字体 方法 所属对象：随想按钮

返回一个字体对象。

语法： 无返回值 随想按钮．置字体 （参数1）

参数名 | 描 述
参数1 | 必需的；字体。

参见： 语法的描述规则、基本数据类型


置图片 (随想按钮)

置图片 方法 所属对象：随想按钮

返回或设置一个有一定格式规范的图片，作为按钮的外观皮肤。

语法： 无返回值 随想按钮．置图片 （参数1）

参数名 | 描 述
参数1 | 必需的；字节集。

参见： 语法的描述规则、基本数据类型


置图标 (随想按钮)

置图标 方法 所属对象：随想按钮

返回或设置一个图片，作为按钮的图标。

语法： 无返回值 随想按钮．置图标 （参数1）

参数名 | 描 述
参数1 | 必需的；字节集。

参见： 语法的描述规则、基本数据类型


取红色值 (随想按钮)

取红色值 方法 所属对象：随想按钮

语法： 整数型 随想按钮．取红色值 （RGB色）

参数名 | 描 述
RGB色 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取绿色值 (随想按钮)

取绿色值 方法 所属对象：随想按钮

语法： 整数型 随想按钮．取绿色值 （RGB色）

参数名 | 描 述
RGB色 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取蓝色值 (随想按钮)

取蓝色值 方法 所属对象：随想按钮

语法： 整数型 随想按钮．取蓝色值 （RGB色）

参数名 | 描 述
RGB色 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


变为灰色 (随想按钮)

变为灰色 方法 所属对象：随想按钮

语法： 无返回值 随想按钮．变为灰色 （SrcDC，nx，ny，nMaskColor，IMC，Dns）

参数名 | 描 述
SrcDC | 必需的；整数型。
nx | 必需的；整数型。
ny | 必需的；整数型。
nMaskColor | 必需的；整数型，初始值为“-1”。
IMC | 必需的；整数型，初始值为“-1”。
Dns | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


画灰色位图 (随想按钮)

画灰色位图 方法 所属对象：随想按钮

语法： 无返回值 随想按钮．画灰色位图 （hdc，nx，ny，nWidth，nHeight，nMaskColor，IMC，Dns）

参数名 | 描 述
hdc | 必需的；整数型。
nx | 必需的；整数型。
ny | 必需的；整数型。
nWidth | 必需的；整数型。
nHeight | 必需的；整数型。
nMaskColor | 必需的；整数型，初始值为“-1”。
IMC | 必需的；整数型，初始值为“-1”。
Dns | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


画灰色位图2 (随想按钮)

画灰色位图2 方法 所属对象：随想按钮

语法： 无返回值 随想按钮．画灰色位图2 （hdc，nx，ny，nWidth，nHeight，nMaskColor，IMC，Dns）

参数名 | 描 述
hdc | 必需的；整数型。
nx | 必需的；整数型。
ny | 必需的；整数型。
nWidth | 必需的；整数型。
nHeight | 必需的；整数型。
nMaskColor | 必需的；整数型，初始值为“-1”。
IMC | 必需的；整数型，初始值为“-1”。
Dns | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


变为灰色2 (随想按钮)

变为灰色2 方法 所属对象：随想按钮

语法： 无返回值 随想按钮．变为灰色2 （SrcDC，nx，ny，nMaskColor，IMC，Dns）

参数名 | 描 述
SrcDC | 必需的；整数型。
nx | 必需的；整数型。
ny | 必需的；整数型。
nMaskColor | 必需的；整数型，初始值为“-1”。
IMC | 必需的；整数型，初始值为“-1”。
Dns | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


取媒体信息 (WM播放器)

取媒体信息 方法 所属对象：WM播放器

返回媒体的消息文本。 Returns an Information String for the Media。

语法： 文本型 WM播放器．取媒体信息 （媒体信息类型）

参数名 | 描 述
媒体信息类型 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取消 (WM播放器)

取消 方法 所属对象：WM播放器

取消当前操作。 Cancels the current operation。

语法： 无返回值 WM播放器．取消 （）

参见： 语法的描述规则、基本数据类型


打开 (WM播放器)

打开 方法 所属对象：WM播放器

打开设备文件名。 Opens the given filename asynchronously。

语法： 无返回值 WM播放器．打开 （文件名）

参数名 | 描 述
文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


声卡激活 (WM播放器)

声卡激活 方法 所属对象：WM播放器

确定声卡在机器中是否被激活。 Determines whether the sound card is enabled on the machine。

语法： 逻辑型 WM播放器．声卡激活 （）

参见： 语法的描述规则、基本数据类型


向下 (WM播放器)

向下 方法 所属对象：WM播放器

跳转到下一项目。 Jumps to the next item。

语法： 无返回值 WM播放器．向下 （）

参见： 语法的描述规则、基本数据类型


向前 (WM播放器)

向前 方法 所属对象：WM播放器

Jumps to the previous item。

语法： 无返回值 WM播放器．向前 （）

参见： 语法的描述规则、基本数据类型


选择流 (WM播放器)

选择流 方法 所属对象：WM播放器

选择一个媒体流。 Selects a media stream。

语法： 无返回值 WM播放器．选择流 （流号）

参数名 | 描 述
流号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


快进 (WM播放器)

快进 方法 所属对象：WM播放器

快进重播。 Fast Forwards the playback。

语法： 无返回值 WM播放器．快进 （）

参见： 语法的描述规则、基本数据类型


快退 (WM播放器)

快退 方法 所属对象：WM播放器

Fast Reverses the playback。

语法： 无返回值 WM播放器．快退 （）

参见： 语法的描述规则、基本数据类型


取流名 (WM播放器)

取流名 方法 所属对象：WM播放器

返回媒体流的名称。 Returns the name of a media stream。

语法： 文本型 WM播放器．取流名 （流号）

参数名 | 描 述
流号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取流组 (WM播放器)

取流组 方法 所属对象：WM播放器

返回一个媒体流的组。 Returns the group of a media stream。

语法： 整数型 WM播放器．取流组 （流号）

参数名 | 描 述
流号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取选择流 (WM播放器)

取选择流 方法 所属对象：WM播放器

返回一个媒体流是否被选择。 Returns whether a media stream is selected。

语法： 逻辑型 WM播放器．取选择流 （流号）

参数名 | 描 述
流号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取媒体参数 (WM播放器)

取媒体参数 方法 所属对象：WM播放器

返回一个值给一个参数名和登陆号。 Returns the value for a given parameter name and entry number。

语法： 文本型 WM播放器．取媒体参数 （入口号，参数名）

参数名 | 描 述
入口号 | 必需的；整数型。
参数名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取媒体参数名 (WM播放器)

取媒体参数名 方法 所属对象：WM播放器

返回一个名称给一个参数索引和登陆号。 Returns the name for a given parameter index and entry number。

语法： 文本型 WM播放器．取媒体参数名 （入口号，索引）

参数名 | 描 述
入口号 | 必需的；整数型。
索引 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取当前入口 (WM播放器)

取当前入口 方法 所属对象：WM播放器

返回当前播放列表项的登陆号。 Returns the current playlist item's entry number。

语法： 整数型 WM播放器．取当前入口 （）

参见： 语法的描述规则、基本数据类型


置当前入口 (WM播放器)

置当前入口 方法 所属对象：WM播放器

Sets the current playlist entry。

语法： 无返回值 WM播放器．置当前入口 （入口号）

参数名 | 描 述
入口号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


显示会话 (WM播放器)

显示会话 方法 所属对象：WM播放器

显示包含播放器选项的类型对话框。 Displays modal dialog box containing WMP options。

语法： 无返回值 WM播放器．显示会话 （会话索引）

参数名 | 描 述
会话索引 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


Subtotal (vsFlexLib)

Subtotal 方法 所属对象：vsFlexLib

Calculates subtotals.

语法： 无返回值 vsFlexLib．Subtotal （Function，［GroupOn］，［TotalOn］，［Format］，［BackColor］，［ForeColor］，［FontBold］，［Caption］，［MatchFrom］）

参数名 | 描 述
Function | 必需的；整数型。
GroupOn | 可选的；通用型。
TotalOn | 可选的；通用型。
Format | 可选的；通用型。
BackColor | 可选的；通用型。
ForeColor | 可选的；通用型。
FontBold | 可选的；通用型。
Caption | 可选的；通用型。返回/设置按钮的文字。
MatchFrom | 可选的；通用型。

参见： 语法的描述规则、基本数据类型


刷新 (vsFlexLib)

刷新 方法 所属对象：vsFlexLib

语法： 无返回值 vsFlexLib．刷新 （）

参见： 语法的描述规则、基本数据类型


Outline (vsFlexLib)

Outline 方法 所属对象：vsFlexLib

Sets an outline level for displaying subtotals.

语法： 无返回值 vsFlexLib．Outline （Level）

参数名 | 描 述
Level | 必需的；短整数型。

参见： 语法的描述规则、基本数据类型


get_FixedAlignment (vsFlexLib)

get_FixedAlignment 方法 所属对象：vsFlexLib

Returns or sets the alignment for the fixed rows in a column.

语法： 整数型 vsFlexLib．get_FixedAlignment （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_FixedAlignment (vsFlexLib)

put_FixedAlignment 方法 所属对象：vsFlexLib

Returns or sets the alignment for the fixed rows in a column.

语法： 无返回值 vsFlexLib．put_FixedAlignment （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_RowIsVisible (vsFlexLib)

get_RowIsVisible 方法 所属对象：vsFlexLib

Returns whether a given row is currently within view.

语法： 逻辑型 vsFlexLib．get_RowIsVisible （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_ColIsVisible (vsFlexLib)

get_ColIsVisible 方法 所属对象：vsFlexLib

Returns whether a given column is currently within view.

语法： 逻辑型 vsFlexLib．get_ColIsVisible （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_RowPos (vsFlexLib)

get_RowPos 方法 所属对象：vsFlexLib

Returns the top (y) coordinate of a row relative to the edge of the control, in twips.

语法： 整数型 vsFlexLib．get_RowPos （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_ColPos (vsFlexLib)

get_ColPos 方法 所属对象：vsFlexLib

Returns the left (x) coordinate of a column relative to the edge of the control, in twips.

语法： 整数型 vsFlexLib．get_ColPos （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_IsSelected (vsFlexLib)

get_IsSelected 方法 所属对象：vsFlexLib

Returns or sets whether a row is selected (for listbox-type selections).

语法： 逻辑型 vsFlexLib．get_IsSelected （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_IsSelected (vsFlexLib)

put_IsSelected 方法 所属对象：vsFlexLib

Returns or sets whether a row is selected (for listbox-type selections).

语法： 无返回值 vsFlexLib．put_IsSelected （Row，参数2）

参数名 | 描 述
Row | 必需的；整数型。
参数2 | 必需的；逻辑型。

参见： 语法的描述规则、基本数据类型


get_TextArray (vsFlexLib)

get_TextArray 方法 所属对象：vsFlexLib

Returns or sets the contents of a cell identified by a single index.

语法： 文本型 vsFlexLib．get_TextArray （index）

参数名 | 描 述
index | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_TextArray (vsFlexLib)

put_TextArray 方法 所属对象：vsFlexLib

Returns or sets the contents of a cell identified by a single index.

语法： 无返回值 vsFlexLib．put_TextArray （index，参数2）

参数名 | 描 述
index | 必需的；整数型。
参数2 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


get_IsCollapsed (vsFlexLib)

get_IsCollapsed 方法 所属对象：vsFlexLib

Returns or sets whether an outline row is collapsed or expanded.

语法： 整数型 vsFlexLib．get_IsCollapsed （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_IsCollapsed (vsFlexLib)

put_IsCollapsed 方法 所属对象：vsFlexLib

Returns or sets whether an outline row is collapsed or expanded.

语法： 无返回值 vsFlexLib．put_IsCollapsed （Row，参数2）

参数名 | 描 述
Row | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


Select (vsFlexLib)

Select 方法 所属对象：vsFlexLib

Selects a range of cells.

语法： 无返回值 vsFlexLib．Select （Row，Col，［RowSel］，［ColSel］）

参数名 | 描 述
Row | 必需的；整数型。
Col | 必需的；整数型。
RowSel | 可选的；通用型。
ColSel | 可选的；通用型。

参见： 语法的描述规则、基本数据类型


AutoSize (vsFlexLib)

AutoSize 方法 所属对象：vsFlexLib

Resizes column widths or row heights to fit cell contents.

语法： 无返回值 vsFlexLib．AutoSize （Col1，［Col2］，［Equal］）

参数名 | 描 述
Col1 | 必需的；整数型。
Col2 | 可选的；通用型。
Equal | 可选的；通用型。

参见： 语法的描述规则、基本数据类型


DataRefresh (vsFlexLib)

DataRefresh 方法 所属对象：vsFlexLib

Forces the control to re-fetch all data from its data source.

语法： 无返回值 vsFlexLib．DataRefresh （）

参见： 语法的描述规则、基本数据类型


CellBorder (vsFlexLib)

CellBorder 方法 所属对象：vsFlexLib

Draws a border around and within the selected cells.

语法： 无返回值 vsFlexLib．CellBorder （Color，Left，Top，Right，Bottom，Vertical，Horizontal）

参数名 | 描 述
Color | 必需的；整数型。
Left | 必需的；短整数型。
Top | 必需的；短整数型。
Right | 必需的；短整数型。
Bottom | 必需的；短整数型。
Vertical | 必需的；短整数型。
Horizontal | 必需的；短整数型。

参见： 语法的描述规则、基本数据类型


OleDrag (vsFlexLib)

OleDrag 方法 所属对象：vsFlexLib

Initiates an OLE drag operation.

语法： 无返回值 vsFlexLib．OleDrag （）

参见： 语法的描述规则、基本数据类型


SaveGrid (vsFlexLib)

SaveGrid 方法 所属对象：vsFlexLib

Saves grid contents and format to a file.

语法： 整数型 vsFlexLib．SaveGrid （FileName，SaveWhat）

参数名 | 描 述
FileName | 必需的；文本型。
SaveWhat | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


LoadGrid (vsFlexLib)

LoadGrid 方法 所属对象：vsFlexLib

Loads grid contents and format from a file.

语法： 整数型 vsFlexLib．LoadGrid （FileName，LoadWhat）

参数名 | 描 述
FileName | 必需的；文本型。
LoadWhat | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


Archive (vsFlexLib)

Archive 方法 所属对象：vsFlexLib

Adds, extracts, or deletes files from a vsFlex archive file.

语法： 无返回值 vsFlexLib．Archive （arcFileName，FileName，Action）

参数名 | 描 述
arcFileName | 必需的；文本型。
FileName | 必需的；文本型。
Action | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_ArchiveInfo (vsFlexLib)

get_ArchiveInfo 方法 所属对象：vsFlexLib

Gets information from a vsFlex archive file.

语法： 通用型 vsFlexLib．get_ArchiveInfo （ArcFile，InfoType，［index］）

参数名 | 描 述
ArcFile | 必需的；文本型。
InfoType | 必需的；整数型。
index | 可选的；通用型。

参见： 语法的描述规则、基本数据类型


get_ColSort (vsFlexLib)

get_ColSort 方法 所属对象：vsFlexLib

Returns or sets the sorting order for each column (for use with the Sort property).

语法： 整数型 vsFlexLib．get_ColSort （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_ColSort (vsFlexLib)

put_ColSort 方法 所属对象：vsFlexLib

Returns or sets the sorting order for each column (for use with the Sort property).

语法： 无返回值 vsFlexLib．put_ColSort （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_ColFormat (vsFlexLib)

get_ColFormat 方法 所属对象：vsFlexLib

Returns or sets the format used to display numeric values.

语法： 文本型 vsFlexLib．get_ColFormat （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_ColFormat (vsFlexLib)

put_ColFormat 方法 所属对象：vsFlexLib

Returns or sets the format used to display numeric values.

语法： 无返回值 vsFlexLib．put_ColFormat （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


get_ColDataType (vsFlexLib)

get_ColDataType 方法 所属对象：vsFlexLib

Returns or sets the data type for the column.

语法： 整数型 vsFlexLib．get_ColDataType （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_ColDataType (vsFlexLib)

put_ColDataType 方法 所属对象：vsFlexLib

Returns or sets the data type for the column.

语法： 无返回值 vsFlexLib．put_ColDataType （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


关于对话框 (vsFlexLib)

关于对话框 方法 所属对象：vsFlexLib

语法： 无返回值 vsFlexLib．关于对话框 （）

参见： 语法的描述规则、基本数据类型


取被选择表项 (超级列表框)

取被选择表项 方法 所属对象：超级列表框

返回一个整数数组，內含所有当前被选择表项的位置索引。如果当前没有被选择表项，返回空数组。

语法： 整数型数组 超级列表框．取被选择表项 （）

参见： 语法的描述规则、基本数据类型


取已选择表项数 (超级列表框)

取已选择表项数 方法 所属对象：超级列表框

返回当前已被选择表项的数目。

语法： 整数型 超级列表框．取已选择表项数 （）

参见： 语法的描述规则、基本数据类型


是否被选择 (超级列表框)

是否被选择 方法 所属对象：超级列表框

判断指定表项是否已经被选择，如已被选择，返回真，否则返回假。

语法： 逻辑型 超级列表框．是否被选择 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


选择表项 (超级列表框)

选择表项 方法 所属对象：超级列表框

选择指定表项。

语法： 无返回值 超级列表框．选择表项 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


取消表项选择 (超级列表框)

取消表项选择 方法 所属对象：超级列表框

取消对指定表项的选择。

语法： 无返回值 超级列表框．取消表项选择 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


取表项数 (超级列表框)

取表项数 方法 所属对象：超级列表框

返回列表框中所有表项的数目。

语法： 整数型 超级列表框．取表项数 （）

参见： 语法的描述规则、基本数据类型


插入表项 (超级列表框)

插入表项 方法 所属对象：超级列表框

在指定的位置插入新表项，成功返回新表项的位置索引，失败返回 -1 。

语法： 整数型 超级列表框．插入表项 （［插入位置］，［标题］，［图片索引］，［状态图片索引］，［缩进数目］，［表项数值］）

参数名 | 描 述
插入位置 | 可选的；整数型。指定新表项插入时的位置索引，索引值从 0 开始。如果提供 -1 ，则插入到列表框的尾部。如果本参数被省略，默认值为 -1 。
标题 | 可选的；文本型。本参数指定表项的标题文本。如果被省略，默认值为空文本。
图片索引 | 可选的；整数型。图片索引用于指定“图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。
状态图片索引 | 可选的；整数型。状态图片索引用于指定“状态图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。
缩进数目 | 可选的；整数型。“缩进数目”仅在报表型列表框才有效，用作指定显示时在表项首部增加的空白数。如果本参数被省略，默认值为 0 。
表项数值 | 可选的；整数型。该数值与指定表项相关联。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


删除表项 (超级列表框)

删除表项 方法 所属对象：超级列表框

删除指定位置的表项。

语法： 无返回值 超级列表框．删除表项 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


全部删除 (超级列表框)

全部删除 方法 所属对象：超级列表框

删除所有的表项。

语法： 无返回值 超级列表框．全部删除 （）

参见： 语法的描述规则、基本数据类型


查找表项 (超级列表框)

查找表项 方法 所属对象：超级列表框

查找具有指定标题的表项，成功返回被找到表项的位置索引，失败返回 -1 。

语法： 整数型 超级列表框．查找表项 （标题，［起始查找位置］，［是否精确匹配］）

参数名 | 描 述
标题 | 必需的；文本型。本参数指定欲查找表项的标题文本。
起始查找位置 | 可选的；整数型。本参数指定查找表项的起始位置。如果本参数被省略，默认值为 0 ，即从首项开始查找。
是否精确匹配 | 可选的；逻辑型。本参数指定匹配标题文本时是否为精确匹配，如果本参数为假，则只要表项标题首部包含指定文本即认为匹配成功。如果本参数被省略，默认值为真。

参见： 语法的描述规则、基本数据类型


查找表项数值 (超级列表框)

查找表项数值 方法 所属对象：超级列表框

查找具有指定关联数值的表项，成功返回被找到表项的位置索引，失败返回 -1 。

语法： 整数型 超级列表框．查找表项数值 （［起始查找位置］，［表项数值］）

参数名 | 描 述
起始查找位置 | 可选的；整数型。本参数指定查找表项的起始位置。如果本参数被省略，默认值为 0 ，即从首项开始查找。
表项数值 | 可选的；整数型。该数值与指定表项相关联。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


保证显示 (超级列表框)

保证显示 方法 所属对象：超级列表框

确保指定表项能够显示出来，如果不能显示，则自动滚动并显示该表项。

语法： 无返回值 超级列表框．保证显示 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


排列图标 (超级列表框)

排列图标 方法 所属对象：超级列表框

自动排列大图标或小图标列表框中的图标。

语法： 无返回值 超级列表框．排列图标 （）

参见： 语法的描述规则、基本数据类型


取列标题 (超级列表框)

取列标题 方法 所属对象：超级列表框

返回报表型列表框中指定列的标题。

语法： 文本型 超级列表框．取列标题 （列索引）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


取列对齐方式 (超级列表框)

取列对齐方式 方法 所属对象：超级列表框

取回报表型列表框中指定列的对齐方式。返回值为以下常量之一： 0：#左对齐； 1：#中间对齐； 2：#右对齐。

语法： 整数型 超级列表框．取列对齐方式 （列索引）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


取列宽 (超级列表框)

取列宽 方法 所属对象：超级列表框

返回报表型列表框中指定列的宽度，如指定列不存在，返回 0 。

语法： 整数型 超级列表框．取列宽 （列索引）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


取列图片 (超级列表框)

取列图片 方法 所属对象：超级列表框

返回报表型列表框中指定列的图片索引。

语法： 整数型 超级列表框．取列图片 （列索引）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


图片是否居右 (超级列表框)

图片是否居右 方法 所属对象：超级列表框

如果报表型列表框中指定列的图片居右显示，返回真，否则返回假。

语法： 逻辑型 超级列表框．图片是否居右 （列索引）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


置列标题 (超级列表框)

置列标题 方法 所属对象：超级列表框

设置报表型列表框中指定列的标题。

语法： 无返回值 超级列表框．置列标题 （列索引，［标题］）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。
标题 | 可选的；文本型。本参数指定报表列的标题文本。如果被省略，默认值为空文本。

参见： 语法的描述规则、基本数据类型


置列宽 (超级列表框)

置列宽 方法 所属对象：超级列表框

设置报表型列表框中指定列的宽度。

语法： 无返回值 超级列表框．置列宽 （列索引，［列宽］）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。
列宽 | 可选的；整数型。本参数指定报表列的宽度，单位为像素。如果参数值提供为 -1 ，则根据列数据最大宽度自动调整列尺寸，如果参数值提供为 -2 ，则根据列标题宽度自动调整列尺寸。如果本参数被省略，默认值为 -1 。

参见： 语法的描述规则、基本数据类型


置列图片 (超级列表框)

置列图片 方法 所属对象：超级列表框

设置报表型列表框中指定列的标志图片。

语法： 无返回值 超级列表框．置列图片 （列索引，［图片索引］）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。
图片索引 | 可选的；整数型。图片索引用于指定“表头图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参见： 语法的描述规则、基本数据类型


取列数 (超级列表框)

取列数 方法 所属对象：超级列表框

返回报表型列表框中列的总数。

语法： 整数型 超级列表框．取列数 （）

参见： 语法的描述规则、基本数据类型


插入列 (超级列表框)

插入列 方法 所属对象：超级列表框

在报表型列表框中指定位置插入新的列，成功返回新列的位置索引，失败返回 -1 。

语法： 整数型 超级列表框．插入列 （［插入位置］，［标题］，［列宽］，［对齐方式］，［图片索引］，［图片是否居右］）

参数名 | 描 述
插入位置 | 可选的；整数型。指定新列插入时的位置索引，索引值从 0 开始。如果提供 -1 ，则插入到尾部。如果本参数被省略，默认值为 -1 。
标题 | 可选的；文本型。本参数指定报表列的标题文本。如果被省略，默认值为空文本。
列宽 | 可选的；整数型。本参数指定报表列的宽度，单位为像素。如果被省略，默认值为 50 。
对齐方式 | 可选的；整数型。参数可以为以下常量之一： 0：#左对齐； 1：#中间对齐； 2：#右对齐。如果本参数被省略，默认值为“#左对齐”。
图片索引 | 可选的；整数型。图片索引用于指定“表头图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。
图片是否居右 | 可选的；逻辑型。指定图片是否显示在右边，如果本参数被省略，默认值为假。

参见： 语法的描述规则、基本数据类型


删除列 (超级列表框)

删除列 方法 所属对象：超级列表框

删除报表型列表框中指定位置处的列。

语法： 无返回值 超级列表框．删除列 （列索引）

参数名 | 描 述
列索引 | 必需的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


进入编辑 (超级列表框)

进入编辑 方法 所属对象：超级列表框

让指定表项进入编辑状态，执行本命令成功的前提是“允许编辑”属性为真。

语法： 无返回值 超级列表框．进入编辑 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


取父项目 (树型框)

取父项目 方法 所属对象：树型框

返回指定项目的父项目索引。如果该项目为顶层项目，将返回 -1 。

语法： 整数型 树型框．取父项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


是否有子项目 (树型框)

是否有子项目 方法 所属对象：树型框

如果指定项目存在子项目，返回真，否则返回假。如果本命令返回真，意味着指定项目的下一项即为此项目的第一个子项目。

语法： 逻辑型 树型框．是否有子项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


是否已扩展 (树型框)

是否已扩展 方法 所属对象：树型框

如果树型框中的指定项目具有子项目并已扩展显示，返回真，否则返回假。

语法： 逻辑型 树型框．是否已扩展 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


到全角

到全角 命令 所属类别：文本操作

将文本中的半角字母、空格或数字变换为全角，返回变换后的结果文本。

语法： 文本型 到全角 （欲变换的文本）

参数名 | 描 述
欲变换的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


到半角

到半角 命令 所属类别：文本操作

将文本中的全角字母、空格或数字变换为半角，返回变换后的结果文本。

语法： 文本型 到半角 （欲变换的文本）

参数名 | 描 述
欲变换的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


到时间

到时间 命令 所属类别：时间操作

将指定文本转换为时间并返回。如果给定文本不符合书写格式要求或者时间值错误导致不能进行转换，将返回100年1月1日。如果给定参数本身就是时间数据，将直接返回该时间。

语法： 日期时间型 到时间 （欲转换的文本）

参数名 | 描 述
欲转换的文本 | 必需的；通用型。文本内容应按以下格式之一提供，年份后的时间部分可以省略： 1、1973年11月15日12时30分25秒 2、1973/11/15 12:30:25 3、1973/11/15/12/30/25 4、1973/11/15/12:30:25 5、1973-11-15-12-30-25 6、1973-11-15-12:30:25 7、19731115123025

参见： 语法的描述规则、基本数据类型


到数值

到数值 命令 所属类别：数值转换

返回包含于文本内的数值，文本中是一个适当类型的数值，支持全角书写方式。本命令也可用作将其他类型的数值数据转换为双精度小数。

语法： 双精度小数型 到数值 （待转换的文本或数值）

参数名 | 描 述
待转换的文本或数值 | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


到文本

到文本 命令 所属类别：文本操作

返回一个文本，代表指定数值、逻辑值或日期时间被转换后的结果。如果为文本数据，将被直接返回。

语法： 文本型 到文本 （待转换的数据）

参数名 | 描 述
待转换的数据 | 必需的；通用型，参数数据可以同时提供数组或非数组数据。参数值只能为数值、逻辑值、字节集、日期时间或字节数组。

参见： 语法的描述规则、基本数据类型


删首空

删首空 命令 所属类别：文本操作

返回一个文本，其中包含被删除了首部全角或半角空格的指定文本。

语法： 文本型 删首空 （欲删除空格的文本）

参数名 | 描 述
欲删除空格的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


删尾空

删尾空 命令 所属类别：文本操作

返回一个文本，其中包含被删除了尾部全角或半角空格的指定文本。

语法： 文本型 删尾空 （欲删除空格的文本）

参数名 | 描 述
欲删除空格的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


删首尾空

删首尾空 命令 所属类别：文本操作

返回一个文本，其中包含被删除了首部及尾部全角或半角空格的指定文本。

语法： 文本型 删首尾空 （欲删除空格的文本）

参数名 | 描 述
欲删除空格的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


删全部空

删全部空 命令 所属类别：文本操作

返回一个文本，其中包含被删除了所有全角或半角空格的指定文本。

语法： 文本型 删全部空 （欲删除空格的文本）

参数名 | 描 述
欲删除空格的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


文本替换

文本替换 命令 所属类别：文本操作

将指定文本的某一部分用其它的文本替换。

语法： 文本型 文本替换 （欲被替换的文本，起始替换位置，替换长度，［用作替换的文本］）

参数名 | 描 述
欲被替换的文本 | 必需的；文本型。
起始替换位置 | 必需的；整数型。替换的起始位置，1为首位置，2为第2个位置，如此类推。
替换长度 | 必需的；整数型。
用作替换的文本 | 可选的；文本型。如果本参数被省略，则删除文本中的指定部分。

参见： 语法的描述规则、基本数据类型


子文本替换

子文本替换 命令 所属类别：文本操作

返回一个文本，该文本中指定的子文本已被替换成另一子文本，并且替换发生的次数也是被指定的。

语法： 文本型 子文本替换 （欲被替换的文本，欲被替换的子文本，［用作替换的子文本］，［进行替换的起始位置］，［替换进行的次数］，是否区分大小写）

参数名 | 描 述
欲被替换的文本 | 必需的；文本型。
欲被替换的子文本 | 必需的；文本型。
用作替换的子文本 | 可选的；文本型。如果本参数被省略，默认为空文本。
进行替换的起始位置 | 可选的；整数型。参数值指定被替换子文本的起始搜索位置。如果省略，默认从 1 开始。
替换进行的次数 | 可选的；整数型。参数值指定对子文本进行替换的次数。如果省略，默认进行所有可能的替换。
是否区分大小写 | 必需的；逻辑型，初始值为“真”。为真区分大小写，为假不区分。

参见： 语法的描述规则、基本数据类型


取空白文本

取空白文本 命令 所属类别：文本操作

返回具有指定数目半角空格的文本。

语法： 文本型 取空白文本 （重复次数）

参数名 | 描 述
重复次数 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取重复文本

取重复文本 命令 所属类别：文本操作

返回一个文本，其中包含指定次数的文本重复结果。

语法： 文本型 取重复文本 （重复次数，待重复文本）

参数名 | 描 述
重复次数 | 必需的；整数型。
待重复文本 | 必需的；文本型。该文本将用于建立返回的文本。如果为空，将返回一个空文本。

参见： 语法的描述规则、基本数据类型


文本比较

文本比较 命令 所属类别：文本操作

如果返回值小于0，表示文本一小于文本二；如果等于0，表示文本一等于文本二；如果大于0，表示文本一大于文本二。如果比较时区分大小写，也可以使用比较运算符进行同样的操作。

语法： 整数型 文本比较 （待比较文本一，待比较文本二，是否区分大小写）

参数名 | 描 述
待比较文本一 | 必需的；文本型。
待比较文本二 | 必需的；文本型。
是否区分大小写 | 必需的；逻辑型，初始值为“真”。为真区分大小写，为假不区分。

参见： 语法的描述规则、基本数据类型


分割文本

分割文本 命令 所属类别：文本操作

将指定文本进行分割，返回分割后的一维文本数组。

语法： 文本型数组 分割文本 （待分割文本，［用作分割的文本］，［要返回的子文本数目］）

参数名 | 描 述
待分割文本 | 必需的；文本型。如果参数值是一个长度为零的文本，则返回一个空数组，即没有任何成员的数组。
用作分割的文本 | 可选的；文本型。参数值用于标识子文本边界。如果被省略，则默认使用半角逗号字符作为分隔符。如果是一个长度为零的文本，则返回的数组仅包含一个成员，即完整的“待分割文本”。
要返回的子文本数目 | 可选的；整数型。如果被省略，则默认返回所有的子文本。

参见： 语法的描述规则、基本数据类型


取字节集长度

取字节集长度 命令 所属类别：字节集操作

取字节集型数据的长度。

语法： 整数型 取字节集长度 （字节集数据）

参数名 | 描 述
字节集数据 | 必需的；字节集。参数值指定欲检查其长度的字节集数据。

参见： 语法的描述规则、基本数据类型


到字节集

到字节集 命令 所属类别：字节集操作

将指定数据转换为字节集后返回转换结果。

语法： 字节集 到字节集 （欲转换为字节集的数据）

参数名 | 描 述
欲转换为字节集的数据 | 必需的；通用型，参数数据可以同时提供数组或非数组数据。参数值只能为基本数据类型数据或字节数组。

参见： 语法的描述规则、基本数据类型


从字节集转换

从字节集转换 命令 所属类别：字节集操作

将字节集转换成指定数据类型的数据，返回转换后的结果。

语法： 通用型 从字节集转换 （欲转换的字节集，欲转换为的数据类型）

参数名 | 描 述
欲转换的字节集 | 必需的；字节集。
欲转换为的数据类型 | 必需的；整数型。参数值可以为以下常量： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 9、#子程序指针型； 10、#文本型。转换后的数据将自动进行有效性校验及转换处理。

参见： 语法的描述规则、基本数据类型


取字节集左边

取字节集左边 命令 所属类别：字节集操作

返回一个字节集，其中包含指定字节集中从左边算起指定数量的字节。

语法： 字节集 取字节集左边 （欲取其部分的字节集，欲取出字节的数目）

参数名 | 描 述
欲取其部分的字节集 | 必需的；字节集。
欲取出字节的数目 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取字节集右边

取字节集右边 命令 所属类别：字节集操作

返回一个字节集，其中包含指定字节集中从右边算起指定数量的字节。

语法： 字节集 取字节集右边 （欲取其部分的字节集，欲取出字节的数目）

参数名 | 描 述
欲取其部分的字节集 | 必需的；字节集。
欲取出字节的数目 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取字节集中间

取字节集中间 命令 所属类别：字节集操作

返回一个字节集，其中包含指定字节集中从指定位置算起指定数量的字节。

语法： 字节集 取字节集中间 （欲取其部分的字节集，起始取出位置，欲取出字节的数目）

参数名 | 描 述
欲取其部分的字节集 | 必需的；字节集。
起始取出位置 | 必需的；整数型。1为首位置，2为第2个位置，如此类推。
欲取出字节的数目 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


寻找字节集

寻找字节集 命令 所属类别：字节集操作

返回一字节集在另一字节集中最先出现的位置，位置值从 1 开始。如果未找到，返回 -1。

语法： 整数型 寻找字节集 （被搜寻的字节集，欲寻找的字节集）

参数名 | 描 述
被搜寻的字节集 | 必需的；字节集。
欲寻找的字节集 | 必需的；字节集。

参见： 语法的描述规则、基本数据类型


倒找字节集

倒找字节集 命令 所属类别：字节集操作

返回一字节集在另一字节集中最后出现的位置，位置值从 1 开始。如果未找到，返回 -1。

语法： 整数型 倒找字节集 （被搜寻的字节集，欲寻找的字节集）

参数名 | 描 述
被搜寻的字节集 | 必需的；字节集。
欲寻找的字节集 | 必需的；字节集。

参见： 语法的描述规则、基本数据类型


字节集替换

字节集替换 命令 所属类别：字节集操作

将指定字节集的某一部分用其它的字节集替换，然后返回替换后的结果。

语法： 字节集 字节集替换 （欲替换其部分的字节集，起始替换位置，替换长度，［用作替换的字节集］）

参数名 | 描 述
欲替换其部分的字节集 | 必需的；字节集。
起始替换位置 | 必需的；整数型。替换的起始位置，1为首位置，2为第2个位置，如此类推。
替换长度 | 必需的；整数型。
用作替换的字节集 | 可选的；字节集。如果本参数被省略，则删除字节集中的指定部分。

参见： 语法的描述规则、基本数据类型


子字节集替换

子字节集替换 命令 所属类别：字节集操作

返回一个字节集，该字节集中指定的子字节集已被替换成另一子字节集，并且替换发生的次数也是被指定的。

语法： 字节集 子字节集替换 （欲被替换的字节集，欲被替换的子字节集，［用作替换的子字节集］，［进行替换的起始位置］，［替换进行的次数］）

参数名 | 描 述
欲被替换的字节集 | 必需的；字节集。
欲被替换的子字节集 | 必需的；字节集。
用作替换的子字节集 | 可选的；字节集。如果省略本参数，则默认为空字节集。
进行替换的起始位置 | 可选的；整数型。被替换子字节集的起始搜索位置。如果省略，默认从1开始。
替换进行的次数 | 可选的；整数型。对子字节集进行替换的次数。如果省略，默认进行所有可能的替换。

参见： 语法的描述规则、基本数据类型


取空白字节集

取空白字节集 命令 所属类别：字节集操作

返回具有特定数目 0 字节的字节集。

语法： 字节集 取空白字节集 （零字节数目）

参数名 | 描 述
零字节数目 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取重复字节集

取重复字节集 命令 所属类别：字节集操作

返回一个字节集，其中包含指定次数的字节集重复结果。

语法： 字节集 取重复字节集 （重复次数，待重复的字节集）

参数名 | 描 述
重复次数 | 必需的；整数型。
待重复的字节集 | 必需的；字节集。该字节集将用于建立返回的字节集。如果为空，将返回一个空字节集。

参见： 语法的描述规则、基本数据类型


分割字节集

分割字节集 命令 所属类别：字节集操作

将指定字节集进行分割，返回分割后的一维字节集数组。

语法： 字节集数组 分割字节集 （待分割字节集，［用作分割的字节集］，［要返回的子字节集数目］）

参数名 | 描 述
待分割字节集 | 必需的；字节集。如果参数值是一个长度为零的字节集，则返回一个空数组，即没有任何成员的数组。
用作分割的字节集 | 可选的；字节集。用于标识子字节集边界。本参数如果被省略，则默认使用字节 0 作为分隔符。
要返回的子字节集数目 | 可选的；整数型。如果被省略，则默认返回所有的子字节集。

参见： 语法的描述规则、基本数据类型


数值到大写

数值到大写 命令 所属类别：数值转换

将数值转换为简体或繁体的大写形式，返回转换后的文本。

语法： 文本型 数值到大写 （欲转换形式的数值，是否转换为简体）

参数名 | 描 述
欲转换形式的数值 | 必需的；双精度小数型。
是否转换为简体 | 必需的；逻辑型，初始值为“假”。如果参数值为假，则转换为繁体。

参见： 语法的描述规则、基本数据类型


数值到人民币

数值到人民币 命令 所属类别：数值转换

将数值转换为人民币金额的简体或繁体大写形式，返回转换后的文本。

语法： 文本型 数值到人民币 （欲转换形式的数值，是否转换为简体）

参数名 | 描 述
欲转换形式的数值 | 必需的；双精度小数型。
是否转换为简体 | 必需的；逻辑型，初始值为“假”。如果参数值为假，则转换为繁体。

参见： 语法的描述规则、基本数据类型


数值到格式文本

数值到格式文本 命令 所属类别：数值转换

返回一个文本，代表指定数值被格式转换后的结果。

语法： 文本型 数值到格式文本 （欲转换为文本的数值，［小数保留位数］，是否进行千分位分隔）

参数名 | 描 述
欲转换为文本的数值 | 必需的；双精度小数型。
小数保留位数 | 可选的；整数型。如果大于0，表示小数点右边应四舍五入保留的位数；如果等于0，表示舍入到整数；如果小于0，表示小数点左边舍入到的位置。例如：数值到格式文本 (1056.65, 1, 假) 返回 “1056.7”； 数值到格式文本 (1056.65, 0, 假) 返回 “1056”； 数值到格式文本 (1056.65, -1, 假) 返回 “1060”。如果省略本参数，则默认为保留所有实际存在的小数位。
是否进行千分位分隔 | 必需的；逻辑型，初始值为“假”。如果参数值为真，数值文本的每个千分位上都将被自动插入一个逗号进行分隔。

参见： 语法的描述规则、基本数据类型


取十六进制文本

取十六进制文本 命令 所属类别：数值转换

返回一个文本，代表指定数值的十六进制形式。

语法： 文本型 取十六进制文本 （欲取进制文本的数值）

参数名 | 描 述
欲取进制文本的数值 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取八进制文本

取八进制文本 命令 所属类别：数值转换

返回一个文本，代表指定数值的八进制形式。

语法： 文本型 取八进制文本 （欲取进制文本的数值）

参数名 | 描 述
欲取进制文本的数值 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


增减时间

增减时间 命令 所属类别：时间操作

返回一个时间，这一时间被加上或减去了一段间隔。如果改变后的时间无效，将自动靠近最近的有效时间。

语法： 日期时间型 增减时间 （时间，被增加部分，增加值）

参数名 | 描 述
时间 | 必需的；日期时间型。
被增加部分 | 必需的；整数型。参数值指定增加或减少时间的哪一部分，可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#周； 5、#日； 6、#小时； 7、#分钟； 8、#秒。
增加值 | 必需的；整数型。相对于被增加部分的增加或减少数值。

参见： 语法的描述规则、基本数据类型


取时间间隔

取时间间隔 命令 所属类别：时间操作

返回一个数值，表示“时间1”减去“时间2”之后的间隔数目。注意：每个星期以星期天为第一天。

语法： 双精度小数型 取时间间隔 （时间1，时间2，取间隔部分）

参数名 | 描 述
时间1 | 必需的；日期时间型。
时间2 | 必需的；日期时间型。
取间隔部分 | 必需的；整数型。参数值指定取时间间隔的单位，可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#周； 5、#日； 6、#小时； 7、#分钟； 8、#秒。

参见： 语法的描述规则、基本数据类型


取某月天数

取某月天数 命令 所属类别：时间操作

返回指定月份所包含的天数。如果给定的月份无效，返回0。

语法： 整数型 取某月天数 （年份，月份）

参数名 | 描 述
年份 | 必需的；整数型。参数值从 100 到 9999。
月份 | 必需的；整数型。参数值从 1 到 12。

参见： 语法的描述规则、基本数据类型


时间到文本

时间到文本 命令 所属类别：时间操作

将指定时间转换为文本并返回。

语法： 文本型 时间到文本 （欲转换到文本的时间，［转换部分］）

参数名 | 描 述
欲转换到文本的时间 | 必需的；日期时间型。
转换部分 | 可选的；整数型。参数值可以为以下常量： 1、#全部转换； 2、#日期部分； 3、#时间部分。如果省略了本参数，默认为“#全部转换”。

参见： 语法的描述规则、基本数据类型


取时间部分

取时间部分 命令 所属类别：时间操作

返回一个包含已知时间指定部分的整数。

语法： 整数型 取时间部分 （欲取其部分的时间，欲取的时间部分）

参数名 | 描 述
欲取其部分的时间 | 必需的；日期时间型。
欲取的时间部分 | 必需的；整数型。参数值可以为以下常量： 1、#年份； 2、#季度； 3、#月份； 4、#自年首周数； 5、#日； 6、#小时； 7、#分钟； 8、#秒； 9、#星期几； 10、#自年首天数。其中：自年首周数、自年首天数均从 1 开始。

参见： 语法的描述规则、基本数据类型


取年份

取年份 命令 所属类别：时间操作

返回一个值为 100 到 9999 之间的整数，表示指定时间中的年份。

语法： 整数型 取年份 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


取月份

取月份 命令 所属类别：时间操作

返回一个值为 1 到 12 之间的整数，表示指定时间中的月份。

语法： 整数型 取月份 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


取日

取日 命令 所属类别：时间操作

返回一个值为 1 到 31 之间的整数，表示一个月中的某一日。

语法： 整数型 取日 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


取星期几

取星期几 命令 所属类别：时间操作

返回一个值为 1 到 7 之间的整数，表示一个星期中的某一日。星期日为 1，星期一为 2，依此类推。

语法： 整数型 取星期几 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


取小时

取小时 命令 所属类别：时间操作

返回一个值为 0 到 23 之间的整数，表示一天中的某一小时。

语法： 整数型 取小时 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


取分钟

取分钟 命令 所属类别：时间操作

返回一个值为 0 到 59 之间的整数，表示一小时中的某一分钟。

语法： 整数型 取分钟 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


取秒

取秒 命令 所属类别：时间操作

返回一个值为 0 到 59 之间的整数，表示一分钟中的某一秒。

语法： 整数型 取秒 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


指定时间

指定时间 命令 所属类别：时间操作

返回包含指定年、月、日、小时、分、秒的时间。如果指定了无效时间，将自动使用最相近的有效时间代替。

语法： 日期时间型 指定时间 （年，［月］，［日］，［小时］，［分钟］，［秒］）

参数名 | 描 述
年 | 必需的；整数型。
月 | 可选的；整数型。如果本参数被省略，默认为 1 月。
日 | 可选的；整数型。如果本参数被省略，默认为 1 日。
小时 | 可选的；整数型。如果本参数被省略，默认为 0 时。
分钟 | 可选的；整数型。如果本参数被省略，默认为 0 分钟。
秒 | 可选的；整数型。如果本参数被省略，默认为 0 秒。

参见： 语法的描述规则、基本数据类型


取现行时间

取现行时间 命令 所属类别：时间操作

返回当前系统日期及时间。

语法： 日期时间型 取现行时间 （）

参见： 语法的描述规则、基本数据类型


置现行时间

置现行时间 命令 所属类别：时间操作

设置当前系统日期及时间。成功返回真，失败返回假。

语法： 逻辑型 置现行时间 （欲设置的时间）

参数名 | 描 述
欲设置的时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


取磁盘总空间

取磁盘总空间 命令 所属类别：磁盘操作

返回以 1024 字节（KB）为单位的指定磁盘全部空间。如果失败，返回-1。

语法： 整数型 取磁盘总空间 （［磁盘驱动器字符］）

参数名 | 描 述
磁盘驱动器字符 | 可选的；文本型。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

参见： 语法的描述规则、基本数据类型


取磁盘剩余空间

取磁盘剩余空间 命令 所属类别：磁盘操作

返回以 1024 字节（KB）为单位的指定磁盘现行剩余空间。如果失败，返回-1。

语法： 整数型 取磁盘剩余空间 （［磁盘驱动器字符］）

参数名 | 描 述
磁盘驱动器字符 | 可选的；文本型。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

参见： 语法的描述规则、基本数据类型


取磁盘卷标

取磁盘卷标 命令 所属类别：磁盘操作

返回指定磁盘的卷标文本。

语法： 文本型 取磁盘卷标 （［磁盘驱动器字符］）

参数名 | 描 述
磁盘驱动器字符 | 可选的；文本型。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。

参见： 语法的描述规则、基本数据类型


置磁盘卷标

置磁盘卷标 命令 所属类别：磁盘操作

设置指定磁盘的卷标文本。成功返回真，失败返回假。

语法： 逻辑型 置磁盘卷标 （［磁盘驱动器字符］，欲置入的卷标文本）

参数名 | 描 述
磁盘驱动器字符 | 可选的；文本型。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果本参数被省略，默认使用当前驱动器。
欲置入的卷标文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


改变驱动器

改变驱动器 命令 所属类别：磁盘操作

改变当前的缺省驱动器。成功返回真，失败返回假。

语法： 逻辑型 改变驱动器 （欲改变到的驱动器）

参数名 | 描 述
欲改变到的驱动器 | 必需的；文本型。参数值指明一个存在的驱动器。类似“A”、“B”、“C”等，只取用给定文本的第一个字符。如果使用零长度的文本，则当前的驱动器不会改变。

参见： 语法的描述规则、基本数据类型


改变目录

改变目录 命令 所属类别：磁盘操作

改变当前的目录，但不会改变缺省驱动器位置。成功返回真，失败返回假。

语法： 逻辑型 改变目录 （欲改变到的目录）

参数名 | 描 述
欲改变到的目录 | 必需的；文本型。参数值指明哪个目录将成为新的缺省目录，可能会包含驱动器。如果没有指定驱动器，则在当前的驱动器上改变缺省目录。

参见： 语法的描述规则、基本数据类型


取当前目录

取当前目录 命令 所属类别：磁盘操作

返回一个文本，用来代表当前的目录。如果失败，返回空文本。

语法： 文本型 取当前目录 （）

参见： 语法的描述规则、基本数据类型


创建目录

创建目录 命令 所属类别：磁盘操作

创建一个新的目录。成功返回真，失败返回假。

语法： 逻辑型 创建目录 （欲创建的目录名称）

参数名 | 描 述
欲创建的目录名称 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


删除目录

删除目录 命令 所属类别：磁盘操作

删除一个存在的目录。成功返回真，失败返回假。

语法： 逻辑型 删除目录 （欲删除的目录名称）

参数名 | 描 述
欲删除的目录名称 | 必需的；文本型。该目录应实际存在，如果目录中存在文件或子目录，将被一并删除，因此使用本命令请千万慎重。

参见： 语法的描述规则、基本数据类型


复制文件

复制文件 命令 所属类别：磁盘操作

成功返回真，失败返回假。

语法： 逻辑型 复制文件 （被复制的文件名，复制到的文件名）

参数名 | 描 述
被复制的文件名 | 必需的；文本型。
复制到的文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


移动文件

移动文件 命令 所属类别：磁盘操作

将文件从一个位置移动到另外一个位置。成功返回真，失败返回假。

语法： 逻辑型 移动文件 （被移动的文件，移动到的位置）

参数名 | 描 述
被移动的文件 | 必需的；文本型。
移动到的位置 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


删除文件

删除文件 命令 所属类别：磁盘操作

成功返回真，失败返回假。

语法： 逻辑型 删除文件 （欲删除的文件名）

参数名 | 描 述
欲删除的文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


文件更名

文件更名 命令 所属类别：磁盘操作

重新命名一个文件或目录。成功返回真，失败返回假。

语法： 逻辑型 文件更名 （欲更名的原文件或目录名，欲更改为的现文件或目录名）

参数名 | 描 述
欲更名的原文件或目录名 | 必需的；文本型。
欲更改为的现文件或目录名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


文件是否存在

文件是否存在 命令 所属类别：磁盘操作

判断指定的磁盘文件是否真实存在。如存在返回真，否则返回假。

语法： 逻辑型 文件是否存在 （欲测试的文件名称）

参数名 | 描 述
欲测试的文件名称 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


寻找文件

寻找文件 命令 所属类别：磁盘操作

返回一个文本，用以表示所找到的文件名或目录名，它必须与所要求的名称格式或文件属性相匹配。支持使用多字符 (*) 和单字符 (?) 通配符来指定多重文件。在某子程序中第一次调用本命令时，必须指定“欲寻找文件”参数，否则将返回空文本 (“”)。在第一次调用以后如果想得到其它匹配的文件名，再一次调用本命令，且不要提供欲寻找文件名参数。如果已没有合乎条件的文件，本命令会返回一个空文本。一旦返回值为空文本，要再次调用本命令时，就必须指定“欲寻找文件”参数。不必访问完所有当前匹配的文件名，就可以使用一个新的“欲寻找文件”进行新的寻找。

语法： 文本型 寻找文件 （［欲寻找的文件或目录名称］，［欲寻找文件的属性］）

参数名 | 描 述
欲寻找的文件或目录名称 | 可选的；文本型。可以使用多字符 (*) 和单字符 (?) 通配符来指定多重文件。在非首次寻找文件时，参数值必须为空或被省略。
欲寻找文件的属性 | 可选的；整数型。参数值可以为以下常量值或其和： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 16、#子目录； 32、#存档文件 。通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数，默认为搜寻除子目录外的所有文件。

参见： 语法的描述规则、基本数据类型


取文件时间

取文件时间 命令 所属类别：磁盘操作

返回指定文件被创建或最后修改后的日期和时间。如果该文件不存在，将返回100年1月1日。

语法： 日期时间型 取文件时间 （文件名）

参数名 | 描 述
文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取文件尺寸

取文件尺寸 命令 所属类别：磁盘操作

返回一个文件的长度，单位是字节。如果该文件不存在，将返回 -1。

语法： 整数型 取文件尺寸 （文件名）

参数名 | 描 述
文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取文件属性

取文件属性 命令 所属类别：磁盘操作

返回一个文件或目录的属性。此属性值由以下常量或其和构成： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 16、#子目录；32、#存档文件 。要判断是否设置了某个属性，在返回值与想要得知的属性值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示设置了这个属性值。如果取文件属性失败，将返回 -1。

语法： 整数型 取文件属性 （文件名）

参数名 | 描 述
文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


置文件属性

置文件属性 命令 所属类别：磁盘操作

为一个文件设置属性信息。成功返回真，失败返回假。

语法： 逻辑型 置文件属性 （欲设置其属性的文件名称，欲设置为的属性值）

参数名 | 描 述
欲设置其属性的文件名称 | 必需的；文本型。
欲设置为的属性值 | 必需的；整数型。参数值可以为以下常量值或其和： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 32、#存档文件 。通过将这些常量值加起来可以一次设置多个文件属性。

参见： 语法的描述规则、基本数据类型


取临时文件名

取临时文件名 命令 所属类别：磁盘操作

返回一个在指定目录中确定不存在的 .TMP 全路径文件名称。

语法： 文本型 取临时文件名 （［目录名］）

参数名 | 描 述
目录名 | 可选的；文本型。如果省略本参数，默认将使用系统的标准临时目录。

参见： 语法的描述规则、基本数据类型


读入文件

读入文件 命令 所属类别：磁盘操作

返回一个字节集，其中包含指定文件的所有数据。

语法： 字节集 读入文件 （文件名）

参数名 | 描 述
文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


写到文件

写到文件 命令 所属类别：磁盘操作

本命令用作将一个或数个字节集顺序写到指定文件中，文件原有内容被覆盖。成功返回真，失败返回假。

语法： 逻辑型 写到文件 （文件名，欲写入文件的数据，… ）

参数名 | 描 述
文件名 | 必需的；文本型。
欲写入文件的数据 | 必需的；可扩充的；字节集。

参见： 语法的描述规则、基本数据类型


打开文件

打开文件 命令 所属类别：文件读写

打开一个普通文件，以对文件进行输入或输出。成功返回被打开文件的文件号，失败返回 0。

语法： 整数型 打开文件 （欲打开的文件名称，［打开方式］，［共享方式］）

参数名 | 描 述
欲打开的文件名称 | 必需的；文本型。
打开方式 | 可选的；整数型。参数值说明对文件的操作方式，如果省略本参数，默认为“#读写”。方式值可以为以下常量之一： 1、#读入：从指定文件读入数据，如果该文件不存在则失败； 2、#写出：写出数据到指定文件，如果该文件不存在则失败； 3、#读写：从文件中读入数据或者写出数据到文件，如果该文件不存在则失败； 4、#重写：写出数据到指定文件。如果该文件不存在则先创建一个新文件，如果已经存在就先清除其中的所有数据； 5、#改写：写出数据到指定文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开； 6、#改读：从文件中读入数据或者写出数据到文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开。
共享方式 | 可选的；整数型。参数值指定限制其它进程操作此文件的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一： 1、#无限制：允许其它进程任意读写此文件； 2、#禁止读：禁止其它进程读此文件； 3、#禁止写：禁止其它进程写此文件； 4、#禁止读写：禁止其它进程读写此文件。

参见： 语法的描述规则、基本数据类型


打开内存文件

打开内存文件 命令 所属类别：文件读写

建立一个内存文件，以计算机内存为存储介质对数据进行文件式的快速输入或输出。成功返回被打开文件的文件号，失败返回 0。

语法： 整数型 打开内存文件 （）

参见： 语法的描述规则、基本数据类型


关闭文件

关闭文件 命令 所属类别：文件读写

关闭被打开的各种类型文件。

语法： 无返回值 关闭文件 （欲关闭的文件号）

参数名 | 描 述
欲关闭的文件号 | 必需的；整数型。参数值指明欲关闭的文件号，该文件号由“打开文件”命令所返回。

参见： 语法的描述规则、基本数据类型


关闭所有文件

关闭所有文件 命令 所属类别：文件读写

关闭所有现行被打开的文件。

语法： 无返回值 关闭所有文件 （）

参见： 语法的描述规则、基本数据类型


锁住文件

锁住文件 命令 所属类别：文件读写

在有若干个进程访问同一个文件的环境中，使用本命令拒绝其它用户对被打开文件中的某个区域进行读写访问。成功返回真，失败返回假。

语法： 逻辑型 锁住文件 （欲加锁或解锁的文件号，欲加锁或解锁的位置，欲加锁或解锁的长度，［加锁重试时间］）

参数名 | 描 述
欲加锁或解锁的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲加锁或解锁的位置 | 必需的；整数型。位置值从 0 开始。
欲加锁或解锁的长度 | 必需的；整数型。
加锁重试时间 | 可选的；整数型。本参数指定加锁失败后反复进行重试的毫秒数。如果被省略，默认为 0 ，即一旦失败立即返回。如果参数值提供为 -1 ，则反复进行重试，直到加锁成功为止。

参见： 语法的描述规则、基本数据类型


解锁文件

解锁文件 命令 所属类别：文件读写

解除由“锁住文件”命令对文件所进行的锁定。成功返回真，失败返回假。注意：本命令调用时所提供的参数值必须与调用“锁住文件”命令时所提供的参数值完全一致。

语法： 逻辑型 解锁文件 （欲加锁或解锁的文件号，欲加锁或解锁的位置，欲加锁或解锁的长度）

参数名 | 描 述
欲加锁或解锁的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲加锁或解锁的位置 | 必需的；整数型。位置值从 0 开始。
欲加锁或解锁的长度 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


移动读写位置

移动读写位置 命令 所属类别：文件读写

在被打开的文件中，设置下一个读或写操作的位置。成功返回真，失败返回假。

语法： 逻辑型 移动读写位置 （欲进行操作的文件号，［起始移动位置］，移动距离）

参数名 | 描 述
欲进行操作的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
起始移动位置 | 可选的；整数型。参数值指定从文件中开始移动的位置。可以为以下常量之一：1、#文件首； 2、#文件尾； 3、#现行位置。如果本参数被省略，默认值为“#文件首”。
移动距离 | 必需的；整数型。参数值指定相对于起始移动位置的移动长度。

参见： 语法的描述规则、基本数据类型


移到文件首

移到文件首 命令 所属类别：文件读写

在被打开的文件中，设置下一个读或写操作的位置到文件首。成功返回真，失败返回假。

语法： 逻辑型 移到文件首 （欲进行操作的文件号）

参数名 | 描 述
欲进行操作的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。

参见： 语法的描述规则、基本数据类型


移到文件尾

移到文件尾 命令 所属类别：文件读写

在被打开的文件中，设置下一个读或写操作的位置到文件尾。成功返回真，失败返回假。

语法： 逻辑型 移到文件尾 （欲进行操作的文件号）

参数名 | 描 述
欲进行操作的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。

参见： 语法的描述规则、基本数据类型


读入字节集

读入字节集 命令 所属类别：文件读写

本命令用作从文件中当前读写位置读取并返回一段字节集数据，实际读入长度（即返回的字节集的尺寸）可能会小于欲读入长度。如果读入失败，将返回一个空字节集并且自动将当前文件读写位置移到文件尾部。

语法： 字节集 读入字节集 （欲读入数据的文件号，欲读入数据的长度）

参数名 | 描 述
欲读入数据的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲读入数据的长度 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


写出字节集

写出字节集 命令 所属类别：文件读写

本命令用作写出一段或数段字节集数据到文件中当前读写位置处。成功返回真，失败返回假。

语法： 逻辑型 写出字节集 （欲写出数据的文件号，欲写出的字节集数据，… ）

参数名 | 描 述
欲写出数据的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲写出的字节集数据 | 必需的；可扩充的；字节集。

参见： 语法的描述规则、基本数据类型


读入文本

读入文本 命令 所属类别：文件读写

本命令用作从文件中当前读写位置读取并返回一段文本数据，实际读入长度（即返回文本的尺寸）可能会小于欲读入长度。如果该数据中存在字节 0 或 26（文本结束标志），将仅返回该字节之前的数据。如果读入失败，将返回一个空文本并且自动将当前文件读写位置移到文件尾部。

语法： 文本型 读入文本 （欲读入文本数据的文件号，［欲读入文本数据的长度］）

参数名 | 描 述
欲读入文本数据的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲读入文本数据的长度 | 可选的；整数型。如果本参数被省略，默认读入文件中的所有文本数据。

参见： 语法的描述规则、基本数据类型


写出文本

写出文本 命令 所属类别：文件读写

本命令用作写出一段或数段文本数据到文件中当前读写位置处。成功返回真，失败返回假。

语法： 逻辑型 写出文本 （欲写出文本的文件号，欲写出的文本，… ）

参数名 | 描 述
欲写出文本的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲写出的文本 | 必需的；可扩充的；通用型。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

参见： 语法的描述规则、基本数据类型


读入一行

读入一行 命令 所属类别：文件读写

本命令用作从文件中当前读写位置读取并返回一行文本数据，行末的回车及换行符将被抛弃。如果读入失败，将返回一个空文本并且自动将当前文件读写位置移到文件尾部。

语法： 文本型 读入一行 （欲读入文本数据的文件号）

参数名 | 描 述
欲读入文本数据的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。

参见： 语法的描述规则、基本数据类型


写文本行

写文本行 命令 所属类别：文件读写

本命令用作写出一行或多行文本数据到文件中当前读写位置处，每行的尾部将被自动加上回车及换行符。成功返回真，失败返回假。

语法： 逻辑型 写文本行 （欲写出文本的文件号，欲写出的文本，… ）

参数名 | 描 述
欲写出文本的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲写出的文本 | 必需的；可扩充的；通用型。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

参见： 语法的描述规则、基本数据类型


读入数据

读入数据 命令 所属类别：文件读写

本命令应该与“写出”命令配合使用，用作从文件中当前读写位置读取格式数据到指定的一系列容器或数组容器中。成功返回真，失败返回假。

语法： 逻辑型 读入数据 （欲读入数据的文件号，存放所读入数据的容器，… ）

参数名 | 描 述
欲读入数据的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
存放所读入数据的容器 | 必需的；可扩充的；通用型，参数数据只能提供容器及容器数组。如果容器的数据类型为用户自定义或库定义数据类型，命令将会失败。

参见： 语法的描述规则、基本数据类型


写出数据

写出数据 命令 所属类别：文件读写

本命令应该与“读入”命令配合使用，用作写出一系列容器或数组容器的格式数据到文件中当前读写位置处。成功返回真，失败返回假。 具体各种数据类型数据的写出格式为： 1、数值型、逻辑型、日期时间型、子程序指针型： 为其所对应的实际数据； 2、文本型： 为文本数据 + 字节 0 ； 3、字节集型： 为字节集数据长度（整数） + 字节集实际数据； 4、以上各种数据类型的数组型数据： 为非数组情况下数据格式的顺序排列。

语法： 逻辑型 写出数据 （欲写出数据的文件号，欲写出的数据，… ）

参数名 | 描 述
欲写出数据的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲写出的数据 | 必需的；可扩充的；通用型，参数数据可以同时提供数组或非数组数据。如果被写出数据的数据类型为用户自定义或库定义数据类型，命令将会失败。

参见： 语法的描述规则、基本数据类型


是否在文件尾

是否在文件尾 命令 所属类别：文件读写

如果指定被打开文件的读写位置已经处于该文件数据的尾部，则返回真，否则返回假。

语法： 逻辑型 是否在文件尾 （文件号，［是否为判断文本已读完］）

参数名 | 描 述
文件号 | 必需的；整数型。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。
是否为判断文本已读完 | 可选的；逻辑型。如果本参数值为真而且下一即将读入的字节为字节值 0 或 26 等文本终止标记符或者当前读写位置已处于该文件数据的尾部，命令将返回真。如果本参数被省略或为假，将不进行此检查。

参见： 语法的描述规则、基本数据类型


取读写位置

取读写位置 命令 所属类别：文件读写

返回指定被打开文件的当前读/写位置，位置值从 0 开始。如果给定文件号无效或失败，返回 -1 。

语法： 整数型 取读写位置 （文件号）

参数名 | 描 述
文件号 | 必需的；整数型。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。

参见： 语法的描述规则、基本数据类型


取文件长度

取文件长度 命令 所属类别：文件读写

返回指定被打开文件的尺寸，该尺寸以字节为单位。如果给定文件号无效或失败，返回 -1 。

语法： 整数型 取文件长度 （文件号）

参数名 | 描 述
文件号 | 必需的；整数型。参数值指明欲操作的文件号，该文件号必须由“打开文件”命令所返回。

参见： 语法的描述规则、基本数据类型


运行

运行 命令 所属类别：系统处理

本命令运行指定的可执行EXE文件或者外部命令。如果成功，返回真，否则返回假。

语法： 逻辑型 运行 （欲运行的命令行，是否等待程序运行完毕，［被运行程序窗口显示方式］）

参数名 | 描 述
欲运行的命令行 | 必需的；文本型。
是否等待程序运行完毕 | 必需的；逻辑型，初始值为“假”。
被运行程序窗口显示方式 | 可选的；整数型。参数值可以为以下常量之一：1、#隐藏窗口； 2、#普通激活； 3、#最小化激活； 4、#最大化激活； 5、#普通不激活； 6、#最小化不激活。如果省略本参数，默认为“普通激活”方式。

参见： 语法的描述规则、基本数据类型


取剪辑板文本

取剪辑板文本 命令 所属类别：系统处理

返回存放于当前 Windows 系统剪辑板中的文本。如果当前剪辑板中无文本数据，将返回空文本。

语法： 文本型 取剪辑板文本 （）

参见： 语法的描述规则、基本数据类型


置剪辑板文本

置剪辑板文本 命令 所属类别：系统处理

将指定文本存放到当前 Windows 系统剪辑板中去，剪辑板中的原有内容被覆盖。成功返回真，失败返回假。

语法： 逻辑型 置剪辑板文本 （准备置入剪辑板的文本）

参数名 | 描 述
准备置入剪辑板的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


剪辑板中可有文本

剪辑板中可有文本 命令 所属类别：系统处理

如果当前 Windows 系统剪辑板中有文本数据，则返回真，否则返回假。

语法： 逻辑型 剪辑板中可有文本 （）

参见： 语法的描述规则、基本数据类型


清除剪辑板

清除剪辑板 命令 所属类别：系统处理

清除当前 Windows 系统剪辑板中的所有数据。

语法： 无返回值 清除剪辑板 （）

参见： 语法的描述规则、基本数据类型


取屏幕宽度

取屏幕宽度 命令 所属类别：系统处理

返回屏幕当前显示区域的宽度，单位为像素点。

语法： 整数型 取屏幕宽度 （）

参见： 语法的描述规则、基本数据类型


取屏幕高度

取屏幕高度 命令 所属类别：系统处理

返回屏幕当前显示区域的高度，单位为像素点。

语法： 整数型 取屏幕高度 （）

参见： 语法的描述规则、基本数据类型


取鼠标水平位置

取鼠标水平位置 命令 所属类别：系统处理

返回鼠标指针的当前水平位置，单位为像素点，相对于屏幕左边。

语法： 整数型 取鼠标水平位置 （）

参见： 语法的描述规则、基本数据类型


取鼠标垂直位置

取鼠标垂直位置 命令 所属类别：系统处理

返回鼠标指针的当前垂直位置，单位为像素点，相对于屏幕顶边。

语法： 整数型 取鼠标垂直位置 （）

参见： 语法的描述规则、基本数据类型


取颜色数

取颜色数 命令 所属类别：系统处理

返回当前显示方式所提供的最大颜色显示数目。

语法： 整数型 取颜色数 （）

参见： 语法的描述规则、基本数据类型


输入框

输入框 命令 所属类别：系统处理

在一对话框中显示提示，等待用户输入正文并按下按钮。如果用户在确认输入后（按下“确认输入”按钮或回车键）退出，返回真，否则返回假。

语法： 逻辑型 输入框 （［提示信息］，［窗口标题］，［初始文本］，存放输入内容的容器，［输入方式］）

参数名 | 描 述
提示信息 | 可选的；文本型。如果提示信息包含多行，可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即：“字符 (13) + 字符 (10)”) 来分隔。如果提示信息太长或行数过多，超过部分将不会被显示出来。
窗口标题 | 可选的；文本型。参数值指定显示在对话框标题栏中的文本。如果省略，默认为文本“请输入：”。
初始文本 | 可选的；文本型。参数值指定初始设置到对话框输入文本框中的内容。
存放输入内容的容器 | 必需的；通用型，参数数据只能提供容器。参数值所指定的容器可以为数值或文本型，用于以不同的数据类型取回输入内容。
输入方式 | 可选的；整数型。参数值可以为以下常量值： 1、#输入文本； 2、#输入整数； 3、#输入小数； 4、#输入密码。如果省略本参数，默认为“#输入文本”。

参见： 语法的描述规则、基本数据类型


信息框

信息框 命令 所属类别：系统处理

在对话框中显示信息，等待用户单击按钮，并返回一个整数告诉用户单击哪一个按钮。该整数为以下常量值之一： 0、#确认钮； 1、#取消钮； 2、#放弃钮； 3、#重试钮； 4、#忽略钮； 5、#是钮； 6、#否钮。如果对话框有“取消”按钮，则按下 ESC 键与单击“取消”按钮的效果相同。

语法： 整数型 信息框 （提示信息，按钮，［窗口标题］）

参数名 | 描 述
提示信息 | 必需的；通用型。提示信息只能为文本、数值、逻辑值或日期时间。如果提示信息为文本且包含多行，可在各行之间用回车符 (即“字符 (13)”)、换行符 (即“字符 (10)”) 或回车换行符的组合 (即：“字符 (13) + 字符 (10)”) 来分隔。
按钮 | 必需的；整数型，初始值为“0”。参数值由以下几组常量值组成，在将这些常量值相加以生成参数值时，每组值只能取用一个数字（第五组除外）： 第一组（描述对话框中显示按钮的类型与数目）： 0、#确认钮； 1、#确认取消钮； 2、#放弃重试忽略钮； 3、#取消是否钮； 4、#是否钮； 5、#重试取消钮 第二组（描述图标的样式）： 16、#错误图标； 32、#询问图标； 48、#警告图标； 64、#信息图标 第三组（说明哪一个按钮是缺省默认值）： 0、#默认按钮一； 256、#默认按钮二； 512、#默认按钮三； 768、#默认按钮四 第四组（决定如何等待消息框结束）： 0、#程序等待； 4096、#系统等待 第五组（其它）： 65536、#位于前台； 524288、#文本右对齐
窗口标题 | 可选的；文本型。参数值指定显示在对话框标题栏中的文本。如果省略，默认为文本“信息：”。

参见： 语法的描述规则、基本数据类型


鸣叫

鸣叫 命令 所属类别：系统处理

通过计算机媒体设备或者喇叭发出一个声音。

语法： 无返回值 鸣叫 （）

参见： 语法的描述规则、基本数据类型


取启动时间

取启动时间 命令 所属类别：系统处理

返回自 Windows 系统启动后到现在为止所经历过的毫秒数。

语法： 整数型 取启动时间 （）

参见： 语法的描述规则、基本数据类型


播放音乐

播放音乐 命令 所属类别：媒体播放

可以播放 .WAV、.MID 声音文件或相应格式的字节集声音数据、声音资源。成功返回真，失败返回假。

语法： 逻辑型 播放音乐 （欲播放的音乐，［是否循环播放］）

参数名 | 描 述
欲播放的音乐 | 必需的；通用型。参数值可以为 .WAV、.MID 声音文件名称或相应格式的字节集声音数据、声音资源。
是否循环播放 | 可选的；逻辑型。为真表示指定音乐将被循环播放，否则仅只播放一次。如果本参数被省略，默认为仅播放一次。

参见： 语法的描述规则、基本数据类型


停止播放

停止播放 命令 所属类别：媒体播放

停止正在播放的音乐。

语法： 无返回值 停止播放 （）

参见： 语法的描述规则、基本数据类型


输出调试文本

输出调试文本 命令 所属类别：程序调试

仅在易程序的调试版本中被执行，在发布版本中将被直接跳过；
使用本命令可以在 E 调试系统中的“输出”窗口内输出指定的文本行以帮助调试，该文本之前被自动加上一个星号，之后被自动加上回车换行符。

语法： 无返回值 输出调试文本 （准备输出的调试文本信息，… ）

参数名 | 描 述
准备输出的调试文本信息 | 必需的；可扩充的；文本型。

参见： 语法的描述规则、基本数据类型


暂停

暂停 命令 所属类别：程序调试

仅在易程序的调试版本中被执行，在发布版本中将被直接跳过；
可以在子程序中的任何地方放置此命令，使用此命令，就相当于在程序代码中设置断点。

语法： 无返回值 暂停 （）

参见： 语法的描述规则、基本数据类型


检查

检查 命令 所属类别：程序调试

仅在易程序的调试版本中被执行，在发布版本中将被直接跳过；
执行本命令时，如果给定参数的条件值被计算后结果为假，易程序的执行将被暂停且警示。可以在子程序中的任何地方放置此命令，使用此命令，就相当于在程序代码中设置条件断点。

语法： 无返回值 检查 （被校验的条件）

参数名 | 描 述
被校验的条件 | 必需的；逻辑型。如果此条件不能成立，即参数值为假，易程序的执行将被暂停且警示。

参见： 语法的描述规则、基本数据类型


载入

载入 命令 所属类别：其他

载入指定的窗口，根据窗口的“可视”属性决定是否显示它。成功返回真，失败返回假。

语法： 逻辑型 载入 （欲载入的窗口，［父窗口］，是否采用对话框方式）

参数名 | 描 述
欲载入的窗口 | 必需的；窗口。参数值指定欲载入的窗口。
父窗口 | 可选的；窗口。参数值指定欲载入窗口的父窗口，此窗口必须已经被载入。如果本参数被省略，表示无父窗口。如果窗口具有父窗口，其位置将永远位于父窗口的上面；当父窗口被关闭时，窗口将自动被关闭；当父窗口被禁止时，窗口将自动被禁止。
是否采用对话框方式 | 必需的；逻辑型，初始值为“真”。参数值指定用户在对被载入窗口进行操作的同时是否允许同时对其他窗口进行操作。如果本参数值为真： 1、即使被载入窗口的“可视”属性为假，在载入后也立即显示； 2、本命令一直等待到该窗口被销毁后才返回。

参见： 语法的描述规则、基本数据类型


选择

选择 命令 所属类别：其他

根据所提供参数的值，返回两部分中的其中一个。

语法： 通用型 选择 （用作选择的逻辑值，待选择项一，待选择项二）

参数名 | 描 述
用作选择的逻辑值 | 必需的；逻辑型。如果该值为真，将返回第一个待选择项，否则将返回第二个待选择项。
待选择项一 | 必需的；通用型。如果给定逻辑值为真，命令将返回本选择项。
待选择项二 | 必需的；通用型。如果给定逻辑值为假，命令将返回本选择项。

参见： 语法的描述规则、基本数据类型


多项选择

多项选择 命令 所属类别：其他

从参数列表项目中选择并返回一个值。

语法： 通用型 多项选择 （索引值，待选择项数据，… ）

参数名 | 描 述
索引值 | 必需的；整数型。命令会根据本索引值来返回选择项列表中的某个值。如果索引值是 1，则命令会返回列表中的第 1 个选择项。如果索引值是 2，则会返回列表中的第 2 个选择项，以此类推。如果索引值小于 1 或者大于最大可选择项，将会产生运行错误。
待选择项数据 | 必需的；可扩充的；通用型。

参见： 语法的描述规则、基本数据类型


是否为空

是否为空 命令 所属类别：其他

返回一个逻辑值，指出在调用子程序时是否为指定参数提供了数据（该参数必定有“可空”标志），如未提供，返回真，否则返回假。

语法： 逻辑型 是否为空 （欲测试的参数容器）

参数名 | 描 述
欲测试的参数容器 | 必需的；通用型，参数数据只能提供容器及容器数组。

参见： 语法的描述规则、基本数据类型


是否已创建

是否已创建 命令 所属类别：其他

如果指定的窗口或窗口单元有效且已经被载入或创建，返回真，否则返回假。对于窗口菜单项单元，如果其所处窗口已经被载入，命令将返回真，否则返回假。

语法： 逻辑型 是否已创建 （欲被检查的窗口或窗口单元）

参数名 | 描 述
欲被检查的窗口或窗口单元 | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


取数据类型尺寸

取数据类型尺寸 命令 所属类别：其他

取指定数据类型的数据尺寸，该数据类型不能为文本、字节集、库或用户自定义数据类型。

语法： 整数型 取数据类型尺寸 （欲取其尺寸的数据类型）

参数名 | 描 述
欲取其尺寸的数据类型 | 必需的；整数型。参数值可以为以下常量： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 9、#子程序指针型。

参见： 语法的描述规则、基本数据类型


取颜色值

取颜色值 命令 所属类别：其他

返回一个整数，用来表示一个红绿蓝颜色值。

语法： 整数型 取颜色值 （红色，绿色，蓝色）

参数名 | 描 述
红色 | 必需的；整数型。数值范围从 0 到 255，表示颜色中的红色成份。
绿色 | 必需的；整数型。数值范围从 0 到 255，表示颜色中的绿色成份。
蓝色 | 必需的；整数型。数值范围从 0 到 255，表示颜色中的蓝色成份。

参见： 语法的描述规则、基本数据类型


取事件单元

取事件单元 命令 所属类别：其他

返回一个有效的单元型数据，指定当前所正在处理的事件是从何单元实际产生的。本命令主要用于在事件处理子程序中动态确定事件的来源。注意：只能在处理事件的过程首部使用本命令，如果在其它情况下使用，将产生运行时错误。

语法： 通用型 取事件单元 （）

参见： 语法的描述规则、基本数据类型


事件转移

事件转移 命令 所属类别：其他

设置将第一个单元上产生的所有事件转交由第二个同窗口同类型单元的事件处理子程序去处理，就好象此事件是在第二个单元上实际发生的一样。本命令可用来设置用同一事件处理子程序处理来自多个同类型单元的事件。使用时可与“取事件单元”命令、对象的“标记”属性等相配合。设置成功返回真，失败返回假。

语法： 逻辑型 事件转移 （单元一，［单元二］）

参数名 | 描 述
单元一 | 必需的；通用型。参数值指定欲将其事件转移的单元。如果该参数值指定的不是窗口内的单元，而是窗口本身，则不考虑“单元二”参数的设置情况，直接取消被指定窗口上所有单元事件转移设置。
单元二 | 可选的；通用型。参数值指定单元一事件转移到的目的单元，必须与单元一的类型相同且在同一窗口内，否则命令会失败。如果本参数被省略，将取消单元一的原有事件转移设置。

参见： 语法的描述规则、基本数据类型


复制窗口单元

复制窗口单元 命令 所属类别：其他

复制创建与指定窗口单元设计状态完全一致的新单元。该被复制单元将放在原单元的下面，其事件被自动转移到原单元上。如果复制时被复制窗口单元所在的窗口尚未被载入，那么复制出来的窗口单元也不会被立即创建，而会等到其所在窗口将来被载入时一并创建。并且此时复制出来的窗口单元将永久存在，就好象是用户在设计窗口时所加入的一样，不会因为其所在窗口被销毁而被抛弃；如果复制时被复制窗口单元所在的窗口已经被载入，该单元会被立即创建，但此时无论该单元的“可视”属性是真还是假，创建后的单元都将不会被显示，以便于用户进行属性调整。此时复制出来的窗口单元为临时存在，在其所在窗口被销毁后，此窗口单元将被抛弃，下次再载入原窗口时此窗口单元将不复存在。成功返回真，失败返回假。

语法： 逻辑型 复制窗口单元 （欲被复制的窗口单元，存放新创建单元的容器）

参数名 | 描 述
欲被复制的窗口单元 | 必需的；通用型。参数值不能为窗口本身、窗口菜单项单元、选择夹窗口单元。
存放新创建单元的容器 | 必需的；通用型，参数数据只能提供容器。该容器数据类型必须与被复制窗口单元数据类型完全一致，否则命令会失败。

参见： 语法的描述规则、基本数据类型


处理事件

处理事件 命令 所属类别：其他

暂时转让控制权，以便让 Windows 操作系统有机会处理其它的如用户键盘或鼠标输入等事件。直到操作系统处理并发送完程序队列中的所有事件后，命令才会返回。

语法： 无返回值 处理事件 （）

参见： 语法的描述规则、基本数据类型


载入图片

载入图片 命令 所属类别：其他

载入指定图片，以供画板、打印机等对象的“画图片”、“取图片宽度”、“取图片高度”之类成员命令使用。如成功则返回被载入图片的图片号，失败返回 0。

语法： 整数型 载入图片 （欲被载入的图片）

参数名 | 描 述
欲被载入的图片 | 必需的；通用型。参数值可以为 .JPG、.GIF、.BMP、.DIB、.ICO、.CUR 等等被支持格式的图片数据、图片资源或图片文件名。

参见： 语法的描述规则、基本数据类型


卸载图片

卸载图片 命令 所属类别：其他

卸载被载入的图片，图片被卸载后不能再被使用。如果某图片被载入后未被卸载，在易程序退出时将自动被卸载。

语法： 无返回值 卸载图片 （图片号）

参数名 | 描 述
图片号 | 必需的；整数型。参数值必须为调用“载入图片”命令所返回的图片号。

参见： 语法的描述规则、基本数据类型


取窗口句柄 (窗口)

取窗口句柄 方法 所属对象：窗口

为高级用户提供，初级用户无需掌握；
取出本窗口或窗口单元的窗口句柄（即HWND）。

语法： 整数型 窗口单元．取窗口句柄 （）

参见： 语法的描述规则、基本数据类型


销毁 (窗口)

销毁 方法 所属对象：窗口

销毁本窗口或窗口单元。窗口被销毁后，所有在载入本窗口之后对本窗口及其内窗口单元所进行的修改或设置都将被抛弃。窗口被销毁后如想再次使用必须重新装载。

语法： 无返回值 窗口单元．销毁 （）

参见： 语法的描述规则、基本数据类型


获取焦点 (窗口)

获取焦点 方法 所属对象：窗口

将焦点移动到窗口单元。如果对窗口使用本方法，窗口将自动把焦点转移到第一个有能力保留焦点的窗口单元上去。

语法： 无返回值 窗口单元．获取焦点 （）

参见： 语法的描述规则、基本数据类型


可有焦点 (窗口)

可有焦点 方法 所属对象：窗口

如果当前窗口单元具有焦点，则返回真，否则返回假。

语法： 逻辑型 窗口单元．可有焦点 （）

参见： 语法的描述规则、基本数据类型


取用户区宽度 (窗口)

取用户区宽度 方法 所属对象：窗口

返回窗口或窗口单元用户区域的宽度，单位为像素点。对窗口而言，用户区域为窗口区域减去标题栏、菜单栏、边框后的区域；对窗口单元而言，用户区域等同于其窗口单元区域。

语法： 整数型 窗口单元．取用户区宽度 （）

参见： 语法的描述规则、基本数据类型


取用户区高度 (窗口)

取用户区高度 方法 所属对象：窗口

返回窗口或窗口单元用户区域的高度，单位为像素点。对窗口而言，用户区域为窗口区域减去标题栏、菜单栏、边框后的区域；对窗口单元而言，用户区域等同于其窗口单元区域。

语法： 整数型 窗口单元．取用户区高度 （）

参见： 语法的描述规则、基本数据类型


禁止重画 (窗口)

禁止重画 方法 所属对象：窗口

禁止窗口或窗口单元重画，以避免当频繁进行操作时引起闪烁。注意调用本命令后必须调用“允许重画”命令进行恢复。

语法： 无返回值 窗口单元．禁止重画 （）

参见： 语法的描述规则、基本数据类型


允许重画 (窗口)

允许重画 方法 所属对象：窗口

重新允许被禁止的窗口或窗口单元重画。

语法： 无返回值 窗口单元．允许重画 （）

参见： 语法的描述规则、基本数据类型


重画 (窗口)

重画 方法 所属对象：窗口

通知 Windows 系统本窗口或窗口单元上的显示内容需要在以后被全部重画。

语法： 无返回值 窗口单元．重画 （）

参见： 语法的描述规则、基本数据类型


部分重画 (窗口)

部分重画 方法 所属对象：窗口

通知 Windows 系统本窗口或窗口单元上的显示内容需要在以后被部分重画。

语法： 无返回值 窗口单元．部分重画 （欲重画区域的左边，欲重画区域的顶边，欲重画区域的宽度，欲重画区域的高度）

参数名 | 描 述
欲重画区域的左边 | 必需的；整数型。单位为像素点，相对于用户区域的左边。
欲重画区域的顶边 | 必需的；整数型。单位为像素点，相对于用户区域的顶边。
欲重画区域的宽度 | 必需的；整数型。单位为像素点。
欲重画区域的高度 | 必需的；整数型。单位为像素点。

参见： 语法的描述规则、基本数据类型


取消重画 (窗口)

取消重画 方法 所属对象：窗口

通知 Windows 系统本窗口或窗口单元不再需要被重画，保留现有的全部显示内容。

语法： 无返回值 窗口单元．取消重画 （）

参见： 语法的描述规则、基本数据类型


刷新显示 (窗口)

刷新显示 方法 所属对象：窗口

如果本窗口或窗口单元上的显示内容需要被全部或部分重画，则立即进行重画更新，否则不进行任何操作直接返回。

语法： 无返回值 窗口单元．刷新显示 （）

参见： 语法的描述规则、基本数据类型


移动 (窗口)

移动 方法 所属对象：窗口

改变窗口或窗口单元的位置或尺寸。

语法： 无返回值 窗口单元．移动 （［左边］，［顶边］，［宽度］，［高度］）

参数名 | 描 述
左边 | 可选的；整数型。单位为像素点。如被省略则不改变左边原位置。
顶边 | 可选的；整数型。单位为像素点。如被省略则不改变顶边原位置。
宽度 | 可选的；整数型。单位为像素点。如被省略或等于 -1 ，则不改变原宽度。
高度 | 可选的；整数型。单位为像素点。如被省略或等于 -1 ，则不改变原高度。

参见： 语法的描述规则、基本数据类型


调整层次 (窗口)

调整层次 方法 所属对象：窗口

改变窗口或窗口单元的现行所处层次。

语法： 无返回值 窗口单元．调整层次 （［欲调整到的层次］）

参数名 | 描 述
欲调整到的层次 | 可选的；整数型。可以为以下常量之一： 1、#顶层； 2、#底层； 3、#最高层； 4、#次高层。如果被省略，默认为“#顶层”。

参见： 语法的描述规则、基本数据类型


弹出菜单 (窗口)

弹出菜单 方法 所属对象：窗口

用于在窗口上的当前鼠标位置或指定坐标位置显示弹出式菜单，如果调用对象为窗口单元，则自动使用其所在的窗口。

语法： 无返回值 窗口单元．弹出菜单 （欲弹出的菜单，［水平显示位置］，［垂直显示位置］）

参数名 | 描 述
欲弹出的菜单 | 必需的；菜单。指定菜单内必须包含有子菜单，且所处窗口必须与调用对象窗口一致。
水平显示位置 | 可选的；整数型。单位为像素点，相对于屏幕左边。如果被省略，将自动使用当前鼠标位置。
垂直显示位置 | 可选的；整数型。单位为像素点，相对于屏幕顶边。如果被省略，将自动使用当前鼠标位置。

参见： 语法的描述规则、基本数据类型


取子夹数目 (选择夹)

取子夹数目 方法 所属对象：选择夹

语法： 整数型 选择夹．取子夹数目 （）

参见： 语法的描述规则、基本数据类型


取子夹名称 (选择夹)

取子夹名称 方法 所属对象：选择夹

语法： 文本型 选择夹．取子夹名称 （子夹索引）

参数名 | 描 述
子夹索引 | 必需的；整数型。1 代表子夹一，2 代表子夹二，如此类推。

参见： 语法的描述规则、基本数据类型


置子夹名称 (选择夹)

置子夹名称 方法 所属对象：选择夹

置入成功返回真，否则返回假。

语法： 逻辑型 选择夹．置子夹名称 （子夹索引，欲置入的子夹名称）

参数名 | 描 述
子夹索引 | 必需的；整数型。1 代表子夹一，2 代表子夹二，如此类推。
欲置入的子夹名称 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


打开 (通用对话框)

打开 方法 所属对象：通用对话框

打开当前类型的对话框，返回一个逻辑值。对于类型为“打开文件”、“保存文件”、“字体选择”的对话框，如果为真，表示用户已通过该对话框输入了有效数据，否则表示用户取消了该对话框，且没有输入任何有效数据。对于类型为“打开帮助”的对话框，如打开帮助成功则返回真，否则返回假。

语法： 逻辑型 通用对话框．打开 （）

参见： 语法的描述规则、基本数据类型


取顶端可见项目 (组合框)

取顶端可见项目 方法 所属对象：组合框

返回组合框列表部分中当前最顶端可见项目的索引。0 为项目一，1 为项目二，如此类推。失败返回 -1 。

语法： 整数型 组合框．取顶端可见项目 （）

参见： 语法的描述规则、基本数据类型


置顶端可见项目 (组合框)

置顶端可见项目 方法 所属对象：组合框

设置组合框列表部分中当前最顶端的可见项目，必要时将自动滚动组合框的列表部分。成功返回真，失败返回假。

语法： 逻辑型 组合框．置顶端可见项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


取项目数 (组合框)

取项目数 方法 所属对象：组合框

语法： 整数型 组合框．取项目数 （）

参见： 语法的描述规则、基本数据类型


取项目数值 (组合框)

取项目数值 方法 所属对象：组合框

返回与指定项目相关联的数值。如果指定项目不存在，将返回 -1 。

语法： 整数型 组合框．取项目数值 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


置项目数值 (组合框)

置项目数值 方法 所属对象：组合框

设置与指定项目相关联的数值。成功返回真，失败返回假。

语法： 逻辑型 组合框．置项目数值 （项目索引，欲置入的项目数值）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目数值 | 必需的；整数型。该项目数值与指定项目相关联。

参见： 语法的描述规则、基本数据类型


取项目文本 (组合框)

取项目文本 方法 所属对象：组合框

返回指定项目的文本。如果指定项目不存在，将返回空文本。

语法： 文本型 组合框．取项目文本 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


置项目文本 (组合框)

置项目文本 方法 所属对象：组合框

设置指定项目的文本。成功返回真，失败返回假。

语法： 逻辑型 组合框．置项目文本 （项目索引，欲置入的项目文本）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


加入项目 (组合框)

加入项目 方法 所属对象：组合框

加入指定项目到组合框列表部分的尾部，成功返回加入后该项目所处的位置，失败返回 -1 。

语法： 整数型 组合框．加入项目 （欲加入项目的文本，［与欲加入项目相关的数值］）

参数名 | 描 述
欲加入项目的文本 | 必需的；文本型。
与欲加入项目相关的数值 | 可选的；整数型。如果省略本参数，默认值为 0。

参见： 语法的描述规则、基本数据类型


插入项目 (组合框)

插入项目 方法 所属对象：组合框

插入指定项目到组合框列表部分的指定位置处，成功返回插入后该项目所处的位置，失败返回 -1 。

语法： 整数型 组合框．插入项目 （欲插入的位置，欲插入项目的文本，［与欲插入项目相关的数值］）

参数名 | 描 述
欲插入的位置 | 必需的；整数型。0 为项目位置一，1 为项目位置二，如此类推。
欲插入项目的文本 | 必需的；文本型。
与欲插入项目相关的数值 | 可选的；整数型。如果省略本参数，默认值为 0。

参见： 语法的描述规则、基本数据类型


删除项目 (组合框)

删除项目 方法 所属对象：组合框

删除组合框列表部分指定位置处的项目。成功返回真，失败返回假。

语法： 逻辑型 组合框．删除项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


清空 (组合框)

清空 方法 所属对象：组合框

删除组合框列表部分中的所有项目。

语法： 无返回值 组合框．清空 （）

参见： 语法的描述规则、基本数据类型


选择 (组合框)

选择 方法 所属对象：组合框

在所有项目中寻找首部包含指定文本的项目，如找到，则选中它，并返回该项目的位置索引，否则返回 -1。

语法： 整数型 组合框．选择 （欲选择的项目文本）

参数名 | 描 述
欲选择的项目文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取顶端可见项目 (列表框)

取顶端可见项目 方法 所属对象：列表框

返回列表框中当前最顶端可见项目的索引。0 为项目一，1 为项目二，如此类推。失败返回 -1 。

语法： 整数型 列表框．取顶端可见项目 （）

参见： 语法的描述规则、基本数据类型


置顶端可见项目 (列表框)

置顶端可见项目 方法 所属对象：列表框

设置列表框中当前最顶端的可见项目，必要时将自动滚动列表框。成功返回真，失败返回假。

语法： 逻辑型 列表框．置顶端可见项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


取项目数 (列表框)

取项目数 方法 所属对象：列表框

语法： 整数型 列表框．取项目数 （）

参见： 语法的描述规则、基本数据类型


取项目数值 (列表框)

取项目数值 方法 所属对象：列表框

返回与指定项目相关联的数值。如果指定项目不存在，将返回 -1 。

语法： 整数型 列表框．取项目数值 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


置项目数值 (列表框)

置项目数值 方法 所属对象：列表框

设置与指定项目相关联的数值。成功返回真，失败返回假。

语法： 逻辑型 列表框．置项目数值 （项目索引，欲置入的项目数值）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目数值 | 必需的；整数型。该项目数值与指定项目相关联。

参见： 语法的描述规则、基本数据类型


取项目文本 (列表框)

取项目文本 方法 所属对象：列表框

返回指定项目的文本。如果指定项目不存在，将返回空文本。

语法： 文本型 列表框．取项目文本 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


置项目文本 (列表框)

置项目文本 方法 所属对象：列表框

设置指定项目的文本。成功返回真，失败返回假。

语法： 逻辑型 列表框．置项目文本 （项目索引，欲置入的项目文本）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取已选择项目数 (列表框)

取已选择项目数 方法 所属对象：列表框

返回已被选择项目的数目。

语法： 整数型 列表框．取已选择项目数 （）

参见： 语法的描述规则、基本数据类型


取所有被选择项目 (列表框)

取所有被选择项目 方法 所属对象：列表框

返回一个整数数组，內含所有当前被选择项目的位置索引。如果当前没有被选择项目，返回空数组。

语法： 整数型数组 列表框．取所有被选择项目 （）

参见： 语法的描述规则、基本数据类型


是否被选择 (列表框)

是否被选择 方法 所属对象：列表框

如果指定项目被选择，则返回真，否则返回假。

语法： 逻辑型 列表框．是否被选择 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


选择项目 (列表框)

选择项目 方法 所属对象：列表框

选择或取消选择指定项目。成功返回真，失败返回假。

语法： 逻辑型 列表框．选择项目 （欲选择或取消选择的项目索引，［欲置入的项目选择状态］）

参数名 | 描 述
欲选择或取消选择的项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目选择状态 | 可选的；逻辑型。如果省略本参数或者参数值为真，则选择该项目，否则取消对该项目的选择。

参见： 语法的描述规则、基本数据类型


取焦点项目 (列表框)

取焦点项目 方法 所属对象：列表框

本命令仅在多选列表框中使用，用作返回当前焦点项目的位置索引。如果在单选列表框中使用本命令，将返回当前被选择项目的位置索引。

语法： 整数型 列表框．取焦点项目 （）

参见： 语法的描述规则、基本数据类型


置焦点项目 (列表框)

置焦点项目 方法 所属对象：列表框

本命令仅在多选列表框中使用，用作设置当前焦点项目。如果在单选列表框中使用本命令，将设置当前被选择项目。成功返回真，失败返回假。

语法： 逻辑型 列表框．置焦点项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


加入项目 (列表框)

加入项目 方法 所属对象：列表框

加入指定项目到列表框的尾部，成功返回加入后该项目所处的位置，失败返回 -1 。

语法： 整数型 列表框．加入项目 （欲加入项目的文本，［与欲加入项目相关的数值］）

参数名 | 描 述
欲加入项目的文本 | 必需的；文本型。
与欲加入项目相关的数值 | 可选的；整数型。如果省略本参数，默认值为 0。

参见： 语法的描述规则、基本数据类型


插入项目 (列表框)

插入项目 方法 所属对象：列表框

插入指定项目到列表框的指定位置处，成功返回插入后该项目所处的位置，失败返回 -1 。

语法： 整数型 列表框．插入项目 （欲插入的位置，欲插入项目的文本，［与欲插入项目相关的数值］）

参数名 | 描 述
欲插入的位置 | 必需的；整数型。0 为项目位置一，1 为项目位置二，如此类推。
欲插入项目的文本 | 必需的；文本型。
与欲插入项目相关的数值 | 可选的；整数型。如果省略本参数，默认值为 0。

参见： 语法的描述规则、基本数据类型


删除项目 (列表框)

删除项目 方法 所属对象：列表框

删除列表框指定位置处的项目。成功返回真，失败返回假。

语法： 逻辑型 列表框．删除项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


清空 (列表框)

清空 方法 所属对象：列表框

删除列表框中的所有项目。

语法： 无返回值 列表框．清空 （）

参见： 语法的描述规则、基本数据类型


选择 (列表框)

选择 方法 所属对象：列表框

在所有项目中寻找首部包含指定文本的项目，如找到，则选中它，并返回该项目的位置索引，否则返回 -1 。本命令仅在单选列表框中使用，如果在多选列表框中使用，将返回 -1 。

语法： 整数型 列表框．选择 （欲选择的项目文本）

参数名 | 描 述
欲选择的项目文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取顶端可见项目 (选择列表框)

取顶端可见项目 方法 所属对象：选择列表框

返回列表框中当前最顶端可见项目的索引。0 为项目一，1 为项目二，如此类推。失败返回 -1 。

语法： 整数型 选择列表框．取顶端可见项目 （）

参见： 语法的描述规则、基本数据类型


置顶端可见项目 (选择列表框)

置顶端可见项目 方法 所属对象：选择列表框

设置列表框中当前最顶端的可见项目，必要时将自动滚动列表框。成功返回真，失败返回假。

语法： 逻辑型 选择列表框．置顶端可见项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


取项目数 (选择列表框)

取项目数 方法 所属对象：选择列表框

语法： 整数型 选择列表框．取项目数 （）

参见： 语法的描述规则、基本数据类型


取项目数值 (选择列表框)

取项目数值 方法 所属对象：选择列表框

返回与指定项目相关联的数值。如果指定项目不存在，将返回 -1 。

语法： 整数型 选择列表框．取项目数值 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


置项目数值 (选择列表框)

置项目数值 方法 所属对象：选择列表框

设置与指定项目相关联的数值。成功返回真，失败返回假。

语法： 逻辑型 选择列表框．置项目数值 （项目索引，欲置入的项目数值）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目数值 | 必需的；整数型。该项目数值与指定项目相关联。

参见： 语法的描述规则、基本数据类型


取项目文本 (选择列表框)

取项目文本 方法 所属对象：选择列表框

返回指定项目的文本。如果指定项目不存在，将返回空文本。

语法： 文本型 选择列表框．取项目文本 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


置项目文本 (选择列表框)

置项目文本 方法 所属对象：选择列表框

设置指定项目的文本。成功返回真，失败返回假。

语法： 逻辑型 选择列表框．置项目文本 （项目索引，欲置入的项目文本）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


加入项目 (选择列表框)

加入项目 方法 所属对象：选择列表框

加入指定项目到列表框的尾部，成功返回加入后该项目所处的位置，失败返回 -1 。

语法： 整数型 选择列表框．加入项目 （欲加入项目的文本，［与欲加入项目相关的数值］）

参数名 | 描 述
欲加入项目的文本 | 必需的；文本型。
与欲加入项目相关的数值 | 可选的；整数型。如果省略本参数，默认值为 0。

参见： 语法的描述规则、基本数据类型


插入项目 (选择列表框)

插入项目 方法 所属对象：选择列表框

插入指定项目到列表框的指定位置处，成功返回插入后该项目所处的位置，失败返回 -1 。

语法： 整数型 选择列表框．插入项目 （欲插入的位置，欲插入项目的文本，［与欲插入项目相关的数值］）

参数名 | 描 述
欲插入的位置 | 必需的；整数型。0 为项目位置一，1 为项目位置二，如此类推。
欲插入项目的文本 | 必需的；文本型。
与欲插入项目相关的数值 | 可选的；整数型。如果省略本参数，默认值为 0。

参见： 语法的描述规则、基本数据类型


删除项目 (选择列表框)

删除项目 方法 所属对象：选择列表框

删除列表框指定位置处的项目。成功返回真，失败返回假。

语法： 逻辑型 选择列表框．删除项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


清空 (选择列表框)

清空 方法 所属对象：选择列表框

删除列表框中的所有项目。

语法： 无返回值 选择列表框．清空 （）

参见： 语法的描述规则、基本数据类型


选择 (选择列表框)

选择 方法 所属对象：选择列表框

在所有项目中寻找首部包含指定文本的项目，如找到，则选中它，并返回该项目的位置索引，否则返回 -1。

语法： 整数型 选择列表框．选择 （欲选择的项目文本）

参数名 | 描 述
欲选择的项目文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


是否被选中 (选择列表框)

是否被选中 方法 所属对象：选择列表框

如果与指定项目对应的选择框被选中，则返回真，否则返回假。

语法： 逻辑型 选择列表框．是否被选中 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


选中项目 (选择列表框)

选中项目 方法 所属对象：选择列表框

选中或取消选中与指定项目对应的选择框。成功返回真，失败返回假。

语法： 逻辑型 选择列表框．选中项目 （欲选择或取消选择的项目索引，［欲置入的项目选择状态］）

参数名 | 描 述
欲选择或取消选择的项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目选择状态 | 可选的；逻辑型。如果省略本参数或者参数值为真，则选择该项目，否则取消对该项目的选择。

参见： 语法的描述规则、基本数据类型


是否被允许 (选择列表框)

是否被允许 方法 所属对象：选择列表框

如果与指定项目对应的选择框被允许操作，则返回真，否则返回假。

语法： 逻辑型 选择列表框．是否被允许 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


允许 (选择列表框)

允许 方法 所属对象：选择列表框

允许或禁止对指定项目进行选择操作。成功返回真，失败返回假。

语法： 逻辑型 选择列表框．允许 （欲允许或禁止操作的项目索引，［允许或禁止］）

参数名 | 描 述
欲允许或禁止操作的项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
允许或禁止 | 可选的；逻辑型。如果省略本参数或者参数值为真，则允许该项目，否则禁止对该项目进行选中操作。

参见： 语法的描述规则、基本数据类型


取设备句柄 (画板)

取设备句柄 方法 所属对象：画板

为高级用户提供，初级用户无需掌握；
如当前用户程序正在处理本画板所产生的“绘画”事件，则返回画板所对应的设备句柄（即HDC），否则返回 0。

语法： 整数型 画板．取设备句柄 （）

参见： 语法的描述规则、基本数据类型


清除 (画板)

清除 方法 所属对象：画板

清除画板上指定区域的内容并将当前文本写出位置移动到被清除区左上角。

语法： 无返回值 画板．清除 （［清除区左上角横坐标］，［清除区左上角纵坐标］，［清除区宽度］，［清除区高度］）

参数名 | 描 述
清除区左上角横坐标 | 可选的；整数型。使用当前绘画单位，相对于画板左上角。如果被省略，默认为 0 。
清除区左上角纵坐标 | 可选的；整数型。使用当前绘画单位，相对于画板左上角。如果被省略，默认为 0 。
清除区宽度 | 可选的；整数型。使用当前绘画单位。如果被省略，默认为清除区左边到画板右边之间的宽度。
清除区高度 | 可选的；整数型。使用当前绘画单位。如果被省略，默认为清除区顶边到画板底边之间的高度。

参见： 语法的描述规则、基本数据类型


取点 (画板)

取点 方法 所属对象：画板

返回画板上指定点的颜色值。如果失败，将返回 -1。

语法： 整数型 画板．取点 （点横坐标，点纵坐标）

参数名 | 描 述
点横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
点纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画点 (画板)

画点 方法 所属对象：画板

语法： 无返回值 画板．画点 （点横坐标，点纵坐标，欲画入点的颜色值）

参数名 | 描 述
点横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
点纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
欲画入点的颜色值 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


画直线 (画板)

画直线 方法 所属对象：画板

使用画笔在画板上画出一条直线。

语法： 无返回值 画板．画直线 （起始点横坐标，起始点纵坐标，结束点横坐标，结束点纵坐标）

参数名 | 描 述
起始点横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
起始点纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
结束点横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
结束点纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画椭圆 (画板)

画椭圆 方法 所属对象：画板

语法： 无返回值 画板．画椭圆 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标）

参数名 | 描 述
椭圆左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画弧线 (画板)

画弧线 方法 所属对象：画板

使用画笔在画板上画出一条弧线。

语法： 无返回值 画板．画弧线 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

参数名 | 描 述
椭圆左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点横坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点纵坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点横坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点纵坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画弦 (画板)

画弦 方法 所属对象：画板

语法： 无返回值 画板．画弦 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

参数名 | 描 述
椭圆左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点横坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点纵坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点横坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点纵坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画饼 (画板)

画饼 方法 所属对象：画板

语法： 无返回值 画板．画饼 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

参数名 | 描 述
椭圆左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点横坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点纵坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点横坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点纵坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画矩形 (画板)

画矩形 方法 所属对象：画板

使用画笔在画板上画出一个矩形，矩形的内部使用刷子填充。

语法： 无返回值 画板．画矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

参数名 | 描 述
矩形左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画渐变矩形 (画板)

画渐变矩形 方法 所属对象：画板

语法： 无返回值 画板．画渐变矩形 （矩形区域左边，矩形区域顶边，矩形区域宽度，矩形区域高度，［渐变方向］，首渐变颜色，其它渐变颜色，… ）

参数名 | 描 述
矩形区域左边 | 必需的；整数型。
矩形区域顶边 | 必需的；整数型。
矩形区域宽度 | 必需的；整数型。
矩形区域高度 | 必需的；整数型。
渐变方向 | 可选的；整数型。参数值可以为以下常量值之一： 1、#从上到下； 2、#从左到右； 3、从左上到右下； 4、从右上到左下； 5、从下到上； 6、从右到左； 7、从右下到左上； 8、从左下到右上。 如果本参数被省略，默认为“#从左到右”。
首渐变颜色 | 必需的；整数型。
其它渐变颜色 | 必需的；可扩充的；整数型。

参见： 语法的描述规则、基本数据类型


填充矩形 (画板)

填充矩形 方法 所属对象：画板

将画板上指定的矩形区域用当前刷子填充。

语法： 无返回值 画板．填充矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

参数名 | 描 述
矩形左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画圆角矩形 (画板)

画圆角矩形 方法 所属对象：画板

使用画笔在画板上画出一个圆角矩形，圆角矩形的内部使用刷子填充。

语法： 无返回值 画板．画圆角矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标，圆角宽度，［圆角高度］）

参数名 | 描 述
矩形左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
圆角宽度 | 必需的；整数型。使用当前绘画单位。
圆角高度 | 可选的；整数型。使用当前绘画单位。如果省略本参数，默认与圆角宽度相等。

参见： 语法的描述规则、基本数据类型


翻转矩形区 (画板)

翻转矩形区 方法 所属对象：画板

将画板上指定矩形区域的颜色翻转过来。

语法： 无返回值 画板．翻转矩形区 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

参数名 | 描 述
矩形左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画多边形 (画板)

画多边形 方法 所属对象：画板

如果所画的多边形没有闭合，将自动闭合。

语法： 无返回值 画板．画多边形 （多边形顶点，［顶点数目］）

参数名 | 描 述
多边形顶点 | 必需的；整数型，参数数据只能提供数组数据。本参数数组顺序记录多边形各顶点的横向及纵向坐标值。使用当前绘画单位，相对于画板或打印纸左上角。
顶点数目 | 可选的；整数型。本参数指定多边形顶点的总数目。如果被省略，默认为数组中所记录的顶点数目。

参见： 语法的描述规则、基本数据类型


置写出位置 (画板)

置写出位置 方法 所属对象：画板

设置下次使用“写文本行”或“写出”命令输出数据时的位置。

语法： 无返回值 画板．置写出位置 （［横向写出位置］，［纵向写出位置］）

参数名 | 描 述
横向写出位置 | 可选的；整数型。如果本参数被省略，则使用现行横向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。
纵向写出位置 | 可选的；整数型。如果本参数被省略，则使用现行纵向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


写文本行 (画板)

写文本行 方法 所属对象：画板

在当前写出位置写出指定的文本、数值、逻辑值或日期时间，并将现行写出位置调整到下行行首。

语法： 无返回值 画板．写文本行 （［欲写出数据］，… ）

参数名 | 描 述
欲写出数据 | 可选的；可扩充的；通用型。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

参见： 语法的描述规则、基本数据类型


滚动写行 (画板)

滚动写行 方法 所属对象：画板

在当前写出位置写出指定的文本、数值、逻辑值或日期时间，并将现行写出位置调整到下行行首。如果现行画板高度无法容纳当前所要写出的行，则自动向上滚动画板内容。

语法： 无返回值 画板．滚动写行 （［欲写出数据］，… ）

参数名 | 描 述
欲写出数据 | 可选的；可扩充的；通用型。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

参见： 语法的描述规则、基本数据类型


写出 (画板)

写出 方法 所属对象：画板

在当前写出位置处写出指定的文本、数值、逻辑值或日期时间。自动调整现行写出位置到所写出数据的末位置。

语法： 无返回值 画板．写出 （［欲写出数据］，… ）

参数名 | 描 述
欲写出数据 | 可选的；可扩充的；通用型。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

参见： 语法的描述规则、基本数据类型


定位写出 (画板)

定位写出 方法 所属对象：画板

在指定写出位置处写出指定的文本、数值、逻辑值或日期时间，不改变现行写出位置。

语法： 无返回值 画板．定位写出 （［横向写出位置］，［纵向写出位置］，欲写出数据，… ）

参数名 | 描 述
横向写出位置 | 可选的；整数型。如果本参数被省略，则使用现行横向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。
纵向写出位置 | 可选的；整数型。如果本参数被省略，则使用现行纵向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。
欲写出数据 | 必需的；可扩充的；通用型。参数值只能为文本、数值、逻辑值或日期时间。

参见： 语法的描述规则、基本数据类型


取宽度 (画板)

取宽度 方法 所属对象：画板

返回指定数据的写出宽度，使用当前绘画单位。

语法： 整数型 画板．取宽度 （欲取其宽度或高度的数据）

参数名 | 描 述
欲取其宽度或高度的数据 | 必需的；通用型。参数值只能为文本、数值、逻辑值或日期时间。

参见： 语法的描述规则、基本数据类型


取高度 (画板)

取高度 方法 所属对象：画板

返回指定数据的写出高度，使用当前绘画单位。

语法： 整数型 画板．取高度 （欲取其宽度或高度的数据）

参数名 | 描 述
欲取其宽度或高度的数据 | 必需的；通用型。参数值只能为文本、数值、逻辑值或日期时间。

参见： 语法的描述规则、基本数据类型


画图片 (画板)

画图片 方法 所属对象：画板

语法： 无返回值 画板．画图片 （图片号，图片左边画出位置，图片顶边画出位置，［图片画出宽度］，［图片画出高度］，［图片画出方法］）

参数名 | 描 述
图片号 | 必需的；整数型。参数值必须为调用“载入图片”命令所返回的图片号。
图片左边画出位置 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
图片顶边画出位置 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
图片画出宽度 | 可选的；整数型。如果本参数被省略，则使用图片本身的宽度。使用当前绘画单位。
图片画出高度 | 可选的；整数型。如果本参数被省略，则使用图片本身的高度。使用当前绘画单位。
图片画出方法 | 可选的；整数型。本参数定义在将图像绘制到对象（画板 / 打印机）上时对图像执行的位操作。对“图标”类型图片无效。可以为以下常量值之一或者其它自定义操作码： 1、#拷贝； 2、#翻转拷贝； 3、#位异或； 4、#位或； 5、#位与 本参数也可以指定透明色，但必须是负颜色数值。如： 画板1.画图片 (图片号, 0, 0, , , －取颜色值 (255, 255, 255)) 此语句的作用就是在画板上画出图片中除白色外的所有颜色。 如果省略本参数，默认为“#拷贝”。

参见： 语法的描述规则、基本数据类型


取图片宽度 (画板)

取图片宽度 方法 所属对象：画板

返回指定图片的宽度，使用当前绘画单位。

语法： 整数型 画板．取图片宽度 （图片号）

参数名 | 描 述
图片号 | 必需的；整数型。参数值必须为调用“载入图片”命令所返回的图片号。

参见： 语法的描述规则、基本数据类型


取图片高度 (画板)

取图片高度 方法 所属对象：画板

返回指定图片的高度，使用当前绘画单位。

语法： 整数型 画板．取图片高度 （图片号）

参数名 | 描 述
图片号 | 必需的；整数型。参数值必须为调用“载入图片”命令所返回的图片号。

参见： 语法的描述规则、基本数据类型


复制 (画板)

复制 方法 所属对象：画板

将源画板（本命令的调用画板对象）中指定区域的内容快速复制到目的画板中的指定位置，使用源和目的画板各自的当前绘画单位。如果源画板当前不可视，其“自动重画”属性必须为真。

语法： 无返回值 画板．复制 （［欲复制区域的左边］，［欲复制区域的顶边］，［欲复制区域的宽度］，［欲复制区域的高度］，［复制到的目的画板］，［欲复制到位置左边］，［欲复制到位置顶边］，［复制方法］）

参数名 | 描 述
欲复制区域的左边 | 可选的；整数型。如果本参数被省略，默认值为 0 。使用源画板的当前绘画单位。
欲复制区域的顶边 | 可选的；整数型。如果本参数被省略，默认值为 0 。使用源画板的当前绘画单位。
欲复制区域的宽度 | 可选的；整数型。如果本参数被省略，默认等同于源画板的宽度。使用源画板的当前绘画单位。
欲复制区域的高度 | 可选的；整数型。如果本参数被省略，默认等同于源画板的高度。使用源画板的当前绘画单位。
复制到的目的画板 | 可选的；画板。如果本参数被省略，默认为复制到源画板对象。
欲复制到位置左边 | 可选的；整数型。如果本参数被省略，默认值为 0 。使用目的画板的当前绘画单位。
欲复制到位置顶边 | 可选的；整数型。如果本参数被省略，默认值为 0 。使用目的画板的当前绘画单位。
复制方法 | 可选的；整数型。本参数定义在将画板内容复制到目的画板上时对图像执行的位操作。可以为以下常量值之一或者其它自定义操作码： 1、#拷贝； 2、#翻转拷贝； 3、#位异或； 4、#位或； 5、#位与。 如果省略本参数，默认为“#拷贝”。

参见： 语法的描述规则、基本数据类型


取设备句柄 (打印机)

取设备句柄 方法 所属对象：打印机

为高级用户提供，初级用户无需掌握；
如当前用户程序正在进行打印作业，则返回对应的打印机设备句柄（即HDC），否则返回 0。

语法： 整数型 打印机．取设备句柄 （）

参见： 语法的描述规则、基本数据类型


开始打印 (打印机)

开始打印 方法 所属对象：打印机

返回真表示已经成功地进入了打印作业，进入打印作业后文本写出位置将被重置为 0 。如果执行本命令时已经在打印作业中或者用户在打印设置对话框中选择了取消，返回假。进入打印后必须调用“结束打印”或者“取消打印”方法来退出打印。进入打印前易程序进行的所有打印绘画操作都将被忽略。

语法： 逻辑型 打印机．开始打印 （［是否调用打印设置对话框］，［是否显示打印状态对话框］，［纸张］，［纸张方向］）

参数名 | 描 述
是否调用打印设置对话框 | 可选的；逻辑型。指定在进入打印之前是否先调用打印设置对话框对打印机及相关打印参数进行设置。如省略本参数，默认为真。如果参数值为假，将自动使用 Windows 系统默认打印机，但如果取 Windows 系统默认打印机失败，仍然会调用打印设置对话框。
是否显示打印状态对话框 | 可选的；逻辑型。指定在打印过程中是否显示由系统自动提供的打印状态对话框。用户如果在该打印状态对话框中选择了取消打印，系统将自动中止并取消该打印作业，并置“打印被中止”属性值为真。如省略本参数，默认为真。
纸张 | 可选的；整数型。指定所使用的打印纸类型。可以为以下常量值之一： 0、#默认纸； 1、#A3纸(297x420毫米)； 2、#A4纸(210x297毫米)； 3、#A5纸(148x210毫米)； 4、#B4纸(250x354毫米)； 5、#B5纸(182x257毫米)； 6、#四开(215x275毫米)； 7、#十六开(146x215毫米)； 8、#三十二开(97x151毫米)； 9、#信纸(216x279毫米)； 10、#法律用纸(216x355毫米)； 11、#行政用纸(184x266毫米)； 12、#声明(140x216毫米)； 13、#小报(279x432毫米)； 14、#笔记(216x279毫米)； 15、#帐本(432x279毫米)； 16、#对开纸(216x330毫米)。 注意如果所选择纸张得不到打印机的支持，打印机将会自动选择最接近的纸张。如省略本参数，默认为“#默认纸”。
纸张方向 | 可选的；整数型。指定打印纸的放置方向。可以为以下常量值之一： 0、#纵向； 1、#横向。如省略本参数，默认为“#纵向”。

参见： 语法的描述规则、基本数据类型


结束打印 (打印机)

结束打印 方法 所属对象：打印机

如果当前已经进入了打印作业，调用本命令可完成此作业。结束打印后易程序进行的后续打印绘画操作都将被忽略。

语法： 无返回值 打印机．结束打印 （）

参见： 语法的描述规则、基本数据类型


取消打印 (打印机)

取消打印 方法 所属对象：打印机

如果当前已经进入了打印作业，调用本命令可立即中止且取消该作业。如果操作系统的打印管理器正在处理该打印作业（打印管理器正在运行并且允许后台打印），那么该作业将被删除且使打印机不接收任何信息。如果打印管理器不是正在处理该作业（没有选用后台打印），部分或全部数据可能在此之前已发送到打印机。此时，打印机驱动程序将尽可能使打印机立即复位并终止该作业。取消打印后易程序进行的后续打印绘画操作都将被忽略。

语法： 无返回值 打印机．取消打印 （）

参见： 语法的描述规则、基本数据类型


换页 (打印机)

换页 方法 所属对象：打印机

调用本命令使打印机完成当前页的打印，文本写出位置被重置为 0 ，并走纸到下一页左上角。如果换页成功返回真，否则将自动取消打印并返回假。

语法： 逻辑型 打印机．换页 （）

参见： 语法的描述规则、基本数据类型


开始下一份 (打印机)

开始下一份 方法 所属对象：打印机

调用本命令后将结束在当前页上的打印作业，并将当前打印份数加一，当前页号置回到首页页号，以进入下一份拷贝的打印。如果成功返回真，失败将自动取消打印并返回假。

语法： 逻辑型 打印机．开始下一份 （）

参见： 语法的描述规则、基本数据类型


画点 (打印机)

画点 方法 所属对象：打印机

语法： 无返回值 打印机．画点 （点横坐标，点纵坐标，欲画入点的颜色值）

参数名 | 描 述
点横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
点纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
欲画入点的颜色值 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


画直线 (打印机)

画直线 方法 所属对象：打印机

使用画笔在画板上画出一条直线。

语法： 无返回值 打印机．画直线 （起始点横坐标，起始点纵坐标，结束点横坐标，结束点纵坐标）

参数名 | 描 述
起始点横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
起始点纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
结束点横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
结束点纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画椭圆 (打印机)

画椭圆 方法 所属对象：打印机

语法： 无返回值 打印机．画椭圆 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标）

参数名 | 描 述
椭圆左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画弧线 (打印机)

画弧线 方法 所属对象：打印机

使用画笔在画板上画出一条弧线。

语法： 无返回值 打印机．画弧线 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

参数名 | 描 述
椭圆左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点横坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点纵坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点横坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点纵坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画弦 (打印机)

画弦 方法 所属对象：打印机

语法： 无返回值 打印机．画弦 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

参数名 | 描 述
椭圆左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点横坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点纵坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点横坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点纵坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画饼 (打印机)

画饼 方法 所属对象：打印机

语法： 无返回值 打印机．画饼 （椭圆左上角横坐标，椭圆左上角纵坐标，椭圆右下角横坐标，椭圆右下角纵坐标，弧线起始点横坐标，弧线起始点纵坐标，弧线终止点横坐标，弧线终止点纵坐标）

参数名 | 描 述
椭圆左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
椭圆右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点横坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线起始点纵坐标 | 必需的；整数型。弧线从椭圆中心点至此起始点的直线与椭圆圆弧相交处开始绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点横坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。
弧线终止点纵坐标 | 必需的；整数型。弧线在椭圆中心点至此终止点的直线与椭圆圆弧相交处结束绘制。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画矩形 (打印机)

画矩形 方法 所属对象：打印机

使用画笔在画板上画出一个矩形，矩形的内部使用刷子填充。

语法： 无返回值 打印机．画矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

参数名 | 描 述
矩形左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画渐变矩形 (打印机)

画渐变矩形 方法 所属对象：打印机

语法： 无返回值 打印机．画渐变矩形 （矩形区域左边，矩形区域顶边，矩形区域宽度，矩形区域高度，［渐变方向］，首渐变颜色，其它渐变颜色，… ）

参数名 | 描 述
矩形区域左边 | 必需的；整数型。
矩形区域顶边 | 必需的；整数型。
矩形区域宽度 | 必需的；整数型。
矩形区域高度 | 必需的；整数型。
渐变方向 | 可选的；整数型。参数值可以为以下常量值之一： 1、#从上到下； 2、#从左到右； 3、从左上到右下； 4、从右上到左下； 5、从下到上； 6、从右到左； 7、从右下到左上； 8、从左下到右上。 如果本参数被省略，默认为“#从左到右”。
首渐变颜色 | 必需的；整数型。
其它渐变颜色 | 必需的；可扩充的；整数型。

参见： 语法的描述规则、基本数据类型


填充矩形 (打印机)

填充矩形 方法 所属对象：打印机

将画板上指定的矩形区域用当前刷子填充。

语法： 无返回值 打印机．填充矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标）

参数名 | 描 述
矩形左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


画圆角矩形 (打印机)

画圆角矩形 方法 所属对象：打印机

使用画笔在画板上画出一个圆角矩形，圆角矩形的内部使用刷子填充。

语法： 无返回值 打印机．画圆角矩形 （矩形左上角横坐标，矩形左上角纵坐标，矩形右下角横坐标，矩形右下角纵坐标，圆角宽度）

参数名 | 描 述
矩形左上角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形左上角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角横坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
矩形右下角纵坐标 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
圆角宽度 | 必需的；整数型。使用当前绘画单位。

参见： 语法的描述规则、基本数据类型


画多边形 (打印机)

画多边形 方法 所属对象：打印机

语法： 无返回值 打印机．画多边形 （多边形顶点，［顶点数目］）

参数名 | 描 述
多边形顶点 | 必需的；整数型，参数数据只能提供数组数据。本参数数组顺序记录多边形各顶点的横向及纵向坐标值。使用当前绘画单位，相对于画板或打印纸左上角。
顶点数目 | 可选的；整数型。本参数指定多边形顶点的总数目。如果被省略，默认为数组中所记录的顶点数目。

参见： 语法的描述规则、基本数据类型


置写出位置 (打印机)

置写出位置 方法 所属对象：打印机

设置下次使用“写文本行”或“写出”命令输出数据时的位置。

语法： 无返回值 打印机．置写出位置 （［横向写出位置］，［纵向写出位置］）

参数名 | 描 述
横向写出位置 | 可选的；整数型。如果本参数被省略，则使用现行横向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。
纵向写出位置 | 可选的；整数型。如果本参数被省略，则使用现行纵向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。

参见： 语法的描述规则、基本数据类型


写文本行 (打印机)

写文本行 方法 所属对象：打印机

在当前写出位置写出指定的文本、数值、逻辑值或日期时间，并将现行写出位置调整到下行行首。支持自动换页。

语法： 无返回值 打印机．写文本行 （［欲写出数据］，… ）

参数名 | 描 述
欲写出数据 | 可选的；可扩充的；通用型。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

参见： 语法的描述规则、基本数据类型


写出 (打印机)

写出 方法 所属对象：打印机

在当前写出位置处写出指定的文本、数值、逻辑值或日期时间。自动调整现行写出位置到所写出数据的末位置。

语法： 无返回值 打印机．写出 （［欲写出数据］，… ）

参数名 | 描 述
欲写出数据 | 可选的；可扩充的；通用型。参数值只能为文本、数值、逻辑值或日期时间。如果本参数被省略，则写出一个空行。

参见： 语法的描述规则、基本数据类型


定位写出 (打印机)

定位写出 方法 所属对象：打印机

在指定写出位置处写出指定的文本、数值、逻辑值或日期时间，不改变现行写出位置。

语法： 无返回值 打印机．定位写出 （［横向写出位置］，［纵向写出位置］，欲写出数据，… ）

参数名 | 描 述
横向写出位置 | 可选的；整数型。如果本参数被省略，则使用现行横向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。
纵向写出位置 | 可选的；整数型。如果本参数被省略，则使用现行纵向写出位置。使用当前绘画单位，相对于画板或打印纸左上角。
欲写出数据 | 必需的；可扩充的；通用型。参数值只能为文本、数值、逻辑值或日期时间。

参见： 语法的描述规则、基本数据类型


取宽度 (打印机)

取宽度 方法 所属对象：打印机

返回指定数据的写出宽度，使用当前绘画单位。如果调用本命令时尚未进入打印，将返回 0 。

语法： 整数型 打印机．取宽度 （欲取其宽度或高度的数据）

参数名 | 描 述
欲取其宽度或高度的数据 | 必需的；通用型。参数值只能为文本、数值、逻辑值或日期时间。

参见： 语法的描述规则、基本数据类型


取高度 (打印机)

取高度 方法 所属对象：打印机

返回指定数据的写出高度，使用当前绘画单位。如果调用本命令时尚未进入打印，将返回 0 。

语法： 整数型 打印机．取高度 （欲取其宽度或高度的数据）

参数名 | 描 述
欲取其宽度或高度的数据 | 必需的；通用型。参数值只能为文本、数值、逻辑值或日期时间。

参见： 语法的描述规则、基本数据类型


画图片 (打印机)

画图片 方法 所属对象：打印机

语法： 无返回值 打印机．画图片 （图片号，图片左边画出位置，图片顶边画出位置，［图片画出宽度］，［图片画出高度］，［图片画出方法］）

参数名 | 描 述
图片号 | 必需的；整数型。参数值必须为调用“载入图片”命令所返回的图片号。
图片左边画出位置 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
图片顶边画出位置 | 必需的；整数型。使用当前绘画单位，相对于画板或打印纸左上角。
图片画出宽度 | 可选的；整数型。如果本参数被省略，则使用图片本身的宽度。使用当前绘画单位。
图片画出高度 | 可选的；整数型。如果本参数被省略，则使用图片本身的高度。使用当前绘画单位。
图片画出方法 | 可选的；整数型。本参数定义在将图像绘制到对象（画板 / 打印机）上时对图像执行的位操作。对“图标”类型图片无效。可以为以下常量值之一或者其它自定义操作码： 1、#拷贝； 2、#翻转拷贝； 3、#位异或； 4、#位或； 5、#位与 本参数也可以指定透明色，但必须是负颜色数值。如： 画板1.画图片 (图片号, 0, 0, , , －取颜色值 (255, 255, 255)) 此语句的作用就是在画板上画出图片中除白色外的所有颜色。 如果省略本参数，默认为“#拷贝”。

参见： 语法的描述规则、基本数据类型


取图片宽度 (打印机)

取图片宽度 方法 所属对象：打印机

返回指定图片的宽度。如果调用本命令时尚未进入打印，使用像素点为单位，否则使用当前绘画单位。

语法： 整数型 打印机．取图片宽度 （图片号）

参数名 | 描 述
图片号 | 必需的；整数型。参数值必须为调用“载入图片”命令所返回的图片号。

参见： 语法的描述规则、基本数据类型


取图片高度 (打印机)

取图片高度 方法 所属对象：打印机

返回指定图片的高度。如果调用本命令时尚未进入打印，使用像素点为单位，否则使用当前绘画单位。

语法： 整数型 打印机．取图片高度 （图片号）

参数名 | 描 述
图片号 | 必需的；整数型。参数值必须为调用“载入图片”命令所返回的图片号。

参见： 语法的描述规则、基本数据类型


加入文本 (编辑框)

加入文本 方法 所属对象：编辑框

将指定文本加入到编辑框内容的尾部。

语法： 无返回值 编辑框．加入文本 （欲加入文本，… ）

参数名 | 描 述
欲加入文本 | 必需的；可扩充的；文本型。

参见： 语法的描述规则、基本数据类型


发送信息 (窗口)

发送信息 方法 所属对象：窗口

将指定信息发送到窗口或窗口单元，并等待且取回信息反馈值。

语法： 整数型 窗口单元．发送信息 （信息值，参数1，参数2）

参数名 | 描 述
信息值 | 必需的；整数型。
参数1 | 必需的；整数型，初始值为“0”。
参数2 | 必需的；整数型，初始值为“0”。

参见： 语法的描述规则、基本数据类型


投递信息 (窗口)

投递信息 方法 所属对象：窗口

将指定信息发送到窗口或窗口单元，不等待直接返回。

语法： 无返回值 窗口单元．投递信息 （信息值，参数1，参数2）

参数名 | 描 述
信息值 | 必需的；整数型。
参数1 | 必需的；整数型，初始值为“0”。
参数2 | 必需的；整数型，初始值为“0”。

参见： 语法的描述规则、基本数据类型


是否支持多用户

是否支持多用户 命令 所属类别：数据库

检查本支持库所提供的数据库功能是否支持多用户同时对数据库操作。如果支持，返回真，否则返回假。

语法： 逻辑型 是否支持多用户 （）

参见： 语法的描述规则、基本数据类型


取错误码

取错误码 命令 所属类别：数据库

如果执行某数据库命令失败，在其后执行本命令可以取回非 0 的数据库错误码值。如果该数据库命令执行成功，执行本命令将返回 0 。

语法： 整数型 取错误码 （）

参见： 语法的描述规则、基本数据类型


取错误信息

取错误信息 命令 所属类别：数据库

如果执行某数据库命令失败，在其后执行本命令可以取回错误信息文本。如果该数据库命令执行成功，执行本命令将返回空文本。

语法： 文本型 取错误信息 （）

参见： 语法的描述规则、基本数据类型


创建

创建 命令 所属类别：数据库

创建指定的数据库文件，如果该数据库文件存在，将被覆盖。成功返回真，失败返回假。

语法： 逻辑型 创建 （欲创建数据库的文件名，字段信息表）

参数名 | 描 述
欲创建数据库的文件名 | 必需的；文本型。
字段信息表 | 必需的；字段信息，参数数据只能提供数组数据。参数数组值中顺序指定本数据库中所有字段的信息。

参见： 语法的描述规则、基本数据类型


打开

打开 命令 所属类别：数据库

打开指定的数据库文件。成功返回真，并自动将当前数据库设置为此数据库，失败返回假。

语法： 逻辑型 打开 （数据库文件名，［在程序中使用的别名］，［是否只读］，［共享方式］，［保留参数1］，［数据库密码］，［索引文件表］，… ）

参数名 | 描 述
数据库文件名 | 必需的；文本型。
在程序中使用的别名 | 可选的；文本型。别名为在后面的程序中引用本数据库时可使用的另一个名称。欲引用一个已经被打开的数据库可以使用该数据库本身的名称（数据库名称为数据库文件名的无路径和后缀部分。譬如 c:\my documents\gz.edb ，其数据库名称为 gz ），也可以使用在此处所指定的别名。别名主要用作避开重复的数据库名称或者简化对长数据库名的引用。数据库名称与别名皆不区分大小写，在查找数据库时，系统将优先查找别名。如果本参数被省略，默认为没有别名。
是否只读 | 可选的；逻辑型。参数值说明是否仅对数据库进行读操作，如果省略本参数，默认为假。
共享方式 | 可选的；整数型。参数值指定在多用户环境中限制其它用户操作此数据库的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一： 1、#无限制：允许其它用户任意操作此数据库； 2、#禁止读：禁止其它用户读此数据库； 3、#禁止写：禁止其它用户写此数据库； 4、#禁止读写：独占使用此数据库，禁止其它用户的任何操作。
保留参数1 | 可选的；文本型。本参数仅用作保留参数位置。
数据库密码 | 可选的；文本型。本参数提供访问数据库时所需要的密码，如果该数据库没有被加密，请提供空文本。注意“?”（即单个问号）是一个特殊的密码文本，它要求系统当发现所欲打开的数据库具有密码保护时，自动弹出一个密码输入框提示用户输入正确的密码。如果用户在该输入框中取消输入或连续三次输入了错误密码，打开命令将失败，且执行“取错误码”命令将返回-78。如果本参数被省略，默认为空文本。
索引文件表 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定本数据库的所有索引文件，它们将被同步打开，以便得到及时更新。

参见： 语法的描述规则、基本数据类型


替换打开

替换打开 命令 所属类别：数据库

打开指定的数据库文件。成功返回真，并自动关闭当前数据库后将当前数据库设置为此数据库，失败返回假。

语法： 逻辑型 替换打开 （数据库文件名，［在程序中使用的别名］，［是否只读］，［共享方式］，［保留参数1］，［数据库密码］，［索引文件表］，… ）

参数名 | 描 述
数据库文件名 | 必需的；文本型。
在程序中使用的别名 | 可选的；文本型。别名为在后面的程序中引用本数据库时可使用的另一个名称。欲引用一个已经被打开的数据库可以使用该数据库本身的名称（数据库名称为数据库文件名的无路径和后缀部分。譬如 c:\my documents\gz.edb ，其数据库名称为 gz ），也可以使用在此处所指定的别名。别名主要用作避开重复的数据库名称或者简化对长数据库名的引用。数据库名称与别名皆不区分大小写，在查找数据库时，系统将优先查找别名。如果本参数被省略，默认为没有别名。
是否只读 | 可选的；逻辑型。参数值说明是否仅对数据库进行读操作，如果省略本参数，默认为假。
共享方式 | 可选的；整数型。参数值指定在多用户环境中限制其它用户操作此数据库的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一： 1、#无限制：允许其它用户任意操作此数据库； 2、#禁止读：禁止其它用户读此数据库； 3、#禁止写：禁止其它用户写此数据库； 4、#禁止读写：独占使用此数据库，禁止其它用户的任何操作。
保留参数1 | 可选的；文本型。本参数仅用作保留参数位置。
数据库密码 | 可选的；文本型。本参数提供访问数据库时所需要的密码，如果该数据库没有被加密，请提供空文本。注意“?”（即单个问号）是一个特殊的密码文本，它要求系统当发现所欲打开的数据库具有密码保护时，自动弹出一个密码输入框提示用户输入正确的密码。如果用户在该输入框中取消输入或连续三次输入了错误密码，打开命令将失败，且执行“取错误码”命令将返回-78。如果本参数被省略，默认为空文本。
索引文件表 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定本数据库的所有索引文件，它们将被同步打开，以便得到及时更新。

参见： 语法的描述规则、基本数据类型


置当前库

置当前库 命令 所属类别：数据库

本命令选择一个已经被打开的数据库为当前数据库，大部分数据库操作命令都针对当前数据库，譬如：记录指针的移动、字段的读写等等。如果指定数据库不存在或者尚未被打开，命令将返回假，否则返回真。

语法： 逻辑型 置当前库 （数据库别名或名称）

参数名 | 描 述
数据库别名或名称 | 必需的；文本型。参数值指定一个已经被打开的数据库。

参见： 语法的描述规则、基本数据类型


取当前库

取当前库 命令 所属类别：数据库

返回当前数据库的别名，如不存在别名，则返回其名称。如果未设置当前数据库，将返回空文本。

语法： 文本型 取当前库 （）

参见： 语法的描述规则、基本数据类型


关闭

关闭 命令 所属类别：数据库

本命令关闭已经被打开的指定数据库。如果没有提供数据库名称，默认为关闭当前数据库。如果当前数据库被关闭，当前数据库状态值将被设置为空，此时可重新使用“置当前库”命令来进行相应设置。

语法： 无返回值 关闭 （［数据库别名或名称］）

参数名 | 描 述
数据库别名或名称 | 可选的；文本型。参数值如果被省略，默认为关闭当前数据库。

参见： 语法的描述规则、基本数据类型


全部关闭

全部关闭 命令 所属类别：数据库

本命令关闭当前已经被打开的所有数据库。

语法： 无返回值 全部关闭 （）

参见： 语法的描述规则、基本数据类型


取库文件名

取库文件名 命令 所属类别：数据库

返回当前数据库的全路径文件名。如果当前数据库不存在，返回空文本。

语法： 文本型 取库文件名 （）

参见： 语法的描述规则、基本数据类型


是否已打开

是否已打开 命令 所属类别：数据库

如果指定数据库文件已经被打开，返回真，否则返回假。

语法： 逻辑型 是否已打开 （欲测试的数据库文件名）

参数名 | 描 述
欲测试的数据库文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取记录数

取记录数 命令 所属类别：数据库

返回当前数据库的记录数目。如果没有设置当前数据库或者失败，将返回 0 。

语法： 整数型 取记录数 （）

参见： 语法的描述规则、基本数据类型


取创建时间

取创建时间 命令 所属类别：数据库

返回当前数据库被创建的时间。

语法： 日期时间型 取创建时间 （）

参见： 语法的描述规则、基本数据类型


取字段数

取字段数 命令 所属类别：数据库

返回当前数据库中字段的数目。

语法： 整数型 取字段数 （）

参见： 语法的描述规则、基本数据类型


取字段名

取字段名 命令 所属类别：数据库

返回当前数据库中指定字段的名称。如果指定字段不存在，将返回空文本。

语法： 文本型 取字段名 （字段名称或位置）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参见： 语法的描述规则、基本数据类型


改字段名

改字段名 命令 所属类别：数据库

修改当前数据库中指定字段的名称。本命令只有当数据库的共享打开方式为“#禁止读写”时才有效。成功返回真，失败返回假。

语法： 逻辑型 改字段名 （字段名称或位置，字段的新名称）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。
字段的新名称 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取字段类型

取字段类型 命令 所属类别：数据库

返回当前数据库中指定字段的类型，字段类型值为以下常量值之一： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 10、#文本型； 11、#字节集型； 12、#备注型。如果指定字段不存在，将返回 0 。

语法： 整数型 取字段类型 （字段名称或位置）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参见： 语法的描述规则、基本数据类型


取字段尺寸

取字段尺寸 命令 所属类别：数据库

返回当前数据库中指定字段在记录中所占的尺寸。如果指定字段不存在，将返回 0 。注意：备注型和字节集型字段将返回 4 。

语法： 整数型 取字段尺寸 （字段名称或位置）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参见： 语法的描述规则、基本数据类型


新建索引

新建索引 命令 所属类别：数据库

在当前数据库中创建并打开一个索引文件。索引的存在将降低对数据库记录的更新速度，所以除非是较大的数据库（最起码在一千条记录以上），否则一般不用使用索引。成功返回真，失败返回假。

语法： 逻辑型 新建索引 （欲创建索引文件的名称，［索引类型］，［索引选项］，［索引块尺寸］，被索引字段的名称，… ）

参数名 | 描 述
欲创建索引文件的名称 | 必需的；文本型。
索引类型 | 可选的；整数型。参数值可以为以下常量值之一，如果被省略，默认为“#通常索引”： 1、#通常索引； 2、#读音索引： 在文本型索引字段中，所有汉字根据标准读音建立索引； 3、#南方读音索引： 在文本型索引字段中，所有汉字根据南方读音建立索引（南方读音不区分卷舌音和平舌音）。
索引选项 | 可选的；整数型。参数值可以为以下常量值之一或者之和： 1、#不区分大小写：文本型索引字段中不区分英文字母的大小写； 2、#忽略所有空格：文本型索引字段中忽略所有的全、半角空格。 如果本参数被省略，默认为 0 。
索引块尺寸 | 可选的；整数型。参数值指定索引文件记录索引项时所使用索引块的大小，以 512 字节为单位，最大值为 10 。如果本参数被省略，默认值为 1 。仅在大型数据库中需要建立大索引块的索引文件，一般情况下使用默认值即可。
被索引字段的名称 | 必需的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有被索引字段的名称，支持以数组方式直接提供多个字段。

参见： 语法的描述规则、基本数据类型


置当前索引

置当前索引 命令 所属类别：数据库

为当前数据库指定当前索引，在进行索引查找时将使用当前索引。如果指定索引不存在，将返回假。

语法： 逻辑型 置当前索引 （索引名称）

参数名 | 描 述
索引名称 | 必需的；文本型。索引名称为索引文件名的无后缀部分。譬如“sy.enx”索引文件，其索引名称为“sy”。

参见： 语法的描述规则、基本数据类型


取当前索引

取当前索引 命令 所属类别：数据库

返回当前数据库的当前索引名称。如果未设置当前数据库或无当前索引，返回空文本。

语法： 文本型 取当前索引 （）

参见： 语法的描述规则、基本数据类型


更新索引

更新索引 命令 所属类别：数据库

通过完全重建来更新当前数据库的当前索引。成功返回真，失败返回假。

语法： 逻辑型 更新索引 （）

参见： 语法的描述规则、基本数据类型


取索引数

取索引数 命令 所属类别：数据库

返回当前数据库中已经被打开索引的数目。

语法： 整数型 取索引数 （）

参见： 语法的描述规则、基本数据类型


取索引名

取索引名 命令 所属类别：数据库

返回当前数据库中指定索引的名称。如果指定位置处不存在索引，将返回空文本。

语法： 文本型 取索引名 （索引位置）

参数名 | 描 述
索引位置 | 必需的；整数型。参数值指定索引在当前数据库内所有被打开索引中的位置，从 1 开始。

参见： 语法的描述规则、基本数据类型


取索引字段

取索引字段 命令 所属类别：数据库

返回当前数据库中指定索引内所有被索引字段的名称数组。如果指定位置处不存在索引，将返回空数组。

语法： 文本型数组 取索引字段 （索引位置）

参数名 | 描 述
索引位置 | 必需的；整数型。参数值指定索引在当前数据库内所有被打开索引中的位置，从 1 开始。

参见： 语法的描述规则、基本数据类型


置加锁重试时间

置加锁重试时间 命令 所属类别：数据库

本命令设置对数据库进行加锁时，如果该位置已经被其他用户锁住或者正在被其他用户访问，系统反复重试加锁的时间。当你的数据库可能被多用户同时访问时，必须在程序首使用本命令设置一个合适的时间值。一般情况下，可以设置为 60 秒，或者根据所处网络的传输和通畅速度来具体设置。

语法： 无返回值 置加锁重试时间 （［加锁重试时间］）

参数名 | 描 述
加锁重试时间 | 可选的；整数型。参数值可以为以下值之一： 1、 大于 0 的值。用于指定具体的重试间隔时间，单位为秒； 2、 0 。不重试，第一次加锁失败后立即返回错误（系统初始值）； 3、 -1。一直重试，直到加锁成功。 如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


锁住数据库

锁住数据库 命令 所属类别：数据库

本命令执行后独占锁住整个当前数据库，拒绝其它用户的任何访问。成功返回真，失败返回假。

语法： 逻辑型 锁住数据库 （）

参见： 语法的描述规则、基本数据类型


解锁数据库

解锁数据库 命令 所属类别：数据库

本命令解除“锁住数据库”命令对当前数据库加的锁。成功返回真，失败返回假。

语法： 逻辑型 解锁数据库 （）

参见： 语法的描述规则、基本数据类型


锁住增删

锁住增删 命令 所属类别：数据库

本命令执行后独占锁住对当前数据库的增删操作，其它用户可以读写已存在的任何记录，但是不能对数据库记录进行增删。也就是说：不能执行改变数据库记录数目的任何操作。注意：由于“删除”命令仅在记录上加上删除标志，并不实际删除记录，所以不在被加锁的范围内。成功返回真，失败返回假。

语法： 逻辑型 锁住增删 （）

参见： 语法的描述规则、基本数据类型


解增删锁

解增删锁 命令 所属类别：数据库

本命令解除“锁住增删”命令对当前数据库加的锁。成功返回真，失败返回假。

语法： 逻辑型 解增删锁 （）

参见： 语法的描述规则、基本数据类型


锁住记录

锁住记录 命令 所属类别：数据库

本命令执行后可以锁住指定的一个或多个记录。成功返回真，失败返回假。

语法： 逻辑型 锁住记录 （记录号，… ）

参数名 | 描 述
记录号 | 必需的；可扩充的；整数型。参数值指定的记录号从 1 开始。

参见： 语法的描述规则、基本数据类型


解锁记录

解锁记录 命令 所属类别：数据库

本命令解除“锁住记录”命令对记录所加的锁。成功返回真，失败返回假。

语法： 逻辑型 解锁记录 （记录号，… ）

参数名 | 描 述
记录号 | 必需的；可扩充的；整数型。参数值指定的记录号从 1 开始。

参见： 语法的描述规则、基本数据类型


全部解锁

全部解锁 命令 所属类别：数据库

本命令解除由“锁住数据库”、“锁住增删”、“锁住记录”等命令对当前数据库加上的所有锁。成功返回真，失败返回假。

语法： 逻辑型 全部解锁 （）

参见： 语法的描述规则、基本数据类型


取平均值

取平均值 命令 所属类别：数据库

本命令根据当前数据库计算并返回某数值型表达式的平均值，命令执行后当前记录指针保持不变。

语法： 双精度小数型 取平均值 （计算表达式，［记录条件］）

参数名 | 描 述
计算表达式 | 必需的；条件语句型。本参数所指定的表达式内必须使用了当前数据库的字段。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参见： 语法的描述规则、基本数据类型


求和

求和 命令 所属类别：数据库

本命令根据当前数据库计算并返回某数值型表达式的和，命令执行后当前记录指针保持不变。

语法： 双精度小数型 求和 （计算表达式，［记录条件］）

参数名 | 描 述
计算表达式 | 必需的；条件语句型。本参数所指定的表达式内必须使用了当前数据库的字段。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参见： 语法的描述规则、基本数据类型


取最大值

取最大值 命令 所属类别：数据库

本命令根据当前数据库计算并返回某数值型表达式的最大值，当前记录指针被移动到具有最大值的记录。

语法： 双精度小数型 取最大值 （计算表达式，［记录条件］）

参数名 | 描 述
计算表达式 | 必需的；条件语句型。本参数所指定的表达式内必须使用了当前数据库的字段。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参见： 语法的描述规则、基本数据类型


取最小值

取最小值 命令 所属类别：数据库

本命令根据当前数据库计算并返回某数值型表达式的最小值，当前记录指针被移动到具有最小值的记录。

语法： 双精度小数型 取最小值 （计算表达式，［记录条件］）

参数名 | 描 述
计算表达式 | 必需的；条件语句型。本参数所指定的表达式内必须使用了当前数据库的字段。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参见： 语法的描述规则、基本数据类型


取最大时间

取最大时间 命令 所属类别：数据库

本命令根据当前数据库计算并返回某日期时间型表达式的最大值，当前记录指针被移动到具有最大值的记录。

语法： 日期时间型 取最大时间 （计算表达式，［记录条件］）

参数名 | 描 述
计算表达式 | 必需的；条件语句型。本参数所指定的表达式内必须使用了当前数据库的字段。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参见： 语法的描述规则、基本数据类型


取最小时间

取最小时间 命令 所属类别：数据库

本命令根据当前数据库计算并返回某日期时间型表达式的最小值，当前记录指针被移动到具有最小值的记录。

语法： 日期时间型 取最小时间 （计算表达式，［记录条件］）

参数名 | 描 述
计算表达式 | 必需的；条件语句型。本参数所指定的表达式内必须使用了当前数据库的字段。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参见： 语法的描述规则、基本数据类型


计算数目

计算数目 命令 所属类别：数据库

本命令返回当前数据库中指定范围记录的数目。命令执行后当前记录指针保持不变。

语法： 整数型 计算数目 （［记录条件］）

参数名 | 描 述
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。

参见： 语法的描述规则、基本数据类型


复制结构

复制结构 命令 所属类别：数据库

复制当前数据库的结构到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。

语法： 逻辑型 复制结构 （数据库文件名，［字段范围］，… ）

参数名 | 描 述
数据库文件名 | 必需的；文本型。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。
字段范围 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

参见： 语法的描述规则、基本数据类型


复制记录

复制记录 命令 所属类别：数据库

复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。

语法： 逻辑型 复制记录 （数据库文件名，［记录条件］，［字段范围］，… ）

参数名 | 描 述
数据库文件名 | 必需的；文本型。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。
字段范围 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

参见： 语法的描述规则、基本数据类型


计算排序

计算排序 命令 所属类别：数据库

根据指定数值表达式的计算值排序复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。

语法： 逻辑型 计算排序 （数据库文件名，排序表达式，［排序方向］，［记录条件］，［字段范围］，… ）

参数名 | 描 述
数据库文件名 | 必需的；文本型。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。
排序表达式 | 必需的；条件语句型。本参数所指定的表达式内必须使用了当前数据库的字段，表达式所返回数据的类型必须为数值型。
排序方向 | 可选的；逻辑型。本参数的值如果为真或者被省略，将按照从小到大的顺序排序，否则为从大到小。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。
字段范围 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

参见： 语法的描述规则、基本数据类型


排序

排序 命令 所属类别：数据库

根据指定字段排序复制当前数据库的记录到另外一个数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。

语法： 逻辑型 排序 （数据库文件名，排序字段，［排序方向］，［记录条件］，［字段范围］，… ）

参数名 | 描 述
数据库文件名 | 必需的；文本型。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。
排序字段 | 必需的；文本型，参数数据可以同时提供数组或非数组数据。本参数的数据可以为字段名文本或者字段名文本数组（用作同时指定多个字段）。
排序方向 | 可选的；逻辑型，参数数据可以同时提供数组或非数组数据。本参数的数据可以为一个逻辑值或者逻辑值数组（用作同时为多个字段指定排序方向）。如果逻辑值为真，对应字段将按照从小到大的顺序排序，否则为从大到小。如果本参数被省略，默认为全部按照从小到大的顺序排序。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。
字段范围 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

参见： 语法的描述规则、基本数据类型


分类计算

分类计算 命令 所属类别：数据库

对当前数据库进行分类计算，将结果输出到另外一个数据库。注意所有的备注或字节集字段内容将不会被输出到目的数据库中。 命令执行后当前记录指针保持不变。成功返回真，失败返回假。

语法： 逻辑型 分类计算 （数据库文件名，分类字段，［计算方法］，［记录条件］，［字段范围］，… ）

参数名 | 描 述
数据库文件名 | 必需的；文本型。本参数指定欲复制到的数据库文件，该数据库必须不存在或者尚未被打开。如果已经存在，将会被覆盖。
分类字段 | 必需的；文本型，参数数据可以同时提供数组或非数组数据。本参数的数据可以为字段名文本或者字段名文本数组（用作同时指定多个字段）。
计算方法 | 可选的；整数型。参数值可以为以下常量之一： 1、#取平均值； 2、#求和； 3、#取最大值； 4、#取最小值。 如果本参数被省略，默认为“#求和”。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为当前数据库中的所有记录，否则将仅限于满足此条件的记录。
字段范围 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲复制字段的名称。如果被省略，默认为所有字段。

参见： 语法的描述规则、基本数据类型


添加

添加 命令 所属类别：数据库

将指定数据库中的记录添加到当前数据库。命令执行后当前记录指针保持不变。成功返回真，失败返回假。

语法： 逻辑型 添加 （数据库别名或名称，［记录条件］，［字段范围］，… ）

参数名 | 描 述
数据库别名或名称 | 必需的；文本型。本参数指定一个已打开数据库，命令将从该数据库中获取欲添加的记录数据。
记录条件 | 可选的；条件语句型。如果本参数被省略，默认为添加指定数据库中的所有记录，否则仅添加指定数据库中满足此条件的记录。
字段范围 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲添加字段的名称。如果被省略，默认添加所有同名字段。

参见： 语法的描述规则、基本数据类型


加记录

加记录 命令 所属类别：数据库

本命令在当前数据库的尾部添加一条记录，并将当前记录指针移动到该记录处。成功返回真，失败返回假。

语法： 逻辑型 加记录 （［记录数据］，… ）

参数名 | 描 述
记录数据 | 可选的；可扩充的；通用型。本参数的每一个参数值用作为记录中对应位置处的一个字段提供数据。如果某参数值被省略，则对应位置处字段的内容被设置为初始值。

参见： 语法的描述规则、基本数据类型


加空记录

加空记录 命令 所属类别：数据库

本命令在当前数据库的尾部添加一条空记录，并将当前记录指针移动到该记录上。成功返回真，失败返回假。

语法： 逻辑型 加空记录 （）

参见： 语法的描述规则、基本数据类型


替换

替换 命令 所属类别：数据库

本命令替换当前数据库中的记录数据，当前记录指针保持不变。成功返回真，失败返回假。

语法： 逻辑型 替换 （［替换范围］，字段名称或替换数据，… ）

参数名 | 描 述
替换范围 | 可选的；条件语句型。如果本参数被省略，默认为替换当前记录数据，否则替换所有满足此条件记录的数据。如果欲在所有记录内进行替换，请直接将逻辑值“真”赋予本参数。
字段名称或替换数据 | 必需的；可扩充的；通用型。本参数的每一对参数值顺序指定欲被替换字段的名称及其相应的替换值。替换值的数据类型必须与所对应字段的数据类型一致或可互相转换，否则命令会失败。

参见： 语法的描述规则、基本数据类型


修改

修改 命令 所属类别：数据库

本命令一次性修改当前数据库中当前记录内多个字段的内容，当前记录指针保持不变。成功返回真，失败返回假。

语法： 逻辑型 修改 （［修改数据］，… ）

参数名 | 描 述
修改数据 | 可选的；可扩充的；通用型。本参数的每一个参数值用作替换当前记录中对应位置处的一个字段。如果某参数值被省略，则对应位置处字段的内容将保持不变。

参见： 语法的描述规则、基本数据类型


删除

删除 命令 所属类别：数据库

标记删除当前数据库中的当前记录或者指定范围内的记录，当前记录指针位置保持不变。注意：此命令并不实际删除记录，仅仅只加上删除标记，记录依旧存在并可以读写。成功返回真，失败返回假。

语法： 逻辑型 删除 （［记录范围］）

参数名 | 描 述
记录范围 | 可选的；条件语句型。如果本参数被省略，默认为删除或恢复删除当前记录，否则删除或恢复删除所有满足此条件的记录。如果欲删除或恢复删除全部记录，请直接将逻辑值“真”赋予本参数。

参见： 语法的描述规则、基本数据类型


是否已删除

是否已删除 命令 所属类别：数据库

如果当前数据库的当前记录已经被“删除”命令加上删除标记，返回真，否则返回假。

语法： 逻辑型 是否已删除 （）

参见： 语法的描述规则、基本数据类型


恢复删除

恢复删除 命令 所属类别：数据库

去掉当前数据库中当前记录或者指定范围内记录的删除标记，当前记录指针位置保持不变。成功返回真，失败返回假。

语法： 逻辑型 恢复删除 （［记录范围］）

参数名 | 描 述
记录范围 | 可选的；条件语句型。如果本参数被省略，默认为删除或恢复删除当前记录，否则删除或恢复删除所有满足此条件的记录。如果欲删除或恢复删除全部记录，请直接将逻辑值“真”赋予本参数。

参见： 语法的描述规则、基本数据类型


彻底删除

彻底删除 命令 所属类别：数据库

将当前数据库中所有被加上删除标记的记录从数据库中彻底清除，当前记录指针位置将被移动到数据库首记录。记录被彻底删除后将不复存在，并且无法恢复。注意执行本命令将重组数据库记录，因此速度比较慢。成功返回真，失败返回假。

语法： 逻辑型 彻底删除 （）

参见： 语法的描述规则、基本数据类型


清空

清空 命令 所属类别：数据库

彻底清除当前数据库中的所有记录。成功返回真，失败返回假。

语法： 逻辑型 清空 （）

参见： 语法的描述规则、基本数据类型


读

读 命令 所属类别：数据库

返回当前数据库中当前记录处指定字段的数据内容，所返回数据的类型等同于字段的类型。如果指定字段不存在，将产生运行时错误。执行本命令后使用“取错误码”命令可以判断是否读入成功。

语法： 通用型 读 （字段名称或位置）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参见： 语法的描述规则、基本数据类型


写

写 命令 所属类别：数据库

将数据写入到当前数据库中当前记录处的指定字段内。成功返回真，失败返回假。

语法： 逻辑型 写 （字段名称或位置，［欲写入数据］）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。
欲写入数据 | 可选的；通用型。本参数数据的类型必须与所对应字段的数据类型一致或可互相转换。如果本参数被省略，则初始化对应字段中的内容，具体为：数值字段被初始化为零，逻辑字段被初始化为假，日期字段被初始化为 1899 年 12 月 30 日，文本及备注字段被初始化为空文本（“”），字节集字段被初始化为空字节集。

参见： 语法的描述规则、基本数据类型


读字段

读字段 命令 所属类别：数据库

返回指定数据库中当前记录处指定字段的数据内容，所返回数据的类型等同于字段的类型。如果指定字段不存在，将产生运行时错误。本命令与“读”命令的不同之处为本命令可以从非当前数据库中读取字段。执行本命令后使用“取错误码”命令可以判断是否读入成功。

语法： 通用型 读字段 （字段名称或位置，［数据库别名或名称］）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。
数据库别名或名称 | 可选的；文本型。参数值指定一个已经被打开的数据库，该数据库内包含所欲读取的字段。如果被省略，默认为当前数据库。

参见： 语法的描述规则、基本数据类型


写字段

写字段 命令 所属类别：数据库

将数据写入到指定数据库中当前记录处的指定字段内。成功返回真，失败返回假。本命令与“写”命令的不同之处为本命令可以写入非当前数据库中的字段。

语法： 逻辑型 写字段 （字段名称或位置，［数据库别名或名称］，［欲写入数据］）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。
数据库别名或名称 | 可选的；文本型。参数值指定一个已经被打开的数据库，该数据库内包含所欲写入的字段。如果被省略，默认为当前数据库。
欲写入数据 | 可选的；通用型。本参数数据的类型必须与所对应字段的数据类型一致或可互相转换。如果本参数被省略，则初始化对应字段中的内容，具体为：数值字段被初始化为零，逻辑字段被初始化为假，日期字段被初始化为 1899 年 12 月 30 日，文本及备注字段被初始化为空文本（“”），字节集字段被初始化为空字节集。

参见： 语法的描述规则、基本数据类型


附加字节集

附加字节集 命令 所属类别：数据库

将字节集数据添加到当前记录处指定字节集型字段的尾部。成功返回真，失败返回假。

语法： 逻辑型 附加字节集 （字段名称或位置，欲添加的字节集数据，… ）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。
欲添加的字节集数据 | 必需的；可扩充的；字节集。

参见： 语法的描述规则、基本数据类型


附加备注

附加备注 命令 所属类别：数据库

将文本数据添加到当前记录处指定备注型字段的尾部。成功返回真，失败返回假。

语法： 逻辑型 附加备注 （字段名称或位置，欲添加的文本数据，… ）

参数名 | 描 述
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。
欲添加的文本数据 | 必需的；可扩充的；文本型。

参见： 语法的描述规则、基本数据类型


索引查找

索引查找 命令 所属类别：数据库

本命令在当前数据库中使用其当前索引来快速寻找某一记录，寻找从当前记录位置（包括当前记录）处开始。注意为命令所提供的欲搜寻值参数的数目必须与被索引字段的数目一致。如成功找到返回真，并且将当前记录指针移至所找到的记录。如出错或未找到则返回假，当前记录指针位置保持不变。

语法： 逻辑型 索引查找 （欲搜寻值，… ）

参数名 | 描 述
欲搜寻值 | 必需的；可扩充的；通用型。本参数数据的类型必须与索引字段表中对应位置处字段的类型一致。

参见： 语法的描述规则、基本数据类型


查找

查找 命令 所属类别：数据库

本命令从当前数据库中当前记录位置处（包括当前记录）开始寻找符合给定条件的记录。如成功找到返回真，并且将当前记录指针移至所找到的记录。如出错或未找到则返回假，当前记录指针位置保持不变。

语法： 逻辑型 查找 （查找条件）

参数名 | 描 述
查找条件 | 必需的；条件语句型。参数值指定欲查找记录应该满足的条件。

参见： 语法的描述规则、基本数据类型


到首记录

到首记录 命令 所属类别：数据库

将当前数据库中当前记录指针移动到数据库的第一条记录上。

语法： 无返回值 到首记录 （）

参见： 语法的描述规则、基本数据类型


到尾记录

到尾记录 命令 所属类别：数据库

将当前数据库中当前记录指针移动到数据库的最后一条记录上。成功返回真，失败返回假。

语法： 逻辑型 到尾记录 （）

参见： 语法的描述规则、基本数据类型


跳过

跳过 命令 所属类别：数据库

将当前数据库中当前记录指针向前或者向后移动数条记录。成功返回真，失败返回假。

语法： 逻辑型 跳过 （［欲跳过的记录数］）

参数名 | 描 述
欲跳过的记录数 | 可选的；整数型。参数值如果为负数，则向前移动，否则向后移动。如果本参数被省略，默认值为 1 ，即向后移动一条记录。

参见： 语法的描述规则、基本数据类型


取记录号

取记录号 命令 所属类别：数据库

返回当前数据库中当前记录指针所指向记录的记录号。如果当前记录指针在首记录前，返回 0 ；如果在尾记录后，返回值为记录总数加一。

语法： 整数型 取记录号 （）

参见： 语法的描述规则、基本数据类型


跳到

跳到 命令 所属类别：数据库

改变当前数据库中的当前记录指针到指定的记录号。成功返回真，失败返回假。

语法： 逻辑型 跳到 （欲跳到的记录号）

参数名 | 描 述
欲跳到的记录号 | 必需的；整数型。参数值所指定的记录号从 1 开始，即首记录的记录号为 1 ，依此类推。

参见： 语法的描述规则、基本数据类型


取标签

取标签 命令 所属类别：数据库

在数据库的存在期间，同一数据库内任何时候任何一条记录（包括已经被实际删除的记录）都有一个唯一的非 0 正整数标签值，使用本命令可以取回当前数据库当前记录的这一标签值。此标签值可以用来在记录间跳转或者在多用户环境中查看记录是否已经被其它用户实际删除。如果命令执行失败，将返回 0 。

语法： 整数型 取标签 （）

参见： 语法的描述规则、基本数据类型


记录是否存在

记录是否存在 命令 所属类别：数据库

如果当前数据库中存在具有指定标签值的记录，命令返回真，否则返回假。本命令可以用作在多用户环境中检查某记录是否被其它用户实际删除。

语法： 逻辑型 记录是否存在 （记录的标签值）

参数名 | 描 述
记录的标签值 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


标签跳转

标签跳转 命令 所属类别：数据库

使用本命令可以改变当前数据库中的当前记录指针到具有指定标签的记录。如成功找到返回真，并且将当前记录指针移至该记录。如出错或未找到则返回假，当前记录指针位置保持不变。

语法： 逻辑型 标签跳转 （记录的标签值）

参数名 | 描 述
记录的标签值 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


首记录前

首记录前 命令 所属类别：数据库

如果当前数据库的当前记录指针已在首记录的前面，返回真，否则返回假。

语法： 逻辑型 首记录前 （）

参见： 语法的描述规则、基本数据类型


尾记录后

尾记录后 命令 所属类别：数据库

如果当前数据库的当前记录指针已在尾记录的后面，返回真，否则返回假。

语法： 逻辑型 尾记录后 （）

参见： 语法的描述规则、基本数据类型


写出缓存

写出缓存 命令 所属类别：数据库

为了加快对数据库数据的存取速度，对数据库所进行的写操作将首先被保存在写缓存区内，等候一段时间后才会被自动写入到数据库文件中。使用本命令可以将当前数据库停留在写缓存区内的数据立即写入数据库磁盘文件中，以确保对当前数据库进行的所有写操作都真实地反映到了数据库文件中。一般情况下无需使用本命令。

语法： 无返回值 写出缓存 （）

参见： 语法的描述规则、基本数据类型


写出所有缓存

写出所有缓存 命令 所属类别：数据库

将所有数据库停留在写缓存区内的数据都立即写入到对应的数据库磁盘文件中。一般情况下无需使用本命令。

语法： 无返回值 写出所有缓存 （）

参见： 语法的描述规则、基本数据类型


编辑

编辑 命令 所属类别：数据库

提供一个对话框，用作查看或编辑修改当前数据库的记录，起始位置从当前记录开始。本命令退出后当前记录指针被移动到首记录。

语法： 无返回值 编辑 （［标题］，［编辑方式］，［字段范围］，… ）

参数名 | 描 述
标题 | 可选的；文本型。本参数指定对话框的标题，如果被省略，默认为“数据库记录编辑”。
编辑方式 | 可选的；整数型。可以为 0 或者以下常量值的组合： 1、#禁止修改； 2、#禁止添加； 4、#禁止删除； 8、#禁止自动判断（注：在默认情况下，系统将自动判断当前字节集字段的内容是否为图片或者声音，然后以对应的方式显示。使用本常量值可以禁止此功能）。 如果被省略，默认值为 0 。
字段范围 | 可选的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。本参数的各参数值顺序指定所有欲编辑字段的名称。如果被省略，默认为所有字段。

参见： 语法的描述规则、基本数据类型


置等待鼠标

置等待鼠标 命令 所属类别：系统处理

本命令设置现行鼠标的形状为沙漏形，用作在即将长时间执行程序前提示操作者。

语法： 无返回值 置等待鼠标 （）

参见： 语法的描述规则、基本数据类型


恢复鼠标

恢复鼠标 命令 所属类别：系统处理

本命令恢复现行鼠标的原有形状，用作与“置等待鼠标”命令配对使用。

语法： 无返回值 恢复鼠标 （）

参见： 语法的描述规则、基本数据类型


延时

延时 命令 所属类别：系统处理

本命令暂停当前程序的运行并等待指定的时间。

语法： 无返回值 延时 （欲等待的时间）

参数名 | 描 述
欲等待的时间 | 必需的；整数型。本参数指定欲暂停程序执行的时间，单位为毫秒。

参见： 语法的描述规则、基本数据类型


播放MID

播放MID 命令 所属类别：媒体播放

可以自动连续播放多个 MIDI 声音文件（注意不支持 WAV ）或相应格式的字节集声音数据、声音资源。

语法： 无返回值 播放MID （［播放次数］，［间隔时间］，欲播放的 MIDI 音乐，… ）

参数名 | 描 述
播放次数 | 可选的；整数型。为 -1 表示指定音乐将被循环播放，否则仅只播放指定的次数。如果本参数被省略，默认值为 1 。
间隔时间 | 可选的；整数型。指定 MIDI 音乐之间的播放间隔时间，单位为 0.1 秒。如果本参数被省略，默认值为 0 。
欲播放的 MIDI 音乐 | 必需的；可扩充的；通用型，参数数据可以同时提供数组或非数组数据。参数值可以为 MIDI 声音文件名称或相应格式的字节集声音数据、声音资源。

参见： 语法的描述规则、基本数据类型


是否为调试版

是否为调试版 命令 所属类别：程序调试

如果当前 EXE 易程序执行文件为易语言编辑环境调试运行程序时编译出来的调试版本，返回真。否则表明为发布版本，返回假。

语法： 逻辑型 是否为调试版 （）

参见： 语法的描述规则、基本数据类型


插入字节集

插入字节集 命令 所属类别：文件读写

本命令用作插入一段或数段字节集数据到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。

语法： 逻辑型 插入字节集 （欲写出数据的文件号，欲写出的字节集数据，… ）

参数名 | 描 述
欲写出数据的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲写出的字节集数据 | 必需的；可扩充的；字节集。

参见： 语法的描述规则、基本数据类型


插入文本

插入文本 命令 所属类别：文件读写

本命令用作插入一段或数段文本数据到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。

语法： 逻辑型 插入文本 （欲写出文本的文件号，欲写出的文本，… ）

参数名 | 描 述
欲写出文本的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲写出的文本 | 必需的；可扩充的；通用型。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

参见： 语法的描述规则、基本数据类型


插入文本行

插入文本行 命令 所属类别：文件读写

本命令用作插入一段或数段文本行到文件中当前读写位置处。该文件被打开时必须给予可读权限。成功返回真，失败返回假。

语法： 逻辑型 插入文本行 （欲写出文本的文件号，欲写出的文本，… ）

参数名 | 描 述
欲写出文本的文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲写出的文本 | 必需的；可扩充的；通用型。参数值如果不为文本类型数据，将自动进行转换，如果无法转换（即数据类型为字节集、子程序指针、库或用户自定义数据类型），则不写出此数据。

参见： 语法的描述规则、基本数据类型


删除数据

删除数据 命令 所属类别：文件读写

本命令用作在文件中当前读写位置处删除一段字节数据，文件后面的数据顺序前移。该文件被打开时必须给予可读权限。成功返回真，失败返回假。

语法： 逻辑型 删除数据 （文件号，欲删除数据的字节数）

参数名 | 描 述
文件号 | 必需的；整数型。该文件号由“打开文件”命令所返回。
欲删除数据的字节数 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取文本注册项

取文本注册项 命令 所属类别：系统处理

在 Windows 注册表中返回指定的文本类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取文本注册表项”命令不同的是本命令可以取任意位置处的注册表项。

语法： 文本型 取文本注册项 （根目录，全路径注册项名，［默认文本］）

参数名 | 描 述
根目录 | 必需的；整数型。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。
全路径注册项名 | 必需的；文本型。
默认文本 | 可选的；文本型。如果指定的注册表项不存在，将返回此默认文本。如果指定的注册表项不存在且本参数被省略，将返回一个长度为 0 的空文本。

参见： 语法的描述规则、基本数据类型


取数值注册项

取数值注册项 命令 所属类别：系统处理

在 Windows 注册表中返回指定的数值类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取数值注册表项”命令不同的是本命令可以取任意位置处的注册表项。

语法： 整数型 取数值注册项 （根目录，全路径注册项名，［默认数值］）

参数名 | 描 述
根目录 | 必需的；整数型。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。
全路径注册项名 | 必需的；文本型。
默认数值 | 可选的；整数型。如果指定的注册表项不存在，将返回此默认数值。如果指定的注册表项不存在且本参数被省略，将返回数值 0。

参见： 语法的描述规则、基本数据类型


取字节集注册项

取字节集注册项 命令 所属类别：系统处理

在 Windows 注册表中返回指定的字节集类型注册表项值。如欲读取注册项默认值，请在项目名后加“\”号，如“test\”。与“取字节集注册表项”命令不同的是本命令可以取任意位置处的注册表项。

语法： 字节集 取字节集注册项 （根目录，全路径注册项名，［默认字节集］）

参数名 | 描 述
根目录 | 必需的；整数型。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。
全路径注册项名 | 必需的；文本型。
默认字节集 | 可选的；字节集。如果指定的注册表项不存在，将返回此默认字节集。如果指定的注册表项不存在且本参数被省略，将返回空字节集。

参见： 语法的描述规则、基本数据类型


写注册项

写注册项 命令 所属类别：系统处理

在 Windows 注册表中保存或建立指定的注册表项。如欲写入注册项默认值，请在项目名后加“\”号，如“test\”。成功返回真，否则返回假。与“写注册表项”命令不同的是本命令可以写任意位置处的注册表项。

语法： 逻辑型 写注册项 （根目录，全路径注册项名，欲写入值）

参数名 | 描 述
根目录 | 必需的；整数型。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。
全路径注册项名 | 必需的；文本型。
欲写入值 | 必需的；通用型。参数值指定欲写入到指定注册表项中的值，只能为数值、文本或者字节集，否则命令将失败。

参见： 语法的描述规则、基本数据类型


删除注册项

删除注册项 命令 所属类别：系统处理

在 Windows 注册表中删除指定注册表项或注册表目录。如欲删除注册项默认值，请在项目名后加“\”号，如“test\”。成功返回真，否则返回假。与“删除注册表项”命令不同的是本命令可以删除任意位置处的注册表项或目录。注意在删除目录之前必须先删除该目录下所有的项目。

语法： 逻辑型 删除注册项 （根目录，全路径注册项名）

参数名 | 描 述
根目录 | 必需的；整数型。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。
全路径注册项名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


注册项是否存在

注册项是否存在 命令 所属类别：系统处理

如果指定注册表项存在，返回真，否则返回假。如欲检查注册项是否有默认值，请在项目名后加“\”号，如“test\”。

语法： 逻辑型 注册项是否存在 （根目录，全路径注册项名）

参数名 | 描 述
根目录 | 必需的；整数型。可以为以下常量值之一： 1、#根类； 2、#现行设置； 3、#现行用户； 4、#本地机器； 5、#所有用户。
全路径注册项名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取标记单元 (窗口)

取标记单元 方法 所属对象：窗口

返回当前窗口中具有指定标记数值文本的单元。如果不存在，将产生运行时错误。

语法： 通用型 窗口单元．取标记单元 （欲寻找单元的标记数值）

参数名 | 描 述
欲寻找单元的标记数值 | 必需的；整数型。即该单元的“标记”属性文本的数值形式。

参见： 语法的描述规则、基本数据类型


跳转 (超级链接框)

跳转 方法 所属对象：超级链接框

跳转到指定的邮件或 Internet 地址。

语法： 无返回值 超级链接框．跳转 （）

参见： 语法的描述规则、基本数据类型


置外形图片 (窗口)

置外形图片 方法 所属对象：窗口

使用图片来设置窗口的外形，注意图片类型不能为图标及鼠标指针。另外，图片的轮廓应该尽量简单，以免影响窗口的刷新速度。如果调用对象为窗口单元，将自动使用其所在的窗口。成功返回真，失败返回假。

语法： 逻辑型 窗口单元．置外形图片 （图片数据，［透明颜色］）

参数名 | 描 述
图片数据 | 必需的；通用型。参数值可以为 .JPG、.GIF、.BMP、.DIB 等等被支持格式的图片数据、图片资源或图片文件名。
透明颜色 | 可选的；整数型。指定图片中透明部分的颜色。如果被省略，默认为白色。

参见： 语法的描述规则、基本数据类型


播放MP3

播放MP3 命令 所属类别：媒体播放

可以自动连续播放多个 MP3 音乐文件。

语法： 无返回值 播放MP3 （［播放次数］，欲播放的 MP3 文件名，… ）

参数名 | 描 述
播放次数 | 可选的；整数型。为 -1 表示指定音乐将被循环播放，否则仅只播放指定的次数。如果本参数被省略，默认值为 1 。
欲播放的 MP3 文件名 | 必需的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。

参见： 语法的描述规则、基本数据类型


激活 (窗口)

激活 方法 所属对象：窗口

激活窗口。

语法： 无返回值 窗口单元．激活 （）

参见： 语法的描述规则、基本数据类型


取硬盘特征字

取硬盘特征字 命令 所属类别：其他

返回电脑中第一个物理硬盘的物理特征字，该特征字是仅硬件相关的，也就是说与任何软件系统都无关（包括操作系统）。用户可以使用此特征字来限制自己的程序仅在某一台计算机上运行，以保护自己软件的版权。本命令可以在任何 Windows 系统版本下运行。命令执行后如果返回 0 ，表示此次取硬盘特征字失败。由于有可能是因为暂时的 I/O 冲突造成，因此失败后可以等待一段随机时间后再试（可以参看例程）。如果重复尝试四五次后仍然失败，表明该硬盘无法取出特征字。

语法： 整数型 取硬盘特征字 （）

参见： 语法的描述规则、基本数据类型


取主机名

取主机名 命令 所属类别：网络通信

返回本机的主机名，用作在网络通讯中标志本机地址。

语法： 文本型 取主机名 （）

参见： 语法的描述规则、基本数据类型


通信测试

通信测试 命令 所属类别：网络通信

测试与指定主机是否能够正常通讯。返回被测试主机的通讯响应时间。如果无法通讯或者测试失败，返回 -1。

语法： 整数型 通信测试 （被测试主机地址，［最长等待时间］）

参数名 | 描 述
被测试主机地址 | 必需的；文本型。可以为主机名、IP地址等。
最长等待时间 | 可选的；整数型。指定最长等待被测试主机响应的时间，单位为毫秒。超过此时间即认为无法与被测试主机通讯。如果省略本参数，则默认为 10 * 1000 毫秒，即 10 秒。

参见： 语法的描述规则、基本数据类型


发送数据 (超文本浏览框)

发送数据 方法 所属对象：超文本浏览框

发送数据到指定主机上的指定端口。成功返回真，失败返回假。

语法： 逻辑型 超文本浏览框．发送数据 （［接收主机地址］，接收主机端口号，欲发送数据）

参数名 | 描 述
接收主机地址 | 可选的；文本型。可以为主机名、IP地址等。如果省略本参数或者提供空文本，则在指定端口广播欲发送数据。
接收主机端口号 | 必需的；整数型。
欲发送数据 | 必需的；通用型。欲发送数据必须是系统基本数据类型。

参见： 语法的描述规则、基本数据类型


取回数据 (超文本浏览框)

取回数据 方法 所属对象：超文本浏览框

取回所接收到的数据。本命令必须在“数据到达”事件的处理子程序中使用。

语法： 字节集 超文本浏览框．取回数据 （）

参见： 语法的描述规则、基本数据类型


连接 (客户)

连接 方法 所属对象：客户

连接到指定主机上的指定端口，该主机上的该端口必须已经被某一服务器组件监听。成功返回真，失败返回假。

语法： 逻辑型 客户．连接 （服务器地址，服务器端口号）

参数名 | 描 述
服务器地址 | 必需的；文本型。可以为主机名、IP地址等。
服务器端口号 | 必需的；整数型。该端口必须已经被服务器组件监听。

参见： 语法的描述规则、基本数据类型


断开连接 (客户)

断开连接 方法 所属对象：客户

断开与服务器的已有连接。

语法： 无返回值 客户．断开连接 （）

参见： 语法的描述规则、基本数据类型


发送数据 (客户)

发送数据 方法 所属对象：客户

在成功建立与服务器的连接后，发送数据到服务器端组件。成功返回真，失败返回假。

语法： 逻辑型 客户．发送数据 （欲发送数据）

参数名 | 描 述
欲发送数据 | 必需的；通用型。欲发送数据必须是系统基本数据类型。

参见： 语法的描述规则、基本数据类型


取回数据 (服务器)

取回数据 方法 所属对象：服务器

取回所接收到的数据。本命令必须在“数据到达”事件的处理子程序中使用。

语法： 字节集 服务器．取回数据 （）

参见： 语法的描述规则、基本数据类型


启动 (端口)

启动 方法 所属对象：端口

启动或重新启动对指定端口的操作。在对端口进行操作之前必须首先启动，如在端口启动后又更改了端口属性必须重新启动。成功返回真，失败返回假。

语法： 逻辑型 端口．启动 （）

参见： 语法的描述规则、基本数据类型


停止 (端口)

停止 方法 所属对象：端口

关闭已经启动的指定端口。

语法： 无返回值 端口．停止 （）

参见： 语法的描述规则、基本数据类型


发送数据 (端口)

发送数据 方法 所属对象：端口

从端口发送指定的数据。成功返回真，失败返回假。

语法： 逻辑型 端口．发送数据 （欲发送数据）

参数名 | 描 述
欲发送数据 | 必需的；通用型。欲发送数据必须是系统基本数据类型。

参见： 语法的描述规则、基本数据类型


转换为主机名

转换为主机名 命令 所属类别：网络通信

将指定的 IP 地址转换为其主机名。如果失败返回空文本。

语法： 文本型 转换为主机名 （欲转换IP地址）

参数名 | 描 述
欲转换IP地址 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


转换为IP地址

转换为IP地址 命令 所属类别：网络通信

将指定的主机名转换为其 IP 地址。如果失败返回空文本。

语法： 文本型 转换为IP地址 （欲转换主机名）

参数名 | 描 述
欲转换主机名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取回客户 (服务器)

取回客户 方法 所属对象：服务器

当接收到“客户进入”或者“客户离开”事件时，在该事件的处理子程序中可调用本方法取回对应的客户地址（IP地址 + 端口）。

语法： 文本型 服务器．取回客户 （）

参见： 语法的描述规则、基本数据类型


发送数据 (服务器)

发送数据 方法 所属对象：服务器

向指定已经连接进来的客户发送数据。成功返回真，失败返回假。

语法： 逻辑型 服务器．发送数据 （接收客户，欲发送数据，［最长等待时间］）

参数名 | 描 述
接收客户 | 必需的；文本型。为调用“取回客户”方法所返回的客户地址文本。
欲发送数据 | 必需的；通用型。欲发送数据必须是系统基本数据类型。
最长等待时间 | 可选的；整数型。指定等待发送成功的最长时间，单位为秒。如果省略本参数，默认为无限等待。

参见： 语法的描述规则、基本数据类型


取回数据 (客户)

取回数据 方法 所属对象：客户

取回所接收到的数据。本命令必须在“数据到达”事件的处理子程序中使用。

语法： 字节集 客户．取回数据 （）

参见： 语法的描述规则、基本数据类型


置托盘图标 (窗口)

置托盘图标 方法 所属对象：窗口

设置本程序在系统托盘中的图标。

语法： 无返回值 窗口单元．置托盘图标 （［图标数据］，［提示信息］）

参数名 | 描 述
图标数据 | 可选的；通用型。参数值可以为图标字节集数据、图标资源或图标文件名。如果省略本参数，默认为清除已有的本程序图标。
提示信息 | 可选的；文本型。本参数指定当鼠标移动到图标上后显示的提示信息。如果省略本参数，默认为空文本。

参见： 语法的描述规则、基本数据类型


弹出托盘菜单 (窗口)

弹出托盘菜单 方法 所属对象：窗口

在当前鼠标位置弹出指定菜单，本命令一般用作支持托盘菜单的弹出。

语法： 无返回值 窗口单元．弹出托盘菜单 （欲弹出的菜单）

参数名 | 描 述
欲弹出的菜单 | 必需的；菜单。指定菜单内必须包含有子菜单，且所处窗口必须与调用对象窗口一致。

参见： 语法的描述规则、基本数据类型


断开客户 (服务器)

断开客户 方法 所属对象：服务器

断开与指定客户之间的连接。

语法： 无返回值 服务器．断开客户 （欲断开客户）

参数名 | 描 述
欲断开客户 | 必需的；文本型。为调用“取回客户”方法所返回的客户地址文本。

参见： 语法的描述规则、基本数据类型


取默认底色

取默认底色 命令 所属类别：系统处理

取回Windows系统的默认窗口背景颜色。

语法： 整数型 取默认底色 （）

参见： 语法的描述规则、基本数据类型


取图片 (画板)

取图片 方法 所属对象：画板

返回画板上所有现有显示内容的图片数据。如果失败，返回空字节集。

语法： 字节集 画板．取图片 （［输出宽度］，［输出高度］）

参数名 | 描 述
输出宽度 | 可选的；整数型。指定图片的输出宽度。如果小于0，参数值指定的是最终图片输出宽度相对于所取得图片宽度的百分比（最小为10%）；如果等于0，则按图片原宽度输出；如果大于0，指定输出图片的绝对宽度。如果本参数被省略，默认值为0。
输出高度 | 可选的；整数型。指定图片的输出高度。如果小于0，参数值指定的是最终图片输出高度相对于所取得图片高度的百分比（最小为10%）；如果等于0，则按图片原高度输出；如果大于0，指定输出图片的绝对高度。如果本参数被省略，默认值为0。

参见： 语法的描述规则、基本数据类型


快照

快照 命令 所属类别：系统处理

为高级用户提供，初级用户无需掌握；
捕获指定窗口或屏幕上所有现有显示内容，返回相应图片数据。如果失败，返回空字节集。

语法： 字节集 快照 （［窗口句柄］，［输出宽度］，［输出高度］）

参数名 | 描 述
窗口句柄 | 可选的；整数型。指定欲捕获其显示内容的窗口。如果被省略，默认为捕获屏幕显示内容。
输出宽度 | 可选的；整数型。指定图片的输出宽度。如果小于0，参数值指定的是最终图片输出宽度相对于所取得图片宽度的百分比（最小为10%）；如果等于0，则按图片原宽度输出；如果大于0，指定输出图片的绝对宽度。如果本参数被省略，默认值为0。
输出高度 | 可选的；整数型。指定图片的输出高度。如果小于0，参数值指定的是最终图片输出高度相对于所取得图片高度的百分比（最小为10%）；如果等于0，则按图片原高度输出；如果大于0，指定输出图片的绝对高度。如果本参数被省略，默认值为0。

参见： 语法的描述规则、基本数据类型


到首记录 (数据源)

到首记录 方法 所属对象：数据源

将数据源中当前记录指针移动到第一条记录上。

语法： 无返回值 数据源．到首记录 （）

参见： 语法的描述规则、基本数据类型


到尾记录 (数据源)

到尾记录 方法 所属对象：数据源

将数据源中当前记录指针移动到最后一条记录上。

语法： 无返回值 数据源．到尾记录 （）

参见： 语法的描述规则、基本数据类型


跳过 (数据源)

跳过 方法 所属对象：数据源

将数据源中当前记录指针向前或者向后移动数条记录。

语法： 无返回值 数据源．跳过 （［欲跳过的记录数］）

参数名 | 描 述
欲跳过的记录数 | 可选的；整数型。参数值如果为负数，则向前移动，否则向后移动。如果本参数被省略，默认值为 1 ，即向后移动一条记录。

参见： 语法的描述规则、基本数据类型


跳到 (数据源)

跳到 方法 所属对象：数据源

改变数据源中的当前记录指针到指定的记录号。

语法： 无返回值 数据源．跳到 （欲跳到的记录号）

参数名 | 描 述
欲跳到的记录号 | 必需的；整数型。参数值所指定的记录号从 1 开始，即首记录的记录号为 1 ，依此类推。

参见： 语法的描述规则、基本数据类型


取记录号 (数据源)

取记录号 方法 所属对象：数据源

返回数据源当前记录指针所指向记录的记录号。记录号从1开始。如果当前记录指针无效，所返回记录号为0。

语法： 整数型 数据源．取记录号 （）

参见： 语法的描述规则、基本数据类型


取表头行数 (数据源)

取表头行数 方法 所属对象：数据源

返回当以表格的形式表现数据源中的数据时表头所占的行数。表头行在表格中显示时不会滚动，在打印时会自动打印在每一页的顶部。

语法： 整数型 数据源．取表头行数 （）

参见： 语法的描述规则、基本数据类型


置表头行数 (数据源)

置表头行数 方法 所属对象：数据源

设置当以表格的形式表现数据源中的数据时表头所占的行数。表头行在表格中显示时不会滚动，在打印时会自动打印在每一页的顶部。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置表头行数 （［表头行数］）

参数名 | 描 述
表头行数 | 可选的；整数型。参数值如果为-1，则自动调整由于单元格组合而产生的行格式错误。如果本参数被省略，默认值为-1。

参见： 语法的描述规则、基本数据类型


取表头列数 (数据源)

取表头列数 方法 所属对象：数据源

返回当以表格的形式表现数据源中的数据时表头所占的列数。表头列在表格中显示时不会滚动。

语法： 整数型 数据源．取表头列数 （）

参见： 语法的描述规则、基本数据类型


置表头列数 (数据源)

置表头列数 方法 所属对象：数据源

设置当以表格的形式表现数据源中的数据时表头所占的列数。表头列在表格中显示时不会滚动。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置表头列数 （［表头列数］）

参数名 | 描 述
表头列数 | 可选的；整数型。参数值如果为-1，则自动调整由于单元格组合而产生的列格式错误。如果本参数被省略，默认值为-1。

参见： 语法的描述规则、基本数据类型


取行高 (数据源)

取行高 方法 所属对象：数据源

返回数据源中指定行在表现时的高度，单位为0.1毫米。

语法： 整数型 数据源．取行高 （行号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。

参见： 语法的描述规则、基本数据类型


置行高 (数据源)

置行高 方法 所属对象：数据源

设置数据源中数据行在表现时的高度，单位为0.1毫米。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置行高 （行号，［行数］，高度）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
高度 | 必需的；整数型。单位0.1毫米。

参见： 语法的描述规则、基本数据类型


取列宽 (数据源)

取列宽 方法 所属对象：数据源

返回数据源中指定列在表现时的宽度，单位为0.1毫米。

语法： 整数型 数据源．取列宽 （列号）

参数名 | 描 述
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置列宽 (数据源)

置列宽 方法 所属对象：数据源

设置数据源中数据列在表现时的宽度，单位为0.1毫米。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置列宽 （列号，［列数］，宽度）

参数名 | 描 述
列号 | 必需的；整数型。列号从1开始。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
宽度 | 必需的；整数型。单位0.1毫米。

参见： 语法的描述规则、基本数据类型


取类型 (数据源)

取类型 方法 所属对象：数据源

返回数据源中指定单元格的数据类型。返回值为以下常量值之一： 1、#文本； 2、#图片文件名； 3、#图片数据； 4、#字节集数据。

语法： 整数型 数据源．取类型 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置类型 (数据源)

置类型 方法 所属对象：数据源

设置数据源中指定单元格的数据类型。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置类型 （行号，列号，［行数］，［列数］，［类型］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
类型 | 可选的；整数型。可以为以下常量值之一： 1、#文本； 2、#图片文件名； 3、#图片数据； 4、#字节集数据。如果本参数被省略，默认值为“#文本”。

参见： 语法的描述规则、基本数据类型


取文本色 (数据源)

取文本色 方法 所属对象：数据源

返回数据源中指定单元格在表现时的文本颜色。

语法： 整数型 数据源．取文本色 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置文本色 (数据源)

置文本色 方法 所属对象：数据源

设置数据源中指定单元格在表现时的文本颜色。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置文本色 （行号，列号，［行数］，［列数］，［文本颜色］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
文本颜色 | 可选的；整数型。如果本参数被省略，默认值为黑色。

参见： 语法的描述规则、基本数据类型


取背景色 (数据源)

取背景色 方法 所属对象：数据源

返回数据源中指定单元格在表现时的背景颜色。

语法： 整数型 数据源．取背景色 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置背景色 (数据源)

置背景色 方法 所属对象：数据源

设置数据源中指定单元格在表现时的背景颜色。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置背景色 （行号，列号，［行数］，［列数］，［背景颜色］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
背景颜色 | 可选的；整数型。如果本参数被省略，默认值为透明色。

参见： 语法的描述规则、基本数据类型


取字体名 (数据源)

取字体名 方法 所属对象：数据源

返回数据源中指定单元格在表现时所使用字体的名称。

语法： 文本型 数据源．取字体名 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置字体名 (数据源)

置字体名 方法 所属对象：数据源

设置数据源中指定单元格在表现时所使用字体的名称。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置字体名 （行号，列号，［行数］，［列数］，［字体名称］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
字体名称 | 可选的；文本型。如果本参数被省略，默认值为“宋体”。

参见： 语法的描述规则、基本数据类型


取字体尺寸 (数据源)

取字体尺寸 方法 所属对象：数据源

返回数据源中指定单元格在表现时所使用字体的尺寸，单位为0.1毫米。

语法： 整数型 数据源．取字体尺寸 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置字体尺寸 (数据源)

置字体尺寸 方法 所属对象：数据源

设置数据源中指定单元格在表现时所使用字体的尺寸，单位为0.1毫米。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置字体尺寸 （行号，列号，［行数］，［列数］，［字体尺寸］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
字体尺寸 | 可选的；整数型。如果本参数被省略，默认值为40。

参见： 语法的描述规则、基本数据类型


取字体属性 (数据源)

取字体属性 方法 所属对象：数据源

返回数据源中指定单元格在表现时所使用字体的属性。返回值为以下常量值之一或之和： 1、#粗体； 2、#斜体； 4、#下划线； 8、#删除线。

语法： 整数型 数据源．取字体属性 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置字体属性 (数据源)

置字体属性 方法 所属对象：数据源

设置数据源中指定单元格在表现时所使用字体的属性。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置字体属性 （行号，列号，［行数］，［列数］，［字体属性］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
字体属性 | 可选的；整数型。可以为以下常量值之一或之和： 1、#粗体； 2、#斜体； 4、#下划线； 8、#删除线。如果本参数被省略，默认值为0。

参见： 语法的描述规则、基本数据类型


取边距 (数据源)

取边距 方法 所属对象：数据源

返回数据源中指定单元格在表现其中数据时至其单元格边框之间的空白距离，单位为0.1毫米。

语法： 整数型 数据源．取边距 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置边距 (数据源)

置边距 方法 所属对象：数据源

设置数据源中指定单元格在表现其中数据时至其单元格边框之间的空白距离，单位为0.1毫米。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置边距 （行号，列号，［行数］，［列数］，［边距］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
边距 | 可选的；整数型。如果本参数被省略，默认值为9。

参见： 语法的描述规则、基本数据类型


取文本输入格式 (数据源)

取文本输入格式 方法 所属对象：数据源

返回数据源中某文本型单元格的输入格式。当新的数据通过输入方式更新到该单元格内之前，将首先自动根据此格式转换。返回值为以下常量值之一： 0、#通常型； 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型。

语法： 整数型 数据源．取文本输入格式 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置文本输入格式 (数据源)

置文本输入格式 方法 所属对象：数据源

设置数据源中某文本型单元格的输入格式。当新的数据通过输入方式更新到该单元格内之前，将首先自动根据此格式转换。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置文本输入格式 （行号，列号，［行数］，［列数］，［输入格式］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
输入格式 | 可选的；整数型。可以为以下常量值之一： 0、#通常型； 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型。 如果本参数被省略，默认值为“#通常型”。

参见： 语法的描述规则、基本数据类型


取对齐方式 (数据源)

取对齐方式 方法 所属对象：数据源

返回数据源中指定单元格在表现时所使用的对齐方式。返回值为以下常量值之一： 1、#上左； 2、#上中； 3、#上右； 4、#中左； 5、#中中； 6、#中右； 7、#下左； 8、#下中； 9、#下右； 10、#缩放图片； 11、#居中图片； 12、#缩放居中图片； 13、#平铺图片； 14、#缩放平铺图片。

语法： 整数型 数据源．取对齐方式 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置对齐方式 (数据源)

置对齐方式 方法 所属对象：数据源

设置数据源中指定单元格在表现时所使用的对齐方式。注意如果数据源所使用的数据提供者不支持某些属性，该属性将被忽略。

语法： 无返回值 数据源．置对齐方式 （行号，列号，［行数］，［列数］，［对齐方式］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
对齐方式 | 可选的；整数型。可以为以下常量值之一：1、#上左； 2、#上中； 3、#上右； 4、#中左； 5、#中中； 6、#中右； 7、#下左； 8、#下中； 9、#下右； 10、#缩放图片； 11、#居中图片； 12、#缩放居中图片； 13、#平铺图片； 14、#缩放平铺图片。 其中 10 到 14 对齐方式仅对图片型单元格有效。如果本参数被省略，默认值为“#上左”。

参见： 语法的描述规则、基本数据类型


取密码方式 (数据源)

取密码方式 方法 所属对象：数据源

返回数据源中指定单元格在表现时是否使用密码方式。

语法： 逻辑型 数据源．取密码方式 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置密码方式 (数据源)

置密码方式 方法 所属对象：数据源

如设置值为真，则数据源中指定单元格在表现时以密码字符呈现。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置密码方式 （行号，列号，［行数］，［列数］，设置值）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
设置值 | 必需的；逻辑型。

参见： 语法的描述规则、基本数据类型


取文本 (数据源)

取文本 方法 所属对象：数据源

返回数据源中指定单元格的文本内容。

语法： 文本型 数据源．取文本 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置文本 (数据源)

置文本 方法 所属对象：数据源

设置数据源中指定单元格的文本内容，注意该单元格类型必须为“#文本”或“#图片文件名”。

语法： 无返回值 数据源．置文本 （行号，列号，文本或图片文件名）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
文本或图片文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取数据 (数据源)

取数据 方法 所属对象：数据源

返回数据源中指定单元格的图片或字节集数据内容。

语法： 字节集 数据源．取数据 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置数据 (数据源)

置数据 方法 所属对象：数据源

设置数据源中指定单元格的图片或字节集数据内容，注意该单元格类型必须为“#图片数据”或“#字节集数据”。

语法： 无返回值 数据源．置数据 （行号，列号，数据）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
数据 | 必需的；字节集。

参见： 语法的描述规则、基本数据类型


合并 (数据源)

合并 方法 所属对象：数据源

组合数据源中指定范围内的单元格，使之以一个单元格的形式表现。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．合并 （行号，列号，［行数］，［列数］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


分解 (数据源)

分解 方法 所属对象：数据源

分解数据源中指定的已经组合的单元格，行列参数指向被组合单元格内的任何一个单元格即可。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．分解 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


是否被合并 (数据源)

是否被合并 方法 所属对象：数据源

如果数据源中指定单元格与周边指定单元格有组合关系，返回真，否则返回假。

语法： 逻辑型 数据源．是否被合并 （行号，列号，周边单元格）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
周边单元格 | 必需的；整数型。可以为以下常量值之一： 1、#左单元格； 2、#上单元格； 3、#右单元格； 4、#下单元格。

参见： 语法的描述规则、基本数据类型


加线条 (数据源)

加线条 方法 所属对象：数据源

为数据源中指定范围内单元格添加线条。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．加线条 （行号，列号，［行数］，［列数］，［线条类型］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
线条类型 | 可选的；整数型。可以为以下常量值之一或之和：1、#左边框； 2、#上边框； 4、#右边框； 8、#下边框； 16、#水平线； 32、#垂直线； 64、#单斜线； 128、#双斜线； 256、#交叉线。 如果本参数被省略，默认值为“#左边框 + #上边框 + #右边框 + #下边框”。

参见： 语法的描述规则、基本数据类型


删线条 (数据源)

删线条 方法 所属对象：数据源

将数据源中指定范围内单元格内的线条去除。注意如果数据源所使用的数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．删线条 （行号，列号，［行数］，［列数］，［线条类型］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
线条类型 | 可选的；整数型。可以为以下常量值之一或之和：1、#左边框； 2、#上边框； 4、#右边框； 8、#下边框； 16、#水平线； 32、#垂直线； 64、#单斜线； 128、#双斜线； 256、#交叉线。 如果本参数被省略，默认值为“#左边框 + #上边框 + #右边框 + #下边框”。

参见： 语法的描述规则、基本数据类型


是否有线条 (数据源)

是否有线条 方法 所属对象：数据源

如果数据源中指定单元格有指定线条，返回真，否则返回假。

语法： 逻辑型 数据源．是否有线条 （行号，列号，线条类型）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
线条类型 | 必需的；整数型。可以为以下常量值之一或之和：1、#左边框； 2、#上边框； 4、#右边框； 8、#下边框； 64、#单斜线； 128、#双斜线； 256、#交叉线。

参见： 语法的描述规则、基本数据类型


清除 (数据源)

清除 方法 所属对象：数据源

清除数据源中指定范围内单元格内容为空文本。

语法： 无返回值 数据源．清除 （行号，列号，［行数］，［列数］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


置初始属性 (数据源)

置初始属性 方法 所属对象：数据源

设置在数据源中初始或者添加新单元格时默认的单元格初始属性。

语法： 无返回值 数据源．置初始属性 （［类型］，［文本颜色］，［背景颜色］，［字体名称］，［字体尺寸］，［字体属性］，［边距］，［对齐方式］，［输入格式］，［添加边框线］）

参数名 | 描 述
类型 | 可选的；整数型。可以为以下常量值之一： 1、#文本； 2、#图片文件名； 3、#图片数据； 4、#字节集数据。如果本参数被省略，默认值为“#文本”。
文本颜色 | 可选的；整数型。如果本参数被省略，默认值为黑色。
背景颜色 | 可选的；整数型。如果本参数被省略，默认值为透明色。
字体名称 | 可选的；文本型。如果本参数被省略，默认值为“宋体”。
字体尺寸 | 可选的；整数型。如果本参数被省略，默认值为40。
字体属性 | 可选的；整数型。可以为以下常量值之一或之和： 1、#粗体； 2、#斜体； 4、#下划线； 8、#删除线。如果本参数被省略，默认值为0。
边距 | 可选的；整数型。如果本参数被省略，默认值为9。
对齐方式 | 可选的；整数型。可以为以下常量值之一：1、#上左； 2、#上中； 3、#上右； 4、#中左； 5、#中中； 6、#中右； 7、#下左； 8、#下中； 9、#下右； 10、#缩放图片； 11、#居中图片； 12、#缩放居中图片； 13、#平铺图片； 14、#缩放平铺图片。 其中 10 到 14 对齐方式仅对图片型单元格有效。如果本参数被省略，默认值为“#上左”。
输入格式 | 可选的；整数型。可以为以下常量值之一： 0、#通常型； 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型。 如果本参数被省略，默认值为“#通常型”。
添加边框线 | 可选的；逻辑型。指定是否在单元格周围添加边框线。如果本参数被省略，默认值为假。

参见： 语法的描述规则、基本数据类型


初始尺寸 (数据源)

初始尺寸 方法 所属对象：数据源

初始数据源中数据的行列数，注意数据源中所有原有数据将被清除。注意某些数据提供者可能不支持此方法。成功返回真，失败返回假。

语法： 逻辑型 数据源．初始尺寸 （［行数］，［列数］）

参数名 | 描 述
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


取行数 (数据源)

取行数 方法 所属对象：数据源

返回数据源中现行数据行数。

语法： 整数型 数据源．取行数 （）

参见： 语法的描述规则、基本数据类型


取列数 (数据源)

取列数 方法 所属对象：数据源

返回数据源中现行数据列数。

语法： 整数型 数据源．取列数 （）

参见： 语法的描述规则、基本数据类型


插入行 (数据源)

插入行 方法 所属对象：数据源

在数据源中指定位置处插入新数据行。注意某些数据提供者可能不支持在中间插入行。成功返回真，失败返回假。

语法： 逻辑型 数据源．插入行 （行号，［行数］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


添加行 (数据源)

添加行 方法 所属对象：数据源

在数据源中最后一行后插入新数据行。成功返回真，失败返回假。

语法： 逻辑型 数据源．添加行 （［行数］）

参数名 | 描 述
行数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


删除行 (数据源)

删除行 方法 所属对象：数据源

在数据源中指定位置处删除数据行。成功返回真，失败返回假。

语法： 逻辑型 数据源．删除行 （行号，［行数］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


插入列 (数据源)

插入列 方法 所属对象：数据源

在数据源中指定位置处插入新数据列。成功返回真，失败返回假。

语法： 逻辑型 数据源．插入列 （列号，［列数］）

参数名 | 描 述
列号 | 必需的；整数型。列号从1开始。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


删除列 (数据源)

删除列 方法 所属对象：数据源

在数据源中指定位置处删除数据列。成功返回真，失败返回假。

语法： 逻辑型 数据源．删除列 （列号，［列数］）

参数名 | 描 述
列号 | 必需的；整数型。列号从1开始。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


添加 (数据源)

添加 方法 所属对象：数据源

将指定其它数据源或者数据提供者中的数据添加到本数据源的尾部。成功返回真，失败返回假。

语法： 逻辑型 数据源．添加 （数据源或数据提供者，［首行行号］，［欲添加行数］）

参数名 | 描 述
数据源或数据提供者 | 必需的；通用型。本参数指定欲添加其数据到数据源中的其它数据源或数据提供者。
首行行号 | 可选的；整数型。指定欲添加数据首行的行号。如果本参数被省略，默认值为1。
欲添加行数 | 可选的；整数型。指定欲添加数据行的行数。如果参数值为-1，则添加首行后的所有数据行。如果本参数被省略，默认值为-1。

参见： 语法的描述规则、基本数据类型


存到字节集 (数据源)

存到字节集 方法 所属对象：数据源

将数据源中所有现有数据保存在字节集中返回。如果失败，将返回空字节集。

语法： 字节集 数据源．存到字节集 （）

参见： 语法的描述规则、基本数据类型


从字节集读 (数据源)

从字节集读 方法 所属对象：数据源

将指定字节集内的数据源数据写入到数据源中，数据源内所有原有数据将被清除。成功返回真，失败返回假。

语法： 逻辑型 数据源．从字节集读 （数据源数据）

参数名 | 描 述
数据源数据 | 必需的；字节集。

参见： 语法的描述规则、基本数据类型


存到文件 (数据源)

存到文件 方法 所属对象：数据源

将数据源中所有现有数据保存到指定文件中。成功返回真，失败返回假。

语法： 逻辑型 数据源．存到文件 （数据源数据文件名）

参数名 | 描 述
数据源数据文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


从文件读 (数据源)

从文件读 方法 所属对象：数据源

将指定文件内的数据源数据写入到数据源中，数据源内所有原有数据将被清除。成功返回真，失败返回假。

语法： 逻辑型 数据源．从文件读 （数据源数据文件名）

参数名 | 描 述
数据源数据文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


单元格到字节集 (数据源)

单元格到字节集 方法 所属对象：数据源

将数据源中指定范围内单元格数据保存在字节集中返回。如果失败，将返回空字节集。

语法： 字节集 数据源．单元格到字节集 （行号，列号，［行数］，［列数］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


字节集到单元格 (数据源)

字节集到单元格 方法 所属对象：数据源

将指定字节集内的单元格数据写入到数据源中指定位置。成功返回真，失败返回假。

语法： 逻辑型 数据源．字节集到单元格 （行号，列号，单元格数据，［自动扩展］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
单元格数据 | 必需的；字节集。
自动扩展 | 可选的；逻辑型。本参数指定如果数据源内的数据行列数无法容纳即将读入的数据，是否自动扩展。如果本参数被省略，默认值为真。

参见： 语法的描述规则、基本数据类型


单元格到文件 (数据源)

单元格到文件 方法 所属对象：数据源

将数据源中指定范围内单元格数据保存到指定文件中。成功返回真，失败返回假。

语法： 逻辑型 数据源．单元格到文件 （行号，列号，［行数］，［列数］，数据源数据文件名）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
数据源数据文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


文件到单元格 (数据源)

文件到单元格 方法 所属对象：数据源

将指定文件内的单元格数据写入到数据源中指定位置。成功返回真，失败返回假。

语法： 逻辑型 数据源．文件到单元格 （行号，列号，单元格数据文件名，［自动扩展］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
单元格数据文件名 | 必需的；文本型。
自动扩展 | 可选的；逻辑型。本参数指定如果数据源内的数据行列数无法容纳即将读入的数据，是否自动扩展。如果本参数被省略，默认值为真。

参见： 语法的描述规则、基本数据类型


刷新 (数据源)

刷新 方法 所属对象：数据源

通知所有基于本数据源的数据处理者，使其自动从数据源重新获取并显示数据。

语法： 无返回值 数据源．刷新 （）

参见： 语法的描述规则、基本数据类型


保存更改 (数据源)

保存更改 方法 所属对象：数据源

通知所有基于本数据源的数据处理者，使其自动将处理或更改后的数据写回到数据源中。

语法： 无返回值 数据源．保存更改 （）

参见： 语法的描述规则、基本数据类型


打印设置 (数据源)

打印设置 方法 所属对象：数据源

调用对话框设置数据的打印配置信息。当操作者按确认按钮退出对话框时返回真，否则返回假。

语法： 逻辑型 数据源．打印设置 （）

参见： 语法的描述规则、基本数据类型


取打印设置 (数据源)

取打印设置 方法 所属对象：数据源

返回打印数据源数据时所将使用的设置信息。

语法： 打印设置信息 数据源．取打印设置 （）

参见： 语法的描述规则、基本数据类型


置打印设置 (数据源)

置打印设置 方法 所属对象：数据源

设置打印数据源数据时所将使用的设置信息。成功返回真，失败返回假。

语法： 逻辑型 数据源．置打印设置 （打印设置信息）

参数名 | 描 述
打印设置信息 | 必需的；打印设置信息。

参见： 语法的描述规则、基本数据类型


取打印页宽 (数据源)

取打印页宽 方法 所属对象：数据源

返回打印数据源数据时所将使用打印纸的正文区域宽度，单位为0.1毫米。注意：1、此宽度不包含页边距；2、“打印设置”命令执行后，如果操作者改变了纸张类型，此值将自动改变。

语法： 整数型 数据源．取打印页宽 （）

参见： 语法的描述规则、基本数据类型


取打印页高 (数据源)

取打印页高 方法 所属对象：数据源

返回打印数据源数据时所将使用打印纸的正文区域高度，单位为0.1毫米。注意：1、此宽度不包含页边距；2、“打印设置”命令执行后，如果操作者改变了纸张类型，此值将自动改变。

语法： 整数型 数据源．取打印页高 （）

参见： 语法的描述规则、基本数据类型


置光标 (表格)

置光标 方法 所属对象：表格

语法： 无返回值 表格．置光标 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


选择 (表格)

选择 方法 所属对象：表格

语法： 无返回值 表格．选择 （行号，列号，［行数］，［列数］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


全部选择 (表格)

全部选择 方法 所属对象：表格

语法： 无返回值 表格．全部选择 （）

参见： 语法的描述规则、基本数据类型


取光标行号 (表格)

取光标行号 方法 所属对象：表格

语法： 整数型 表格．取光标行号 （）

参见： 语法的描述规则、基本数据类型


取光标列号 (表格)

取光标列号 方法 所属对象：表格

语法： 整数型 表格．取光标列号 （）

参见： 语法的描述规则、基本数据类型


取选择行数 (表格)

取选择行数 方法 所属对象：表格

被选择的行区域起始于光标所在行。

语法： 整数型 表格．取选择行数 （）

参见： 语法的描述规则、基本数据类型


取选择列数 (表格)

取选择列数 方法 所属对象：表格

被选择的列区域起始于光标所在列。

语法： 整数型 表格．取选择列数 （）

参见： 语法的描述规则、基本数据类型


等宽缩放 (表格)

等宽缩放 方法 所属对象：表格

将表格内容缩放到与表格窗口等宽显示。

语法： 无返回值 表格．等宽缩放 （）

参见： 语法的描述规则、基本数据类型


全部复制 (表格)

全部复制 方法 所属对象：表格

复制所有表格数据到剪贴板。

语法： 无返回值 表格．全部复制 （）

参见： 语法的描述规则、基本数据类型


复制 (表格)

复制 方法 所属对象：表格

复制指定区域表格数据到剪贴板。

语法： 无返回值 表格．复制 （行号，列号，［行数］，［列数］）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。

参见： 语法的描述规则、基本数据类型


粘贴到光标处 (表格)

粘贴到光标处 方法 所属对象：表格

粘贴剪贴板中的表格数据到当前光标处。

语法： 无返回值 表格．粘贴到光标处 （）

参见： 语法的描述规则、基本数据类型


粘贴 (表格)

粘贴 方法 所属对象：表格

粘贴剪贴板中的表格数据到指定位置。

语法： 无返回值 表格．粘贴 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


打印 (表格)

打印 方法 所属对象：表格

打印表格数据到打印机。注意欲设置打印份数等打印设置信息请到与表格相连接的数据源中设置。成功返回空文本，失败(不包含操作者中断打印)返回非空错误文本。

语法： 文本型 表格．打印 （［是否显示进度框］，［打印作业标题］）

参数名 | 描 述
是否显示进度框 | 可选的；逻辑型。指定在打印的同时是否显示打印进度框，操作者可以在进度框内中止打印。如果本参数被省略，默认值为真。
打印作业标题 | 可选的；文本型。本参数指定打印时显示在打印机状态窗口中的文档名称。如果参数被省略，默认值为“报表”。

参见： 语法的描述规则、基本数据类型


打印预览 (表格)

打印预览 方法 所属对象：表格

语法： 无返回值 表格．打印预览 （）

参见： 语法的描述规则、基本数据类型


打开 (外部数据库)

打开 方法 所属对象：外部数据库

打开指定的ODBC数据源以供以后操作。成功返回真，失败返回假。

语法： 逻辑型 外部数据库．打开 （［ODBC数据源连接文本］，［是否只读］）

参数名 | 描 述
ODBC数据源连接文本 | 可选的；文本型。指定指向ODBC数据源的连接文本，如果为空，则激活ODBC数据源选择对话框。如果参数被省略，默认值为空。
是否只读 | 可选的；逻辑型。指定是否以只读方式打开。如果参数被省略，默认值为假。

参见： 语法的描述规则、基本数据类型


关闭 (外部数据库)

关闭 方法 所属对象：外部数据库

关闭当前被打开的数据库。

语法： 无返回值 外部数据库．关闭 （）

参见： 语法的描述规则、基本数据类型


取连接文本 (外部数据库)

取连接文本 方法 所属对象：外部数据库

返回当前被打开数据库的ODBC数据源连接文本。失败返回空文本。

语法： 文本型 外部数据库．取连接文本 （）

参见： 语法的描述规则、基本数据类型


启动事务 (外部数据库)

启动事务 方法 所属对象：外部数据库

启动当前被打开数据库的事务，成功返回真，失败返回假。

语法： 逻辑型 外部数据库．启动事务 （）

参见： 语法的描述规则、基本数据类型


回滚事务 (外部数据库)

回滚事务 方法 所属对象：外部数据库

回滚当前被打开数据库的事务，所有在上一次事务提交前对数据库所作的修改均被取消。

语法： 无返回值 外部数据库．回滚事务 （）

参见： 语法的描述规则、基本数据类型


提交事务 (外部数据库)

提交事务 方法 所属对象：外部数据库

提交当前被打开数据库的事务。

语法： 无返回值 外部数据库．提交事务 （）

参见： 语法的描述规则、基本数据类型


查询 (外部数据库)

查询 方法 所属对象：外部数据库

对当前被打开数据库进行数据查询，成功返回结果记录集句柄，失败返回0。注意当不再使用此记录集时，必须使用“关闭记录集”命令将其关闭。

语法： 整数型 外部数据库．查询 （查询类SQL语句）

参数名 | 描 述
查询类SQL语句 | 必需的；文本型。本参数提供用作查询的SELECT语句。

参见： 语法的描述规则、基本数据类型


重新查询 (外部数据库)

重新查询 方法 所属对象：外部数据库

对指定的记录集进行重新查询，并将其当前记录指针重定位到首记录。成功返回真，失败返回假。

语法： 逻辑型 外部数据库．重新查询 （记录集句柄）

参数名 | 描 述
记录集句柄 | 必需的；整数型。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

参见： 语法的描述规则、基本数据类型


关闭记录集 (外部数据库)

关闭记录集 方法 所属对象：外部数据库

关闭指定的记录集。

语法： 无返回值 外部数据库．关闭记录集 （［记录集句柄］）

参数名 | 描 述
记录集句柄 | 可选的；整数型。指定欲关闭记录集的句柄，记录集句柄由“查询”命令返回。如果参数值为0，则关闭所有记录集。如果参数被省略，默认值为0。

参见： 语法的描述规则、基本数据类型


首记录前 (外部数据库)

首记录前 方法 所属对象：外部数据库

如果指定记录集的当前记录指针已在首记录的前面，返回真，否则返回假。

语法： 逻辑型 外部数据库．首记录前 （记录集句柄）

参数名 | 描 述
记录集句柄 | 必需的；整数型。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

参见： 语法的描述规则、基本数据类型


尾记录后 (外部数据库)

尾记录后 方法 所属对象：外部数据库

如果指定记录集的当前记录指针已在尾记录的后面，返回真，否则返回假。

语法： 逻辑型 外部数据库．尾记录后 （记录集句柄）

参数名 | 描 述
记录集句柄 | 必需的；整数型。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

参见： 语法的描述规则、基本数据类型


到首记录 (外部数据库)

到首记录 方法 所属对象：外部数据库

将指定记录集的当前记录指针移动到第一条记录上。

语法： 无返回值 外部数据库．到首记录 （记录集句柄）

参数名 | 描 述
记录集句柄 | 必需的；整数型。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

参见： 语法的描述规则、基本数据类型


到尾记录 (外部数据库)

到尾记录 方法 所属对象：外部数据库

将指定记录集的当前记录指针移动到最后一条记录上。

语法： 无返回值 外部数据库．到尾记录 （记录集句柄）

参数名 | 描 述
记录集句柄 | 必需的；整数型。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

参见： 语法的描述规则、基本数据类型


到前一记录 (外部数据库)

到前一记录 方法 所属对象：外部数据库

将指定记录集的当前记录指针向前移动一条记录。

语法： 无返回值 外部数据库．到前一记录 （记录集句柄）

参数名 | 描 述
记录集句柄 | 必需的；整数型。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

参见： 语法的描述规则、基本数据类型


到后一记录 (外部数据库)

到后一记录 方法 所属对象：外部数据库

将指定记录集的当前记录指针向后移动一条记录。

语法： 无返回值 外部数据库．到后一记录 （记录集句柄）

参数名 | 描 述
记录集句柄 | 必需的；整数型。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。

参见： 语法的描述规则、基本数据类型


读 (外部数据库)

读 方法 所属对象：外部数据库

返回指定记录集的当前记录处指定字段的数据内容，所返回数据的类型与字段SQL类型对照表如下： 返回数据类型 字段SQL类型 ------------------------------------------------- 逻辑型 BIT 字节型 TINYINT 短整数型 SMALLINT 整数型 INTEGER 单精度型 REAL 双精度型 FLOAT、DOUBLE 日期时间型 DATE、TIME、TIMESTAMP 文本型 NUMERIC、DECIMAL、BIGINT、CHAR、VARCHAR、LONGVARCHAR 字节集型 BINARY、VARBINARY、LONGVARBINARY 如果因为找不到指定字段而导致读入失败将返回空文本，如果因为其他原因而读入失败将返回对应该字段类型的空数据，即：逻辑型返回假，日期时间型返回100年1月1日，文本型返回空文本，字节集型返回空字节集，其它所有数值型返回0。 另外，由于ODBC的支持特性，如果不移动记录指针，只能对当前记录上各字段的内容读入一次。因此，如果需要持续使用所读出的数据，请使用容器将其保存。 注：写入字段数据请用“UPDATE”SQL语句实现。

语法： 通用型 外部数据库．读 （记录集句柄，字段名称或位置）

参数名 | 描 述
记录集句柄 | 必需的；整数型。指定欲操作记录集的句柄。记录集句柄由“查询”命令返回。
字段名称或位置 | 必需的；通用型。参数值可以为一个字段名称文本或者一个字段位置数值，字段位置数值从 1 开始。

参见： 语法的描述规则、基本数据类型


执行 (外部数据库)

执行 方法 所属对象：外部数据库

执行指定的非查询类SQL语句，SQL语句中的列名（尤其是中文列名）可用中括号括住。如果SQL语句中涉及到备注或者字节集型字段，请在相应位置加上问号，然后再加上对应的文本型或字节集型数据参数，参数数目必须与问号的数目一致。例如，修改数据表student中编号为100的学生像片的语句为： 外部数据库1.执行 (“update student set picture = ? where no = 100”, 像片数据)。 成功返回真，失败返回假。

语法： 逻辑型 外部数据库．执行 （非查询类SQL语句，［文本或字节集］，… ）

参数名 | 描 述
非查询类SQL语句 | 必需的；文本型。本参数提供非查询类SQL语句（无结果集返回），如修改、删除、添加等等。
文本或字节集 | 可选的；可扩充的；通用型。本参数仅用作为SQL语句中的备注或字节集型SQL参数（用问号标识其位置）提供相应数据，必须为文本或者字节集型（与SQL参数类型对应）。如果SQL语句中没有包含SQL参数，则应该省略本参数。

参见： 语法的描述规则、基本数据类型


取日期

取日期 命令 所属类别：时间操作

返回一个日期时间型数据的日期部分，其小时、分钟、秒被固定设置为0时0分0秒。

语法： 日期时间型 取日期 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


取时间

取时间 命令 所属类别：时间操作

返回一个日期时间型数据的时间部分，其年、月、日被固定设置为2000年1月1日。

语法： 日期时间型 取时间 （时间）

参数名 | 描 述
时间 | 必需的；日期时间型。

参见： 语法的描述规则、基本数据类型


数组清零

数组清零 命令 所属类别：数组操作

将指定数值数组容器内的所有成员值全部设置为零，不影响数组的维定义信息。

语法： 无返回值 数组清零 （数值数组容器）

参数名 | 描 述
数值数组容器 | 必需的；通用型，参数数据只能提供容器数组。

参见： 语法的描述规则、基本数据类型


读配置项

读配置项 命令 所属类别：系统处理

读取指定配置文件中指定项目的文本内容。

语法： 文本型 读配置项 （配置文件名，节名称，配置项名称，［默认文本］）

参数名 | 描 述
配置文件名 | 必需的；文本型。指定配置文件的名称，通常以.ini作为文件名后缀。
节名称 | 必需的；文本型。包含欲读入配置项所处节的名称。
配置项名称 | 必需的；文本型。参数值指定欲读入配置项在其节中的名称。
默认文本 | 可选的；文本型。如果指定配置项不存在，将返回此默认文本。如果指定配置项不存在且本参数被省略，将返回空文本。

参见： 语法的描述规则、基本数据类型


写配置项

写配置项 命令 所属类别：系统处理

将指定文本内容写入指定配置项中或者删除指定的配置项或节，如果指定配置文件不存在，将会自动创建。成功返回真，失败返回假。

语法： 逻辑型 写配置项 （配置文件名，节名称，［配置项名称］，［欲写入值］）

参数名 | 描 述
配置文件名 | 必需的；文本型。指定配置文件的名称，通常以.ini作为文件名后缀。
节名称 | 必需的；文本型。包含欲写入配置项所处节的名称。
配置项名称 | 可选的；文本型。参数值指定欲写入配置项在其节中的名称。如果参数值被省略，则删除指定节及其下的所有配置项。
欲写入值 | 可选的；文本型。参数值指定欲写入到指定配置项中的文本。如果参数值被省略，则删除所指定配置项。

参见： 语法的描述规则、基本数据类型


取配置节名

取配置节名 命令 所属类别：系统处理

返回指定配置文件中所有已有节名的文本数组。

语法： 文本型数组 取配置节名 （配置文件名）

参数名 | 描 述
配置文件名 | 必需的；文本型。指定配置文件的名称，通常以.ini作为文件名后缀。

参见： 语法的描述规则、基本数据类型


取操作系统类别

取操作系统类别 命令 所属类别：系统处理

返回当前Windows系统的版本类别。返回值为以下值之一：0、未知； 1、Windows 32S； 2、Windows 9X (包含Win95、Win98、WinME等)； 3、Windows NT (包含WinNT、Win2000、WinXP等)。

语法： 整数型 取操作系统类别 （）

参见： 语法的描述规则、基本数据类型


打开加密文件

打开加密文件 命令 所属类别：文件读写

打开一个以指定密码加密的文件，以对此文件进行快速安全访问，支持大尺寸文件。成功返回被打开文件的文件号，失败返回 0。

语法： 整数型 打开加密文件 （欲打开的文件名称，［打开方式］，［共享方式］，［文件密码］，［明文区长度］）

参数名 | 描 述
欲打开的文件名称 | 必需的；文本型。
打开方式 | 可选的；整数型。参数值说明对文件的操作方式，如果省略本参数，默认为“#读写”。方式值可以为以下常量之一： 1、#读入：从指定文件读入数据，如果该文件不存在则失败； 2、#写出：写出数据到指定文件，如果该文件不存在则失败； 3、#读写：从文件中读入数据或者写出数据到文件，如果该文件不存在则失败； 4、#重写：写出数据到指定文件。如果该文件不存在则先创建一个新文件，如果已经存在就先清除其中的所有数据； 5、#改写：写出数据到指定文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开； 6、#改读：从文件中读入数据或者写出数据到文件。如果该文件不存在则创建一个新文件，如果已经存在就直接打开。
共享方式 | 可选的；整数型。参数值指定限制其它进程操作此文件的方式。如果省略本参数，默认为“#无限制”。方式值可以为以下常量之一： 1、#无限制：允许其它进程任意读写此文件； 2、#禁止读：禁止其它进程读此文件； 3、#禁止写：禁止其它进程写此文件； 4、#禁止读写：禁止其它进程读写此文件。
文件密码 | 可选的；文本型。如果即将打开的文件中不存在任何数据（即为空文件或将创建的新文件），本参数指定保护该文件时所将使用的密码，以后所有写入该文件中的数据都将使用此密码加密后写入。建议密码长度最少为6个字符以上，并且最好混合使用汉字、字母、数字、符号，以保证密码本身的安全性。如果即将打开的文件中已经存在数据，本参数提供访问此已有数据时所需要的正确密码，如果此数据没有加密，请提供空文本以表示不需要密码。注意系统不会去校验密码的正确性，如果提供错误的密码，读写已有文件数据将得到错误的结果，请千万注意。因此如果需要校验密码是否正确，请在加密后的文件中保存正确的密码文本或密码文本的数据摘要信息（见数据操作支持库一中的“取数据摘要”命令），然后在打开加密文件后读出该信息对密码进行验证。系统所使用的加密算法是国际标准的RC4算法，可以保证数据的安全性。如果本参数被省略，则默认为空文本，即无密码。
明文区长度 | 可选的；整数型。本参数指定从文件首部开始不希望被加密部分的长度，系统在读写此区域内的数据时，不会使用密码对其进行加解密操作。此参数用作将加密文件分为明文区和密文区两部分，以方便某些应用程序同时保存一些明文数据。注意当打开已有加密数据的文件时，此参数值必须与新建此加密文件时所提供的参数值一致，否则会造成数据访问错误。如果本参数被省略，则默认值为0，即没有明文区。

参见： 语法的描述规则、基本数据类型


是否已加密

是否已加密 命令 所属类别：数据库

如果需要提供密码才能访问指定的数据库文件（即已经被加密），返回真，否则返回假。

语法： 逻辑型 是否已加密 （数据库文件名）

参数名 | 描 述
数据库文件名 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


置数据库密码

置数据库密码 命令 所属类别：数据库

本命令用作设置或修改当前数据库的访问密码，注意数据库文件必须可写。成功返回真，失败返回假。

语法： 逻辑型 置数据库密码 （［新密码文本］）

参数名 | 描 述
新密码文本 | 可选的；文本型。建议密码长度最少为6个字符以上，并且最好混合使用汉字、字母、数字、符号，以保证密码本身的安全性。注意不能为“?”（即单个问号），此密码文本被保留用作其他用途。如果为空文本，表示无密码。如果本参数被省略，则默认为空文本。

参见： 语法的描述规则、基本数据类型


密码输入框

密码输入框 命令 所属类别：数据库

本命令用作输入数据库的访问密码，如果用户在确认输入后（按下“确认”按钮或回车键）退出，返回真，否则返回假。

语法： 逻辑型 密码输入框 （存放所输入密码的容器，［已重试次数］）

参数名 | 描 述
存放所输入密码的容器 | 必需的；文本型，参数数据只能提供容器。
已重试次数 | 可选的；整数型。本参数提供已经重试输入密码的次数，用作在对话框中显示剩余次数（允许总次数恒定为3次）。如果本参数被省略，则默认值为0。

参见： 语法的描述规则、基本数据类型


复制密码

复制密码 命令 所属类别：数据库

本命令可以将当前数据库的访问密码设置为等同于其他已打开数据库，注意数据库文件必须可写。成功返回真，失败返回假。

语法： 逻辑型 复制密码 （数据库别名或名称）

参数名 | 描 述
数据库别名或名称 | 必需的；文本型。参数值指定一个已经被打开的数据库。

参见： 语法的描述规则、基本数据类型


信号操作 (端口)

信号操作 方法 所属对象：端口

本命令可以设置或清除通讯端口上指定信号的状态。成功返回真，失败返回假。

语法： 逻辑型 端口．信号操作 （操作类型，欲操作信号类型）

参数名 | 描 述
操作类型 | 必需的；整数型。本参数可以为以下常量值之一： 1: #清除信号； 2: #发送或置位。
欲操作信号类型 | 必需的；整数型。本参数可以为以下常量值之一： 1: #DTR信号； 2: #RTS信号； 3: #Break信号。

参见： 语法的描述规则、基本数据类型


取系统语言

取系统语言 命令 所属类别：其他

返回当前系统运行时环境所支持的语言版本类型，为以下常量值之一： 1、#GBK中文； 2、#英文； 3、#BIG5中文。

语法： 整数型 取系统语言 （）

参见： 语法的描述规则、基本数据类型


打开MDB数据库 (外部数据库)

打开MDB数据库 方法 所属对象：外部数据库

本命令是针对 ACCESS MDB 数据库的特定打开方法，通过自建 ODBC 连接文本来打开 MDB 数据库。调用本命令后无需再调用“打开”命令。成功返回真，失败返回假。

语法： 逻辑型 外部数据库．打开MDB数据库 （MDB数据库文件名，［用户名］，［密码］，［是否只读］，［保留参数］）

参数名 | 描 述
MDB数据库文件名 | 必需的；文本型。本参数提供即将打开数据库的文件名。
用户名 | 可选的；文本型。本参数提供打开数据库所需要的用户名，如果省略本参数，默认为不需要。
密码 | 可选的；文本型。本参数提供打开数据库所需要的密码，如果省略本参数，默认为不需要。
是否只读 | 可选的；逻辑型。指定是否以只读方式打开。如果参数被省略，默认值为假。
保留参数 | 可选的；整数型。本参数保留用作以后使用。

参见： 语法的描述规则、基本数据类型


打开SQL数据库 (外部数据库)

打开SQL数据库 方法 所属对象：外部数据库

本命令是针对 SQL SERVER 数据库的特定打开方法，通过自建 ODBC 连接文本来打开 SQL SERVER 数据库。调用本命令后无需再调用“打开”命令。成功返回真，失败返回假。

语法： 逻辑型 外部数据库．打开SQL数据库 （服务器名称，［用户名］，［密码］，［数据库名称］，［是否只读］，［保留参数］）

参数名 | 描 述
服务器名称 | 必需的；文本型。本参数提供 SQL SERVER 服务器的名称或其客户端别名。
用户名 | 可选的；文本型。本参数提供登录服务器所需要的用户名，如果省略本参数，默认为不需要。
密码 | 可选的；文本型。本参数提供登录服务器所需要的密码，如果省略本参数，默认为不需要。
数据库名称 | 可选的；文本型。本参数提供即将打开数据库的名称。如果省略本参数，则使用该用户的默认数据库。
是否只读 | 可选的；逻辑型。指定是否以只读方式打开。如果参数被省略，默认值为假。
保留参数 | 可选的；整数型。本参数保留用作以后使用。

参见： 语法的描述规则、基本数据类型


取只读方式 (数据源)

取只读方式 方法 所属对象：数据源

返回数据源中指定单元格在表现时是否只读。

语法： 逻辑型 数据源．取只读方式 （行号，列号）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。

参见： 语法的描述规则、基本数据类型


置只读方式 (数据源)

置只读方式 方法 所属对象：数据源

如设置值为真，则数据源中指定单元格在表现时只能读取而不能写入。注意： 1、如果数据处理者不支持此特性，则本属性无效； 2、如果数据提供者不支持此特性，本命令将被忽略。

语法： 无返回值 数据源．置只读方式 （行号，列号，［行数］，［列数］，设置值）

参数名 | 描 述
行号 | 必需的；整数型。行号从1开始。
列号 | 必需的；整数型。列号从1开始。
行数 | 可选的；整数型。如果本参数被省略，默认值为1。
列数 | 可选的；整数型。如果本参数被省略，默认值为1。
设置值 | 必需的；逻辑型。

参见： 语法的描述规则、基本数据类型


扩展命令语句(v2.0.196)

扩展命令语句(v2.0.196) 类别 跳至：扩展通用对话框

打开扩展对话框 | 打开扩展保存对话框 | 打开扩展图像对话框 | 打开扩展保存图像对话框
打开文件夹对话框 | 弹出MSN信息框 | 打开关于对话框 | 弹出信息框
打开查找文件对话框 | 打开方式对话框 | 映射网络驱动器对话框 | 断开网络驱动器对话框
打开计算器对话框 | 关闭计算机对话框 | 打开查看文件图标对话框 | 打开运行对话框
打开计算机属性对话框 | 打开文件属性话框 |  |


内存操作

内存操作 类别 跳至：ｅＬＩＢ＋＋


数值操作

数值操作 类别 跳至：ｅＬＩＢ＋＋

取高字值 | 取低字值 | 合并为整数 | 左移位
右移位 |  |  |


系统相关

系统相关 类别 跳至：ｅＬＩＢ＋＋


剪辑板操作

剪辑板操作 类别 跳至：ｅＬＩＢ＋＋


底层操作

底层操作 类别 跳至：ｅＬＩＢ＋＋

取CPU运行周期


环境存取

环境存取 类别 跳至：系统核心支持库

取命令行 | 取运行目录 | 取执行文件名 | 读环境变量
写环境变量 |  |  |


拼音处理

拼音处理 类别 跳至：系统核心支持库


文本操作

文本操作 类别 跳至：系统核心支持库

取文本长度 | 取文本左边 | 取文本右边 | 取文本中间
字符 | 取代码 | 寻找文本 | 倒找文本
到大写 | 到小写 | 到全角 | 到半角
到文本 | 删首空 | 删尾空 | 删首尾空
删全部空 | 文本替换 | 子文本替换 | 取空白文本
取重复文本 | 文本比较 | 分割文本 |


字节集操作

字节集操作 类别 跳至：系统核心支持库

取字节集长度 | 到字节集 | 从字节集转换 | 取字节集左边
取字节集右边 | 取字节集中间 | 寻找字节集 | 倒找字节集
字节集替换 | 子字节集替换 | 取空白字节集 | 取重复字节集
分割字节集 |  |  |


数值转换

数值转换 类别 跳至：系统核心支持库


时间操作

时间操作 类别 跳至：系统核心支持库

到时间 | 增减时间 | 取时间间隔 | 取某月天数
时间到文本 | 取时间部分 | 取年份 | 取月份
取日 | 取星期几 | 取小时 | 取分钟
取秒 | 指定时间 | 取现行时间 | 置现行时间
取日期 | 取时间 |  |


磁盘操作

磁盘操作 类别 跳至：系统核心支持库

取磁盘总空间 | 取磁盘剩余空间 | 取磁盘卷标 | 置磁盘卷标
改变驱动器 | 改变目录 | 取当前目录 | 创建目录
删除目录 | 复制文件 | 移动文件 | 删除文件
文件更名 | 文件是否存在 | 寻找文件 | 取文件时间
取文件尺寸 | 取文件属性 | 置文件属性 | 取临时文件名
读入文件 | 写到文件 |  |


文件读写

文件读写 类别 跳至：系统核心支持库

打开文件 | 打开内存文件 | 关闭文件 | 关闭所有文件
锁住文件 | 解锁文件 | 移动读写位置 | 移到文件首
移到文件尾 | 读入字节集 | 写出字节集 | 读入文本
写出文本 | 读入一行 | 写文本行 | 读入数据
写出数据 | 是否在文件尾 | 取读写位置 | 取文件长度
插入字节集 | 插入文本 | 插入文本行 | 删除数据
打开加密文件 |  |  |


系统处理

系统处理 类别 跳至：系统核心支持库

运行 | 取剪辑板文本 | 置剪辑板文本 | 剪辑板中可有文本
清除剪辑板 | 取屏幕宽度 | 取屏幕高度 | 取鼠标水平位置
取鼠标垂直位置 | 取颜色数 | 输入框 | 信息框
鸣叫 | 取启动时间 | 置等待鼠标 | 恢复鼠标
延时 | 取文本注册项 | 取数值注册项 | 取字节集注册项
写注册项 | 删除注册项 | 注册项是否存在 | 取默认底色
快照 | 读配置项 | 写配置项 | 取配置节名
取操作系统类别 |  |  |


媒体播放

媒体播放 类别 跳至：系统核心支持库


程序调试

程序调试 类别 跳至：系统核心支持库


其他

其他 类别 跳至：系统核心支持库

载入 | 选择 | 多项选择 | 是否为空
是否已创建 | 取数据类型尺寸 | 取颜色值 | 取事件单元
事件转移 | 复制窗口单元 | 处理事件 | 载入图片
卸载图片 | 取硬盘特征字 | 取系统语言 |


数据库

数据库 类别 跳至：系统核心支持库

是否支持多用户 | 取错误码 | 取错误信息 | 创建
打开 | 替换打开 | 置当前库 | 取当前库
关闭 | 全部关闭 | 取库文件名 | 是否已打开
取记录数 | 取创建时间 | 取字段数 | 取字段名
改字段名 | 取字段类型 | 取字段尺寸 | 新建索引
置当前索引 | 取当前索引 | 更新索引 | 取索引数
取索引名 | 取索引字段 | 置加锁重试时间 | 锁住数据库
解锁数据库 | 锁住增删 | 解增删锁 | 锁住记录
解锁记录 | 全部解锁 | 取平均值 | 求和
取最大值 | 取最小值 | 取最大时间 | 取最小时间
计算数目 | 复制结构 | 复制记录 | 计算排序
排序 | 分类计算 | 添加 | 加记录
加空记录 | 替换 | 修改 | 删除
是否已删除 | 恢复删除 | 彻底删除 | 清空
读 | 写 | 读字段 | 写字段
附加字节集 | 附加备注 | 索引查找 | 查找
到首记录 | 到尾记录 | 跳过 | 取记录号
跳到 | 取标签 | 记录是否存在 | 标签跳转
首记录前 | 尾记录后 | 写出缓存 | 写出所有缓存
编辑 | 是否已加密 | 置数据库密码 | 密码输入框
复制密码 |  |  |


网络通信

网络通信 类别 跳至：系统核心支持库


易向导

易向导 类别 跳至：系统核心支持库


系统基本数据类型列表及其说明如下：

  1. 字节型。可容纳 0 到 255 之间的数值。

  2. 短整数型。可容纳 -32,768 到 32,767 之间的数值，尺寸为 2 个字节。

  3. 整数型。可容纳 -2,147,483,648 到 2,147,483,647 之间的数值，尺寸为 4 个字节。

  4. 长整数型。可容纳 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 之间的数值，尺寸为 8 个字节。

  5. 小数型。可容纳 3.4E +/- 38 (7位小数) 之间的数值，尺寸为 4 个字节。

  6. 双精度小数型。可容纳 1.7E +/- 308 (15位小数) 之间的数值，尺寸为 8 个字节。

  7. 逻辑型。值只可能为“真”或“假”，尺寸为 2 个字节。“真”和“假”为系统预定义常量，其对应的英文常量名称为“true”和“false”。

  8. 日期时间型。用作记录日期及时间，尺寸为 8 个字节。

  9. 文本型。用作记录一段文本，文本由以字节 0 结束的一系列字符组成。

  10. 字节集。用作记录一段字节型数据。字节集与字节数组之间可以互相转换，在程序中允许使用字节数组的地方也可以使用字节集，或者相反。字节数组的使用方法，譬如用中括号对（“[]”）加索引数值引用字节成员，使用数组型数值数据进行赋值等等，都可以被字节集所使用。两者之间唯一的不同是字节集可以变长，因此可把字节集看作可变长的字节数组。

  11. 子程序指针。用作指向一个子程序，尺寸为 4 个字节。

    在以上的基本数据类型中，字节型、短整数型、整数型、长整数型、小数型、双精度小数型被统称为“数值型”，它们之间可以任意转换。不过编程需要注意转换可能带来的精度丢失。譬如：将整数 257 转换为字节后的结果为 1 ，这是因为值 257 超出了字节型数据的最大上限 255 ，从而产生了溢出。

    另外，通用型数据类型仅在系统内部使用，它能够匹配所有的系统基本数据类型、库定义数据类型、自定义数据类型。


随想按钮

随想按钮 窗口单元 跳至：随想按钮

CSCommand。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
鼠标指针 | 背景透明 | 图片透明色 | 图标透明色
按钮图标 | 图片 | 图标显示位置 | 外观
圆滑边角 | FR | 标题 | 禁止文字颜色
文字颜色 | 字体 | 显示焦点 | 显示新样式
不可用图标处理样式 | 全部属性 |  |

方法：

置字体 | 置图片 | 置图标 | 取红色值
取绿色值 | 取蓝色值 | 变为灰色 | 画灰色位图
画灰色位图2 | 变为灰色2 |  |

自有事件：

被单击 光标移出

基本事件：


高级影像框

高级影像框 窗口单元 跳至：扩展界面支持库二

相比起基本影像框，本组件可以播放更多格式的AVI文件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
播放位置 | 影像文件名 | 播放速度 | 背景颜色
透明颜色 | 播放 | 仅播放一次 | 当前帧
全部帧数 |  |  |

基本事件：


分隔条

分隔条 窗口单元 跳至：扩展界面支持库二

可以用作动态调整窗口布局。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
背景颜色 | 方向 |  |

自有事件：

被拖动

基本事件：


字符格式

字符格式 数据类型 跳至：扩展界面支持库二

本数据类型被超级编辑框的成员命令使用，用作指定字符文本的表现格式。

成员 | 描 述
字体名称 | 文本型；初始值为“宋体”。
字体大小 | 整数型；初始值为 9 。单位为点（1 / 72 英寸）。
纵向偏移 | 整数型；指定字符相对于基线的纵向偏移值，单位为点（1 / 72 英寸）。如果为正值，则字符表现为上标，如果为负值，则字符表现为下标。
效果 | 整数型；可以为以下常量值之一或之和： 1、#粗体；2、#斜体；4、#下划线；8、#删除线；16、#禁止更改。
文本颜色 | 整数型；初始值为 -16777216 。指定字符显示时使用的前景颜色，如果为“#默认色”常量值，则自动使用 Windows 系统默认文本颜色。

参见： 基本数据类型


段落格式

段落格式 数据类型 跳至：扩展界面支持库二

本数据类型被超级编辑框的成员命令使用，用作指定文本段落的表现格式。

成员 | 描 述
项目符引导 | 逻辑型；
首行缩进 | 整数型；指定段落首行相对于编辑框左边框的缩进量，单位为点（1 / 72 英寸）。
非首行缩进 | 整数型；指定段落中所有非首行相对于首行的缩进量，单位为点（1 / 72 英寸）。
右边缩进 | 整数型；指定段落右边相对于编辑框右边框的缩进量，单位为点（1 / 72 英寸）。
对齐方式 | 整数型；指定段落的对齐方式，可以为以下常量值之一： 1、#段落居左；2、#段落居中；3、#段落居右。

参见： 基本数据类型


超级编辑框

超级编辑框 窗口单元 跳至：扩展界面支持库二

具有对丰富格式文本的编排和处理支持。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
内容格式 | 内容 | 边框 | 背景颜色
是否允许多行 | 自动换行 | 只读 | 隐藏选择
最大允许长度 | 起始选择位置 | 被选择字符数 | 被选择文本
是否已更改 |  |  |

方法：

取文本长度 | 取行数 | 取行文本 | 取首可视行
取行首位置 | 取字符所在行 | 滚动 | 取默认字符格式
置默认字符格式 | 取选择区字符格式 | 置选择区字符格式 | 取选择区段落格式
置选择区段落格式 | 撤消 | 可否撤消 | 清空撤消数据
寻找 | 复制 | 剪切 | 删除
粘贴 | 可否粘贴 | 读入文档 |

自有事件：

内容被改变 选择区被改变

基本事件：


外形框

外形框 包容型窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
背景颜色 | 外形 | 线条效果 | 线型
线宽 | 线条颜色 | 填充颜色 |

基本事件：


画板

画板 包容型窗口单元 跳至：系统核心支持库

默认不接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 画板背景色 | 底图 | 底图方式
自动重画 | 绘画单位 | 画笔类型 | 画出方式
画笔粗细 | 画笔颜色 | 刷子类型 | 刷子颜色
文本颜色 | 文本背景颜色 | 字体 | 画板宽度
画板高度 |  |  |

方法：

取设备句柄 | 清除 | 取点 | 画点
画直线 | 画椭圆 | 画弧线 | 画弦
画饼 | 画矩形 | 画渐变矩形 | 填充矩形
画圆角矩形 | 翻转矩形区 | 画多边形 | 置写出位置
写文本行 | 滚动写行 | 写出 | 定位写出
取宽度 | 取高度 | 画图片 | 取图片宽度
取图片高度 | 复制 | 取图片 |

自有事件：

绘画

基本事件：


分组框

分组框 包容型窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 对齐方式 | 文本颜色 | 背景颜色
字体 |  |  |

基本事件：


标签

标签 窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 效果 | 边框 | 渐变边框宽度
渐变边框颜色1 | 渐变边框颜色2 | 渐变边框颜色3 | 字体
文本颜色 | 背景颜色 | 底图 | 底图方式
渐变背景方式 | 渐变背景颜色1 | 渐变背景颜色2 | 渐变背景颜色3
横向对齐方式 | 是否自动折行 | 纵向对齐方式 | 数据源
数据列 |  |  |

自有事件：

反馈事件

基本事件：


按钮

按钮 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
图片 | 类型 | 标题 | 横向对齐方式
纵向对齐方式 | 字体 |  |

自有事件：

被单击

基本事件：


选择框

选择框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
图片 | 按钮形式 | 平面 | 标题
标题居左 | 横向对齐方式 | 纵向对齐方式 | 文本颜色
背景颜色 | 字体 | 选中 | 数据源
数据列 |  |  |

自有事件：

被单击

基本事件：


单选框

单选框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
图片 | 按钮形式 | 平面 | 标题
标题居左 | 横向对齐方式 | 纵向对齐方式 | 文本颜色
背景颜色 | 字体 | 选中 |

自有事件：

被单击

基本事件：


组合框

组合框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
类型 | 内容 | 最大文本长度 | 起始选择位置
被选择字符数 | 被选择文本 | 自动排序 | 行间距
文本颜色 | 背景颜色 | 字体 | 现行选中项
列表项目 | 项目数值 | 数据源 | 数据列
除去重复 |  |  |

方法：

取顶端可见项目 | 置顶端可见项目 | 取项目数 | 取项目数值
置项目数值 | 取项目文本 | 置项目文本 | 加入项目
插入项目 | 删除项目 | 清空 | 选择

自有事件：

列表项被选择 | 编辑内容被改变 | 将弹出列表 | 列表被关闭
双击选择 |  |  |

基本事件：


列表框

列表框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 自动排序 | 多列 | 行间距
文本颜色 | 背景颜色 | 字体 | 允许选择多项
现行选中项 | 列表项目 | 项目数值 | 数据源
数据列 | 除去重复 |  |

方法：

取顶端可见项目 | 置顶端可见项目 | 取项目数 | 取项目数值
置项目数值 | 取项目文本 | 置项目文本 | 取已选择项目数
取所有被选择项目 | 是否被选择 | 选择项目 | 取焦点项目
置焦点项目 | 加入项目 | 插入项目 | 删除项目
清空 | 选择 |  |

自有事件：

列表项被选择 双击选择

基本事件：


选择列表框

选择列表框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 自动排序 | 多列 | 行间距
单选 | 字体 | 现行选中项 | 列表项目
项目数值 |  |  |

方法：

取顶端可见项目 | 置顶端可见项目 | 取项目数 | 取项目数值
置项目数值 | 取项目文本 | 置项目文本 | 加入项目
插入项目 | 删除项目 | 清空 | 选择
是否被选中 | 选中项目 | 是否被允许 | 允许

自有事件：

列表项被选择 选中状态被改变 双击选择

基本事件：


横向滚动条

横向滚动条 窗口单元 跳至：系统核心支持库

默认不接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
最小位置 | 最大位置 | 页改变值 | 行改变值
位置 | 允许拖动跟踪 |  |

自有事件：

位置被改变

基本事件：


纵向滚动条

纵向滚动条 窗口单元 跳至：系统核心支持库

默认不接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
最小位置 | 最大位置 | 页改变值 | 行改变值
位置 | 允许拖动跟踪 |  |

自有事件：

位置被改变

基本事件：


进度条

进度条 窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 方向 | 显示方式 | 最小位置
最大位置 | 位置 |  |

基本事件：


滑块条

滑块条 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 方向 | 刻度类型 | 单位刻度值
允许选择 | 首选择位置 | 选择长度 | 页改变值
行改变值 | 最小位置 | 最大位置 | 位置

自有事件：

位置被改变

基本事件：


选择夹

选择夹 包容型窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
表头方向 | 允许多行表头 | 字体 | 子夹管理
现行子夹 | 隐藏自身 |  |

方法：

取子夹数目 取子夹名称 置子夹名称

自有事件：

被单击 将改变子夹 子夹被改变

基本事件：


影像框

影像框 窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
文件名 | 居中播放 | 透明背景 | 播放
播放次数 |  |  |

基本事件：


日期框

日期框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
允许编辑 | 附件类型 | 今天 | 最小日期
最大日期 | 字体 | 边框 | 数据源
数据列 |  |  |

自有事件：

选择日期被改变

基本事件：


月历

月历 窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
不显示今天 | 不圈注今天 | 开始星期首日 | 显示星期序号
滚动月数 | 今天 | 最小日期 | 最大日期
允许选择多天 | 最多选择天数 | 首选择日 | 尾选择日
字体 | 文本颜色 | 背景颜色 | 内背景颜色
标题颜色 | 标题背景颜色 | 非本月颜色 | 边框

自有事件：

选择日期被改变

基本事件：


驱动器框

驱动器框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
驱动器 | 类型 | 文本颜色 | 背景颜色
字体 |  |  |

自有事件：

驱动器被改变

基本事件：


目录框

目录框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
目录 | 边框 | 背景颜色 | 字体

自有事件：

目录被改变

基本事件：


文件框

文件框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
目录 | 被选择文件 | 允许选择多项 | 通配符
通常 | 存档 | 只读 | 系统
隐藏 | 最小日期 | 最大日期 | 边框
文本颜色 | 背景颜色 | 字体 |

自有事件：

选择文件被改变 双击选择

基本事件：


颜色选择器

颜色选择器 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
颜色 | 允许透明 |  |

自有事件：

颜色被改变

基本事件：


超级链接框

超级链接框 窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 类型 | 电子信箱地址 | Internet地址
文本颜色 | 访问后的颜色 | 热点颜色 | 背景颜色
边框 | 字体 |  |

方法：

跳转

基本事件：


调节器

调节器 窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
方向 | 热点跟踪 |  |

自有事件：

调节钮被按下

基本事件：


通用对话框

通用对话框 功能型窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
类型 | 标题 | 文件名 | 过滤器
初始过滤器 | 初始目录 | 默认文件后缀 | 创建时提示
文件必须存在 | 文件覆盖提示 | 目录必须存在 | 不改变目录
字体颜色 | 加粗 | 倾斜 | 删除线
下划线 | 字体名称 | 字体大小 | 帮助文件名
帮助命令 | 帮助标志值 |  |

方法：

打开


时钟

时钟 功能型窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
时钟周期 |  |  |

自有事件：

周期事件


打印机

打印机 功能型窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
绘画单位 | 画笔类型 | 画出方式 | 画笔粗细
画笔颜色 | 刷子类型 | 刷子颜色 | 文本颜色
文本背景颜色 | 字体 | 打印作业名 | 打印份数
多份打印方式 | 最小页号 | 最大页号 | 首页页号
末页页号 | 打印选择区 | 左边空 | 顶边空
右边空 | 底边空 | 当前页号 | 已打印份数
打印区宽度 | 打印区高度 | 打印被中止 |

方法：

取设备句柄 | 开始打印 | 结束打印 | 取消打印
换页 | 开始下一份 | 画点 | 画直线
画椭圆 | 画弧线 | 画弦 | 画饼
画矩形 | 画渐变矩形 | 填充矩形 | 画圆角矩形
画多边形 | 置写出位置 | 写文本行 | 写出
定位写出 | 取宽度 | 取高度 | 画图片
取图片宽度 | 取图片高度 |  |


字段信息

字段信息 数据类型 跳至：系统核心支持库

成员 | 描 述
名称 | 文本型；名称文本的长度必须在 16 个字符以内。
类型 | 整数型；可以为以下常量值之一： 1、#字节型； 2、#短整数型； 3、#整数型； 4、#长整数型； 5、#小数型； 6、#双精度小数型； 7、#逻辑型； 8、#日期时间型； 10、#文本型； 11、#字节集型； 12、#备注型。
最大文本长度 | 整数型；初始值为 20 。本成员仅当字段类型为“文本型”时才有效，用作指定文本的最大可能长度，其值范围必须在 1 到 512 之间。如果字段类型不为“文本型”，本成员将被忽略。

参见： 基本数据类型


数据报

数据报 功能型窗口单元 跳至：系统核心支持库

数据报是一种不可靠、小数据量的网络数据交互方式。如果传递的数据量过大，有可能会失败，最好不要超过 127 字节。如需要大数据量或者可靠数据传送方式，请使用基于连接的其它网络组件。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
端口 |  |  |

方法：

发送数据 取回数据

自有事件：

数据到达


客户

客户 功能型窗口单元 跳至：系统核心支持库

客户是基于连接的网络数据交换的客户方组件，用作向另一方的服务器端组件发送数据。基于连接的数据交换是一种可靠的、允许大数据量的网络数据交互方式。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针

方法：

连接 断开连接 发送数据 取回数据

自有事件：


服务器

服务器 功能型窗口单元 跳至：系统核心支持库

服务器是基于连接的网络数据交换的服务方组件，用作在指定端口监视来自客户方的数据。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
端口 |  |  |

方法：

取回数据 取回客户 发送数据 断开客户

自有事件：


端口

端口 功能型窗口单元 跳至：系统核心支持库

端口组件提供对端口的直接读写操作。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
端口号 | 波特率 | 数据位数 | 停止位数
奇偶校验 | 事件字符 | 等待时间 | 自动启动
奇偶校验方案 | 流控制方案 | Rts流控制 | Dtr流控制

方法：

启动 停止 发送数据 信号操作

自有事件：


打印设置信息

打印设置信息 数据类型 跳至：系统核心支持库

成员 | 描 述
纸张类型 | 整数型；初始值为 0 。本成员设置打印纸类型，可以为以下常量值之一： 0、#默认纸； 1、#A3纸(297x420毫米)； 2、#A4纸(210x297毫米)； 3、#A5纸(148x210毫米)； 4、#B4纸(250x354毫米)； 5、#B5纸(182x257毫米)； 6、#四开(215x275毫米)； 7、#十六开(146x215毫米)； 8、#三十二开(97x151毫米)； 9、#信纸(216x279毫米)； 10、#法律用纸(216x355毫米)； 11、#行政用纸(184x266毫米)； 12、#声明(140x216毫米)； 13、#小报(279x432毫米)； 14、#笔记(216x279毫米)； 15、#帐本(432x279毫米)； 16、#对开纸(216x330毫米)。 注意如果所选择纸张得不到打印机的支持，打印机将会自动选择最接近的纸张。
纸张方向 | 整数型；初始值为 0 。本成员设置打印纸的放置方向，可以为以下常量值之一： 0、#纵向； 1、#横向。
左边距 | 整数型；初始值为 230 。本成员设置正文打印区到打印纸左边缘的距离，单位为0.1毫米。
上边距 | 整数型；初始值为 230 。本成员设置正文打印区到打印纸上边缘的距离，单位为0.1毫米。
右边距 | 整数型；初始值为 230 。本成员设置正文打印区到打印纸右边缘的距离，单位为0.1毫米。
下边距 | 整数型；初始值为 230 。本成员设置正文打印区到打印纸下边缘的距离，单位为0.1毫米。
页号位置 | 整数型；初始值为 0 。本成员设置是否打印页号及页号的打印位置。可以为以下常量值之一： 0、无页号；1、#上左页号； 2、#上中页号； 3、#上右页号； 4、#下左页号； 5、#下中页号； 6、#下右页号。
打印份数 | 整数型；初始值为 1 。本成员设置打印时共打印的份数。
首页打印页号 | 整数型；初始值为 1 。本成员设置打印时首页的打印页号。
是否打印到文件 | 逻辑型；初始值为假。本成员设置是否将打印数据输出到指定文件。
打印文件名 | 文本型；如果设置为打印到文件，本成员指定数据输出到的文件名。
自动填充 | 逻辑型；初始值为假。本成员设置是否自动重复尾数据空行填充尾页空白。注意如果“每页打印行数”成员值大于零，本成员无效。
自动添加表格线 | 逻辑型；初始值为假。本成员设置打印时是否自动为单元格添加边框线。
奇偶页方式 | 整数型；初始值为 0 。本成员可为以下常量值之一： 0、#全部页； 1、#仅打印奇数页； 2、#仅打印偶数页。
打印范围方式 | 整数型；初始值为 0 。本成员可为以下常量值之一： 0、#全部页； 1、#页范围； 2、#行范围。
起始打印位置 | 整数型；初始值为 1 。如果打印范围方式为“页范围”，本成员记录首页页号（页号从1开始）；如果打印范围方式为“行范围”，本成员记录首行行号；如果打印范围方式为“全部页”，本成员无效。
结束打印位置 | 整数型；初始值为 0 。如果打印范围方式为“页范围”，本成员记录末页页号（页号从1开始）；如果打印范围方式为“行范围”，本成员记录末行行号；如果打印范围方式为“全部页”，本成员无效。如果本成员值为 0 ，则将一直打印到所有数据行结束。
每页打印行数 | 整数型；初始值为 0 。本成员设置每页打印行数(不包含表头行),如果为0则表示根据页高自动判别。
打印缩放比 | 整数型；初始值为 0 。指定打印时所使用的缩放百分比，值为 -1、-2 或 20 到 1000 之间。其含义如下： -1：#缩放到纸宽。即自动压缩或扩张到纸张宽度打印； -2：#限定到纸宽。即：如果欲打印数据宽度超过纸张宽度，则自动压缩到纸张宽度，否则原样打印； 20 - 1000：直接指定打印缩放百分比； 如果指定为0，则默认为100。

参见： 基本数据类型


表格

表格 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
数据源 | 表格线颜色 | 背景颜色 | 缩放比
允许选择块 | 显示标尺 | 显示空表格线 | 禁止调整行高
禁止调整列宽 | 允许粘贴扩展 |  |

方法：

置光标 | 选择 | 全部选择 | 取光标行号
取光标列号 | 取选择行数 | 取选择列数 | 等宽缩放
全部复制 | 复制 | 粘贴到光标处 | 粘贴
打印 | 打印预览 |  |

自有事件：

光标位置改变 | 选择行列数改变 | 内容被改变 | 行高被改变
列宽被改变 | 尺寸被扩展 |  |

基本事件：


数据源

数据源 窗口单元 跳至：系统核心支持库

数据源提供对各种来源数据的统一操作接口。数据源单元各个按钮的含义分别是：到首记录、到上一记录、到下一记录、到尾记录、添加新记录、删除当前记录。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
数据提供者 | 只读 | 允许添加 | 允许删除

方法：

到首记录 | 到尾记录 | 跳过 | 跳到
取记录号 | 取表头行数 | 置表头行数 | 取表头列数
置表头列数 | 取行高 | 置行高 | 取列宽
置列宽 | 取类型 | 置类型 | 取文本色
置文本色 | 取背景色 | 置背景色 | 取字体名
置字体名 | 取字体尺寸 | 置字体尺寸 | 取字体属性
置字体属性 | 取边距 | 置边距 | 取文本输入格式
置文本输入格式 | 取对齐方式 | 置对齐方式 | 取密码方式
置密码方式 | 取文本 | 置文本 | 取数据
置数据 | 合并 | 分解 | 是否被合并
加线条 | 删线条 | 是否有线条 | 清除
置初始属性 | 初始尺寸 | 取行数 | 取列数
插入行 | 添加行 | 删除行 | 插入列
删除列 | 添加 | 存到字节集 | 从字节集读
存到文件 | 从文件读 | 单元格到字节集 | 字节集到单元格
单元格到文件 | 文件到单元格 | 刷新 | 保存更改
打印设置 | 取打印设置 | 置打印设置 | 取打印页宽
取打印页高 | 取只读方式 | 置只读方式 |

自有事件：

当前记录改变 添加记录 删除记录

基本事件：


通用提供者

通用提供者 功能型窗口单元 跳至：系统核心支持库

通用提供者用作为数据源提供对数据的通常存取操作。使用内存作为数据的存储仓库，全面支持所有数据操作接口。因此必要时可以将其它类型数据提供者内的数据转移到此类型中，以全面发挥数据源对数据的操纵能力。

属性：


数据库提供者

数据库提供者 功能型窗口单元 跳至：系统核心支持库

数据库提供者用作为数据源提供对数据库的存取操作。它使用数据库作为数据的存储仓库，不支持以下数据操作接口： 1、置行高； 2、置类型； 3、置文本色； 4、置背景色； 5、置字体名； 6、置字体尺寸； 7、置字体属性； 8、置边距； 9、置文本输入格式； 10、置对齐方式； 11、置密码方式； 12、合并； 13、分解； 14、加线条； 15、删线条； 16、初始尺寸时同时改变列数； 17、在中间插入行； 18、插入列； 19、删除列。 如果想对数据进行以上操作，应该先将数据通过数据源导出到通用提供者中。

属性：


图形按钮

图形按钮 窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
类型 | 选中 | 正常图片 | 点燃图片
按下图片 | 禁止图片 | 透明颜色 |

自有事件：

被单击

基本事件：


外部数据库

外部数据库 功能型窗口单元 跳至：系统核心支持库

本组件提供通过ODBC对外部数据库直接操作的方法。

方法：

打开 | 关闭 | 取连接文本 | 启动事务
回滚事务 | 提交事务 | 查询 | 重新查询
关闭记录集 | 首记录前 | 尾记录后 | 到首记录
到尾记录 | 到前一记录 | 到后一记录 | 读
执行 | 打开MDB数据库 | 打开SQL数据库 |


外部数据提供者

外部数据提供者 功能型窗口单元 跳至：系统核心支持库

外部数据提供者用作为数据源提供对外部ODBC数据库的存取操作。它使用外部数据库作为数据的存储仓库，不支持备注和长字节集类型字段，不支持以下数据操作接口： 1、置行高； 2、置类型； 3、置文本色； 4、置背景色； 5、置字体名； 6、置字体尺寸； 7、置字体属性； 8、置边距； 9、置文本输入格式； 10、置对齐方式； 11、置密码方式； 12、合并； 13、分解； 14、加线条； 15、删线条； 16、初始尺寸时同时改变列数； 17、在中间插入行； 18、插入列； 19、删除列。 如果想对数据进行以上操作，应该先将数据通过数据源导出到通用提供者中。 另外，在支持数据源的“插入行”接口时，将直接插入空白行数据，所以如果目的数据表在某字段上建立了主键索引、强制不为空等类似列约束条件时，将导致插入失败。

属性：


被单击 (随想按钮)

被单击 事件 所属对象：随想按钮

对象被单击时产生此事件。

语法： 无返回值 _随想按钮_被单击 （）

参见： 语法的描述规则、基本数据类型


KeyDown (Command)

KeyDown 事件 所属对象：Command

语法： 无返回值 _Command_KeyDown （KeyCode，Shift）

参数名 | 描 述
KeyCode | 短整数型；传址；
Shift | 短整数型；传址；

参见： 语法的描述规则、基本数据类型


KeyPress (Command)

KeyPress 事件 所属对象：Command

语法： 无返回值 _Command_KeyPress （KeyAscii）

参数名 | 描 述
KeyAscii | 短整数型；传址；

参见： 语法的描述规则、基本数据类型


KeyUp (Command)

KeyUp 事件 所属对象：Command

语法： 无返回值 _Command_KeyUp （KeyCode，Shift）

参数名 | 描 述
KeyCode | 短整数型；传址；
Shift | 短整数型；传址；

参见： 语法的描述规则、基本数据类型


光标移出 (随想按钮)

光标移出 事件 所属对象：随想按钮

语法： 无返回值 _随想按钮_光标移出 （）

参见： 语法的描述规则、基本数据类型


MouseDown (Command)

MouseDown 事件 所属对象：Command

语法： 无返回值 _Command_MouseDown （Button，Shift，x，y）

参数名 | 描 述
Button | 短整数型；传址；
Shift | 短整数型；传址；
x | 小数型；传址；
y | 小数型；传址；

参见： 语法的描述规则、基本数据类型


MouseMove (Command)

MouseMove 事件 所属对象：Command

语法： 无返回值 _Command_MouseMove （Button，Shift，x，y）

参数名 | 描 述
Button | 短整数型；传址；
Shift | 短整数型；传址；
x | 小数型；传址；
y | 小数型；传址；

参见： 语法的描述规则、基本数据类型


MouseUp (Command)

MouseUp 事件 所属对象：Command

语法： 无返回值 _Command_MouseUp （Button，Shift，x，y）

参数名 | 描 述
Button | 短整数型；传址；
Shift | 短整数型；传址；
x | 小数型；传址；
y | 小数型；传址；

参见： 语法的描述规则、基本数据类型


被单击 (WM播放器)

被单击 事件 所属对象：WM播放器

当用户单击了此组件后产生本事件。

语法： 无返回值 _WM播放器_被单击 （按钮，移动状态，横向，纵向）

参数名 | 描 述
按钮 | 短整数型；
移动状态 | 短整数型；
横向 | 整数型；
纵向 | 整数型；

参见： 语法的描述规则、基本数据类型


组件被双击 (WM播放器)

组件被双击 事件 所属对象：WM播放器

当用户双击了此组件后产生本事件。

语法： 无返回值 _WM播放器_组件被双击 （按钮，移动状态，横向，纵向）

参数名 | 描 述
按钮 | 短整数型；
移动状态 | 短整数型；
横向 | 整数型；
纵向 | 整数型；

参见： 语法的描述规则、基本数据类型


改变打开状态 (WM播放器)

改变打开状态 事件 所属对象：WM播放器

Sent when the control changes OpenState。

语法： 无返回值 _WM播放器_改变打开状态 （旧状态，新状态）

参数名 | 描 述
旧状态 | 整数型；
新状态 | 整数型；

参见： 语法的描述规则、基本数据类型


改变播放状态 (WM播放器)

改变播放状态 事件 所属对象：WM播放器

Sent when the control changes PlayState。

语法： 无返回值 _WM播放器_改变播放状态 （旧状态，新状态）

参数名 | 描 述
旧状态 | 整数型；
新状态 | 整数型；

参见： 语法的描述规则、基本数据类型


命令行控制 (WM播放器)

命令行控制 事件 所属对象：WM播放器

Sent when a synchronized command or URL is received。

语法： 无返回值 _WM播放器_命令行控制 （类型，Param）

参数名 | 描 述
类型 | 文本型；
Param | 文本型；

参见： 语法的描述规则、基本数据类型


缓冲器被控制 (WM播放器)

缓冲器被控制 事件 所属对象：WM播放器

开始或结束缓冲时。 Sent when the control begins or ends buffering。

语法： 无返回值 _WM播放器_缓冲器被控制 （开始）

参数名 | 描 述
开始 | 逻辑型；

参见： 语法的描述规则、基本数据类型


错误状态 (WM播放器)

错误状态 事件 所属对象：WM播放器

当控件产生错误状态时。 Sent when the control has an error condition。

语法： 无返回值 _WM播放器_错误状态 （）

参见： 语法的描述规则、基本数据类型


标记被选中 (WM播放器)

标记被选中 事件 所属对象：WM播放器

当标记被选中时。 Sent when a marker is reached。

语法： 无返回值 _WM播放器_标记被选中 （标记号）

参数名 | 描 述
标记号 | 整数型；

参见： 语法的描述规则、基本数据类型


警告发送 (WM播放器)

警告发送 事件 所属对象：WM播放器

当控件遇到难题时。 Sent when the control encounters a problem。

语法： 无返回值 _WM播放器_警告发送 （警告类型，Param，描述）

参数名 | 描 述
警告类型 | 整数型；
Param | 整数型；
描述 | 文本型；Returns the description of the file。

参见： 语法的描述规则、基本数据类型


新流出发 (WM播放器)

新流出发 事件 所属对象：WM播放器

当一个新的媒体流在频道里出发时。 Sent when a new stream is started in a channel。

语法： 无返回值 _WM播放器_新流出发 （）

参见： 语法的描述规则、基本数据类型


被断开 (WM播放器)

被断开 事件 所属对象：WM播放器

当控件从服务器中分离时。 Sent when the control is disconnected from the server。

语法： 无返回值 _WM播放器_被断开 （结果）

参数名 | 描 述
结果 | 整数型；

参见： 语法的描述规则、基本数据类型


位置被改变 (WM播放器)

位置被改变 事件 所属对象：WM播放器

指示电影的当前位置被改变。 Indicates that the current position of the movie has changed。

语法： 无返回值 _WM播放器_位置被改变 （旧位置，新位置）

参数名 | 描 述
旧位置 | 双精度小数型；
新位置 | 双精度小数型；

参见： 语法的描述规则、基本数据类型


陈列方式被改变 (WM播放器)

陈列方式被改变 事件 所属对象：WM播放器

指示电影的陈列方式被改变。 Indicates that the display mode of the movie has changed。

语法： 无返回值 _WM播放器_陈列方式被改变 （）

参见： 语法的描述规则、基本数据类型


就绪状态被改变 (WM播放器)

就绪状态被改变 事件 所属对象：WM播放器

指示活动电影对象的就绪状态被改变。 Reports that the Ready State property of the ActiveMovie Control has changed。

语法： 无返回值 _WM播放器_就绪状态被改变 （就绪状态）

参数名 | 描 述
就绪状态 | 整数型；

参见： 语法的描述规则、基本数据类型


DrawCell (vsFlexLib)

DrawCell 事件 所属对象：vsFlexLib

Fired when the OwnerDraw property is set to allow custom cell drawing.

语法： 无返回值 _vsFlexLib_DrawCell （hDC，Row，Col，Left，Top，Right，Bottom，Done）

参数名 | 描 述
hDC | 整数型；
Row | 整数型；
Col | 整数型；
Left | 整数型；
Top | 整数型；
Right | 整数型；
Bottom | 整数型；
Done | 逻辑型；传址；

参见： 语法的描述规则、基本数据类型


OLEGiveFeedback (vsFlexLib)

OLEGiveFeedback 事件 所属对象：vsFlexLib

Fired after every OLEDragOver event to allow the source component to provide visual feedback to the user.

语法： 无返回值 _vsFlexLib_OLEGiveFeedback （Effect，DefaultCursors）

参数名 | 描 述
Effect | 整数型；传址；
DefaultCursors | 逻辑型；传址；

参见： 语法的描述规则、基本数据类型


OLECompleteDrag (vsFlexLib)

OLECompleteDrag 事件 所属对象：vsFlexLib

Fired after a drop, to inform the source component that a drag action was either performed or canceled.

语法： 无返回值 _vsFlexLib_OLECompleteDrag （Effect）

参数名 | 描 述
Effect | 整数型；传址；

参见： 语法的描述规则、基本数据类型


KeyDownEdit (vsFlexLib)

KeyDownEdit 事件 所属对象：vsFlexLib

Fired when the user presses a key in cell-editing mode.

语法： 无返回值 _vsFlexLib_KeyDownEdit （Row，Col，KeyCode，Shift）

参数名 | 描 述
Row | 整数型；
Col | 整数型；
KeyCode | 短整数型；传址；
Shift | 短整数型；

参见： 语法的描述规则、基本数据类型


KeyUpEdit (vsFlexLib)

KeyUpEdit 事件 所属对象：vsFlexLib

Fired when the user presses a key in cell-editing mode.

语法： 无返回值 _vsFlexLib_KeyUpEdit （Row，Col，KeyCode，Shift）

参数名 | 描 述
Row | 整数型；
Col | 整数型；
KeyCode | 短整数型；传址；
Shift | 短整数型；

参见： 语法的描述规则、基本数据类型


BeforePageBreak (vsFlexLib)

BeforePageBreak 事件 所属对象：vsFlexLib

Fired while printing the control to control page breaks.

语法： 无返回值 _vsFlexLib_BeforePageBreak （Row，BreakOK）

参数名 | 描 述
Row | 整数型；
BreakOK | 逻辑型；传址；

参见： 语法的描述规则、基本数据类型


GetHeaderRow (vsFlexLib)

GetHeaderRow 事件 所属对象：vsFlexLib

Fired while printing the control to set repeating header rows.

语法： 无返回值 _vsFlexLib_GetHeaderRow （Row，HeaderRow）

参数名 | 描 述
Row | 整数型；
HeaderRow | 整数型；传址；

参见： 语法的描述规则、基本数据类型


Error (vsFlexLib)

Error 事件 所属对象：vsFlexLib

Fired after a data-access error.

语法： 无返回值 _vsFlexLib_Error （ErrorCode，ShowMsgBox）

参数名 | 描 述
ErrorCode | 整数型；
ShowMsgBox | 逻辑型；传址；

参见： 语法的描述规则、基本数据类型


被拖动 (分隔条)

被拖动 事件 所属对象：分隔条

当分隔条被拖动到一个新的位置后即产生此事件。

语法： 无返回值 _分隔条_被拖动 （原位置，目的位置）

参数名 | 描 述
原位置 | 整数型；本参数值提供分隔条被拖动前的原位置坐标，单位为像素。该坐标值相对于其所在窗口用户区的左上角。如果分隔条的方向为横向，则本参数提供分隔条顶边纵坐标值，否则为分隔条左边横坐标值。
目的位置 | 整数型；本参数值提供分隔条被拖动到的目的位置坐标，单位为像素。该坐标值相对于其所在窗口用户区的左上角。如果分隔条的方向为横向，则本参数提供分隔条顶边纵坐标值，否则为分隔条左边横坐标值。

参见： 语法的描述规则、基本数据类型


被下拉 (工具条)

被下拉 事件 所属对象：工具条

当下拉型按钮右侧向下箭头被单击时即产生此事件。

语法： 无返回值 _工具条_被下拉 （按钮索引，下拉横座标，下拉纵座标）

参数名 | 描 述
按钮索引 | 整数型；提供被单击或被下拉按钮的索引。0 为按钮一，1 为按钮二，如此类推。
下拉横座标 | 整数型；提供按钮被下拉的屏幕座标位置，如果在事件处理子程序中需要弹出菜单或弹出子窗口，可以直接使用此座标。具体请见本支持库附带的工具条相关例程。
下拉纵座标 | 整数型；提供按钮被下拉的屏幕座标位置，如果在事件处理子程序中需要弹出菜单或弹出子窗口，可以直接使用此座标。具体请见本支持库附带的工具条相关例程。

参见： 语法的描述规则、基本数据类型


当前表项被改变 (超级列表框)

当前表项被改变 事件 所属对象：超级列表框

如果当前焦点所处表项被改变即产生此事件，接收到此事件后读取“现行选中项”属性即可获得当前表项的索引。

语法： 无返回值 _超级列表框_当前表项被改变 （）

参见： 语法的描述规则、基本数据类型


表项被激活 (超级列表框)

表项被激活 事件 所属对象：超级列表框

在下列情况下会产生本事件： 1、双击某表项； 2、选中某表项后按回车； 3、当“热点跟踪”属性为真时单击某表项。 接收到此事件后读取“现行选中项”属性即可获得当前被激活表项的索引。

语法： 无返回值 _超级列表框_表项被激活 （）

参见： 语法的描述规则、基本数据类型


表头被单击 (超级列表框)

表头被单击 事件 所属对象：超级列表框

当使用鼠标左键在报表型列表框的某表头列上单击时产生此事件。

语法： 无返回值 _超级列表框_表头被单击 （被单击列索引）

参数名 | 描 述
被单击列索引 | 整数型；指示被单击表头列的索引，从 0 开始。

参见： 语法的描述规则、基本数据类型


表项跟踪 (超级列表框)

表项跟踪 事件 所属对象：超级列表框

当“热点跟踪”属性为真时移动鼠标到某表项上后即产生本事件，注意如果鼠标不处于任何表项上，“表项索引”参数将传递值 -1 。

语法： 无返回值 _超级列表框_表项跟踪 （表项索引）

参数名 | 描 述
表项索引 | 整数型；指示当前鼠标位置所处表项的索引，从 0 开始。

参见： 语法的描述规则、基本数据类型


左键单击表项 (超级列表框)

左键单击表项 事件 所属对象：超级列表框

当用鼠标左键单击某表项时即产生此事件，接收到此事件后读取“现行选中项”属性即可获得被单击表项的索引。

语法： 无返回值 _超级列表框_左键单击表项 （）

参见： 语法的描述规则、基本数据类型


右键单击表项 (超级列表框)

右键单击表项 事件 所属对象：超级列表框

当用鼠标右键在某表项上单击时产生此事件，接收到此事件后读取“现行选中项”属性即可获取被单击表项的索引，调用系统核心支持库中的“取鼠标水平位置”、“取鼠标垂直位置”命令可获取当前鼠标单击位置。

语法： 无返回值 _超级列表框_右键单击表项 （）

参见： 语法的描述规则、基本数据类型


开始编辑 (超级列表框)

开始编辑 事件 所属对象：超级列表框

当表项进入标题编辑状态前产生此事件，要产生本事件“允许编辑”属性必须为真。事件处理子程序返回假则不允许进入编辑状态，返回真或不返回值允许进入。

语法： 逻辑型 _超级列表框_开始编辑 （表项索引）

参数名 | 描 述
表项索引 | 整数型；指示即将进入或结束编辑状态的表项的索引，从 0 开始。

参见： 语法的描述规则、基本数据类型


结束编辑 (超级列表框)

结束编辑 事件 所属对象：超级列表框

当表项结束标题编辑状态前产生此事件，要产生本事件“允许编辑”属性必须为真。在事件处理子程序中读取“结束编辑文本”属性可以得知标题被编辑后的内容，事件处理子程序返回假不允许使用编辑后的内容替换原有标题，返回真或不返回值则允许替换。

语法： 逻辑型 _超级列表框_结束编辑 （表项索引）

参数名 | 描 述
表项索引 | 整数型；指示即将进入或结束编辑状态的表项的索引，从 0 开始。

参见： 语法的描述规则、基本数据类型


内容被改变 (编辑框)

内容被改变 事件 所属对象：编辑框

当编辑框的内容被修改后即产生此事件。

语法： 无返回值 _编辑框_内容被改变 （）

参见： 语法的描述规则、基本数据类型


调节钮被按下 (编辑框)

调节钮被按下 事件 所属对象：编辑框

只有调节器方式为“手动调节器”时才会产生此事件。

语法： 无返回值 _编辑框_调节钮被按下 （按钮值）

参数名 | 描 述
按钮值 | 整数型；如果按下的是调节器的向上箭头按钮，参数值为 1，否则为 -1。

参见： 语法的描述规则、基本数据类型


内容被改变 (超级编辑框)

内容被改变 事件 所属对象：超级编辑框

当编辑框的内容被修改后即产生此事件。

语法： 无返回值 _超级编辑框_内容被改变 （）

参见： 语法的描述规则、基本数据类型


选择区被改变 (超级编辑框)

选择区被改变 事件 所属对象：超级编辑框

当编辑框的当前选择区被改变后即产生此事件。

语法： 无返回值 _超级编辑框_选择区被改变 （）

参见： 语法的描述规则、基本数据类型


绘画 (画板)

绘画 事件 所属对象：画板

当画板中的全部或一部分区域需要被重新绘制时即产生此事件。用户程序在响应此事件期间在画板上所进行的任何绘制操作均被限制在“需重画区”参数所指定的区域内。

语法： 无返回值 _画板_绘画 （重画区左边，重画区上边，重画区右边，重画区下边）

参数名 | 描 述
重画区左边 | 整数型；本参数提供目前画板中需要更新的矩形区域的左边，使用现行绘画单位，用作提高绘画速度，一般情况下可以不处理。
重画区上边 | 整数型；本参数提供目前画板中需要更新的矩形区域的顶边，使用现行绘画单位，用作提高绘画速度，一般情况下可以不处理。
重画区右边 | 整数型；本参数提供目前画板中需要更新的矩形区域的右边，使用现行绘画单位，用作提高绘画速度，一般情况下可以不处理。
重画区下边 | 整数型；本参数提供目前画板中需要更新的矩形区域的底边，使用现行绘画单位，用作提高绘画速度，一般情况下可以不处理。

参见： 语法的描述规则、基本数据类型


反馈事件 (标签)

反馈事件 事件 所属对象：标签

本事件用作与外部DLL交互，事件子程序处理完毕后可以根据需要决定是否返回值。

语法： 整数型 _标签_反馈事件 （参数一，参数二）

参数名 | 描 述
参数一 | 整数型；反馈事件所带过来的第一个参数。
参数二 | 整数型；反馈事件所带过来的第二个参数。

参见： 语法的描述规则、基本数据类型


被单击 (按钮)

被单击 事件 所属对象：按钮

当单击按钮后即产生此事件。

语法： 无返回值 _按钮_被单击 （）

参见： 语法的描述规则、基本数据类型


被单击 (选择框)

被单击 事件 所属对象：选择框

当单击选择框后即产生此事件。

语法： 无返回值 _选择框_被单击 （）

参见： 语法的描述规则、基本数据类型


被单击 (单选框)

被单击 事件 所属对象：单选框

当单击单选框后即产生此事件。

语法： 无返回值 _单选框_被单击 （）

参见： 语法的描述规则、基本数据类型


列表项被选择 (组合框)

列表项被选择 事件 所属对象：组合框

语法： 无返回值 _组合框_列表项被选择 （）

参见： 语法的描述规则、基本数据类型


编辑内容被改变 (组合框)

编辑内容被改变 事件 所属对象：组合框

语法： 无返回值 _组合框_编辑内容被改变 （）

参见： 语法的描述规则、基本数据类型


将弹出列表 (组合框)

将弹出列表 事件 所属对象：组合框

在将弹出组合框的列表部分之前产生此事件。在处理此事件时，可以即时填充组合框中的列表项目。

语法： 无返回值 _组合框_将弹出列表 （）

参见： 语法的描述规则、基本数据类型


列表被关闭 (组合框)

列表被关闭 事件 所属对象：组合框

在关闭被弹出的组合框列表部分后产生此事件。

语法： 无返回值 _组合框_列表被关闭 （）

参见： 语法的描述规则、基本数据类型


双击选择 (组合框)

双击选择 事件 所属对象：组合框

当使用鼠标左键在某列表项目上双击时产生此事件。

语法： 无返回值 _组合框_双击选择 （）

参见： 语法的描述规则、基本数据类型


列表项被选择 (列表框)

列表项被选择 事件 所属对象：列表框

如果当前所选择的列表项或区域被改变即产生此事件。

语法： 无返回值 _列表框_列表项被选择 （）

参见： 语法的描述规则、基本数据类型


双击选择 (列表框)

双击选择 事件 所属对象：列表框

当使用鼠标左键在某列表项目上双击时产生此事件。

语法： 无返回值 _列表框_双击选择 （）

参见： 语法的描述规则、基本数据类型


列表项被选择 (选择列表框)

列表项被选择 事件 所属对象：选择列表框

如果当前所选择的列表项被改变即产生此事件。

语法： 无返回值 _选择列表框_列表项被选择 （）

参见： 语法的描述规则、基本数据类型


选中状态被改变 (选择列表框)

选中状态被改变 事件 所属对象：选择列表框

语法： 无返回值 _选择列表框_选中状态被改变 （）

参见： 语法的描述规则、基本数据类型


双击选择 (选择列表框)

双击选择 事件 所属对象：选择列表框

当使用鼠标左键在某列表项目上双击时产生此事件。

语法： 无返回值 _选择列表框_双击选择 （）

参见： 语法的描述规则、基本数据类型


位置被改变 (横向滚动条)

位置被改变 事件 所属对象：横向滚动条

语法： 无返回值 _横向滚动条_位置被改变 （）

参见： 语法的描述规则、基本数据类型


位置被改变 (纵向滚动条)

位置被改变 事件 所属对象：纵向滚动条

语法： 无返回值 _纵向滚动条_位置被改变 （）

参见： 语法的描述规则、基本数据类型


位置被改变 (滑块条)

位置被改变 事件 所属对象：滑块条

语法： 无返回值 _滑块条_位置被改变 （）

参见： 语法的描述规则、基本数据类型


被单击 (选择夹)

被单击 事件 所属对象：选择夹

当在选择夹上单击后产生此事件。

语法： 无返回值 _选择夹_被单击 （）

参见： 语法的描述规则、基本数据类型


将改变子夹 (选择夹)

将改变子夹 事件 所属对象：选择夹

当现行被选择子夹即将被改变时产生此事件。返回假中止此改变，返回真或不返回值则允许此改变。

语法： 逻辑型 _选择夹_将改变子夹 （）

参见： 语法的描述规则、基本数据类型


子夹被改变 (选择夹)

子夹被改变 事件 所属对象：选择夹

当现行被选择子夹已经被改变时产生此事件。

语法： 无返回值 _选择夹_子夹被改变 （）

参见： 语法的描述规则、基本数据类型


选择日期被改变 (日期框)

选择日期被改变 事件 所属对象：日期框

当现行被选择的日期被改变后产生此事件。

语法： 无返回值 _日期框_选择日期被改变 （）

参见： 语法的描述规则、基本数据类型


选择日期被改变 (月历)

选择日期被改变 事件 所属对象：月历

当现行被选择的日期或区域被改变后产生此事件。

语法： 无返回值 _月历_选择日期被改变 （）

参见： 语法的描述规则、基本数据类型


驱动器被改变 (驱动器框)

驱动器被改变 事件 所属对象：驱动器框

语法： 无返回值 _驱动器框_驱动器被改变 （）

参见： 语法的描述规则、基本数据类型


目录被改变 (目录框)

目录被改变 事件 所属对象：目录框

语法： 无返回值 _目录框_目录被改变 （）

参见： 语法的描述规则、基本数据类型


选择文件被改变 (文件框)

选择文件被改变 事件 所属对象：文件框

语法： 无返回值 _文件框_选择文件被改变 （）

参见： 语法的描述规则、基本数据类型


双击选择 (文件框)

双击选择 事件 所属对象：文件框

当使用鼠标左键在某列表项目上双击时产生此事件。

语法： 无返回值 _文件框_双击选择 （）

参见： 语法的描述规则、基本数据类型


颜色被改变 (颜色选择器)

颜色被改变 事件 所属对象：颜色选择器

语法： 无返回值 _颜色选择器_颜色被改变 （）

参见： 语法的描述规则、基本数据类型


调节钮被按下 (调节器)

调节钮被按下 事件 所属对象：调节器

语法： 无返回值 _调节器_调节钮被按下 （按钮值）

参数名 | 描 述
按钮值 | 整数型；如果按下的是调节器的向上箭头按钮，参数值为 1，否则为 -1。

参见： 语法的描述规则、基本数据类型


周期事件 (时钟)

周期事件 事件 所属对象：时钟

每当经过了指定的时钟周期，将产生此事件。

语法： 无返回值 _时钟_周期事件 （）

参见： 语法的描述规则、基本数据类型


数据到达 (数据报)

数据到达 事件 所属对象：数据报

当有数据到达后，会产生本事件。在本事件的处理子程序中调用“取回数据”方法即可取回本次所收到的数据。

语法： 无返回值 _数据报_数据到达 （）

参见： 语法的描述规则、基本数据类型


数据到达 (客户)

数据到达 事件 所属对象：客户

当服务器端将数据发送过来后，会产生本事件。在本事件的处理子程序中调用“取回数据”方法即可取回本次所收到的数据。

语法： 无返回值 _客户_数据到达 （）

参见： 语法的描述规则、基本数据类型


连接断开 (客户)

连接断开 事件 所属对象：客户

当连接被服务器端断开后，会产生本事件。

语法： 无返回值 _客户_连接断开 （）

参见： 语法的描述规则、基本数据类型


数据到达 (服务器)

数据到达 事件 所属对象：服务器

当有数据到达后，会产生本事件。在本事件的处理子程序中调用“取回数据”方法即可取回本次所收到的数据。

语法： 无返回值 _服务器_数据到达 （）

参见： 语法的描述规则、基本数据类型


客户进入 (服务器)

客户进入 事件 所属对象：服务器

当有新客户连接入本服务器组件后，会产生本事件。在本事件的处理子程序中调用“取回客户”方法即可取回此新客户的地址（IP地址 + 端口）。

语法： 无返回值 _服务器_客户进入 （）

参见： 语法的描述规则、基本数据类型


客户离开 (服务器)

客户离开 事件 所属对象：服务器

当有已连接客户断开与本服务器组件的连接后，会产生本事件。在本事件的处理子程序中调用“取回客户”方法即可取回此客户的地址（IP地址 + 端口）。

语法： 无返回值 _服务器_客户离开 （）

参见： 语法的描述规则、基本数据类型


收到信号 (端口)

收到信号 事件 所属对象：端口

当通信端口的信号状态发生改变时，会产生本事件。

语法： 无返回值 _端口_收到信号 （信号类型）

参数名 | 描 述
信号类型 | 整数型；指示具体检测到信号状态的类型，为以下值之一： 1：BREAK 信号； 2：CTS 上升沿信号； 3：DSR 上升沿信号； 4：ERR 信号； 5：RING 信号； 6：RLSD 上升沿信号； 7：事件字符到达； 8：CTS 下降沿信号； 9：DSR 下降沿信号； 10：RLSD 下降沿信号。

参见： 语法的描述规则、基本数据类型


数据到达 (端口)

数据到达 事件 所属对象：端口

每当通信端口接收到一个数据字节，就会产生本事件。

语法： 无返回值 _端口_数据到达 （数据字节值）

参数名 | 描 述
数据字节值 | 整数型；指示所接收到的数据字节值。

参见： 语法的描述规则、基本数据类型


光标位置改变 (表格)

光标位置改变 事件 所属对象：表格

当操作者改变了光标位置后会产生本事件。

语法： 无返回值 _表格_光标位置改变 （）

参见： 语法的描述规则、基本数据类型


选择行列数改变 (表格)

选择行列数改变 事件 所属对象：表格

当操作者更改了当前被选择区域的行列数时会产生本事件。

语法： 无返回值 _表格_选择行列数改变 （）

参见： 语法的描述规则、基本数据类型


内容被改变 (表格)

内容被改变 事件 所属对象：表格

当操作者修改了单元格内容时即产生此事件。

语法： 无返回值 _表格_内容被改变 （行号，列号，行数，列数）

参数名 | 描 述
行号 | 整数型；参数值记录内容被改变的单元格区首行号。
列号 | 整数型；参数值记录内容被改变的单元格区首列号。
行数 | 整数型；参数值记录内容被改变的表格行数目。
列数 | 整数型；参数值记录内容被改变的表格列数目。

参见： 语法的描述规则、基本数据类型


行高被改变 (表格)

行高被改变 事件 所属对象：表格

当操作者调整了表格行行高时即产生此事件。

语法： 无返回值 _表格_行高被改变 （行号）

参数名 | 描 述
行号 | 整数型；参数值记录行高被改变的表格行号。

参见： 语法的描述规则、基本数据类型


列宽被改变 (表格)

列宽被改变 事件 所属对象：表格

当操作者调整了表格列列宽时即产生此事件。

语法： 无返回值 _表格_列宽被改变 （列号）

参数名 | 描 述
列号 | 整数型；参数值记录列宽被改变的表格列号。

参见： 语法的描述规则、基本数据类型


尺寸被扩展 (表格)

尺寸被扩展 事件 所属对象：表格

当操作者粘贴来自剪贴板的表格单元数据时，如果为了容纳该数据自动扩展了表格尺寸，即产生此事件。

语法： 无返回值 _表格_尺寸被扩展 （）

参见： 语法的描述规则、基本数据类型


当前记录改变 (数据源)

当前记录改变 事件 所属对象：数据源

当操作者按下移动记录按钮移动了当前记录指针后，会产生本事件。

语法： 无返回值 _数据源_当前记录改变 （）

参见： 语法的描述规则、基本数据类型


添加记录 (数据源)

添加记录 事件 所属对象：数据源

当操作者按下添加记录按钮添加了新记录后，会产生本事件。

语法： 无返回值 _数据源_添加记录 （）

参见： 语法的描述规则、基本数据类型


删除记录 (数据源)

删除记录 事件 所属对象：数据源

当操作者按下删除记录按钮删除了当前记录后，会产生本事件。

语法： 无返回值 _数据源_删除记录 （）

参见： 语法的描述规则、基本数据类型


被单击 (图形按钮)

被单击 事件 所属对象：图形按钮

当单击按钮后即产生此事件。

语法： 无返回值 _图形按钮_被单击 （）

参见： 语法的描述规则、基本数据类型


鼠标左键被按下

鼠标左键被按下 系统基本事件

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标左键被按下 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

参见： 语法的描述规则、基本数据类型


鼠标左键被放开

鼠标左键被放开 系统基本事件

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标左键被放开 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

参见： 语法的描述规则、基本数据类型


被双击

被双击 系统基本事件

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_被双击 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

参见： 语法的描述规则、基本数据类型


鼠标右键被按下

鼠标右键被按下 系统基本事件

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标右键被按下 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

参见： 语法的描述规则、基本数据类型


鼠标右键被放开

鼠标右键被放开 系统基本事件

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标右键被放开 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

参见： 语法的描述规则、基本数据类型


鼠标位置被移动

鼠标位置被移动 系统基本事件

处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_鼠标位置被移动 （横向位置，纵向位置，功能键状态）

参数名 | 描 述
横向位置 | 整数型；指示鼠标在当前所处窗口单元中的横向位置。
纵向位置 | 整数型；指示鼠标在当前所处窗口单元中的纵向位置。
功能键状态 | 整数型；用于查看各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

参见： 语法的描述规则、基本数据类型


获得焦点

获得焦点 系统基本事件

当对象获得输入焦点时产生本事件。所谓“输入焦点”，即当前用户按键操作所对应的目标对象。譬如：用户正在编辑框中输入文本，那么此编辑框就具有输入焦点，因为它将获得目前用户所进行的所有按键操作。所谓“获得”或者“失去”输入焦点，即当前用户按键操作所对应的目标对象发生转移。譬如：现在用户正在编辑框1中输入文本，突然使用鼠标或其它方法切换到了编辑框2上去继续输入。那么此时，编辑框1就“失去”了输入焦点，编辑框2就“得到”了输入焦点，因为在此以后用户所进行的所有按键操作都将被编辑框2所获得。

语法： 无返回值 _窗口单元_获得焦点 （）

参见： 语法的描述规则、基本数据类型


失去焦点

失去焦点 系统基本事件

当对象失去输入焦点时产生本事件。

语法： 无返回值 _窗口单元_失去焦点 （）

参见： 语法的描述规则、基本数据类型


按下某键

按下某键 系统基本事件

此事件当用户按下一个键时发生。处理本事件的子程序如果返回假，则取消本事件，不再将此按键事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_按下某键 （键代码，功能键状态）

参数名 | 描 述
键代码 | 整数型；为键常量值，如：“#F1键”、“#回车键” 等等。具体所有的键常量见库常量表。
功能键状态 | 整数型；用于查看在按下本键的同时各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

参见： 语法的描述规则、基本数据类型


放开某键

放开某键 系统基本事件

此事件当用户放开以前按下的一个键时发生。处理本事件的子程序如果返回假，则取消本事件，不再将此事件传递到所属对象上去；如果不返回值或返回真，则将此事件继续传递到所属对象上去。

语法： 逻辑型 _窗口单元_放开某键 （键代码，功能键状态）

参数名 | 描 述
键代码 | 整数型；为键常量值，如：“#F1键”、“#回车键” 等等。具体所有的键常量见库常量表。
功能键状态 | 整数型；用于查看在按下本键的同时各功能键是否被同时按下。可以为以下常量值或其和： 1、#Ctrl键状态； 2、#Shift键状态； 4、#Alt键状态。要判断是否同时按下了某个功能键，在此参数的值与想要得知的功能键的状态常量值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示同时按下了此功能键。

参见： 语法的描述规则、基本数据类型


字符输入

字符输入 系统基本事件

当用户按下和松开一个字符键时发生此事件。字符键包括任何可打印的键盘字符及回车（Enter）和退格（BackSpace）键。在用户事件处理子程序中，将事件处理完毕后可返回一个字符代码，用于替换将继续传递到所属对象上字符键事件中的字符代码；如果返回 0 ，则取消此事件，不再将此字符输入事件传递到所属对象上去；如果事件处理完毕后没有返回值，则将本字符键事件继续原样传递到所属对象上去。

语法： 整数型 _窗口单元_字符输入 （字符代码）

参数名 | 描 述
字符代码 | 整数型；表明所按下的字符键所对应的字符代码，可以使用“字符”命令取出所对应的具体字符。

参见： 语法的描述规则、基本数据类型


用户如何发布自己的程序到其它计算机

转换易程序的语言版本

返回首页

易语言目前有简体和繁体中文两个不同的语言版本，当系统打开另外一个语言版本的易程序时，会自动进行语言转换，无需用户手工操作。

虽然源程序的转换不需要用户手工操作，但是一些程序所依赖的外部文件还是需要，具体列出如下：

1、在某个语言版本下建立的易语言数据库，欲拿到另外一个语言版本中使用前必须先用系统中提供的“数据库语言转换”工具进行转换。

2、在某个语言版本下使用“易之表”建立的GRD表格文件，欲拿到另外一个语言版本中使用前需要使用“易之表”内“编辑”菜单中的“语言转换”功能转换到目的语言。

按照以上方法，用户可以很轻松地建立软件的不同语言版本发布程序。


按钮风格 (超级按钮)

按钮风格 属性 所属对象：超级按钮

数据类型：整数型；

可供选择的属性值：
0、平面风格
1、立体风格
2、XP风格

参见： 基本数据类型


选择框方式 (超级按钮)

选择框方式 属性 所属对象：超级按钮

数据类型：逻辑型；本属性指定按钮是否以选择框方式工作。

参见： 基本数据类型


选中 (超级按钮)

选中 属性 所属对象：超级按钮

数据类型：逻辑型；当“选择框方式”属性为真时，本属性说明当前是否已被选中。

参见： 基本数据类型


对齐方式 (超级按钮)

对齐方式 属性 所属对象：超级按钮

数据类型：整数型；本属性指定按钮中图片和文本的对齐方式。

可供选择的属性值：
0、图左文右
1、图上文下
2、图右文左
3、图文混排

参见： 基本数据类型


压入方式 (超级按钮)

压入方式 属性 所属对象：超级按钮

数据类型：整数型；本属性指定按钮压入后的显示方式。

可供选择的属性值：
0、从左到右
1、从上到下

参见： 基本数据类型


鼠标指针 (随想按钮)

鼠标指针 属性 所属对象：随想按钮

数据类型：整数型；设置当鼠标经过对象某一部分时鼠标的指针类型。

参见： 基本数据类型


hWnd (Command)

hWnd 属性 所属对象：Command

数据类型：整数型；只读；返回一个句柄到(from Microsoft Windows)一个对象的窗口。

参见： 基本数据类型


背景透明 (随想按钮)

背景透明 属性 所属对象：随想按钮

数据类型：整数型；指出背景样式是否将屏蔽色区域设置为透明。

可供选择的属性值：
0、透明
1、不透明

参见： 基本数据类型


图片透明色 (随想按钮)

图片透明色 属性 所属对象：随想按钮

数据类型：整数型；设置按钮皮肤图片的屏蔽色。

参见： 基本数据类型


图标透明色 (随想按钮)

图标透明色 属性 所属对象：随想按钮

数据类型：整数型；设置图标的屏蔽色。

参见： 基本数据类型


MouseIcon (Command)

MouseIcon 属性 所属对象：Command

数据类型：字节集；设置一个自定义鼠标图标。

参见： 基本数据类型


按钮图标 (随想按钮)

按钮图标 属性 所属对象：随想按钮

数据类型：字节集；设置一个图片，作为按钮的图标。

参见： 基本数据类型


图片 (随想按钮)

图片 属性 所属对象：随想按钮

数据类型：字节集；设置一个有一定格式规范的图片。

参见： 基本数据类型


图标显示位置 (随想按钮)

图标显示位置 属性 所属对象：随想按钮

数据类型：整数型；设置是否显示图标和显示的位置。

可供选择的属性值：
0、不显示
1、左侧显示
2、右侧显示

参见： 基本数据类型


外观 (随想按钮)

外观 属性 所属对象：随想按钮

数据类型：整数型；设定目录树是否为3D外观。0为否，1为是。

可供选择的属性值：
0、平面
1、右下角移动
2、左上角移动

参见： 基本数据类型


圆滑边角 (随想按钮)

圆滑边角 属性 所属对象：随想按钮

数据类型：整数型；将皮肤图片分成三行三列，设置以中间的矩形区域四角定点为圆心，与相应按钮边缘相切的圆的半径。

参见： 基本数据类型


FR (随想按钮)

FR 属性 所属对象：随想按钮

数据类型：整数型；返回/设置以焦点框四角顶点为圆心，与相应按钮边缘相切的圆的半径。

参见： 基本数据类型


标题 (随想按钮)

标题 属性 所属对象：随想按钮

数据类型：文本型；返回或设置按钮的文字。

参见： 基本数据类型


禁止文字颜色 (随想按钮)

禁止文字颜色 属性 所属对象：随想按钮

数据类型：整数型；返回或设置按钮不可用时文字的颜色。

参见： 基本数据类型


文字颜色 (随想按钮)

文字颜色 属性 所属对象：随想按钮

数据类型：整数型；返回或设置按钮文字的颜色。

参见： 基本数据类型


字体 (随想按钮)

字体 属性 所属对象：随想按钮

数据类型：字体；返回一个字体对象。

参见： 基本数据类型


显示焦点 (随想按钮)

显示焦点 属性 所属对象：随想按钮

数据类型：逻辑型；返回或设置一个值，决定按钮是否显示焦点框。

参见： 基本数据类型


Enabled (Command)

Enabled 属性 所属对象：Command

数据类型：逻辑型；返回/设置一个值，决定一个对象是否响应用户生成事件。

参见： 基本数据类型


显示新样式 (随想按钮)

显示新样式 属性 所属对象：随想按钮

数据类型：逻辑型；返回或设置一个值，决定按钮不可用时是否使用新的全灰度变换样式。

参见： 基本数据类型


不可用图标处理样式 (随想按钮)

不可用图标处理样式 属性 所属对象：随想按钮

数据类型：逻辑型；一种新的“不可用图标处理样式”，返回或设置当显示新样式属性为真且不可用时，是否在对图标灰度变换的基础上同时进行色调变换。

参见： 基本数据类型


全部属性 (随想按钮)

全部属性 属性 所属对象：随想按钮

数据类型：字节集；使用OCX组件自身的属性表进行设置。

参见： 基本数据类型


显示标题 (WM播放器)

显示标题 属性 所属对象：WM播放器

数据类型：逻辑型；显示标题文本。 Show captioning text。

参见： 基本数据类型


显示状态条 (WM播放器)

显示状态条 属性 所属对象：WM播放器

数据类型：逻辑型；Show status bar。

参见： 基本数据类型


显示跳转条 (WM播放器)

显示跳转条 属性 所属对象：WM播放器

数据类型：逻辑型；Show Gotobar。

参见： 基本数据类型


视频边框色 (WM播放器)

视频边框色 属性 所属对象：WM播放器

数据类型：整数型；返回或设置视频边框色。 Returns or sets the video border color。

参见： 基本数据类型


视频边框宽 (WM播放器)

视频边框宽 属性 所属对象：WM播放器

数据类型：整数型；Returns or sets the video border width。

参见： 基本数据类型


3D视频边框 (WM播放器)

3D视频边框 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置3D效果视频边框。 Returns or sets the video border 3D effect。

参见： 基本数据类型


显示方式 (WM播放器)

显示方式 属性 所属对象：WM播放器

数据类型：整数型；返回/设置显示方式（时间或结构）。 Returns or sets the display mode (time or frames)。

可供选择的属性值：
0、时间
1、框架

参见： 基本数据类型


显示背景色 (WM播放器)

显示背景色 属性 所属对象：WM播放器

数据类型：整数型；返回/设置显示面板的背景色。 Returns or sets the background color of the display panel。

参见： 基本数据类型


显示前景色 (WM播放器)

显示前景色 属性 所属对象：WM播放器

数据类型：整数型；返回/设置显示面板的前景色。 Returns or sets the foreground color of the display panel。

参见： 基本数据类型


允许 (WM播放器)

允许 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置一个值以确定一个对象能否响应用户事件。 Returns/sets a value that determines whether an object can respond to user-generated events.

参见： 基本数据类型


进度条 (WM播放器)

进度条 属性 所属对象：WM播放器

数据类型：逻辑型；在控件面板中设置/取消追踪条。 Enables or disables the tracker bar in the control panel。

参见： 基本数据类型


位置按钮 (WM播放器)

位置按钮 属性 所属对象：WM播放器

数据类型：逻辑型；设置/取消控件面板面板上的位置按钮。 Enables or disables the position buttons in the control panel。

参见： 基本数据类型


显示进度 (WM播放器)

显示进度 属性 所属对象：WM播放器

数据类型：逻辑型；在控件面板上显示/隐藏追踪条。 Shows or hides the tracker bar in the control panel。

参见： 基本数据类型


显示位置按钮 (WM播放器)

显示位置按钮 属性 所属对象：WM播放器

数据类型：逻辑型；Shows or hides the position buttons in the control panel。

参见： 基本数据类型


显示控件面板 (WM播放器)

显示控件面板 属性 所属对象：WM播放器

数据类型：逻辑型；显示/隐藏控件面板。 Shows or hides the control panel。

参见： 基本数据类型


显示陈列面板 (WM播放器)

显示陈列面板 属性 所属对象：WM播放器

数据类型：逻辑型；Shows or hides the display panel。

参见： 基本数据类型


结束位置 (WM播放器)

结束位置 属性 所属对象：WM播放器

数据类型：双精度小数型；当录音重放将停止，返回/设置一个位置。 Returns or sets the position where playback will stop。

参见： 基本数据类型


开始位置 (WM播放器)

开始位置 属性 所属对象：WM播放器

数据类型：双精度小数型；Returns or sets the position where playback will begin。

参见： 基本数据类型


就绪状态 (WM播放器)

就绪状态 属性 所属对象：WM播放器

数据类型：整数型；只读；返回控件的就绪状态。 Returns the readiness state of the control。

可供选择的属性值：
0、卸载就绪状态
1、载入就绪状态
3、交互就绪状态
4、完成就绪状态

参见： 基本数据类型


流对比值 (WM播放器)

流对比值 属性 所属对象：WM播放器

数据类型：整数型；返回/设置流的当前对比值。 Returns or sets the current balance of the stream。

参见： 基本数据类型


音量 (WM播放器)

音量 属性 所属对象：WM播放器

数据类型：整数型；Returns or sets the current volume of the stream。

参见： 基本数据类型


开始时透明 (WM播放器)

开始时透明 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置播放前控件是否透明。 Returns or sets whether or not the control is transparent before playing。

参见： 基本数据类型


开始时活泼 (WM播放器)

开始时活泼 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置控件在最初缓冲期间是否显示它的生气。 Returns or sets whether or not the control shows its animation during initial file buffering。

参见： 基本数据类型


错误码 (WM播放器)

错误码 属性 所属对象：WM播放器

数据类型：整数型；只读；返回当前错误代码。 Returns the current error code。

参见： 基本数据类型


错误描述 (WM播放器)

错误描述 属性 所属对象：WM播放器

数据类型：文本型；只读；返回当前错误状态的描述。 Returns the description of the current error state。

参见： 基本数据类型


是否错误 (WM播放器)

是否错误 属性 所属对象：WM播放器

数据类型：逻辑型；只读；返回控件是否通常有一个错误。 Returns whether or not the control currently has an error。

参见： 基本数据类型


默认画面 (WM播放器)

默认画面 属性 所属对象：WM播放器

数据类型：文本型；返回/设置控件的默认目标HTTP画面 Returns or sets the control's default target HTTP frame。

参见： 基本数据类型


基本路径 (WM播放器)

基本路径 属性 所属对象：WM播放器

数据类型：文本型；返回/设置控件的基本HTTP路径。 Returns or sets the control's base HTTP URL。

参见： 基本数据类型


调用路径 (WM播放器)

调用路径 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置标准路径是否被自动调用。 Returns or sets whether or not received URLs are automatically invoked。

参见： 基本数据类型


图像尺寸 (WM播放器)

图像尺寸 属性 所属对象：WM播放器

数据类型：整数型；返回/设置图像的显示尺寸。 Returns or sets the display size of images。

可供选择的属性值：
0、默认尺寸
1、一半尺寸
2、双倍尺寸
3、满屏
4、适合尺寸
5、1/16屏幕
6、1/4屏幕
7、1/2屏幕

参见： 基本数据类型


发送播放状态被改变事件 (WM播放器)

发送播放状态被改变事件 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置控件是否发送播放状态被改变事件。 Returns or sets whether or not the control sends PlayStateChange events。

参见： 基本数据类型


播放状态 (WM播放器)

播放状态 属性 所属对象：WM播放器

数据类型：整数型；只读；返回控件的播放状态。 Returns the play state of the control。

可供选择的属性值：
0、停止
1、暂停
2、播放
3、等待
4、mpScanForward
5、后退扫描
6、关闭

参见： 基本数据类型


发送错误事件 (WM播放器)

发送错误事件 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置控件是否发送错误错误事件。 Returns or sets whether or not the control sends Error events。

参见： 基本数据类型


发送警告事件 (WM播放器)

发送警告事件 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置控件是否发送警告事件。 Returns or sets whether or not the control sends Warning events。

参见： 基本数据类型


发送打开状态改变事件 (WM播放器)

发送打开状态改变事件 属性 所属对象：WM播放器

数据类型：逻辑型；Returns or sets whether or not the control sends OpenStateChange events。

参见： 基本数据类型


打开状态 (WM播放器)

打开状态 属性 所属对象：WM播放器

数据类型：整数型；只读；返回控件的打开状态。 Returns the open state of the control。

参见： 基本数据类型


有效持续时间 (WM播放器)

有效持续时间 属性 所属对象：WM播放器

数据类型：逻辑型；只读；返回持续时间是否已知。 Returns whether or not the duration is known。

参见： 基本数据类型


允许改变显示尺寸 (WM播放器)

允许改变显示尺寸 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置控件尺寸在运行期间能被设置。 Returns or sets whether or not the display size can be set at run time。

参见： 基本数据类型


解码器数 (WM播放器)

解码器数 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the number of installable codecs used by the file。

参见： 基本数据类型


指针类型 (WM播放器)

指针类型 属性 所属对象：WM播放器

数据类型：整数型；Returns or sets the cursor type。

参见： 基本数据类型


可否上下文菜单 (WM播放器)

可否上下文菜单 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置是否可以用鼠标右击调用一个上下文菜单。 Returns or sets whether or not a right mouse click invokes a context menu。

参见： 基本数据类型


激活扫描 (WM播放器)

激活扫描 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置可否在文件里激活扫描以支持它。 Returns or sets whether or not scanning is enabled on files that support it。

参见： 基本数据类型


单击播放 (WM播放器)

单击播放 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置是否单击控件开始文件重播 Returns or sets whether or not clicking on the control starts file playback。

参见： 基本数据类型


播放数 (WM播放器)

播放数 属性 所属对象：WM播放器

数据类型：整数型；返回/设置一个文件播放期间的数。 Returns or sets the number of times a file plays。

参见： 基本数据类型


发送鼠标移动事件 (WM播放器)

发送鼠标移动事件 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置控件是否发送鼠标移动事件。 Returns or sets whether or not the control sends mouse move events。

参见： 基本数据类型


发送鼠标单击事件 (WM播放器)

发送鼠标单击事件 属性 所属对象：WM播放器

数据类型：逻辑型；Returns or sets whether or not the control sends mouse click events。

参见： 基本数据类型


发送键盘事件 (WM播放器)

发送键盘事件 属性 所属对象：WM播放器

数据类型：逻辑型；Returns or sets whether or not the control sends keyboard events。

参见： 基本数据类型


速度 (WM播放器)

速度 属性 所属对象：WM播放器

数据类型：双精度小数型；返回/设置当前重播速度。 Returns or sets the current playback rate。

参见： 基本数据类型


自动重绕 (WM播放器)

自动重绕 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置一个文件是否在重播尾部回放。 Returns or sets whether or not a file is rewound at the end of playback。

参见： 基本数据类型


自动开始 (WM播放器)

自动开始 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置文件重播是否自动开始。 Returns or sets whether or not file playback is automatically started。

参见： 基本数据类型


缓冲时间 (WM播放器)

缓冲时间 属性 所属对象：WM播放器

数据类型：双精度小数型；返回控件的缓冲时间。 Returns the control's buffering time。

参见： 基本数据类型


联系邮箱 (WM播放器)

联系邮箱 属性 所属对象：WM播放器

数据类型：文本型；只读；Returns the contact e-mail address of the channel。

参见： 基本数据类型


联系电话 (WM播放器)

联系电话 属性 所属对象：WM播放器

数据类型：文本型；只读；Returns the contact phone number of the channel。

参见： 基本数据类型


联系地址 (WM播放器)

联系地址 属性 所属对象：WM播放器

数据类型：文本型；只读；Returns the contact address of the channel。

参见： 基本数据类型


联系URL (WM播放器)

联系URL 属性 所属对象：WM播放器

数据类型：文本型；只读；Returns the location of the channel metafile。

参见： 基本数据类型


联系描述 (WM播放器)

联系描述 属性 所属对象：WM播放器

数据类型：文本型；只读；Returns the description of the channel。

参见： 基本数据类型


联系名 (WM播放器)

联系名 属性 所属对象：WM播放器

数据类型：文本型；只读；Returns the name of the channel。

参见： 基本数据类型


缓冲比率 (WM播放器)

缓冲比率 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the percentage of buffering completed。

参见： 基本数据类型


来源于播放 (WM播放器)

来源于播放 属性 所属对象：WM播放器

数据类型：逻辑型；只读；Returns whether or not the source is a broadcast。

参见： 基本数据类型


缓冲数 (WM播放器)

缓冲数 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the number of times buffering occurred during playback。

参见： 基本数据类型


接收质量 (WM播放器)

接收质量 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the percentage of packets received in the last 30 seconds。

参见： 基本数据类型


失去信息包 (WM播放器)

失去信息包 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the number of packets lost。

参见： 基本数据类型


恢复信息包 (WM播放器)

恢复信息包 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the number of packets recovered。

参见： 基本数据类型


信息包标准号 (WM播放器)

信息包标准号 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the number of packets received。

参见： 基本数据类型


协议源 (WM播放器)

协议源 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the protocol used to receive data。

参见： 基本数据类型


结合带宽 (WM播放器)

结合带宽 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the bandwidth of the file in bits per second。

参见： 基本数据类型


错误修正 (WM播放器)

错误修正 属性 所属对象：WM播放器

数据类型：文本型；只读；Returns the error correction type of the file。

参见： 基本数据类型


创建日期 (WM播放器)

创建日期 属性 所属对象：WM播放器

数据类型：日期时间型；只读；Returns the creation date of the file。

参见： 基本数据类型


链接源 (WM播放器)

链接源 属性 所属对象：WM播放器

数据类型：文本型；只读；Returns the source path of the file。

参见： 基本数据类型


文件名 (WM播放器)

文件名 属性 所属对象：WM播放器

数据类型：文本型；返回或设置文本框内容所属文件的名称。

参见： 基本数据类型


当前标记 (WM播放器)

当前标记 属性 所属对象：WM播放器

数据类型：整数型；返回/设置当前标记号。 Returns or sets the current marker number。

参见： 基本数据类型


可否用标记搜寻 (WM播放器)

可否用标记搜寻 属性 所属对象：WM播放器

数据类型：逻辑型；只读；Returns whether or not the file can be seeked into by markers。

参见： 基本数据类型


可否被搜寻 (WM播放器)

可否被搜寻 属性 所属对象：WM播放器

数据类型：逻辑型；只读；Returns whether or not the file can be seeked into。

参见： 基本数据类型


可否预览 (WM播放器)

可否预览 属性 所属对象：WM播放器

数据类型：逻辑型；只读；Returns whether or not the file can be scanned。

参见： 基本数据类型


标记号 (WM播放器)

标记号 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the number of markers in the file。

参见： 基本数据类型


图片源高 (WM播放器)

图片源高 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the original height of the source images。

参见： 基本数据类型


图片源宽 (WM播放器)

图片源宽 属性 所属对象：WM播放器

数据类型：整数型；只读；Returns the original width of the source images。

参见： 基本数据类型


持续时间 (WM播放器)

持续时间 属性 所属对象：WM播放器

数据类型：双精度小数型；只读；Returns the play duration of the file。

参见： 基本数据类型


当前位置 (WM播放器)

当前位置 属性 所属对象：WM播放器

数据类型：双精度小数型；返回/设置文件的当前播放位置。 Returns or sets the current position in the file。

参见： 基本数据类型


全部属性 (WM播放器)

全部属性 属性 所属对象：WM播放器

数据类型：字节集；使用OCX组件自身的属性表进行设置。

参见： 基本数据类型


Cols (vsFlexLib)

Cols 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the total number of columns in the control.

参见： 基本数据类型


Rows (vsFlexLib)

Rows 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the total number of rows in the control.

参见： 基本数据类型


FontUnderline (vsFlexLib)

FontUnderline 属性 所属对象：vsFlexLib

数据类型：逻辑型；

参见： 基本数据类型


FontStrikethru (vsFlexLib)

FontStrikethru 属性 所属对象：vsFlexLib

数据类型：逻辑型；

参见： 基本数据类型


FontItalic (vsFlexLib)

FontItalic 属性 所属对象：vsFlexLib

数据类型：逻辑型；

参见： 基本数据类型


FontBold (vsFlexLib)

FontBold 属性 所属对象：vsFlexLib

数据类型：逻辑型；

参见： 基本数据类型


FontSize (vsFlexLib)

FontSize 属性 所属对象：vsFlexLib

数据类型：双精度小数型；

参见： 基本数据类型


FontName (vsFlexLib)

FontName 属性 所属对象：vsFlexLib

数据类型：文本型；

参见： 基本数据类型


全部属性 (vsFlexLib)

全部属性 属性 所属对象：vsFlexLib

数据类型：字节集；使用OCX组件自身的属性表进行设置。

参见： 基本数据类型


播放位置 (高级影像框)

播放位置 属性 所属对象：高级影像框

数据类型：整数型；本属性指定影像在窗口中的播放位置。仅在播放前设置有效。

可供选择的属性值：
0、窗口内居中
1、扩展到窗口
2、自动调整窗口

参见： 基本数据类型


影像文件名 (高级影像框)

影像文件名 属性 所属对象：高级影像框

数据类型：文本型；本属性指定欲播放影像文件的名称。

参见： 基本数据类型


播放速度 (高级影像框)

播放速度 属性 所属对象：高级影像框

数据类型：双精度小数型；本属性值可以设置为大于 0 的小数，数值越小播放速度越快，数值为 1 则保持原定播放速度。具体计算公式为：实际播放速度 = 此属性值 X 影像文件内原定速度。仅在播放前设置有效。

参见： 基本数据类型


背景颜色 (高级影像框)

背景颜色 属性 所属对象：高级影像框

数据类型：整数型；本属性指定播放窗口的背景颜色。

参见： 基本数据类型


透明颜色 (高级影像框)

透明颜色 属性 所属对象：高级影像框

数据类型：整数型；本属性指定影像中透明部分的颜色，如果属性值为默认背景色则自动以影像内第一帧左上角第一点的颜色值作为透明色。仅在播放前设置有效。

参见： 基本数据类型


播放 (高级影像框)

播放 属性 所属对象：高级影像框

数据类型：整数型；在设计阶段，指定本属性值为“播放”可使运行时影像文件在影像框被创建后自动开始播放。在运行阶段，通过改变此属性值可控制影像的播放、停止、暂停或继续。在运行阶段读取本属性值将始终得到0（播放）或1（停止），用作提供当前的播放状态。

可供选择的属性值：
0、播放
1、停止
2、暂停
3、继续

参见： 基本数据类型


仅播放一次 (高级影像框)

仅播放一次 属性 所属对象：高级影像框

数据类型：逻辑型；如果本属性值为真，则仅播放一次，否则无限次地循环播放。仅在播放前设置有效。

参见： 基本数据类型


当前帧 (高级影像框)

当前帧 属性 所属对象：高级影像框

数据类型：整数型；本属性返回或设置当前播放帧的帧号，属性值范围为从 1 到当前影像文件全部帧数，支持在播放前设置。

参见： 基本数据类型


全部帧数 (高级影像框)

全部帧数 属性 所属对象：高级影像框

数据类型：整数型；只读；本属性返回当前影像文件所包含的全部帧数。

参见： 基本数据类型


标题 (菜单)

标题 属性 所属对象：菜单

数据类型：文本型；

参见： 基本数据类型


选中 (菜单)

选中 属性 所属对象：菜单

数据类型：逻辑型；

参见： 基本数据类型


禁止 (菜单)

禁止 属性 所属对象：菜单

数据类型：逻辑型；

参见： 基本数据类型


可视 (菜单)

可视 属性 所属对象：菜单

数据类型：逻辑型；

参见： 基本数据类型


背景颜色 (分隔条)

背景颜色 属性 所属对象：分隔条

数据类型：整数型；

参见： 基本数据类型


方向 (分隔条)

方向 属性 所属对象：分隔条

数据类型：整数型；

可供选择的属性值：
0、横向
1、纵向

参见： 基本数据类型


平面 (工具条)

平面 属性 所属对象：工具条

数据类型：逻辑型；本属性指定按钮是否为平面方式。

参见： 基本数据类型


上边线 (工具条)

上边线 属性 所属对象：工具条

数据类型：逻辑型；本属性指定是否在工具条的顶部显示上边分隔线。

参见： 基本数据类型


列表方式 (工具条)

列表方式 属性 所属对象：工具条

数据类型：逻辑型；本属性指定在显示按钮时是否将标题文本显示在图片的右边。

参见： 基本数据类型


允许多行 (工具条)

允许多行 属性 所属对象：工具条

数据类型：逻辑型；本属性指定是否允许多行显示按钮。

参见： 基本数据类型


起始空白 (工具条)

起始空白 属性 所属对象：工具条

数据类型：整数型；本属性指定在工具条首部所预留空白的尺寸，单位为像素。

参见： 基本数据类型


字体 (工具条)

字体 属性 所属对象：工具条

数据类型：字体；

参见： 基本数据类型


图片组 (工具条)

图片组 属性 所属对象：工具条

数据类型：字节集；为工具条各按钮提供标志图片。

参见： 基本数据类型


热点图片组 (工具条)

热点图片组 属性 所属对象：工具条

数据类型：字节集；为工具条各按钮提供当鼠标移动到此按钮上时所显示的标志图片，仅当“平面”属性为真时才有效。

参见： 基本数据类型


禁止图片组 (工具条)

禁止图片组 属性 所属对象：工具条

数据类型：字节集；为工具条各按钮提供当此按钮被禁止时所显示的标志图片。

参见： 基本数据类型


按钮 (工具条)

按钮 属性 所属对象：工具条

数据类型：字节集；本属性设置工具条各按钮的信息。

参见： 基本数据类型


边框 (超级列表框)

边框 属性 所属对象：超级列表框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


文本颜色 (超级列表框)

文本颜色 属性 所属对象：超级列表框

数据类型：整数型；

参见： 基本数据类型


文本背景色 (超级列表框)

文本背景色 属性 所属对象：超级列表框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (超级列表框)

背景颜色 属性 所属对象：超级列表框

数据类型：整数型；指定窗口单元的背景色。

参见： 基本数据类型


字体 (超级列表框)

字体 属性 所属对象：超级列表框

数据类型：字体；

参见： 基本数据类型


类型 (超级列表框)

类型 属性 所属对象：超级列表框

数据类型：整数型；本属性指定列表框的类型。

可供选择的属性值：
0、大图标列表框
1、小图标列表框
2、普通列表框
3、报表列表框

参见： 基本数据类型


图标对齐方式 (超级列表框)

图标对齐方式 属性 所属对象：超级列表框

数据类型：整数型；本属性指定大图标和小图标列表框中的图标对齐方式。

可供选择的属性值：
0、顶部对齐
1、左边对齐

参见： 基本数据类型


自动排列图标 (超级列表框)

自动排列图标 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定在大图标和小图标列表框中是否自动排列图标。

参见： 基本数据类型


标题自动换行 (超级列表框)

标题自动换行 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定在大图标和小图标列表框中如果标题过长是否自动换行。

参见： 基本数据类型


报表列 (超级列表框)

报表列 属性 所属对象：超级列表框

数据类型：字节集；本属性设置报表列表框中各列的信息。注意：报表列表框只有在设置了列后才能显示出其中的内容。

参见： 基本数据类型


无表头 (超级列表框)

无表头 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定报表列表框中是否没有表头。

参见： 基本数据类型


表头图片组 (超级列表框)

表头图片组 属性 所属对象：超级列表框

数据类型：字节集；本属性为报表列表框表头提供图标图片。

参见： 基本数据类型


表头可单击 (超级列表框)

表头可单击 属性 所属对象：超级列表框

数据类型：逻辑型；如果报表列表框中有表头，本属性指定表头列是否可以被作为按钮单击。

参见： 基本数据类型


整行选择 (超级列表框)

整行选择 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定当在报表列表框中选中一行时是否高亮度显示整行。

参见： 基本数据类型


显示表格线 (超级列表框)

显示表格线 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定在报表列表框中是否显示表格线。

参见： 基本数据类型


表列可拖动 (超级列表框)

表列可拖动 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定在报表列表框中是否允许用户拖动表头列以改变列位置。

参见： 基本数据类型


图片组 (超级列表框)

图片组 属性 所属对象：超级列表框

数据类型：字节集；本属性为各列表框项目提供图标图片。

参见： 基本数据类型


状态图片组 (超级列表框)

状态图片组 属性 所属对象：超级列表框

数据类型：字节集；本属性为列表框中的表项提供状态图片。

参见： 基本数据类型


热点跟踪 (超级列表框)

热点跟踪 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定在列表框中是否跟踪并高亮度显示当前鼠标所处表项，此表项称为“热点表项”。

参见： 基本数据类型


手形指针 (超级列表框)

手形指针 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定在列表框中当鼠标移动到热点表项时是否将鼠标指针改为手形。

参见： 基本数据类型


标注非热点 (超级列表框)

标注非热点 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定在列表框中当鼠标移动到热点表项时是否将所有非此表项的标题加上下划线显示。

参见： 基本数据类型


标注热点 (超级列表框)

标注热点 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定在列表框中当鼠标移动到热点表项时是否将此表项的标题加上下划线显示。

参见： 基本数据类型


允许编辑 (超级列表框)

允许编辑 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定是否允许编辑表项标题，仅在“热点跟踪”属性为假时才有效。

参见： 基本数据类型


排序方式 (超级列表框)

排序方式 属性 所属对象：超级列表框

数据类型：整数型；本属性指定列表框表项的标题排序方式。

可供选择的属性值：
0、不排序
1、正向排序
2、逆向排序

参见： 基本数据类型


是否有检查框 (超级列表框)

是否有检查框 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定是否在表项前加上检查框，注意如果“状态图片组”属性被设置，则默认的检查框图片将被“状态图片组”中的图片代替，并且当用户单击表项中的状态图片时，将自动遍历显示“状态图片组”中的所有图片。

参见： 基本数据类型


平面滚动条 (超级列表框)

平面滚动条 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定是否以平面方式显示列表框滚动条。

参见： 基本数据类型


单一选择 (超级列表框)

单一选择 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定列表框中是否同时只允许选择一个表项。

参见： 基本数据类型


现行选中项 (超级列表框)

现行选中项 属性 所属对象：超级列表框

数据类型：整数型；本属性指定列表框中现行被选中项目的位置，位置值从 0 开始， -1 表示现行没有被选中的项目。注意如果“单一选择”属性为假，则本属性只可读。

参见： 基本数据类型


始终显示选择项 (超级列表框)

始终显示选择项 属性 所属对象：超级列表框

数据类型：逻辑型；本属性指定是否始终显示当前被选择项目，即使列表框失去焦点。

参见： 基本数据类型


表项 (超级列表框)

表项 属性 所属对象：超级列表框

数据类型：字节集；本属性指定列表框中的各表项。

参见： 基本数据类型


结束编辑文本 (超级列表框)

结束编辑文本 属性 所属对象：超级列表框

数据类型：文本型；只读；本属性仅在运行时有效，用作为“结束编辑”事件的处理子程序提供标题被编辑后的内容。

参见： 基本数据类型


标题 (透明标签)

标题 属性 所属对象：透明标签

数据类型：文本型；

参见： 基本数据类型


效果 (透明标签)

效果 属性 所属对象：透明标签

数据类型：整数型；

可供选择的属性值：
0、通常
1、凹入
2、凸出
3、阴影

参见： 基本数据类型


字体 (透明标签)

字体 属性 所属对象：透明标签

数据类型：字体；

参见： 基本数据类型


文本颜色 (透明标签)

文本颜色 属性 所属对象：透明标签

数据类型：整数型；

参见： 基本数据类型


横向对齐方式 (透明标签)

横向对齐方式 属性 所属对象：透明标签

数据类型：整数型；

可供选择的属性值：
0、左对齐
1、居中
2、右对齐

参见： 基本数据类型


是否自动折行 (透明标签)

是否自动折行 属性 所属对象：透明标签

数据类型：逻辑型；本属性设定当文本内容超出右界后是否自动转到下一行显示。

参见： 基本数据类型


纵向对齐方式 (透明标签)

纵向对齐方式 属性 所属对象：透明标签

数据类型：整数型；如果选用自动折行则本属性无效。

可供选择的属性值：
0、顶对齐
1、居中
2、底对齐

参见： 基本数据类型


是否允许多行 (编辑框)

是否允许多行 属性 所属对象：编辑框

数据类型：逻辑型；本属性设置本单元是否允许输入多行文本。

参见： 基本数据类型


滚动条 (编辑框)

滚动条 属性 所属对象：编辑框

数据类型：整数型；滚动条只有在多行方式下才有效。

可供选择的属性值：
0、无
1、横向滚动条
2、纵向滚动条
3、横向及纵向滚动条

参见： 基本数据类型


对齐方式 (编辑框)

对齐方式 属性 所属对象：编辑框

数据类型：整数型；

可供选择的属性值：
0、左对齐
1、居中
2、右对齐

参见： 基本数据类型


输入方式 (编辑框)

输入方式 属性 所属对象：编辑框

数据类型：整数型；

可供选择的属性值：
0、通常方式
1、只读方式
2、密码输入
3、整数文本输入
4、小数文本输入
5、输入字节
6、输入短整数
7、输入整数
8、输入长整数
9、输入小数
10、输入双精度小数
11、输入日期时间

参见： 基本数据类型


密码遮盖字符 (编辑框)

密码遮盖字符 属性 所属对象：编辑框

数据类型：文本型；本属性设置当输入方式为“密码输入”时输入字符后显示在输入框中的替代字符。

参见： 基本数据类型


转换方式 (编辑框)

转换方式 属性 所属对象：编辑框

数据类型：整数型；

可供选择的属性值：
0、无
1、大写->小写
2、小写->大写

参见： 基本数据类型


调节器方式 (编辑框)

调节器方式 属性 所属对象：编辑框

数据类型：整数型；调节器只有在单行方式下才有效。

可供选择的属性值：
0、无调节器
1、自动调节器
2、手动调节器

参见： 基本数据类型


调节器底限值 (编辑框)

调节器底限值 属性 所属对象：编辑框

数据类型：整数型；只有在自动调节器方式下才有效。

参见： 基本数据类型


调节器上限值 (编辑框)

调节器上限值 属性 所属对象：编辑框

数据类型：整数型；只有在自动调节器方式下才有效。

参见： 基本数据类型


起始选择位置 (编辑框)

起始选择位置 属性 所属对象：编辑框

数据类型：整数型；返回或设置所选择文本的起始点；0 为位置 1 ，1 为位置 2，如此类推。如果没有文本被选中，则指出光标位置。如果设置位置时使用值 -1，则将当前光标位置移动到文本尾部。

参见： 基本数据类型


被选择字符数 (编辑框)

被选择字符数 属性 所属对象：编辑框

数据类型：整数型；返回或设置所选择的字符数。如果设置字符数时使用值 -1，则选择文本框内的所有字符。

参见： 基本数据类型


被选择文本 (编辑框)

被选择文本 属性 所属对象：编辑框

数据类型：文本型；设计时不可用；返回或替换当前所选择的文本。

参见： 基本数据类型


数据源 (编辑框)

数据源 属性 所属对象：编辑框

数据类型：文本型；指定提供数据的数据源单元名。

参见： 基本数据类型


数据列 (编辑框)

数据列 属性 所属对象：编辑框

数据类型：文本型；指定数据源中的数据列，可以是列名或以1开始的列序号文本。

参见： 基本数据类型


内容格式 (超级编辑框)

内容格式 属性 所属对象：超级编辑框

数据类型：整数型；本属性指定对编辑框的内容进行读写时所使用的文本格式。

可供选择的属性值：
0、纯文本
1、RTF丰富文本

参见： 基本数据类型


内容 (超级编辑框)

内容 属性 所属对象：超级编辑框

数据类型：文本型；本属性所使用的文本格式由“内容格式”属性决定。

参见： 基本数据类型


边框 (超级编辑框)

边框 属性 所属对象：超级编辑框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


背景颜色 (超级编辑框)

背景颜色 属性 所属对象：超级编辑框

数据类型：整数型；

参见： 基本数据类型


是否允许多行 (超级编辑框)

是否允许多行 属性 所属对象：超级编辑框

数据类型：逻辑型；本属性设置编辑框是否允许输入多行文本。

参见： 基本数据类型


自动换行 (超级编辑框)

自动换行 属性 所属对象：超级编辑框

数据类型：逻辑型；本属性设置编辑框是否支持自动换行。

参见： 基本数据类型


只读 (超级编辑框)

只读 属性 所属对象：超级编辑框

数据类型：逻辑型；本属性设置编辑框是否只能读取而不能写入。

参见： 基本数据类型


隐藏选择 (超级编辑框)

隐藏选择 属性 所属对象：超级编辑框

数据类型：逻辑型；本属性指定失去输入焦点后是否还显示当前被选择的区域。

参见： 基本数据类型


最大允许长度 (超级编辑框)

最大允许长度 属性 所属对象：超级编辑框

数据类型：整数型；本属性设置最大允许输入到编辑框中的字符数目，如为0则输入字符数目不受限制。

参见： 基本数据类型


起始选择位置 (超级编辑框)

起始选择位置 属性 所属对象：超级编辑框

数据类型：整数型；返回或设置所选择文本的起始点；0 为位置 1 ，1 为位置 2，如此类推。如果没有文本被选中，则提供当前光标位置。

参见： 基本数据类型


被选择字符数 (超级编辑框)

被选择字符数 属性 所属对象：超级编辑框

数据类型：整数型；返回或设置所选择的字符数。如果设置字符数时使用值 -1，则选择编辑框内的所有字符。

参见： 基本数据类型


被选择文本 (超级编辑框)

被选择文本 属性 所属对象：超级编辑框

数据类型：文本型；设计时不可用；返回或替换当前所选择的文本，文本格式由“内容格式”属性决定。

参见： 基本数据类型


是否已更改 (超级编辑框)

是否已更改 属性 所属对象：超级编辑框

数据类型：逻辑型；设计时不可用；读取本属性可获知编辑框的内容是否已被用户手工更改，运行时写入本属性可以设置其值。

参见： 基本数据类型


背景颜色 (外形框)

背景颜色 属性 所属对象：外形框

数据类型：整数型；

参见： 基本数据类型


外形 (外形框)

外形 属性 所属对象：外形框

数据类型：整数型；

可供选择的属性值：
0、矩形
1、正方形
2、椭圆
3、圆
4、圆角矩形
5、圆角正方形
6、横向线
7、纵向线

参见： 基本数据类型


线条效果 (外形框)

线条效果 属性 所属对象：外形框

数据类型：整数型；

可供选择的属性值：
0、通常
1、凹入
2、凸出

参见： 基本数据类型


线型 (外形框)

线型 属性 所属对象：外形框

数据类型：整数型；

可供选择的属性值：
0、无
1、直线
2、划线
3、点线
4、点划线
5、双点划线

参见： 基本数据类型


线宽 (外形框)

线宽 属性 所属对象：外形框

数据类型：整数型；注意：仅在线条效果为“通常”且线型为“直线”时才有效。

参见： 基本数据类型


线条颜色 (外形框)

线条颜色 属性 所属对象：外形框

数据类型：整数型；注意：仅在线条效果为“通常”时才有效。

参见： 基本数据类型


填充颜色 (外形框)

填充颜色 属性 所属对象：外形框

数据类型：整数型；注意：仅在外形不为线条时才有效。

参见： 基本数据类型


边框 (画板)

边框 属性 所属对象：画板

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


画板背景色 (画板)

画板背景色 属性 所属对象：画板

数据类型：整数型；注意如果“自动重画”属性为真，则不支持透明色。

参见： 基本数据类型


底图 (画板)

底图 属性 所属对象：画板

数据类型：字节集；本属性指定显示在画板背景上的图片。

参见： 基本数据类型


底图方式 (画板)

底图方式 属性 所属对象：画板

数据类型：整数型；如果设定了底图，本属性指定画板背景上底图的显示方式。

可供选择的属性值：
0、图片居左上
1、图片平铺
2、图片居中

参见： 基本数据类型


自动重画 (画板)

自动重画 属性 所属对象：画板

数据类型：逻辑型；如果本属性设置为真，系统将自动把所有在画板上进行的绘画操作的结果保存到内存中，当以后需要重画时，系统简单地把所保存的绘画结果复制到画板上，而不再产生“绘画”事件。采用本属性需要消耗一定数量的内存。

参见： 基本数据类型


绘画单位 (画板)

绘画单位 属性 所属对象：画板

数据类型：整数型；本属性指定绘画时所使用的单位，坐标系的 X 轴从左到右，Y 轴从上到下。

可供选择的属性值：
0、像素点
1、0.1毫米
2、0.01毫米
3、0.01英寸
4、0.001英寸
5、1/1440英寸

参见： 基本数据类型


画笔类型 (画板)

画笔类型 属性 所属对象：画板

数据类型：整数型；

可供选择的属性值：
0、空笔
1、直线
2、划线
3、点线
4、点划线
5、双点划线
6、内直线

参见： 基本数据类型


画出方式 (画板)

画出方式 属性 所属对象：画板

数据类型：整数型；有关各种画出方式的说明为： 0、黑色：始终画出黑色；1、非或笔：或笔的相反；2、与非笔：背景色以及画笔反相二者共有颜色的组合；3、非复制笔：复制笔的相反；4、与笔非：画笔以及已有颜色反相二者共有颜色的组合；5、反转：已有颜色的反相；6、异或笔：画笔的颜色以及已有颜色的组合，只取其一；7、非与笔：与笔的相反；8、与笔：画笔和已有二者共有颜色的组合；9、非异或笔：异或笔的相反；10、无操作：原有保持不变。该设置实际上关闭画笔；11、或非笔：已有颜色与画笔颜色反相的组合；12、复制笔（缺省值）：画笔颜色；13、或笔非：画笔颜色与已有颜色的反相的组合；14、或笔：画笔颜色与已有颜色的组合；15、白色：始终画出白色。

可供选择的属性值：
0、黑色
1、非或笔
2、与非笔
3、非复制笔
4、与笔非
5、反转
6、异或笔
7、非与笔
8、与笔
9、非异或笔
10、无操作
11、或非笔
12、复制笔
13、或笔非
14、或笔
15、白色

参见： 基本数据类型


画笔粗细 (画板)

画笔粗细 属性 所属对象：画板

数据类型：整数型；使用现行绘画单位，如果为0，表示画笔的粗细为一个像素点。注意：当画笔类型为划线、点线、点划线、双点划线时，本属性无效，画笔宽度始终为一个像素点。

参见： 基本数据类型


画笔颜色 (画板)

画笔颜色 属性 所属对象：画板

数据类型：整数型；

参见： 基本数据类型


刷子类型 (画板)

刷子类型 属性 所属对象：画板

数据类型：整数型；各种格式刷子将使用当前文本背景颜色作为刷子背景颜色。

可供选择的属性值：
0、空刷子
1、颜色刷子
2、右斜线
3、直交叉线
4、斜交叉线
5、左斜线
6、横线
7、竖线
8、5%色点
9、10%色点
10、20%色点
11、25%色点
12、30%色点
13、40%色点
14、50%色点
15、60%色点
16、70%色点
17、75%色点
18、80%色点
19、90%色点
20、浅色上对角线
21、浅色下对角线
22、深色上对角线
23、深色下对角线
24、宽上对角线
25、宽下对角线
26、浅色竖线
27、浅色横线
28、窄竖线
29、窄横线
30、深色竖线
31、深色横线
32、上对角虚线
33、下对角虚线
34、横虚线
35、竖虚线
36、小纸屑
37、大纸屑
38、之字形
39、波浪线
40、对角砖形
41、横向砖形
42、纺织物
43、方格呢
44、草皮
45、虚格线
46、点式菱形
47、瓦形
48、棚架
49、球体
50、小网格
51、大网格
52、小棋盘
53、大棋盘
54、空心菱形
55、实心菱形

参见： 基本数据类型


刷子颜色 (画板)

刷子颜色 属性 所属对象：画板

数据类型：整数型；

参见： 基本数据类型


文本颜色 (画板)

文本颜色 属性 所属对象：画板

数据类型：整数型；

参见： 基本数据类型


文本背景颜色 (画板)

文本背景颜色 属性 所属对象：画板

数据类型：整数型；

参见： 基本数据类型


字体 (画板)

字体 属性 所属对象：画板

数据类型：字体；

参见： 基本数据类型


画板宽度 (画板)

画板宽度 属性 所属对象：画板

数据类型：整数型；只读；本属性提供了目前画板的宽度，使用现行绘画单位。属性值等于“画板”窗口单元的用户区域宽度。

参见： 基本数据类型


画板高度 (画板)

画板高度 属性 所属对象：画板

数据类型：整数型；只读；本属性提供了目前画板的高度，使用现行绘画单位。属性值等于“画板”窗口单元的用户区域高度。

参见： 基本数据类型


标题 (分组框)

标题 属性 所属对象：分组框

数据类型：文本型；如果希望某一字符成为本分组框中第一个可停留焦点单元的访问键，可以在该字符前面加上一个 & 字符。

参见： 基本数据类型


对齐方式 (分组框)

对齐方式 属性 所属对象：分组框

数据类型：整数型；

可供选择的属性值：
0、左边
1、居中
2、右边

参见： 基本数据类型


文本颜色 (分组框)

文本颜色 属性 所属对象：分组框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (分组框)

背景颜色 属性 所属对象：分组框

数据类型：整数型；

参见： 基本数据类型


字体 (分组框)

字体 属性 所属对象：分组框

数据类型：字体；

参见： 基本数据类型


标题 (标签)

标题 属性 所属对象：标签

数据类型：文本型；如果希望某一字符成为本标签后可停留焦点单元的访问键，可以在该字符前面加上一个 & 字符。

参见： 基本数据类型


效果 (标签)

效果 属性 所属对象：标签

数据类型：整数型；

可供选择的属性值：
0、通常
1、凹入
2、凸出
3、阴影

参见： 基本数据类型


边框 (标签)

边框 属性 所属对象：标签

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式
6、渐变镜框式

参见： 基本数据类型


渐变边框宽度 (标签)

渐变边框宽度 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


渐变边框颜色1 (标签)

渐变边框颜色1 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


渐变边框颜色2 (标签)

渐变边框颜色2 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


渐变边框颜色3 (标签)

渐变边框颜色3 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


字体 (标签)

字体 属性 所属对象：标签

数据类型：字体；

参见： 基本数据类型


文本颜色 (标签)

文本颜色 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


背景颜色 (标签)

背景颜色 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


底图 (标签)

底图 属性 所属对象：标签

数据类型：字节集；本属性指定显示在标签背景上的图片。

参见： 基本数据类型


底图方式 (标签)

底图方式 属性 所属对象：标签

数据类型：整数型；如果设定了底图，本属性指定标签背景上底图的显示方式。

可供选择的属性值：
0、图片居左上
1、图片平铺
2、图片居中

参见： 基本数据类型


渐变背景方式 (标签)

渐变背景方式 属性 所属对象：标签

数据类型：整数型；本属性只有在未设定底图的前提下才有效。

可供选择的属性值：
0、无渐变背景
1、从上到下
2、从左到右
3、从左上到右下
4、从右上到左下
5、从下到上
6、从右到左
7、从右下到左上
8、从左下到右上

参见： 基本数据类型


渐变背景颜色1 (标签)

渐变背景颜色1 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


渐变背景颜色2 (标签)

渐变背景颜色2 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


渐变背景颜色3 (标签)

渐变背景颜色3 属性 所属对象：标签

数据类型：整数型；

参见： 基本数据类型


横向对齐方式 (标签)

横向对齐方式 属性 所属对象：标签

数据类型：整数型；

可供选择的属性值：
0、左对齐
1、居中
2、右对齐

参见： 基本数据类型


是否自动折行 (标签)

是否自动折行 属性 所属对象：标签

数据类型：逻辑型；本属性设定当文本内容超出右界后是否自动转到下一行显示。

参见： 基本数据类型


纵向对齐方式 (标签)

纵向对齐方式 属性 所属对象：标签

数据类型：整数型；如果选用自动折行则本属性无效。

可供选择的属性值：
0、顶对齐
1、居中
2、底对齐

参见： 基本数据类型


数据源 (标签)

数据源 属性 所属对象：标签

数据类型：文本型；指定提供数据的数据源单元名。

参见： 基本数据类型


数据列 (标签)

数据列 属性 所属对象：标签

数据类型：文本型；指定数据源中的数据列，可以是列名或以1开始的列序号文本。

参见： 基本数据类型


图片 (按钮)

图片 属性 所属对象：按钮

数据类型：字节集；本属性指定显示在按钮上的图片。

参见： 基本数据类型


类型 (按钮)

类型 属性 所属对象：按钮

数据类型：整数型；当在窗口上按下Enter键时，如果没有将窗口的“回车下移输入点”属性设置为真，则等同于按下了具有“默认”类型的按钮。因此具有“默认”类型的按钮在同一窗口上应当只有一个。“通常”类型的按钮无对应的操作默认键。

可供选择的属性值：
0、通常
1、默认

参见： 基本数据类型


标题 (按钮)

标题 属性 所属对象：按钮

数据类型：文本型；标题只有在图片为空时才有效，如果希望某一字符成为此按钮的访问键，可以在该字符前面加上一个 & 字符。

参见： 基本数据类型


横向对齐方式 (按钮)

横向对齐方式 属性 所属对象：按钮

数据类型：整数型；

可供选择的属性值：
0、左边
1、居中
2、右边

参见： 基本数据类型


纵向对齐方式 (按钮)

纵向对齐方式 属性 所属对象：按钮

数据类型：整数型；

可供选择的属性值：
0、顶边
1、居中
2、底边

参见： 基本数据类型


字体 (按钮)

字体 属性 所属对象：按钮

数据类型：字体；

参见： 基本数据类型


图片 (选择框)

图片 属性 所属对象：选择框

数据类型：字节集；本属性指定显示在选择框上的图片。

参见： 基本数据类型


按钮形式 (选择框)

按钮形式 属性 所属对象：选择框

数据类型：逻辑型；

参见： 基本数据类型


平面 (选择框)

平面 属性 所属对象：选择框

数据类型：逻辑型；

参见： 基本数据类型


标题 (选择框)

标题 属性 所属对象：选择框

数据类型：文本型；标题只有在图片为空时才有效，如果希望某一字符成为此选择框的访问键，可以在该字符前面加上一个 & 字符。

参见： 基本数据类型


标题居左 (选择框)

标题居左 属性 所属对象：选择框

数据类型：逻辑型；

参见： 基本数据类型


横向对齐方式 (选择框)

横向对齐方式 属性 所属对象：选择框

数据类型：整数型；

可供选择的属性值：
0、左边
1、居中
2、右边

参见： 基本数据类型


纵向对齐方式 (选择框)

纵向对齐方式 属性 所属对象：选择框

数据类型：整数型；

可供选择的属性值：
0、顶边
1、居中
2、底边

参见： 基本数据类型


文本颜色 (选择框)

文本颜色 属性 所属对象：选择框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (选择框)

背景颜色 属性 所属对象：选择框

数据类型：整数型；

参见： 基本数据类型


字体 (选择框)

字体 属性 所属对象：选择框

数据类型：字体；

参见： 基本数据类型


选中 (选择框)

选中 属性 所属对象：选择框

数据类型：逻辑型；

参见： 基本数据类型


数据源 (选择框)

数据源 属性 所属对象：选择框

数据类型：文本型；指定提供数据的数据源单元名。

参见： 基本数据类型


数据列 (选择框)

数据列 属性 所属对象：选择框

数据类型：文本型；指定数据源中的数据列，可以是列名或以1开始的列序号文本。

参见： 基本数据类型


图片 (单选框)

图片 属性 所属对象：单选框

数据类型：字节集；本属性指定显示在单选框上的图片。

参见： 基本数据类型


按钮形式 (单选框)

按钮形式 属性 所属对象：单选框

数据类型：逻辑型；

参见： 基本数据类型


平面 (单选框)

平面 属性 所属对象：单选框

数据类型：逻辑型；

参见： 基本数据类型


标题 (单选框)

标题 属性 所属对象：单选框

数据类型：文本型；标题只有在图片为空时才有效，如果希望某一字符成为此单选框的访问键，可以在该字符前面加上一个 & 字符。

参见： 基本数据类型


标题居左 (单选框)

标题居左 属性 所属对象：单选框

数据类型：逻辑型；

参见： 基本数据类型


横向对齐方式 (单选框)

横向对齐方式 属性 所属对象：单选框

数据类型：整数型；

可供选择的属性值：
0、左边
1、居中
2、右边

参见： 基本数据类型


纵向对齐方式 (单选框)

纵向对齐方式 属性 所属对象：单选框

数据类型：整数型；

可供选择的属性值：
0、顶边
1、居中
2、底边

参见： 基本数据类型


文本颜色 (单选框)

文本颜色 属性 所属对象：单选框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (单选框)

背景颜色 属性 所属对象：单选框

数据类型：整数型；

参见： 基本数据类型


字体 (单选框)

字体 属性 所属对象：单选框

数据类型：字体；

参见： 基本数据类型


选中 (单选框)

选中 属性 所属对象：单选框

数据类型：逻辑型；

参见： 基本数据类型


类型 (组合框)

类型 属性 所属对象：组合框

数据类型：整数型；

可供选择的属性值：
0、可编辑列表式
1、可编辑下拉式
2、不可编辑下拉式

参见： 基本数据类型


内容 (组合框)

内容 属性 所属对象：组合框

数据类型：文本型；本属性指定在下拉列表框编辑部分中的文本内容。当类型为“不可编辑下拉式”时，本属性无效。

参见： 基本数据类型


最大文本长度 (组合框)

最大文本长度 属性 所属对象：组合框

数据类型：整数型；本属性指定在下拉列表框的编辑部分所允许输入的最大文本长度，为0表示没有限制。当类型为“不可编辑下拉式”时，本属性无效。

参见： 基本数据类型


起始选择位置 (组合框)

起始选择位置 属性 所属对象：组合框

数据类型：整数型；返回或设置所选择文本的起始点；0 为位置 1 ，1 为位置 2，如此类推。如果没有文本被选中，则指出光标位置。如果设置位置时使用值 -1，则将当前光标位置移动到文本尾部。当类型为“不可编辑下拉式”时，本属性无效。

参见： 基本数据类型


被选择字符数 (组合框)

被选择字符数 属性 所属对象：组合框

数据类型：整数型；返回或设置所选择的字符数。如果设置字符数时使用值 -1，则选择所有文本。当类型为“不可编辑下拉式”时，本属性无效。

参见： 基本数据类型


被选择文本 (组合框)

被选择文本 属性 所属对象：组合框

数据类型：文本型；设计时不可用；返回或替换当前在下拉列表框编辑部分中所选择的文本。当类型为“不可编辑下拉式”时，本属性无效。

参见： 基本数据类型


自动排序 (组合框)

自动排序 属性 所属对象：组合框

数据类型：逻辑型；

参见： 基本数据类型


行间距 (组合框)

行间距 属性 所属对象：组合框

数据类型：整数型；本属性指定各列表项目行之间的间距尺寸。

参见： 基本数据类型


文本颜色 (组合框)

文本颜色 属性 所属对象：组合框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (组合框)

背景颜色 属性 所属对象：组合框

数据类型：整数型；

参见： 基本数据类型


字体 (组合框)

字体 属性 所属对象：组合框

数据类型：字体；

参见： 基本数据类型


现行选中项 (组合框)

现行选中项 属性 所属对象：组合框

数据类型：整数型；本属性指定下拉列表框中现行被选中的列表项目的位置，位置值从 0 开始， -1 表示现行没有被选中的列表项。

参见： 基本数据类型


列表项目 (组合框)

列表项目 属性 所属对象：组合框

数据类型：字节集；本属性指定各列表项目。

参见： 基本数据类型


项目数值 (组合框)

项目数值 属性 所属对象：组合框

数据类型：字节集；本属性指定与各列表项目相关联的数值，该数值在程序中可以被取出或修改。

参见： 基本数据类型


数据源 (组合框)

数据源 属性 所属对象：组合框

数据类型：文本型；指定提供数据的数据源单元名。

参见： 基本数据类型


数据列 (组合框)

数据列 属性 所属对象：组合框

数据类型：文本型；指定数据源中的数据列，可以是列名或以1开始的列序号文本。

参见： 基本数据类型


除去重复 (组合框)

除去重复 属性 所属对象：组合框

数据类型：逻辑型；指定是否除去从数据源中取得的重复数据列数据。

参见： 基本数据类型


边框 (列表框)

边框 属性 所属对象：列表框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


自动排序 (列表框)

自动排序 属性 所属对象：列表框

数据类型：逻辑型；

参见： 基本数据类型


多列 (列表框)

多列 属性 所属对象：列表框

数据类型：逻辑型；

参见： 基本数据类型


行间距 (列表框)

行间距 属性 所属对象：列表框

数据类型：整数型；本属性指定各列表项目行之间的间距尺寸。

参见： 基本数据类型


文本颜色 (列表框)

文本颜色 属性 所属对象：列表框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (列表框)

背景颜色 属性 所属对象：列表框

数据类型：整数型；

参见： 基本数据类型


字体 (列表框)

字体 属性 所属对象：列表框

数据类型：字体；

参见： 基本数据类型


允许选择多项 (列表框)

允许选择多项 属性 所属对象：列表框

数据类型：逻辑型；本属性指定是否允许用户同时选择列表框中的多个列表项。

参见： 基本数据类型


现行选中项 (列表框)

现行选中项 属性 所属对象：列表框

数据类型：整数型；本属性指定列表框中现行被选中列表项目的位置，位置值从0开始，-1表示现行没有被选中的列表项。如果“允许选择多项”属性为真，则本属性无效，其值恒为 -1。

参见： 基本数据类型


列表项目 (列表框)

列表项目 属性 所属对象：列表框

数据类型：字节集；本属性指定各列表项目。

参见： 基本数据类型


项目数值 (列表框)

项目数值 属性 所属对象：列表框

数据类型：字节集；本属性指定与各列表项目相关联的数值，该数值在程序中可以被取出或修改。

参见： 基本数据类型


数据源 (列表框)

数据源 属性 所属对象：列表框

数据类型：文本型；指定提供数据的数据源单元名。

参见： 基本数据类型


数据列 (列表框)

数据列 属性 所属对象：列表框

数据类型：文本型；指定数据源中的数据列，可以是列名或以1开始的列序号文本。

参见： 基本数据类型


除去重复 (列表框)

除去重复 属性 所属对象：列表框

数据类型：逻辑型；指定是否除去从数据源中取得的重复数据列数据。

参见： 基本数据类型


边框 (选择列表框)

边框 属性 所属对象：选择列表框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


自动排序 (选择列表框)

自动排序 属性 所属对象：选择列表框

数据类型：逻辑型；

参见： 基本数据类型


多列 (选择列表框)

多列 属性 所属对象：选择列表框

数据类型：逻辑型；

参见： 基本数据类型


行间距 (选择列表框)

行间距 属性 所属对象：选择列表框

数据类型：整数型；本属性指定各列表项目行之间的间距尺寸。

参见： 基本数据类型


单选 (选择列表框)

单选 属性 所属对象：选择列表框

数据类型：逻辑型；本属性指定是否只允许选择一项列表项。

参见： 基本数据类型


字体 (选择列表框)

字体 属性 所属对象：选择列表框

数据类型：字体；

参见： 基本数据类型


现行选中项 (选择列表框)

现行选中项 属性 所属对象：选择列表框

数据类型：整数型；本属性指定列表框中现行被选中的列表项目的位置，位置值从0开始，-1表示现行没有被选中的列表项。

参见： 基本数据类型


列表项目 (选择列表框)

列表项目 属性 所属对象：选择列表框

数据类型：字节集；本属性指定各列表项目。

参见： 基本数据类型


项目数值 (选择列表框)

项目数值 属性 所属对象：选择列表框

数据类型：字节集；本属性指定与各列表项目相关联的数值，该数值在程序中可以被取出或修改。

参见： 基本数据类型


最小位置 (横向滚动条)

最小位置 属性 所属对象：横向滚动条

数据类型：整数型；

参见： 基本数据类型


最大位置 (横向滚动条)

最大位置 属性 所属对象：横向滚动条

数据类型：整数型；

参见： 基本数据类型


页改变值 (横向滚动条)

页改变值 属性 所属对象：横向滚动条

数据类型：整数型；本属性指定当用户在滚动条的空隙处单击后滚动条位置的增减数值。

参见： 基本数据类型


行改变值 (横向滚动条)

行改变值 属性 所属对象：横向滚动条

数据类型：整数型；本属性指定当用户按下滚动条的左右箭头按钮后滚动条位置的增减数值。

参见： 基本数据类型


位置 (横向滚动条)

位置 属性 所属对象：横向滚动条

数据类型：整数型；本属性设定滚动条的现行位置。

参见： 基本数据类型


允许拖动跟踪 (横向滚动条)

允许拖动跟踪 属性 所属对象：横向滚动条

数据类型：逻辑型；本属性设定当用户拖动滚动条的位置盒的过程中是否产生位置改变事件。

参见： 基本数据类型


最小位置 (纵向滚动条)

最小位置 属性 所属对象：纵向滚动条

数据类型：整数型；

参见： 基本数据类型


最大位置 (纵向滚动条)

最大位置 属性 所属对象：纵向滚动条

数据类型：整数型；

参见： 基本数据类型


页改变值 (纵向滚动条)

页改变值 属性 所属对象：纵向滚动条

数据类型：整数型；本属性指定当用户在滚动条的空隙处单击后滚动条位置的增减数值。

参见： 基本数据类型


行改变值 (纵向滚动条)

行改变值 属性 所属对象：纵向滚动条

数据类型：整数型；本属性指定当用户按下滚动条的上下箭头按钮后滚动条位置的增减数值。

参见： 基本数据类型


位置 (纵向滚动条)

位置 属性 所属对象：纵向滚动条

数据类型：整数型；本属性设定滚动条的现行位置。

参见： 基本数据类型


允许拖动跟踪 (纵向滚动条)

允许拖动跟踪 属性 所属对象：纵向滚动条

数据类型：逻辑型；本属性设定当用户拖动滚动条的位置盒的过程中是否产生位置改变事件。

参见： 基本数据类型


边框 (进度条)

边框 属性 所属对象：进度条

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


方向 (进度条)

方向 属性 所属对象：进度条

数据类型：整数型；

可供选择的属性值：
0、横向
1、纵向

参见： 基本数据类型


显示方式 (进度条)

显示方式 属性 所属对象：进度条

数据类型：整数型；

可供选择的属性值：
0、分块
1、连续

参见： 基本数据类型


最小位置 (进度条)

最小位置 属性 所属对象：进度条

数据类型：整数型；

参见： 基本数据类型


最大位置 (进度条)

最大位置 属性 所属对象：进度条

数据类型：整数型；

参见： 基本数据类型


位置 (进度条)

位置 属性 所属对象：进度条

数据类型：整数型；本属性设定进度条的现行位置。

参见： 基本数据类型


边框 (滑块条)

边框 属性 所属对象：滑块条

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


方向 (滑块条)

方向 属性 所属对象：滑块条

数据类型：整数型；

可供选择的属性值：
0、横向
1、纵向

参见： 基本数据类型


刻度类型 (滑块条)

刻度类型 属性 所属对象：滑块条

数据类型：整数型；

可供选择的属性值：
0、无
1、上/左
2、下/右
3、双向

参见： 基本数据类型


单位刻度值 (滑块条)

单位刻度值 属性 所属对象：滑块条

数据类型：整数型；

参见： 基本数据类型


允许选择 (滑块条)

允许选择 属性 所属对象：滑块条

数据类型：逻辑型；

参见： 基本数据类型


首选择位置 (滑块条)

首选择位置 属性 所属对象：滑块条

数据类型：整数型；

参见： 基本数据类型


选择长度 (滑块条)

选择长度 属性 所属对象：滑块条

数据类型：整数型；

参见： 基本数据类型


页改变值 (滑块条)

页改变值 属性 所属对象：滑块条

数据类型：整数型；本属性指定当用户在空隙处单击后滑块条位置的增减数值。

参见： 基本数据类型


行改变值 (滑块条)

行改变值 属性 所属对象：滑块条

数据类型：整数型；本属性指定当用户拖动滑块时滑块条位置的每次增减数值。

参见： 基本数据类型


最小位置 (滑块条)

最小位置 属性 所属对象：滑块条

数据类型：整数型；

参见： 基本数据类型


最大位置 (滑块条)

最大位置 属性 所属对象：滑块条

数据类型：整数型；

参见： 基本数据类型


位置 (滑块条)

位置 属性 所属对象：滑块条

数据类型：整数型；本属性设定滑块条的现行位置。

参见： 基本数据类型


表头方向 (选择夹)

表头方向 属性 所属对象：选择夹

数据类型：整数型；

可供选择的属性值：
0、上
1、下
2、左
3、右

参见： 基本数据类型


允许多行表头 (选择夹)

允许多行表头 属性 所属对象：选择夹

数据类型：逻辑型；

参见： 基本数据类型


字体 (选择夹)

字体 属性 所属对象：选择夹

数据类型：字体；

参见： 基本数据类型


子夹管理 (选择夹)

子夹管理 属性 所属对象：选择夹

数据类型：字节集；

参见： 基本数据类型


现行子夹 (选择夹)

现行子夹 属性 所属对象：选择夹

数据类型：整数型；设计时不可用；本属性指定现行被选中子夹的索引，索引值从 0 开始。

参见： 基本数据类型


隐藏自身 (选择夹)

隐藏自身 属性 所属对象：选择夹

数据类型：逻辑型；本属性可以用来动态切换数个同一位置处子单元群的显示。此时选择夹本身不会被显示，但用户可以通过改变其“现行子夹”属性来显示指定子夹内的所有子单元。注意在设计时为方便用户定位子单元，表头方向始终为下。

参见： 基本数据类型


文件名 (影像框)

文件名 属性 所属对象：影像框

数据类型：文本型；本属性指定欲播放影像文件的名称。

参见： 基本数据类型


居中播放 (影像框)

居中播放 属性 所属对象：影像框

数据类型：逻辑型；

参见： 基本数据类型


透明背景 (影像框)

透明背景 属性 所属对象：影像框

数据类型：逻辑型；

参见： 基本数据类型


播放 (影像框)

播放 属性 所属对象：影像框

数据类型：逻辑型；如果指定了有效的影像文件，通过改变此属性可控制其播放或停止。如在设计时置本属性为真，运行时影像文件在影像框被创建后即自动开始播放。

参见： 基本数据类型


播放次数 (影像框)

播放次数 属性 所属对象：影像框

数据类型：整数型；指定影像的播放次数。如为 -1，则无限次地循环播放。

参见： 基本数据类型


允许编辑 (日期框)

允许编辑 属性 所属对象：日期框

数据类型：逻辑型；

参见： 基本数据类型


附件类型 (日期框)

附件类型 属性 所属对象：日期框

数据类型：整数型；

可供选择的属性值：
0、下拉月历
1、调节器

参见： 基本数据类型


今天 (日期框)

今天 属性 所属对象：日期框

数据类型：日期时间型；指定或读取现行日期，如果不设定，则自动取现行日期。

参见： 基本数据类型


最小日期 (日期框)

最小日期 属性 所属对象：日期框

数据类型：日期时间型；

参见： 基本数据类型


最大日期 (日期框)

最大日期 属性 所属对象：日期框

数据类型：日期时间型；

参见： 基本数据类型


字体 (日期框)

字体 属性 所属对象：日期框

数据类型：字体；

参见： 基本数据类型


边框 (日期框)

边框 属性 所属对象：日期框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


数据源 (日期框)

数据源 属性 所属对象：日期框

数据类型：文本型；指定提供数据的数据源单元名。

参见： 基本数据类型


数据列 (日期框)

数据列 属性 所属对象：日期框

数据类型：文本型；指定数据源中的数据列，可以是列名或以1开始的列序号文本。

参见： 基本数据类型


不显示今天 (月历)

不显示今天 属性 所属对象：月历

数据类型：逻辑型；

参见： 基本数据类型


不圈注今天 (月历)

不圈注今天 属性 所属对象：月历

数据类型：逻辑型；

参见： 基本数据类型


开始星期首日 (月历)

开始星期首日 属性 所属对象：月历

数据类型：整数型；

可供选择的属性值：
0、星期一
1、星期二
2、星期三
3、星期四
4、星期五
5、星期六
6、星期日

参见： 基本数据类型


显示星期序号 (月历)

显示星期序号 属性 所属对象：月历

数据类型：逻辑型；

参见： 基本数据类型


滚动月数 (月历)

滚动月数 属性 所属对象：月历

数据类型：整数型；本属性指定当按下滚动按钮改变当前显示月时，一次跳过的月的数目。

参见： 基本数据类型


今天 (月历)

今天 属性 所属对象：月历

数据类型：日期时间型；指定现行日期，如果不设定，则自动取系统时间中记录的现行日期。

参见： 基本数据类型


最小日期 (月历)

最小日期 属性 所属对象：月历

数据类型：日期时间型；指定能被显示的最小日期。

参见： 基本数据类型


最大日期 (月历)

最大日期 属性 所属对象：月历

数据类型：日期时间型；指定能被显示的最大日期。

参见： 基本数据类型


允许选择多天 (月历)

允许选择多天 属性 所属对象：月历

数据类型：逻辑型；

参见： 基本数据类型


最多选择天数 (月历)

最多选择天数 属性 所属对象：月历

数据类型：整数型；

参见： 基本数据类型


首选择日 (月历)

首选择日 属性 所属对象：月历

数据类型：日期时间型；指定现行被选择区域的首日期。如果不允许选择多天，则本属性指定现行被选择的日期。

参见： 基本数据类型


尾选择日 (月历)

尾选择日 属性 所属对象：月历

数据类型：日期时间型；指定现行被选择区域的尾日期。如果不允许选择多天，则本属性无效。

参见： 基本数据类型


字体 (月历)

字体 属性 所属对象：月历

数据类型：字体；

参见： 基本数据类型


文本颜色 (月历)

文本颜色 属性 所属对象：月历

数据类型：整数型；

参见： 基本数据类型


背景颜色 (月历)

背景颜色 属性 所属对象：月历

数据类型：整数型；

参见： 基本数据类型


内背景颜色 (月历)

内背景颜色 属性 所属对象：月历

数据类型：整数型；指定用来实际显示月历部分的背景颜色。

参见： 基本数据类型


标题颜色 (月历)

标题颜色 属性 所属对象：月历

数据类型：整数型；

参见： 基本数据类型


标题背景颜色 (月历)

标题背景颜色 属性 所属对象：月历

数据类型：整数型；

参见： 基本数据类型


非本月颜色 (月历)

非本月颜色 属性 所属对象：月历

数据类型：整数型；

参见： 基本数据类型


边框 (月历)

边框 属性 所属对象：月历

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


驱动器 (驱动器框)

驱动器 属性 所属对象：驱动器框

数据类型：文本型；设计时不可用；指定当前驱动器符，如果不指定，默认为当前驱动器。驱动器符为大写字母 A - Z。

参见： 基本数据类型


类型 (驱动器框)

类型 属性 所属对象：驱动器框

数据类型：整数型；指定可用的驱动器类型。

可供选择的属性值：
0、全部驱动器
1、可抽取式驱动器
2、固定驱动器
3、光盘驱动器
4、网络驱动器
5、内存虚拟驱动器

参见： 基本数据类型


文本颜色 (驱动器框)

文本颜色 属性 所属对象：驱动器框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (驱动器框)

背景颜色 属性 所属对象：驱动器框

数据类型：整数型；

参见： 基本数据类型


字体 (驱动器框)

字体 属性 所属对象：驱动器框

数据类型：字体；

参见： 基本数据类型


目录 (目录框)

目录 属性 所属对象：目录框

数据类型：文本型；设计时不可用；

参见： 基本数据类型


边框 (目录框)

边框 属性 所属对象：目录框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


背景颜色 (目录框)

背景颜色 属性 所属对象：目录框

数据类型：整数型；

参见： 基本数据类型


字体 (目录框)

字体 属性 所属对象：目录框

数据类型：字体；

参见： 基本数据类型


目录 (文件框)

目录 属性 所属对象：文件框

数据类型：文本型；设计时不可用；

参见： 基本数据类型


被选择文件 (文件框)

被选择文件 属性 所属对象：文件框

数据类型：文本型；只读；记录所有现行被选择的文件，注意不包含路径。如果有多个文件被选择，各文件名之间用分号“;”隔开。

参见： 基本数据类型


允许选择多项 (文件框)

允许选择多项 属性 所属对象：文件框

数据类型：逻辑型；

参见： 基本数据类型


通配符 (文件框)

通配符 属性 所属对象：文件框

数据类型：文本型；指定允许进入文件框的文件类型。可以同时指定多个通配符，各通配符之间用分号“;”隔开。

参见： 基本数据类型


通常 (文件框)

通常 属性 所属对象：文件框

数据类型：逻辑型；指定是否允许没有设置存档、只读、系统、隐藏文件属性的文件进入。

参见： 基本数据类型


存档 (文件框)

存档 属性 所属对象：文件框

数据类型：逻辑型；指定是否允许设置了存档文件属性的文件进入。

参见： 基本数据类型


只读 (文件框)

只读 属性 所属对象：文件框

数据类型：逻辑型；指定是否允许设置了只读文件属性的文件进入。

参见： 基本数据类型


系统 (文件框)

系统 属性 所属对象：文件框

数据类型：逻辑型；指定是否允许设置了系统文件属性的文件进入。

参见： 基本数据类型


隐藏 (文件框)

隐藏 属性 所属对象：文件框

数据类型：逻辑型；指定是否允许设置了隐藏文件属性的文件进入。

参见： 基本数据类型


最小日期 (文件框)

最小日期 属性 所属对象：文件框

数据类型：日期时间型；指定允许进入的文件的最小日期。

参见： 基本数据类型


最大日期 (文件框)

最大日期 属性 所属对象：文件框

数据类型：日期时间型；指定允许进入的文件的最大日期。

参见： 基本数据类型


边框 (文件框)

边框 属性 所属对象：文件框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


文本颜色 (文件框)

文本颜色 属性 所属对象：文件框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (文件框)

背景颜色 属性 所属对象：文件框

数据类型：整数型；

参见： 基本数据类型


字体 (文件框)

字体 属性 所属对象：文件框

数据类型：字体；

参见： 基本数据类型


颜色 (颜色选择器)

颜色 属性 所属对象：颜色选择器

数据类型：整数型；颜色数值为红绿蓝颜色值或“#透明”常量值。

参见： 基本数据类型


允许透明 (颜色选择器)

允许透明 属性 所属对象：颜色选择器

数据类型：逻辑型；指定是否允许透明色。

参见： 基本数据类型


标题 (超级链接框)

标题 属性 所属对象：超级链接框

数据类型：文本型；

参见： 基本数据类型


类型 (超级链接框)

类型 属性 所属对象：超级链接框

数据类型：整数型；

可供选择的属性值：
0、电子信箱地址
1、Internet地址

参见： 基本数据类型


电子信箱地址 (超级链接框)

电子信箱地址 属性 所属对象：超级链接框

数据类型：文本型；

参见： 基本数据类型


Internet地址 (超级链接框)

Internet地址 属性 所属对象：超级链接框

数据类型：文本型；

参见： 基本数据类型


文本颜色 (超级链接框)

文本颜色 属性 所属对象：超级链接框

数据类型：整数型；正常情况下时的文本显示颜色。

参见： 基本数据类型


访问后的颜色 (超级链接框)

访问后的颜色 属性 所属对象：超级链接框

数据类型：整数型；被访问过后的文本显示颜色。

参见： 基本数据类型


热点颜色 (超级链接框)

热点颜色 属性 所属对象：超级链接框

数据类型：整数型；鼠标移动到单元上时的文本显示颜色。

参见： 基本数据类型


背景颜色 (超级链接框)

背景颜色 属性 所属对象：超级链接框

数据类型：整数型；

参见： 基本数据类型


边框 (超级链接框)

边框 属性 所属对象：超级链接框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


字体 (超级链接框)

字体 属性 所属对象：超级链接框

数据类型：字体；

参见： 基本数据类型


方向 (调节器)

方向 属性 所属对象：调节器

数据类型：整数型；

可供选择的属性值：
0、横向
1、纵向

参见： 基本数据类型


热点跟踪 (调节器)

热点跟踪 属性 所属对象：调节器

数据类型：逻辑型；指定当鼠标移动到单元上时是否显示热点状态。

参见： 基本数据类型


类型 (通用对话框)

类型 属性 所属对象：通用对话框

数据类型：整数型；

可供选择的属性值：
0、打开文件
1、保存文件
2、字体选择
3、打开帮助

参见： 基本数据类型


标题 (通用对话框)

标题 属性 所属对象：通用对话框

数据类型：文本型；仅适用于打开文件和保存文件对话框。

参见： 基本数据类型


文件名 (通用对话框)

文件名 属性 所属对象：通用对话框

数据类型：文本型；从本属性中读取的文件名包括驱动器符和全路径目录，同时本属性也用作初始对话框中的文件名编辑框。

参见： 基本数据类型


过滤器 (通用对话框)

过滤器 属性 所属对象：通用对话框

数据类型：文本型；过滤器文本由单个或多个成对的文本串组成，每对文本串的第一个描述显示形式，如：“文本文件（*.txt）”；第二个指定实际的过滤匹配符，如：“*.txt”，所有各文本串之间用“|”号隔开。

参见： 基本数据类型


初始过滤器 (通用对话框)

初始过滤器 属性 所属对象：通用对话框

数据类型：整数型；指定初始的过滤器，0为第一个过滤器。

参见： 基本数据类型


初始目录 (通用对话框)

初始目录 属性 所属对象：通用对话框

数据类型：文本型；指定当打开对话框时所自动跳转到的目录。

参见： 基本数据类型


默认文件后缀 (通用对话框)

默认文件后缀 属性 所属对象：通用对话框

数据类型：文本型；指定当用户没有输入文件的后缀名称时所自动使用的文件后缀名称。

参见： 基本数据类型


创建时提示 (通用对话框)

创建时提示 属性 所属对象：通用对话框

数据类型：逻辑型；当类型为打开文件对话框时，如果用户指定了一个不存在的文件名称，是否提示用户即将创建它。

参见： 基本数据类型


文件必须存在 (通用对话框)

文件必须存在 属性 所属对象：通用对话框

数据类型：逻辑型；当类型为打开文件对话框时，是否允许用户指定一个不存在的文件。

参见： 基本数据类型


文件覆盖提示 (通用对话框)

文件覆盖提示 属性 所属对象：通用对话框

数据类型：逻辑型；当类型为保存文件对话框时，如果用户指定了一个已经存在的文件，是否询问用户确定覆盖此文件。

参见： 基本数据类型


目录必须存在 (通用对话框)

目录必须存在 属性 所属对象：通用对话框

数据类型：逻辑型；是否允许用户指定一个不存在的目录。

参见： 基本数据类型


不改变目录 (通用对话框)

不改变目录 属性 所属对象：通用对话框

数据类型：逻辑型；在对话框关闭后是否自动返回到进入对话框时的文件目录。

参见： 基本数据类型


字体颜色 (通用对话框)

字体颜色 属性 所属对象：通用对话框

数据类型：整数型；

参见： 基本数据类型


加粗 (通用对话框)

加粗 属性 所属对象：通用对话框

数据类型：逻辑型；

参见： 基本数据类型


倾斜 (通用对话框)

倾斜 属性 所属对象：通用对话框

数据类型：逻辑型；

参见： 基本数据类型


删除线 (通用对话框)

删除线 属性 所属对象：通用对话框

数据类型：逻辑型；

参见： 基本数据类型


下划线 (通用对话框)

下划线 属性 所属对象：通用对话框

数据类型：逻辑型；

参见： 基本数据类型


字体名称 (通用对话框)

字体名称 属性 所属对象：通用对话框

数据类型：文本型；如果不指定字体名称和字体大小，将自动使用标准的Windows图形字体。如果指定了字体大小但没有指定字体名称，将自动使用“宋体”。

参见： 基本数据类型


字体大小 (通用对话框)

字体大小 属性 所属对象：通用对话框

数据类型：整数型；单位为1/72英寸，如果不指定字体名称和字体大小，将自动使用标准的Windows图形字体。

参见： 基本数据类型


帮助文件名 (通用对话框)

帮助文件名 属性 所属对象：通用对话框

数据类型：文本型；指定欲打开帮助文件的名称，如果没有指定帮助文件，将使用默认帮助文件名称，即本易程序的文件名称（不含其后缀）＋“.hlp”后缀。

参见： 基本数据类型


帮助命令 (通用对话框)

帮助命令 属性 所属对象：通用对话框

数据类型：整数型；

可供选择的属性值：
0、显示帮助主题
1、显示指定标志信息
2、弹出指定标志信息
3、确定帮助已显示
4、显示帮助软件使用方法
5、退出帮助

参见： 基本数据类型


帮助标志值 (通用对话框)

帮助标志值 属性 所属对象：通用对话框

数据类型：整数型；仅在帮助命令为“显示指定标志信息”和“弹出指定标志信息”时才有效，用于指定相应的帮助标志数值。

参见： 基本数据类型


时钟周期 (时钟)

时钟周期 属性 所属对象：时钟

数据类型：整数型；指定时钟事件产生的周期，单位为毫秒。如果设定为0，则无时钟事件产生。

参见： 基本数据类型


绘画单位 (打印机)

绘画单位 属性 所属对象：打印机

数据类型：整数型；本属性指定绘画时所使用的单位，坐标系的 X 轴从左到右，Y 轴从上到下。

可供选择的属性值：
0、像素点
1、0.1毫米
2、0.01毫米
3、0.01英寸
4、0.001英寸
5、1/1440英寸

参见： 基本数据类型


画笔类型 (打印机)

画笔类型 属性 所属对象：打印机

数据类型：整数型；

可供选择的属性值：
0、空笔
1、直线
2、划线
3、点线
4、点划线
5、双点划线
6、内直线

参见： 基本数据类型


画出方式 (打印机)

画出方式 属性 所属对象：打印机

数据类型：整数型；有关各种画出方式的说明为： 0、黑色：始终画出黑色；1、非或笔：或笔的相反；2、与非笔：背景色以及画笔反相二者共有颜色的组合；3、非复制笔：复制笔的相反；4、与笔非：画笔以及已有颜色反相二者共有颜色的组合；5、反转：已有颜色的反相；6、异或笔：画笔的颜色以及已有颜色的组合，只取其一；7、非与笔：与笔的相反；8、与笔：画笔和已有二者共有颜色的组合；9、非异或笔：异或笔的相反；10、无操作：原有保持不变。该设置实际上关闭画笔；11、或非笔：已有颜色与画笔颜色反相的组合；12、复制笔（缺省值）：画笔颜色；13、或笔非：画笔颜色与已有颜色的反相的组合；14、或笔：画笔颜色与已有颜色的组合；15、白色：始终画出白色。

可供选择的属性值：
0、黑色
1、非或笔
2、与非笔
3、非复制笔
4、与笔非
5、反转
6、异或笔
7、非与笔
8、与笔
9、非异或笔
10、无操作
11、或非笔
12、复制笔
13、或笔非
14、或笔
15、白色

参见： 基本数据类型


画笔粗细 (打印机)

画笔粗细 属性 所属对象：打印机

数据类型：整数型；使用现行绘画单位，如果为0，表示画笔的粗细为一个像素点。注意：当画笔类型为划线、点线、点划线、双点划线时，本属性无效，画笔宽度始终为一个像素点。

参见： 基本数据类型


画笔颜色 (打印机)

画笔颜色 属性 所属对象：打印机

数据类型：整数型；

参见： 基本数据类型


刷子类型 (打印机)

刷子类型 属性 所属对象：打印机

数据类型：整数型；各种格式刷子将使用当前文本背景颜色作为刷子背景颜色。

可供选择的属性值：
0、空刷子
1、颜色刷子
2、右斜线
3、直交叉线
4、斜交叉线
5、左斜线
6、横线
7、竖线
8、5%色点
9、10%色点
10、20%色点
11、25%色点
12、30%色点
13、40%色点
14、50%色点
15、60%色点
16、70%色点
17、75%色点
18、80%色点
19、90%色点
20、浅色上对角线
21、浅色下对角线
22、深色上对角线
23、深色下对角线
24、宽上对角线
25、宽下对角线
26、浅色竖线
27、浅色横线
28、窄竖线
29、窄横线
30、深色竖线
31、深色横线
32、上对角虚线
33、下对角虚线
34、横虚线
35、竖虚线
36、小纸屑
37、大纸屑
38、之字形
39、波浪线
40、对角砖形
41、横向砖形
42、纺织物
43、方格呢
44、草皮
45、虚格线
46、点式菱形
47、瓦形
48、棚架
49、球体
50、小网格
51、大网格
52、小棋盘
53、大棋盘
54、空心菱形
55、实心菱形

参见： 基本数据类型


刷子颜色 (打印机)

刷子颜色 属性 所属对象：打印机

数据类型：整数型；

参见： 基本数据类型


文本颜色 (打印机)

文本颜色 属性 所属对象：打印机

数据类型：整数型；

参见： 基本数据类型


文本背景颜色 (打印机)

文本背景颜色 属性 所属对象：打印机

数据类型：整数型；

参见： 基本数据类型


字体 (打印机)

字体 属性 所属对象：打印机

数据类型：字体；

参见： 基本数据类型


打印作业名 (打印机)

打印作业名 属性 所属对象：打印机

数据类型：文本型；在打印过程中，本属性的内容将显示在由系统自动提供的打印状态对话框及 Windows 打印管理器中。如果为空，默认为“未命名打印作业”。

参见： 基本数据类型


打印份数 (打印机)

打印份数 属性 所属对象：打印机

数据类型：整数型；本属性用作为打印设置对话框中的打印份数编辑框提供初始值，当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的需要打印份数。需了解的是：如果被选定打印机硬件支持多份拷贝功能，无论用户设置打印份数为多少，打印设置对话框永远返回 1 ，多份打印被转交给打印机硬件去自动完成。如果在进入打印设置对话框前置属性值为 -1 ，表明现行易程序不支持多份打印，此时系统会自动检查当前所选择打印机硬件，如果该打印机硬件支持多份拷贝，将允许用户指定打印份数并启用硬件多份拷贝功能，否则不允许，打印设置对话框返回后属性值保持不变。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

参见： 基本数据类型


多份打印方式 (打印机)

多份打印方式 属性 所属对象：打印机

数据类型：逻辑型；本属性用作为打印设置对话框中“份数”组中的“分页”选择框提供初始值，当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的值。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

参见： 基本数据类型


最小页号 (打印机)

最小页号 属性 所属对象：打印机

数据类型：整数型；本属性用作为打印设置对话框提供最小页号值，如果在进入打印设置对话框前置属性值为 -1 ，打印设置对话框中将不允许用户设置页打印范围。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

参见： 基本数据类型


最大页号 (打印机)

最大页号 属性 所属对象：打印机

数据类型：整数型；本属性用作为打印设置对话框提供最大页号值。如果置为 -1 ，表示最大页号不受限制。如果“最小页号”属性值被置为 -1 ，本属性无意义。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

参见： 基本数据类型


首页页号 (打印机)

首页页号 属性 所属对象：打印机

数据类型：整数型；本属性用作为打印设置对话框中的首打印页页号编辑框提供初始值，当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的首打印页号，此值将在“最小页号”属性值及“最大页号”属性值之间。但如果用户选择了全部打印或者打印选择区，本属性值将为 -1 。如果“最小页号”属性值被置为 -1 ，本属性无意义。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

参见： 基本数据类型


末页页号 (打印机)

末页页号 属性 所属对象：打印机

数据类型：整数型；本属性用作为打印设置对话框中的末打印页页号编辑框提供初始值，如果置为 -1 ，表示不提供。当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的末打印页号，此值将在“首页页号”属性值及“最大页号”属性值之间。但如果用户选择了全部打印或者打印选择区，本属性值将为 -1 。如果“最小页号”属性值被置为 -1 ，本属性无意义。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

参见： 基本数据类型


打印选择区 (打印机)

打印选择区 属性 所属对象：打印机

数据类型：整数型；本属性用作为打印设置对话框中“选择的范围”选择框提供初始值，为 1 表示真，为 0 表示假。当用户从打印设置对话框中确认返回后，属性值提供用户所实际设置的值。如果在进入打印设置对话框前置属性值为 -1 ，打印设置对话框中将不允许用户选取该选择框。如果使用“开始打印”方法进入打印时没有调用打印设置对话框，本属性值保持不变。

参见： 基本数据类型


左边空 (打印机)

左边空 属性 所属对象：打印机

数据类型：整数型；本属性指定打印时打印纸左边所留空白的尺寸，使用现行绘画单位，由系统自动提供支持。

参见： 基本数据类型


顶边空 (打印机)

顶边空 属性 所属对象：打印机

数据类型：整数型；本属性指定打印时打印纸顶边所留空白的尺寸，使用现行绘画单位，由系统自动提供支持。

参见： 基本数据类型


右边空 (打印机)

右边空 属性 所属对象：打印机

数据类型：整数型；本属性指定打印时打印纸右边所留空白的尺寸，使用现行绘画单位，由系统自动提供支持。

参见： 基本数据类型


底边空 (打印机)

底边空 属性 所属对象：打印机

数据类型：整数型；本属性指定打印时打印纸底边所留空白的尺寸，使用现行绘画单位，由系统自动提供支持。

参见： 基本数据类型


当前页号 (打印机)

当前页号 属性 所属对象：打印机

数据类型：整数型；只读；本属性提供现行打印页的页号，由系统自行维护。页号值从“首页页号”属性值开始，如果“最小页号”属性值被置为 -1 ，页号值从 1 开始。在以下情况下属性值被自动增一： 1、使用“写文本行”方法打印一行文本并且要打印文本行的高度当前页容纳不下（此时将会首先自动换页）； 2、使用“换页”方法。本属性仅在打印作业过程中有效。

参见： 基本数据类型


已打印份数 (打印机)

已打印份数 属性 所属对象：打印机

数据类型：整数型；只读；本属性提供现行所已经打印的份数（含当前份），由系统自行维护。在调用“开始下一份”方法后，本属性值被自动加一。

参见： 基本数据类型


打印区宽度 (打印机)

打印区宽度 属性 所属对象：打印机

数据类型：整数型；只读；本属性提供了打印纸实际可打印区域宽度减去左右边空后的值，使用现行绘画单位，仅在打印作业过程中有效。

参见： 基本数据类型


打印区高度 (打印机)

打印区高度 属性 所属对象：打印机

数据类型：整数型；只读；本属性提供了打印纸实际可打印区域高度减去上下边空后的值，使用现行绘画单位，仅在打印作业过程中有效。

参见： 基本数据类型


打印被中止 (打印机)

打印被中止 属性 所属对象：打印机

数据类型：逻辑型；只读；如果在打印时使用了系统所提供的打印状态对话框，并且在打印过程中用户已经选择中止打印取消了打印作业（系统自动支持），本属性值为真，否则为假。易程序在进行打印的过程中一旦发现本属性值为真，应该退出此过程。

参见： 基本数据类型


端口 (数据报)

端口 属性 所属对象：数据报

数据类型：整数型；指定监听数据到达的端口号，可以是大于 0 小于 32767 的任何自定数值。

参见： 基本数据类型


端口 (服务器)

端口 属性 所属对象：服务器

数据类型：整数型；指定监听数据到达的端口号，可以是大于 0 小于 32767 的任何自定数值。

参见： 基本数据类型


端口号 (端口)

端口号 属性 所属对象：端口

数据类型：整数型；端口号从 1 开始。

参见： 基本数据类型


波特率 (端口)

波特率 属性 所属对象：端口

数据类型：整数型；指定通信端口所使用的波特率，比较常用的波特率有：110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200, 128000, 256000。

参见： 基本数据类型


数据位数 (端口)

数据位数 属性 所属对象：端口

数据类型：整数型；

参见： 基本数据类型


停止位数 (端口)

停止位数 属性 所属对象：端口

数据类型：整数型；可以为以下值之一：1: 1位; 2: 1.5位; 3: 2位。

参见： 基本数据类型


奇偶校验 (端口)

奇偶校验 属性 所属对象：端口

数据类型：逻辑型；指定通信时对数据是否进行奇偶校验。

参见： 基本数据类型


事件字符 (端口)

事件字符 属性 所属对象：端口

数据类型：文本型；指定用作触发事件的字符。只使用文本的首字符，为空表示不支持事件字符。

参见： 基本数据类型


等待时间 (端口)

等待时间 属性 所属对象：端口

数据类型：整数型；指定在进行端口读写操作时最长等待时间。单位毫秒。

参见： 基本数据类型


自动启动 (端口)

自动启动 属性 所属对象：端口

数据类型：逻辑型；在对端口进行操作之前必须首先启动，本属性指定当组件被载入时是否自动启动。

参见： 基本数据类型


奇偶校验方案 (端口)

奇偶校验方案 属性 所属对象：端口

数据类型：整数型；指定通信时所使用的具体奇偶校验位方案。

可供选择的属性值：
0、无
1、奇校验
2、偶校验
3、标志校验
4、空白校验

参见： 基本数据类型


流控制方案 (端口)

流控制方案 属性 所属对象：端口

数据类型：整数型；指定通信时所使用的流控制方案。

可供选择的属性值：
0、无
1、CtsRts
2、CtsDtr
3、DsrRts
4、DsrDtr
5、XonXoff

参见： 基本数据类型


Rts流控制 (端口)

Rts流控制 属性 所属对象：端口

数据类型：整数型；指定通信时是否启用Rts流控制。

可供选择的属性值：
0、默认
1、禁止
2、启用

参见： 基本数据类型


Dtr流控制 (端口)

Dtr流控制 属性 所属对象：端口

数据类型：整数型；指定通信时是否启用Dtr流控制。

可供选择的属性值：
0、默认
1、禁止
2、启用

参见： 基本数据类型


数据源 (表格)

数据源 属性 所属对象：表格

数据类型：文本型；指定提供数据的数据源单元名。

参见： 基本数据类型


表格线颜色 (表格)

表格线颜色 属性 所属对象：表格

数据类型：整数型；

参见： 基本数据类型


背景颜色 (表格)

背景颜色 属性 所属对象：表格

数据类型：整数型；

参见： 基本数据类型


缩放比 (表格)

缩放比 属性 所属对象：表格

数据类型：整数型；指定显示表格时所使用的缩放百分比，值在 20 到 1000 之间。

参见： 基本数据类型


允许选择块 (表格)

允许选择块 属性 所属对象：表格

数据类型：逻辑型；指定是否允许操作者选择表格单元格区域。

参见： 基本数据类型


显示标尺 (表格)

显示标尺 属性 所属对象：表格

数据类型：逻辑型；

参见： 基本数据类型


显示空表格线 (表格)

显示空表格线 属性 所属对象：表格

数据类型：逻辑型；指定是否用虚线显示空表格线。

参见： 基本数据类型


禁止调整行高 (表格)

禁止调整行高 属性 所属对象：表格

数据类型：逻辑型；指定是否禁止操作者调整表格行高。

参见： 基本数据类型


禁止调整列宽 (表格)

禁止调整列宽 属性 所属对象：表格

数据类型：逻辑型；指定是否禁止操作者调整表格列宽。

参见： 基本数据类型


允许粘贴扩展 (表格)

允许粘贴扩展 属性 所属对象：表格

数据类型：逻辑型；指定当粘贴表格数据时，如果现行表格尺寸无法容纳，是否允许自动扩展。

参见： 基本数据类型


数据提供者 (数据源)

数据提供者 属性 所属对象：数据源

数据类型：文本型；指定本数据源所基于的数据提供者单元名，所有数据存取操作都将通过数据提供者实际完成。

参见： 基本数据类型


只读 (数据源)

只读 属性 所属对象：数据源

数据类型：逻辑型；指定是否允许操作者修改数据源内的数据，注意本属性并不限制在程序中直接修改数据。

参见： 基本数据类型


允许添加 (数据源)

允许添加 属性 所属对象：数据源

数据类型：逻辑型；指定是否允许操作者添加记录到数据源内，注意本属性并不限制在程序中直接添加记录。

参见： 基本数据类型


允许删除 (数据源)

允许删除 属性 所属对象：数据源

数据类型：逻辑型；指定是否允许操作者删除数据源内的记录，注意本属性并不限制在程序中直接删除记录。

参见： 基本数据类型


初始行数 (通用提供者)

初始行数 属性 所属对象：通用提供者

数据类型：整数型；

参见： 基本数据类型


初始列数 (通用提供者)

初始列数 属性 所属对象：通用提供者

数据类型：整数型；

参见： 基本数据类型


数据库文件名 (数据库提供者)

数据库文件名 属性 所属对象：数据库提供者

数据类型：文本型；

参见： 基本数据类型


字节集字段处理 (数据库提供者)

字节集字段处理 属性 所属对象：数据库提供者

数据类型：整数型；本属性指定对字节集类型字段的处理方式。

可供选择的属性值：
0、跳过
1、视为图片数据
2、视为字节集数据

参见： 基本数据类型


数据库密码 (数据库提供者)

数据库密码 属性 所属对象：数据库提供者

数据类型：文本型；本属性提供访问数据库时所需要的密码。

参见： 基本数据类型


类型 (图形按钮)

类型 属性 所属对象：图形按钮

数据类型：整数型；

可供选择的属性值：
0、按钮
1、选择框

参见： 基本数据类型


选中 (图形按钮)

选中 属性 所属对象：图形按钮

数据类型：逻辑型；当类型为选择框时，本属性为当前选中状态。

参见： 基本数据类型


正常图片 (图形按钮)

正常图片 属性 所属对象：图形按钮

数据类型：字节集；本属性指定在正常情况下所显示图片(不支持ICO或CUR图片数据)。

参见： 基本数据类型


点燃图片 (图形按钮)

点燃图片 属性 所属对象：图形按钮

数据类型：字节集；当类型为按钮时，本属性指定当鼠标移动到按钮上时所显示图片(不支持ICO或CUR图片数据)。

参见： 基本数据类型


按下图片 (图形按钮)

按下图片 属性 所属对象：图形按钮

数据类型：字节集；本属性指定当选择框被选中或者按钮被按下后所显示图片(不支持ICO或CUR图片数据)。

参见： 基本数据类型


禁止图片 (图形按钮)

禁止图片 属性 所属对象：图形按钮

数据类型：字节集；本属性指定当按钮被禁止后所显示图片(不支持ICO或CUR图片数据)。

参见： 基本数据类型


透明颜色 (图形按钮)

透明颜色 属性 所属对象：图形按钮

数据类型：整数型；指定所有图片中透明部分的颜色。如果为“#默认色”常量值，则表示无透明色。

参见： 基本数据类型


连接文本 (外部数据提供者)

连接文本 属性 所属对象：外部数据提供者

数据类型：文本型；本属性指定用作打开数据库的ODBC连接文本。

参见： 基本数据类型


查询SQL (外部数据提供者)

查询SQL 属性 所属对象：外部数据提供者

数据类型：文本型；本属性用作指定数据库中的数据表名或者用作查询记录集的SELECT类SQL语句。

参见： 基本数据类型


左边 (随想按钮)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (随想按钮)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (随想按钮)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (随想按钮)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (随想按钮)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (随想按钮)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (随想按钮)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (随想按钮)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


用户如何发布自己的程序到其它计算机

如何安装自己的易程序到其它计算机

返回首页

当程序编写完毕后，您可能要将该程序编译后发布到其它计算机上去运行，如果目的计算机上安装有相同版本的易语言系统，直接将编译后的EXE文件拷贝过去即可，否则执行以下A或B方案之一：

A方案：执行系统菜单功能“程序->编译生成安装软件”即可自动生成当前程序的安装软件，将此安装软件在目的计算机上运行即可完成安装，安装后的易程序可脱离易语言系统单独运行。

B方案：执行系统菜单功能“程序->独立编译”即可直接编译生成能够脱离易语言系统单独运行的软件，将此软件拷贝到目的计算机上即可。


页底导航

关于教程：飞扬工作室为本书作序 作者Liigo的话 前言 后记 致谢 后续版本 其它
相关文章：易语言 轻松编程 独特优点 发展方向 电子商务 市场调查 推广理由 历史版本 吴涛专访 更多>>
相关网站：中国易语言 易语言天堂 易语言论坛


New Page 1

易语言：全中文、全可视化，中国人自己的编程语言！

《易语言零起点》

  作者：Liigo 王军 BB88 酒桶醉死 世恒

foxzf优化2004.3.28晚

关于教程：飞扬工作室为本书作序 作者Liigo的话 前言 后记 致谢 后续版本 其它
相关文章：易语言 轻松编程 独特优点 发展方向 电子商务 市场调查 推广理由 历史版本 吴涛专访 更多>>
相关网站：中国易语言 易语言天堂 易语言论坛


New Page 1

轻松编程

   一位根本不懂英语的普通电脑用户，只要使用易语言，可以在短短三分钟内编写出视窗（Windows）系统下的电脑程序，您相信吗？不信，请随我一试：

    1、 启动易语言，在右边工具箱中选中“标签”，用鼠标拖动绘制到设计窗口上部中央；
    2、 在工具箱中选中“按钮”，用鼠标绘制到窗口下部中央；
    3、 双击所绘制的“按钮”，输入以下文字后回车：
        bq1.bt = "祖国您好！"

    至此，恭喜您，这个程序已经编写完毕，可以随时运行。至于运行效果是怎样，欢迎下载易语言看一看，绝不会让您失望！

    上面所提及的易语言，是由飞扬软件工作室推出的全中文全可视化电脑程序编写语言。她的诞生结束了外国编程语言长期垄断中国市场的局面，使中国人终于可以使用自己的母语来编写各种实用电脑程序。她具有最彻底的中文支持，从程序显示到程序输入，用户不需要接触半点英文。输入程序时只要懂得拼音就行了，譬如上面输入“bq1.bt”，系统将自动转换为对应的“标签1.标题”程序语句（“bq1.bt”为“标签1.标题”中每个汉字声母的组合）。程序全部以中文方式显示，运算符号全部显示为对应的中文符号，日期时间以中文格式呈现，以便于我国用户理解、阅读程序。语言中专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额处理等等。

   更酷的是，为方便初级用户入门，易语言使用流程图显示并编辑程序。用户在编写的过程中可以随时看到运行时程序所将经过的路线，有助于培养编程思路，提高解决问题的能力。

    还值得一提的是，易语言提供全程帮助跟踪支持，编程时用户可随时看到有关当前操作详细且全面的帮助信息。系统还可以将用户程序编译为 EXE 可执行文件，脱离语言环境单独运行。

另外，易语言提供 XBASE 形式的多用户数据库支持，任何曾经接触过诸如 DBASE、FOXBASE、FOXPRO 的用户可以非常轻松地学会使用易语言的数据库。

    为支持中高级用户，易语言提供了诸如对象、数据类型自定义、子程序指针、参考容器、常量、外部动态连接库命令调用等等很多高级语言特性。目前已包含数百条命令、数十类窗口单元数据类型、数百个常量。用户可以使用她来满足几乎所有的编程需求，具有极强的实用、适用及易用性，丝毫不逊于国外的同类软件。


New Page 1

电子商务

   目前在 Internet 上，商家获取客户的反馈只有通过表单，但这是一种十分局限的方式，不足于让客户充分表达他们的要求。请看下面这个简单的例子：

   现有一家旅行社，想在自己的网站上获取客户定单。如果采用通常的表单方式，只可能让客户表达出诸如参加到某个地方去的旅游团等等基本要求。但是，一些客户很可能有类似以下的要求：
如果我所想去的地方旅游者太多，我就改变计划加入另外一个旅游团；
如果我所想去的地方天气不好，我就取消这次旅游。

对于这样的要求，使用现有的表单系统肯定无法办到，它超出了表单系统的处理能力。我们对此的解决方案为：

   客户机上运行易语言电子商务版本的客户端，服务器端提供一个要素库，内含所有书写要素的声明。当客户使用该客户端软件访问某服务器时，易语言电子商务版本自动根据指定服务器端的要素库，动态构造出一个完全图形化的环境，用作客户书写他们的请求。完毕后，该请求被转换为易程序，发送到服务器端处理（即执行）。

   按照我们上面的例子：服务器端应该提供下面这两个要素的声明：“天气”、“旅游者数目”。注意只是声明，实际对要素的处理在服务器端，所以要素库的尺寸非常小，适合在 Internet 网上即时传输。

   客户端得到要素库后，构造出书写环境，客户即可进行类似下面的书写（当然是全图形界面的，下面仅用作介绍）：

   如果 旅游者数目 多
   就 去xxxx旅游团
   如果 天气 不好
   就 放弃旅游

   书写完毕后，此信息被自动转换为易程序，发送到相应服务器端。服务器端可以将此程序存放到数据库中等待相应要素数据被提供后（譬如得到这几天该地方的旅游人数或天气预报信息）运行或者立即运行。相关回复信息被送回到客户端。

此交流方式有如下优点：

1、客户能够书写复杂型请求；
2、由于所提出的请求程序在服务器端运行，客户不用担心自己的安全问题；
3、由于易语言客户端软件根据指定服务器端的要素库即时构造特定的书写环境，用户使用单一版本的易语言客户端就能够访问网络上所有类型的服务器，它们是一对多的关系；
4、服务器端能够非常简单地处理来自客户的请求，即运行该程序；
5、服务器端能够随时通过更改要素库来修改或增强对所有客户的服务内容。

也有一些缺点：

1、客户需要使用易语言电子商务版本的客户端。改善方法：易语言客户端软件提供网络自维护功能；
2、对客户的素质要求略高一些。改善方法：可以通过简单化、形象化客户端软件的书写环境及提供大量的向导来解决。


New Page 1

发展方向—— 未来发展的几个可能版本

〈一〉、直接面向最终用户的电脑编程语言：

   这是目前易语言的发展方向，现在的版本主要针对电脑初级用户，以后会逐渐向初中高级过渡。

〈二〉、行业专用语言：

   也就是针对譬如教育、金融、财税等各行业应用开发专用的语言环境。就目前来说，在教育市场，易语言凭借其友好的界面、全可视化编程等优势有望获得较大的发展。试想如果易语言能取代BASIC或者FOXBASE成为计算机应用水平考试的指定语言，那在商业方面将会是怎样一种情景？况且论实用性易语言绝对在前二者之上。

〈三〉、脚本定制语言：

   使用易脚本定制语言，用户可以完全根据自己的具体需要定义属于自己的脚本语言环境，所有的语言基本要素都可以被重新定义，可以认为是“定制语言的语言”。本版本的表现形式为一个 ActiveX 控件，用户可以嵌入在自己的程序中使用。

〈四〉、架构语言：

   使用易架构语言，用户可以架构自己的系统。由于易语言全中文支持，易用性高，因此当作一个组件架构工具同样有很好的前景。比如，如果现在想开发一份财务系统进入市场，当然就目前来说，这需要相当的代价，但是如果和易语言结合起来，这个产品就会有相当的优势。为什么呢？因为可以将财务系统的各模块拆分开并提供针对易语言的接口，用户可以通过易程序来定制！这时整个产品的可定制性是远远超过市场上任何一套现成的财务软件的。这就是将易语言作为组件架构工具使用的一个例子，同样的方式，可以架构任何的系统。

〈五〉、前端语言：

   易前端语言主要用作提供其它编程语言的快速开发工具。此时用户所编写的易程序，可以直接转换为其它语言（如：VB、VC、DELPHI、C++BUILDER等）的源程序。在此版本中，将大量提供一些常用的功能模块，用户只需要进行简单的代码编写，就能生成所需语言的源代码。可以在所生成源代码的基础上进一步修改以得到更细致的功能。

〈六〉、电子商务语言：

   易电子商务语言相对于目前的电子商务模式具有不可比拟的优势，具体请见[电子商务]。


New Page 1

独特优点

①全中文编程：

   用汉字或者说汉语编写程序代码，这是易语言最大的特点，也是VB永远无法做到的。对于（初级的）中文用户而言，中文化的程序设计语言在可读性和容易上手等方面有着不可比拟的优势，这是易语言最大的竞争法宝。

②全可视化的编程环境：

   一般的可视化编程语言，仅支持图形用户界面的可视化设计操作。而易语言除了支持界面设计的可视化，还支持程序流程的即时可视化。用户在编写程序的过程中，可以即时看到当前程序的运行流程及路线，以助于培养编程思路，提高解决编程问题的能力。这几乎是个为初级用户量身定做的功能。凡是学习过编程的人，都画过程序流程图。对于初学者来说，流程图是理顺程序设计思路、明确逻辑关系的最好办法。而易语言可以做到程序流程图的“即输（输入）即画”，极大地方便了初级用户。 ③.中国本地化特色：

   除了语句的中文化之外，语言中还专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额的处理。并且在以后版本中此方面的功能还将会继续得到大量扩充及增强。


New Page 1

吴涛专访—— 《大众软件》 《大众网络报》

一、《大众软件》杂志对易语言作者吴涛的专访：

闫辉：吴涛先生，请介绍一下您是如何开始接触计算机和编程的呢？

   吴涛：我于1989年进入湖北省机电工业学校，1990年时开始学习计算机，主要是自学。当时还是APPLE机和中华机，上机机会很少，比较艰苦，还记得那时班主任胡建明老师给了我很大的帮助。毕业分配后开始学习PC机，XBASE、C、C++、PASCAL、FORTRAN乃至汇编、DOS操作系统内核都学过。这一学习阶段我有一个很大的特点，就是非常想了解最底层的东西。在学校时，曾经把中华机的全部监控程序都抄录下来仔细研究，到现在都还记得6502汇编语言指令。后来到了DOS，也曾经研究过MSDOS 3.3的系统代码。

  闫辉：听说您曾经参与了CCED2000的开发工作，当时情况是怎样的呢？

   吴涛：我于1994就开始了共享软件的开发。当时看到软件都必须在中文操作系统的支持下才能处理汉字信息，于是我开发了一份无须中文操作系统支持的文字编辑系统。它里面自带汉字显示字库和多种输入法，并且可以直接读取常见汉字系统的打印字库以进行打印，可以看作是中文操作系统和文字编辑系统的组合，通过注册的方式发行。不过很可惜，当时没有想到去普及它。到了1998年的时候，应北京乾为天公司的邀请，我与该公司一起合作开发CCED 2000，在包括我在内只有两名开发人员的情况下，仅用了半年的时间就开发出了试用版，后来连续升级了五六个版本。不过很遗憾，虽然基于CCED2000软件本身的合作是成功的，但其它方面却是失败的。至于这份软件为什么没有在市场上引起应有的震动，由于不是我策划，也不便于多说。但是我想市场上同类产品竞争太激烈至少是一个方面的原因。

  闫辉：看来吴涛先生的开发历程还是很曲折的，那您是如何想开发一个完全中文化的编程语言的呢？

   吴涛：我开发易语言的初衷是想让更多的电脑爱好者能够加入到软件开发的行列中来。软件开发不应该是曲高和寡的行业，而应该真正属于大众，这样有利于我国软件事业的发展。有很多人想学编程，但他们一看到满屏都是英文，通常的反映就是：“呵，还要学英文哪？”，基本上就放弃了。不是他们不想学，实在是门槛太高。我由衷地希望易语言能够在这方面帮助他们。另外易语言对于在校学生尤其合适，因为他们基本上没有或者很少有计算机专业英语能力，但在这方面的求知欲又非常强，易语言能够完全满足他们在这方面的需要，培养他们的兴趣，引导他们入门，以期得到更大的发展。易语言里面提供流程图功能很大意义上就是基于这个用户群体。还有很多DOS程序员未能成功地转向Windows，易语言对于他们也非常合适。

   在长期的开发过程中，我一直使用的是外国公司出品的编程语言，虽然我自己已经能够非常熟练地应用这些开发工具，但对此我耿耿于怀。我个人认为阻碍我国软件事业进程的根本原因在于中国人没有真正属于自己的编程语言。有一些国外编程语言虽然作了表层汉化，但那是不彻底的，也是绝对无法彻底的，除非他们重新开发全中文内核。有很多人想学会编写程序以灵活、充分地利用计算机资源，但是不懂英文（尤其是计算机专业英语），他们很难迈过这一道门槛。我想要是有一种全中文的编程语言，能够让多少人加入到软件开发的行列中来？尤其是我国人力资源丰富，这一点非常重要。基于这个心理，我于2000年初开始开发易语言。

   闫辉：是的，我前一段时间写关于印度软件业文章的时候，从中也体会到语言的障碍是软件开发中一个很大的因素。印度在这方面做得比较好，同他们的官方语言是英语是有很大相关的，希望E语言可以突破这种限制。那么您觉得现在E语言还有哪些缺陷和需要完善的地方呢？

   吴涛：现在易语言可以说刚刚诞生，作为一种编程语言，它的后续开发可以说是无止境，在目前版本（1.7版）后需要做的有：数据绑定、网络、全中文报表等等。另外文档和例程还需要继续增加。易语言还可以定制为其它软件系统的用户接口语言，譬如财务系统的功能配置和扩充语言，编排系统的宏语言等，能够极大地扩充这些系统的灵活性。总之，我将尽全力不断去完善它。

   闫辉：我们知道现在软件的开发方面，对项目管理的要求比较高，你在这方面有哪些经验教训呢？

   吴涛：在软件开发、项目管理方面，由于我已经开发了多份较大的软件（在此之前我编写的代码总量已经接近50万行），所以积累了一定的经验。我的总体感觉是软件的设计阶段非常重要，它应该占软件总开发周期的15%或者更多。尤其需要注意的是：在设计阶段一定要定位软件将来的市场和用户群，即软件是为哪一些人开发，对他们有什么用处。在开发阶段一定要围绕这个主题，再好的功能，如果没有用户去使用它，也是没有任何作用的。

   闫辉：我们有很多读者也非常希望能够成为一个程序员，但不知道如何着手。现在有了E语言这个适合中国国情的编程工具，一定会有更多的电脑爱好者进入软件开发这个领域，那您对这些初学者有哪些建议呢？

   吴涛：至于学习编程的方法，我觉得刚入门的时候应该是自下而上，具有了一定能力后，就应该自上而下。这里说的“上”是理论和概念，“下”是实际编程。对于初学者来说，刚刚一开始时如果就让他们去了解种种编程理论，如面向对象的编程方式等等，很有可能会让他们畏难而退，此时应该通过一些简单的编程来激发兴趣。在具有一定的编程能力后，如果不去了解编程理论知识，就会停滞不前。最终目的还是“下”，即实际编程能力。可以通过编写大量的程序来获得在书本中无法得到的经验和知识。

   我们可以从吴涛的身上看到很多优秀程序员的品质，他们为了自己的追求在不断地超越自我，不惧权威，勇于将自己的设想变成现实。虽然E语言的前途不会一帆风顺，但我们还是衷心地祝愿吴涛将这个语言更好地推广开来，同时也希望有识之士看到其中蕴含的巨大商机。<完> 返回

二、《大众网络报》对易语言的专访：

徘徊的愿望 作者：浪子雨枫

    最早接触易语言，是几个月前在网上闲逛时，偶然发现了有关易语言的介绍，里面提到的易语言的“全中文化编程语言”的特色让我产生了兴趣。于是，在好奇心的驱使下，本人下载了一份试用——记得当时下载的应该是1.3版本。对于这个安装文件大小还不到2MB的“袖珍”编程语言，刚开始实在是不敢抱太高的奢望。但没想到这个东西却很不简单：全可视化的程序设计环境，颇有些VB的味道；全中文的编程语句，让我第一次体会到用自己的母语写程序的感觉。整个开发环境小巧精致，但是功能决不简陋，整体设计颇具大家风范。于是，我对这个软件就多了一份特别的关注。易语言每次升级，必先下载试用。后来偶然联系上该软件作者吴涛，便开始了与他就易语言相关话题的一系列交流。

开发易语言的动机

    吴涛说，之所以要开发这样一个编程语言，是“因为中国没有自己的编程语言，特别是针对初级用户的编程语言。而初级用户群体在中国可以说是最大的用户群，因此也非常有市场。”显然，对于那些水平高超的专业程序员来说，编程语句的中文化并不具有什么太特殊的意义，有时甚至显得多此一举。但是对于那些占了绝大多数的初级用户而言，能够使用自己熟悉的中文来进行程序设计，无疑是一种非常理想的选择。

    而对于笔者的“初级用户是否需要懂得编程”的质疑，他做了如下的回答：“编程这种事情，确实不是每一个初级用户都会涉及到，但每个人都想学。尤其在目前不掌握一份技能就无法生存的社会大气候下，掌握电脑编程技术是很吸引人的，英语学习软件即是一例。只要足够简单实用，相信会有很多初级用户使用它。”

    实际上，像易语言这样的全中文化开发工具，不仅对于大量的初级用户具有极大的吸引力，而且在教育市场，易语言同样具有很大的优势。易语言的程序流程可视化的功能和全中文语句的特色，对于刚刚接触编程的学生无疑是极具亲和力的。使用易语言，编程初学者可以更容易地掌握程序的运行流程，并且更容易将算法写成可以实际运行的（易语言）程序。和现在学校中比较常见的教学语言PASCAL相比，易语言具有更多面向对象的特点，有助于学生接触、树立现代的面向对象的程序设计思想。这些优点使得易语言极有希望在教育市场上占据一片天空。

易语言的优势

    编程语言是整个软件业的基石，历来为各大软件业巨头所重视。作为一个全新的语言，易语言如何与市场上已有的大批优秀产品相竞争呢？尤其是像VB这样的产品，有微软巨头撑腰，有全球数百万的程序员作为其市场基础，其实力在全球无人可敌。一个小小的易语言真的能虎口夺食，与其抢夺市场份额吗？

    对此，吴涛是这样回答的：首先，易语言与VB的用户群体并不产生冲突，易语言主要针对我国的初级用户群体，这一部分用户是VB绝对无法覆盖的。而VB作为一种通用的开发工具，必须兼顾到各个不同层次的使用者的需要，在易用性和本地化上自然不可能面面俱到。其次，作为一个完全本地化的程序开发工具，易语言的优势主要体现在如下几点：

    第一是全中文编程。这是易语言最大的特点，也是VB永远无法做到的。对于（初级的）中文用户而言，中文化的程序设计语言在可读性和容易上手等方面有着不可比拟的优势，这是易语言最大的竞争法宝。

    第二是全可视化的编程环境。一般的可视化编程语言，仅支持图形用户界面的可视化设计操作。而易语言除了支持界面设计的可视化，还支持程序流程的即时可视化。用户在编写程序的过程中，可以即时看到当前程序的运行流程及路线，以助于培养编程思路，提高解决编程问题的能力。这几乎是个为初级用户量身定做的功能。凡是学习过编程的人，都画过程序流程图。对于初学者来说，流程图是理顺程序设计思路、明确逻辑关系的最好办法。而易语言可以做到程序流程图的“即输（输入）即画”，极大地方便了初级用户。

    第三是对中国本地化特色的支持。除了语句的中文化之外，语言中还专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额的处理。并且在以后版本中此方面的功能还将会继续得到大量扩充及增强。

易语言的不足

    所谓金无足赤，易语言作为一个个人开发、尚未定型并且是主要面向初级用户的开发平台，自然也存在着许多不足之处，例如，开发环境本身还不够稳定，存在着不少BUG，程序的容错性有待进一步提高。除此之外，还有以下一些弱项：

    对数据库的支持比较弱。易语言对数据库的支持主要是面向xBASE架构的，而对企业一级的SQL架构的大型数据库系统缺乏有效的支持，系统内部没有提供通用的数据库接口（类似于ODBC那种），这方面易语言明显不是VB的对手。虽然说初级用户对这部分应用的要求相对较低，但是老式的xBASE架构数据库体系逐渐被淘汰出市场是一个众所周知的现实。而数据库方面的应用开发占了整个初级用户应用开发的大多数。因此易语言要想获得更大的发展空间，就必须要及早加强对数据库的支持。

    缺乏网络应用开发支持。对网络的支持是衡量一个现代化软件开发工具的主要指标之一。而易语言目前还主要是一个面向单机应用的开发环境。也许是面向初级市场的定位让易语言对这方面不是非常侧重，但是这样的选择不但极大地缩小易语言的应用范围，也扼杀了易语言向更高端发展的可能性。因此，适当加强对网络开发的支持，对易语言来说是绝对有必要的。

    缺乏配套学习材料和书籍。作为易语言系统的一部分，作者随软件包提供了一个数万字的易语言知识库，包含所有函数、语句、规则的详尽说明。并且还撰写了一个《一步一步跟我学易语言》的连载形式的讲座。但是和其它被广泛使用的编程语言相比，易语言的相关配套资料、学习书籍等基本上还是一片空白。出现这种情况主要是由易语言目前用户数量有限、开发者资金实力不足等因素造成的。另外，除了易语言的主页以外，网上还出现了一些易语言的学习、交流站点，不过这些站点总的来说还是处在个人用户互相交流的阶段，没有形成系统的、商业化的运作。因此对于易语言的普及与发展所起到的作用也是较为有限的。

易语言的商业化前景

    谈到易语言的商业化前景，吴涛在充满了信心的同时也坦率地表示：“这是个长线的产品”。的确，一个开发工具不同于一个应用软件，不可能一推出就受到市场的热烈欢迎，并且获得利润。一个编程语言要想获得市场的认同，必须经过一个漫长的市场培育、发展的过程，逐渐培养一批忠实用户之后，才有可能获得可观的回报。而急功近利的做法只会适得其反。

    在教育市场，易语言凭借其友好的界面、全可视化编程等优势有望获得较大的发展。试想如果易语言能取代BASIC或者FOXBASE成为计算机应用水平考试的指定语言，那在商业方面将会是怎样一种情景？况且论实用性易语言绝对在前二者之上。但是这样的运作需要相当的资金和公关实力才能够进行。而作为个人开发者的吴涛暂时只能将其当作是一个美好的“愿望”。

    另一方面，吴涛也提出，可以考虑将易语言作为一个组件架构工具使用。由于易语言全中文支持，易用性高，因此当作一个组件架构工具同样有很好的前景。吴涛举了个例子：比如，我现在想开发一份财务系统进入市场，当然就目前来说，这需要相当的代价，但是如果和易语言结合起来，这个产品就会有相当的优势。为什么呢？因为可以将财务系统的各模块拆分开，用户可以通过易程序来定制！这时整个产品的可定制性是远远超过市场上任何一套现成的财务软件的。这就是将易语言作为组件架构工具使用的一个例子，同样的方式，可以架构任何的系统。

    无论是单独推出，还是作为其它产品的组件架构工具，易语言的商业前景无疑都是极为广阔的。只是在实现其商业价值之前，有多少人愿意为此做长线的投资呢？在短期的、小的商业利益和长期的、大的商业利益（但投资也是长线的）之间，应该如何取舍？这是摆在国内许多软件业者面前的一道难题。

易语言的现状

    到目前为止，易语言的用户究竟有多少？谁都没有一个精确的统计数字。虽然易语言网站的论坛上有许多人交流着有关易语言的各种问题，但也不可否认易语言起码在目前还并不为大众所关注。这就是现状，尽管有些令人泄气。很明显，吴涛并没有那么多的资金去打广告，况且他只是一个好的程序员，而不是一个好的市场推广专家。易语言本身也还没优秀到登高一呼就有大批追随者鼎力相助的地步（就像Linux那样）。一个编程语言毕竟不是一个应用软件，如果不能做好相关的宣传、市场培育等工作的话，要用户花费大量时间精力去学习使用一个“来历不明”的编程语言无疑是很难的。

    易语言最新版本是1.95版，而笔者最初接触的是易语言1.3版本。从1.3版到1.95版，应该说易语言的进步还是很大的。最新版本支持多用户数据库，支持MP3播放，还提供了一个850K的系统核心支持库的纯运行版本，以方便易语言程序的传播普及。

    在易语言网站的论坛上，每天都有爱好者自发地提出各种问题。这里的人气让我们看到了易语言强大的生命力。然而，如果缺乏必要的商业化运作，这种生命力是否会一直蓬勃发展下去呢？对此，我们恐怕很难给出乐观的结论。<完> 返回


New Page 1

市场调查—— 飞扬软件工作室

一、 易语言系统功能简要介绍：

   易语言是一款Windows环境下全中文全可视化的实用电脑程序编写语言。
自从电脑在中国被普及应用，用户所面对的全是英文版的程序编写语言，虽然一些语言的帮助和用户界面为在中国推广作了相应的汉化，但其本质仍基于英文，绝对无法汉化，程序仍必须用英文来编写，这样就导致相当多的用户因其英文水平差而放弃对编程的爱好。易语言的诞生结束了外国编程语言长期占据中国市场的局面，使中国人终于可以使用自己的母语来编写具有各种实用功能的程序。根本不懂英文或者英文了解很少的用户可以直接使用中文来编写程序，不存在任何障碍。
易语言具有独特的程序编写风格，她采用最直观的流程图编辑方式，即用户在编写程序的过程中可以清楚地看到程序的走向，从哪条语句开始，到哪条语句结束，与易语言的全中文环境相配合可以让用户一看就知道程序会实现什么样的功能。这对初级用户而言帮助极大，可以培养编程思路，积累解决实际问题的经验，并降低学习门槛。

   作为一份全中文编程语言，有一个很难解决的问题就是中文语句的快速录入，这也是所有其它编程语言未解决的问题。很显然，让用户使用输入法去一个汉字一个汉字地录入中文语句是绝对行不通的，易语言的解决办法是录入时直接使用拼音字母，即首拼（每个汉字声母的组合）、全拼或双拼方式。譬如：录入上图中的第一行中文语句，使用首拼方式只需输入以下文本后回车即可：
rg (sz1 > sz2)
   另外，易程序全部以中文方式显示，运算符号全部显示为对应的中文符号，日期时间以中文格式呈现，以便于我国用户理解、阅读程序。语言中专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额处理等等。

二、 易语言的市场定位：

   易语言所面向的用户群体是国内的初级电脑用户（初级用户是指没有或者很少具有编程经验并且没有英文能力或较差的电脑用户），兼顾中级。市场应用范围为初中级应用程序的开发。其主要原因为：

A、 初级用户是我国目前最大的用户群体，并且随着电脑的普及在迅速增长中。很多用户有丰富的业务知识但并不擅长于编程。他们并不想成为程序员，而只是想利用计算机解决工作中遇到的实际问题。由于这个目的，他们希望付出最少的学习代价来掌握充分利用计算机资源的方法；

B、 初级用户都具有英文水平差、基础薄弱的特点，他们学习VB、VC、Delphi等这些英文编程语言具有难度，并且付出学习代价太大。另外，如上一点所述，掌握编程语言、学习编程技术并不是其目的，能够解决其实际工作问题、提高生产效率才是其目的。易语言因其全中文全可视支持及易学易用实用，在此用户群体中能够具有优势；

三、 易语言与市场上其他同类产品之间的比较：

1、 易语言是目前市场上唯一具有全中文支持的编程语言；
2、 外国公司的编程语言产品，如VB、Delphi等，它们功能强大，并已有相当多的用户支持及丰富资源，但是由于没有全中文支持，并且对用户的素质前提要求较高，不会对易语言的用户群体造成很大的影响；
3、 目前国内也有类似产品出现，但由于技术含量不足，无法达到实用的程度，也不会与易语言形成竞争局面。

四、 易语言的市场推广分析：

1、 我认为，易语言不必作为单纯的编程语言来推广应用，而应该作为一种实用工具，一种能够帮助普通用户充分利用计算机来解决自己实际业务问题的工具进行推广。将以前只有程序员才能做的事情让用户自己来做，并且用户自己的业务经验要丰富得多。用户接受这种工具的前提一是要容易学习，二是要功能实用，但也毋须太强大，能够完成其绝大部分的业务需要即可。因为其目的并不是想成为程序员，太强的功能也同时会导致学习成本增加，XBASE系列数据库语言能够在中国长期使用就能够说明这一点。在这两点前提上，易语言应该说是目前最具有优势的。

2、 易语言由于其特点，在教育市场具有优势。试想，如果易语言能够取代目前还在学校中广泛使用的早已落后的BASIC语言，那将是什么情景。易语言无论是在本身语言的优越性（基于对象的可视化编程、事件驱动方式、直接架构于Windows平台等等），还是易学性（全中文全可视化编程）、及与其他更实用的英文编程语言的可接轨性（基于对象模型和事件驱动的编程方式）等都远胜于BASIC。另外，在不懂电脑就是文盲的今天，成千上万的家长肯定也愿意为此付出投资。现在的中小学生及以前很少接触电脑编程的用户，如果直接去学其他英文编程语言将很困难，因此，易语言将成为他们所唯一能够选择的产品。

3、 易语言并不局限于在中国国内发展，在所有使用远东语系的国家或民族，比如日本及韩国，她都有相同的优势。易语言可以很方便地进行本地化，所需要的改变就是将内置的中文程序输入法改变为对应国家或民族的文字程序输入法，再根据本地习俗做一些修改即可。

4、 发展易语言能够带来无形资产收益。在计算机软件系统中，程序编写语言为除开操作系统外最重要的组成部分，是所有应用软件的基础。目前操作系统已经有linux替代品，但编程语言除了易语言还没有其他这样的产品。易语言的可宣传性要强过其他软件产品。易语言推出后所收到的用户来信、易语言的用户论坛、来自媒体的免费宣传（见附录）都能证明这一点。

5、 现在中国已经加入WTO，软件版权的保护必将越来越完善，此为大势所趋。现在是进入利润空间最大的通用软件市场的最佳机会，也是易语言加快发展的最好机会。

6、 编程语言类产品具有技术研发难度大、投资成本大、开发周期长的特点，发展易语言能够避免来自其它公司的简单模仿竞争。 总结如下：
   易语言目前至少在以下两个市场领域具有优势，一是用户业务实现工具，二是编程教育工具。在实用程序开发语言领域具有潜力。另外，易语言的推广发展会带来其他方面的利润空间，比如无形商誉、图书资料、技术咨询等方面。依托易语言平台，还可以向其他应用领域发展。比如可由用户自行定制实际业务流程的财务系统、进销存系统等等，这些系统由于其可灵活定制性，将比市场上的其他同类产品具有优势。

五、易语言现状：

   易语言最新版本2.0升级代码部分已经近完成，新的版本更容易学习和使用，支持更强的功能，包含电子表格、数据中心、单文件编译等。此版本将进一步拓展易语言的现有用户群体。

六、易语言版权情况：

易语言已经在2001年7月5日登记得到计算机软件著作权，登记号2001SR1957，著作权人吴涛。

七、附录：

1、易语言推出后媒体进行的一些自发宣传报道：
《电脑报》2000年第43期第24版《原创天地》栏；
《程序员》2001年第4期30页；
《电脑爱好者》2001年第8期85页，标题“轻松编程不再是梦”；
《大众软件》2001年第2期32页“易语言专访”；
《电脑商情报》2001年9月第233期41页，标题“用易语言DIY自己的MP3播放器”；
《电脑商情报》2001年10月第275期42页，标题“易语言应用之简易时钟”。
2、易语言网站地址：http://eyuyan.com，里面有易语言用户论坛及易程序交流园地。


New Page 1

历史版本

Liigo注：易语言从2000年初开始开发，至今先后升级了20多个版本，目前最新版本为2002年6月17日发布的2.3版。以下是易语言几个重要版本的升级项目：

{易语言2.3测试版}(发布时间：2002/06/17)

一次下载地址：[官方Http] （程序大小为3.42M）
分盘下载地址：[Disk1] [Disk2] [Disk3]
Win 95 正常使用补丁 ：[官方Http] [厦门Http] (在Windows95系统下运行易系统或易程序前必须首先安装此补丁)

以下内容为2.3测试版升级内容：
1. 改进了易向导支持.
2. 在独立编译时可以将DLL命令所使用的DLL文件一起捆绑进EXE文件.
3. 标签单元增加了新事件.
4. 在程序设置里添加了删除程序图标功能.
5. 易模块支持自定义数据类型.
6. 其它.

{易语言2.2测试版}(发布时间：2002/05/26)

以下内容为2.2测试版升级内容：
1. 增加了易向导支持.
2. 易模块可以处理窗口事件.
3. 输入框命令增加了密码输入方式.
4. 编译后EXE文件中的备注信息被去除.
5. 菜单编辑器更方便,标题和名称自动同步.
6. 端口组件增加了"奇偶校验方式"属性.
7. 表格组件支持缩放打印(在“打印设置信息”数据类型中可以设置).
8. 打印机对象的“开始打印”命令增加了纸张设置参数.
10. 编辑时支持滚轮.
11. 表格组件支持滚轮.
12. 表格增加立体外观.
13. 易数据库的文本字段最大宽度扩展到 1024 字符.
14. 对易系统的所有文件进行了目录分类.
15. 组合框和列表框增加了"除去重复"属性.
16. 改进了外部数据库的"读"命令.

{易语言2.1测试版}(发布时间：2002年4月中旬)

以下内容为2.1测试版升级内容：
经过作者Liigo同意,提供了他所编写的"ACCESS数据库使用详解.doc"教程和相关例程,以帮助大家学习如何操作外部数据库.
经过作者ZL同意,提供了他所编写的"推箱子1.6"程序给大家参考,具体文件为系统目录下的"推箱子16.rar".
新增加"外部数据提供者"单元,可以直接将外部数据库绑定到数据源;
表格数据绑定时能够根据数据库列宽自动调整表格列宽;
窗口可视化编排新增对齐工具条;
窗口可视化编排时支持在窗体上直接单击加入新单元;
表格光标闪烁现象得到改善;
修正了一些错误.

{易语言2.0测试版}

以下内容为2.0测试七版升级内容：
系统的编辑和调试功能更稳定.

以下内容为2.0测试六版升级内容：
1. 增加了“外部数据库”组件，用作支持使用ODBC直接对其他所有类型数据库进行操作；
2. 窗口增加了"被显示"和"被隐藏"事件；
3. 增加了对DLL命令调用时自定义数据类型参数中文本、字节集成员的支持；
4. 修改了表格组件中横向标尺文本及当绑定到数据库时的标尺标题；
5. 表格组件中可以通过表头固定行列对行列宽度进行调整；
6. 调试易程序时系统更稳定。

以下内容为2.0测试五版升级内容：
01、支持独立编译，所编译出来的EXE文件可以直接拷贝到其它计算机上运行，无需任何其它支持文件；
02、支持数据报表及报表的打印、打印预览。利用新增加的“表格”控件，用户可以轻松制作出数据报表；
03、全面支持数据绑定，用户可以轻松编写出各种数据应用程序；
04、其他新增功能：托盘图标、读写注册表默认项、系统底色、网络等等；
05、系统及用户编写的程序运行更稳定更快捷、更可靠；
06、重新开始计时,以前已经到达时间限制的可以再次使用；
07、"置托盘图标"命令增加了"提示信息"参数；
08、"打印设置信息"中增加了"每页打印行数"成员,以支持强制换页；
09、更换了易程序图标；
10、修正了"加入成员"函数的问题；
11、修改了 egrid.e ,增加了表头行列设定菜单；
12、增加图形按纽、报表、数据源、通用提供者、数据库提供者控件。
13、增加了重要的功能，就是易模块的编写，就也就相当于windows中的dll的编写。

{易语言 1.963 版}

1、为彻底免费版本，不含任何使用期限及功能限制；
2、提供了 krnl.fnr 系统核心支持库纯运行版本，尺寸仅为 850 KB。具体使用方法请见 1.95 版知识库中的“安装自己的易程序到其它计算机”章；
3、媒体播放类中增加了“播放MP3”命令，用作支持 MP3 音乐文件的播放。具体请见例程“mp3播放者”。

{易语言 1.95 版}

1、为彻底免费版本，不含任何使用期限及功能限制；
2、提供了 krnl.fnr 系统核心支持库纯运行版本，尺寸仅为 850 KB。具体使用方法请见 1.95 版知识库中的“安装自己的易程序到其它计算机”章；
3、媒体播放类中增加了“播放MP3”命令，用作支持 MP3 音乐文件的播放。具体请见例程“mp3播放者”。

{易语言 1.9 版}

1、“选择夹”单元加入了“隐藏自身”属性，以支持动态显示单元群。具体请见“向导”例程；
2、“窗口”单元加入了“置外形图片”方法，支持使用图片作为窗口外形。具体请见“新年快乐”例程；
3、调试时易程序不再在 Windows 系统的临时目录中运行，而改变到了易源程序所在的目录，以方便用户在程序中引用文件；
4、其它方面的一些改进；
5、注意：如想让以前试用版本所编译的 EXE 程序文件在 1.9 版后可以运行，必须重新编译。

{易语言 1.8 版}

1、克服了 Intel CPU 的浮点数精度转换误差；
2、提供了不规则窗口形状支持；
3、增加了“取标记单元”命令；“超级链接框”窗口对象增加了“跳转”方法；“窗口”数据类型增加了“随意移动”和“外形”属性；
4、修正了一些错误。

{易语言 1.7 版}

1、包含易语言知识库 1.7 版；
2、包含两个较大的例程：超级方块（游戏）、好友录（数据库应用）；
3、在系统处理类中增加了“延时”、“连续播放”、“取文本注册项”、“取数值注册项”、“取字节集注册项”、“写注册项”、“删除注册项”、“注册项是否存在”命令；在程序调试类增加了“是否为调试版”命令；在文件读写类中增加了“插入字节集”、“插入文本”、“插入文本行”、“删除数据”命令；在窗口属性中增加了“在任务条中显示”属性；“发音比较”命令增加了一个参数以支持模糊搜寻（不会影响到用户以前的程序）。
4、改正了 1.6 版中的一些错误。


New Page 1

在全国推广易语言的三大理由

一、易语言是全世界唯一具有全中文内核支持的计算机编程语言

    VB 等计算机编程语言的汉化版本看起来好象支持中文，但仅仅限于表层。它们是采用处理英文的方式来处理中文，它们绝对无法根据中国的实情提供相关的功能。并且所有的编程语法元素如命令、数据类型等，都必须以英文显示且输入，要学习使用这些语言就必须首先学习计算机专业英语，这就极大地限制了在国内推广应用。

二、易语言是面向初级用户的最佳计算机编程语言

    与 VB、DELPHI 这些编程语言不同，易语言从一开始设计，其目的就是针对不懂编程或者编程经验极少的初级用户。在我国，这部分用户具有相当巨大的数量。如果能够通过推广应用易语言而将他们带进计算机软件开发的大门，对于我国高科技事业的发展将具有非常重要的意义。尤其是在校的学生，正处于求知欲极强但又根本没有任何编程经验的时期，易语言对于他们来说具有极大的促进作用。

三、易语言是完全属于中国人自己的计算机编程语言

    易语言的全部系统代码，都是我们自行开发，没有使用任何国外公司的任何现有技术，包括数据库支持。计算机编程语言是所有应用软件的基石，如果易语言能够在国内推广应用，对于发展我们自己的民族产业，防止因大量使用国外公司技术而产生后患或者受制于人，具有极其重要的意义。


New Page 1

易语言

   易语言是由飞扬工作室出品的 Windows 环境下的全中文实用电脑程序编写语言，她支持现今所有的 Windows 32 位操作系统，即：Windows 9X、ME、2000、NT 等，提供了中国电脑用户开发 Windows 应用程序最方便直观、快捷实用的方法，适合于初中级别电脑用户使用。尤其是根本不懂英文或者英文了解很少的初级用户，可以通过使用本语言极其快速地进入 Windows 程序编写的大门。

易语言与其它编程语言相比，具有以下主要优点：

一、全可视化支持

   一般的可视化编程语言，仅支持图形用户界面的可视化设计操作，而易语言除了支持此类可视化，还支持程序流程的即时可视化呈视。即：用户在编写程序的过程中，可以即时看到当前程序的运行流程及路线，以助于培养编程思路，提高解决编程问题的能力；

二、全中文支持

   作为一款由中国人自己设计的编程语言，易语言在中文处理方面做了大量的工作。用户在编写程序的过程中如果愿意，可以不接触任何英文。根本不懂英文或者英文了解很少的用户可以直接使用本语言来编写程序，不存在任何障碍。

<1>、中文名称的快速录入。易语言内置四种名称输入法：首拼、全拼、双拼、英文。三种拼音输入法均全面支持南方音。使用这些输入法用户能够以英文语句的录入速度来录入全中文程序语句；

<2>、程序全部以中文方式显示，运算符号全部显示为对应的中文符号，日期时间以中文格式呈现，以便于我国用户理解、阅读程序；

<3>、语言中专门提供了适合中国国情的命令，如中文格式日期时间处理、汉字发音处理、全半角字符处理、人民币金额处理等等。以后此方面将会继续得到大量扩充及增强。

三、易语言由基本系统和运行支持库两部分组成，两者之间通过使用飞扬工作室自行定义的接口技术进行协作

   运行支持库内提供了易语言的所有语言要素，如：命令、窗口和报表单元数据类型、普通数据类型、常量等等，还可以通过提供“加入（AddIn）”功能来扩充易语言基本系统。运行支持库可以被随意增减、抽换或升级，基本系统对运行支持库提供了详细的版本控制。本技术给用户带来的最大好处是：

<1>、用户可以根据行业或自身需要定制易语言；

<2>、由于运行支持库的不断增多、升级，易语言的功能将被迅速扩充；

<3>、由于运行支持库可以仅包含声明而不包含实际的运行支持代码，并且可以随时被更新或抽换，这样可使人们通过国际互联网与服务器进行远程易语言交流（譬如复杂型电子商务、远程控制等等）成为可能，此是以后易语言互联网版本的发展方向。

四、即时编译并自动规范格式的语句录入方式

   在输入程序的过程中，每条程序语句被录入后，都将被立即进行初步编译，一些通常的语法错误，将及时得到报告并要求进行修改。所录入语句被自动规范为统一格式后存放，因此任何人所编写的任何程序其呈现格式都完全一致。对于应用程序的协作开发、交流和维护非常有利。

五、系统内置的自动名称管理器能够对用户所定义的各类名称进行跟踪管理

   譬如：假设程序中现存在一个名为“取最大值”的子程序，而且在很多地方都调用了该子程序。现在用户根据需要想把该子程序更改为另外一个名称，在传统的编程语言中，用户需要先更改该子程序的名称，然后搜寻整个应用程序，逐一找到使用了该子程序的地方，把名称相应地改变过来。在易语言中，用户只需更改子程序名称即可，程序中其它所有使用了该子程序的地方，其名称都将被自动快速地更改过来。

六、贯穿全程的即时且全面的信息帮助

   用户在进行任何操作的过程中，均能够在状态行上或提示夹中获得有关当前操作位置的详细相关信息。譬如：如果用户移动光标到某程序行，马上就能够看到此程序行上所有命令的定义、参数、使用方法等等信息。


前言

易语言作者吴涛曾为易语言纂写了数量极大的帮助文本，计十万字之多。然而仍有不少朋友抱怨不够详细。给我感触最深的是：一位网友告诉我，他第一次写程序时，为了消去“草稿”二字，竟然用了半个多小时！从那一刻起，我就下决心做一篇入门性教程。

我想为易语言写教程已经有很长时间了，只是找不到合适的机会。这次抓住，决不放过！

“这半年多以来我一直有很强烈的为易语言写教程的愿望。这期间我每当读到关于学习编程的书籍，总会不由自主地想到尚在蕴酿中的我的易语言教程， 考虑如何借鉴其好的方面、避免呆板的教条。”

“ 我的未来的易语言教程，将定位为“最最初级的入门教程”，总体原则是：以实例为中心，配大量图片，每一步操作都作极为详细地说明，更重要的是告诉用户如何利用易语言内置帮助系统和知识库寻求帮助。”

“ 关于总体方案，我暂时是这样构思的：先是从简到繁的众多完整的编程实例（这是教程的主体，通过它讲解所涉及到的方方面面）；然后分专题总结讲解易语言各个功能模块；然后是附录部分，提供一些有用的建议、信息或资料。（请指教！）”

“ 关于编写规划：打算从现在开始，用3个月的时间， 写出教程第一稿。（我现是大四毕业生，本学期做毕业设计，时间、条件均较为充分。从现在立刻开始，因为我已经做了很多准备工作。）”

“ 易语言教程的编写，先前已有很多热心朋友去做，可惜均不果而终！对您也是很遗憾的事情。我无意大张旗鼓，四处宣扬，甚至没打算告诉您！但我绝对会认真对待。我会用心去做，可我无法承诺什么……”

我对完成正在规划中的未来的“易语言零起点”充满信心。我的信心来自：

1。定位正确
最最初级的入门教程是目前易语言最急需的，因为易语言面对的是最初级的用户，他们缺乏最基本的编程知识，入门有一定的难度，而吸引这一批人推广易语言的基础。虽然进阶教程也有需求，但不是最急需的，因为这一部分人已经有能力自己摸索和与网友交流。

2。规划详细
从很久之前就开始策划，参阅了大量同类书籍。目前各种工具（Frantpage, Dreamweaver, Photoshop, Flash, Visual CHM ）均已备齐，各种基本操作已经熟悉。（教程最终将编译为CHM文件。）将在三个月以内推出第一稿。

3。真正面向初学者
超大数量的图片，超级通俗的解释，以及众多例程，保证让人一学就会。

4。时间、设备有一定保障
正做毕业设计，分配有个人电脑，工作任务（一个信号分析软件）不是很大。

4。我的能力
虽然不怎么样，但写入门教程总该绰绰有余吧。（但要写好似乎也不是很容易^_^）

5。您的支持

6。我的动力
对易语言学的强烈的热爱。

我写教程，只是因为我热爱易语言，想为她做一点力所能及的事情。我真心希望易语言走好，同时期盼《易语言零起点》教程能够为易语言的推广尽一点绵薄之力。祝福易语言，祝福飞扬，祝福所有的易语言爱好者们！

Liigo，2002/6/30 于水泊梁山


作者Liigo的话

1、想不想编程？

想不想编程？想！...可是不会呀！关键是我等菜鸟看不懂英文，怎么学编程？

现在再持这种思想就大错特错了，目前已有一种编程语言“易语言”在网络上非常流行，它可以满足菜鸟学习编程的愿望。易语言是全中文的界面，而且连程序代码都是用中文写的！它采用当前最流行的可视化开发、基于控件的技术，只要拖动几次鼠标即可设计出漂亮、标准的窗口界面。至于程序代码，因为完全是用中文写成的，所以既易读又易懂，最适合我们这些讨厌英文又梦想有朝一日成为程序员的“希望之星”。
担心用中文写程序输入会很麻烦？易语言的作者早已为我们考虑好了：只要打上每一个汉字的拼音首字母（声母）就行！下面是易语言中常见的语句：

编辑框1.内容=“我爱编程，我想成为中国的比尔·盖兹”

输入时只要键入：bjk1.nr=“我爱编程，我想成为中国的比尔·盖兹”，打回车就能自动转换成正确的语句。（注：bjk nr 分别是“编辑框”“内容”的声母。）简单吧？如果是用英文的话恐怕要写成：

EditBox1.Caption=“我爱编程，我想成为中国的比尔·盖兹”。

看！“编辑框.内容”在易语言中输入时只需击键6次，而用英文则需15次。

用易语言写出的程序，能够编译成Windows标准的可执行程序（EXE文件），脱离易语言环境独立运行。动心了吗？快来试一试吧，把自己编的软件拿给亲朋好友炫耀，或放到个人主页上供网友下载，实在是“酷毕了”！（易语言可以免费下载。）

2、怎样着手学习易语言？

易语言是面向非计算机类人员的编程语言。易语言的用户对在自己工作领域以内的业务可能非常熟悉，但对于编程，或许一无所知。他（她）们选择易语言，往往只是为了一些简单的应用。

我是不喜欢那种教科书式的讲解，那样只会把读者教成书呆子！我们往往有这样的感受，读了一本书下来，一大堆的理论倒是见了不少，可是学到了什么呢？想一想还真的没有。总不能要我把那些所谓的“概念”“理论”一个个都背一来吧？再说现在的人们，哪有时间去看那些“闲书”！大家都忙的很，即使不忙的，也都希望能“快速入门”。没有人愿意蹲在角落里啃书。

我的“易语言零起点”教程打算这样写。先简单介绍易语言及其开发界面后，立即进入实例讲解。通过多个有趣且十分简单的例子，让大家迅速看到用易语言编程的全貌。这样，也许过不了半个小时，您就已经能够拿出得意之作向女友或家人炫耀了！这就是所谓的“快乐编程”——当一个人感到做一件事很快乐的时候，他的动力是无限巨大的。

无论用哪一种语言来编程，学习编程思路都是最重要的。而学习编程思路，最主要的方式就是阅读别人的源代码，还有就是读书。——当然这一步要在基本入门之后再进行。

3、我们忽视了初学者

其实我也注意到，论坛中提问的贴子回复量和点击量都是最高的。可见大家在心底都有意帮助初学者。但仅有这些是远远不够的。

一段时间以来，我们都不约而同地去探索发掘易语言的潜力，编出了一系列复杂且功能较强有一定实用性的较大型软件。已经有很长时间没有发现比较简单专门针对初学者的源程序。好像大家（包括Liigo在内）共同走进了一个怪圈，都去研究那些能证明易语言能力，也能证明自己能力的东东，却无去暇顾及为初学者写些简单的东西。而这一现象也多少导致初学者即使写了个程序也往往会因为自叹水平不如而羞于发表。这样一来，无疑会阻碍易语言的发展。

我还记得我刚学易的时候，那时交流中心都是很小的程序，我对一个设置标签渐变背景色的例程记忆犹新，就是它激起了我对易语言的兴趣。最近已几乎见不到这样的小程序了。但是不可否认，它对初学者入门是非常有用的。让一个几乎不懂编程的人一上去就读复杂、大块的程序是不可能的。

我们总体的编程水平和质量比以前无疑有了很大的提高，但不管什么时候，总有初学者源源不断地加入我们的阵营，我们必须对他们负责，不断地为他们编制小型例程，让他们尽可能平坦地快速走进易语言的世界。

最后，作为一个解决方案，我强烈建议在源程序交流中心增设“初学者园地”一栏，专门发表小型简易源程序。必须保证这些小程序的难度在最低限，且永远在最低限。

4、易语言是一门容易掌握的语言

也许刚接触易语言，会有一点不习惯（主要是因为程序代码的输入方式较为特殊），可一旦入门之后就会发现，要掌握易语言很容易，要精通也不会很困难。这主要得益于易语言的小巧。记得有人曾经讲过，可能几年就能精通TC（Turbo C，Banland出品的一个非常有名的DOS程序编写软件），但要精通VC根本是不可能的。我觉得这句话完全可以用到易语言上：也许几个月就能精通易语言。确实，像MFC，OWL，VCL，CLX之类，都十分的庞大繁杂，即使是专业程序员，也只能用到哪一方面现学哪一方面。而易语言就不同了，它的内容很少，而且都鲜明摆在那里，只要能通读一遍《易语言知识库》（根本花不了几天时间），基本上就能掌握它的全部，如果再多一些编程实践，离精通就不远了。

我现在有一种感受就是，用易语言编程，能做什么事、怎样做、做到什么程度，不能做什么事，在写代码之前，基本上能说个八九不离十。也许这就是易语言的好处吧。

Liigo，2002/6/30 于水泊梁山


后记

我对本教程的编写结果不是很满意。在我给飞扬（吴涛）的通信中，我把它（教程）称为“失败的作品”。是的，的确是一个失败的作品。但是它终究是我的作品，即使是失败的，也无法掩盖我这三个月来为此付出的努力。我爱我的作品，虽然它是失败的作品。然而对于易语言爱好者，我只能说一声“抱歉”，因为我不能做到最好，——虽然那是我所永远追求的。

在《易语言零起点》教程的撰写过程中，似乎逐渐偏离了原来的轨道。我当初设计时，把它定位为“最最初级的教程”，只要能把初学者带入易语言就算成功，根本没想过要怎样面面俱到、事无巨细地介绍易语言。教程的前两章基本是按照当初设计的思路进行的，可以说算是成功——至于最终的成效如何，还要等实际应用之后再作定夺。从第三章（“易语言控件”）开始，我陷入了困境。全面介绍易语言控件不是很容易的事情，而且很多属性方法事件初学者根本不必理会，但重要的和次要的又不是截然分开的，如何取舍是另一个问题，况且如果仅介绍个别控件的个别属性方法和事件，又似乎不象一个教程。我就是在这种复杂、矛盾的心理下，开始了第三章的编写。开了头之后，我发现这是一个“鸡肋”：继续吧，无非是抄写支持库和知识库（稍微加上一些自己的所谓应用经验，再补充几个例程），对初学者帮助不大；就此放弃呢，则教程被拦腰斩断，分明是不负责任的做法。可以说我就是硬着头皮坚持下来的。

整个教程的前期准备大约有超过半年的时间，实质性编写是从2000年4月初到6月底这将近三个月的时间——正好是我大学本科最后一学期毕业设计的时间。我常常对同学开玩笑地说，“《易语言零起点》教程的编写”才是我“真正的”毕业设计课题。这一点还真的没有夸张，我在教程上用的时间，确实远大于真正的毕业设计课题所用的时间，而心思则百分之百地花在了教程编写上。对易语言我已经做到问心无愧，但如果教程的实际应用效果一般，我仍然会感到不安。我同时担心教程中的疏忽和理解错误的地方，会对您的学习产生负面的影响。

我满怀信心地开始《易语言零起点》教程的编写，没有想到最后竟然做成这样一个令人不甚满意的东东。当我即将把它推到您的面前时，我立刻理解了什么叫做“惴惴不安”。也许它会带领您快乐地走进易语言的天堂，也许它会成为您的负担，也许……我无法再想象下去，我的手心已满是汗水。

我并没有彻底地完成本教程，对我个人是一种遗憾，对易语言以及所有易语言爱好者，又何尝不是一种遗憾！真的希望有更多的朋友加入，在原来的基础上把《易语言零起点》做得更好，更完善。

易语言万岁！

Liigo，2002/6/30 于水泊梁山


致谢

1、飞扬软件工作室
教程编写过程中，飞扬给予了莫大的帮助。不言而喻，没有飞扬在背后的强力支持，《易语言零起点》教程根本不可能写成现在的样子，甚至它能不能各位见面都值得怀疑。

2、西风
网友西风曾经编辑了一篇《菜鸟问答》(在交流中心有下载)，非常精采！不但内容十分丰富，而且解答很有权威性。他把自己十多天辛勤劳动的成果，无偿地交付给我在《易语言零起点》中使用，我实在无以回报，所能做到的也只有“致谢”而已！

3、论坛上的其它易友

Liigo，2002/6/30 于水泊梁山


第一章：初识易语言

第一章：初识易语言 7 上一页 下一页 8

第一章：初识易语言 [上一章 下一章]

本章有以下内容：1.什么是易语言 2.如何获取易语言 3.易语言集成开发环境简介 4.一个典型的易程序
Liigo要求大家最好在五分钟之内浏览完本章，不懂的地方直接跳过去，不必深究。——学易语言应该是一个快乐的旅程，不要一开始就给自己太大的压力。很多东西我后面还会无数次的提到，不用担心学不会。本章的任务是对易语言有一个整体的、宏观的印象。

第一节：什么是易语言 [上一节 下一节]

简单的说，易语言是一个小型的软件开发系统。(就是写程序用的，够通俗吧？)
她采用当前最流行的可视化开发、基于控件编程的技术。(用鼠标拖拖拽拽就是一个程序，毫不夸张！)
用易语言可以开发标准的 Windows 应用程序。其应用领域非常广泛，如桌面应用程序、网络应用程序、数据库应用程序等等。(有朋友会问：易语言可不可以写计算器、MP3播放器？当然能！而且非常简单。后面我会举这样的例子。)
易语言易学易用，是专门为初学者开发的一门编程语言。
它最大的特色就是：全中文——不但界面是中文的，连程序代码都是由汉字写成的！

想一想我们曾经被英文折磨的多么痛苦， 以至于到现在还对它充满了恐惧。
“全中文”的特点使“编程”对任何人而言都不再是“永远不可企及的”事情。
我们可以借助“易语言”，尽情地满足自己做一个“神圣的程序员”的愿望！

放眼看一看，网络上的软件数量是多么的庞大。国产共享软件的骄傲 Foxmail、Netants、Flashget 等风行国内国际的时候，它们的作者张小龙、洪以容、张笑雨也因此名声大噪，渐为国人所乐于提及。朋友，你难道真的没有想过自己写一个软件，放到自己的主页上供网友们下载？现在机会来了！用易语言，不需接触任何外文，完全用自己母语——汉语，就可以轻松自如地编写出你想要的程序。把它放到网络上吧，当下载量达数万、高居下载排行榜第一的时候，那种心情怎么能够形容！——英雄？也许是吧。(比尔·盖兹一直是我的偶像，总想有一天也像他一样……)

第二节：如何获取易语言 [上一节 下一节]

说了那么多，易语言在哪里呢？请到易语言网站“中国易语言”( www.eyuyan.com )上免费下载最新版本。另外，随便到一个搜索引擎( 如 Google： www.google.com )搜索“易语言”，都能找到一大串的下载页。

目前易语言的最新版本是2.3( 3.42M， 2002/6/17发布 )。易语言在经历了二十多次升级( 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.85 1.9 1.95 1.96三个版本 2.0七个版本 2.1 2.2 2.3)之后，现在已发展得非常成熟、稳定，功能也十分强大,且仍在进一步增强完善中。

下面我介绍一下“中国易语言”网站上易语言的下载。在浏览器的地址栏中输入“www.eyuyan.com”，打回车键，就会进入易语言网站的首页。如下图所示：

易语言网站的首页上至少有三个位置提供了下载链接，点击之后，就会进入易语言最新版本的下载页面。作者还特意为用软盘下载的朋友提供了分盘下载，以方便用户用软盘将易语言拿走（只需三张盘）。

易语言的安装就更简单了，直接将下载来的ZIP文件解压即可。（不需要安装！）

第三节：易语言集成开发环境简介 [上一节 下一节]

    [注:集成开发环境，即IDE,是一个综合性的概念，凡是我们在易语言中所看到的，都属于“集成开发环境”的范畴，例如：主界面、代码编辑区、菜单编辑器、结构/记录编辑器、报表编辑器等。]

一、主界面（主窗口）[包括：主菜单、工具栏、工作夹、窗口单元工具箱、状态夹、窗体设计区等]

下图是易语言的集成开发环境之主界面（主窗口，鼠标单击可以全屏观看）：

我们发现，易语言的主窗口中，除了最常见的菜单栏、工具栏以外，还有几个很重要的组成部分：左边的工作夹、右边的窗口单元工具箱（或称控面件板、组件面板）、下边的状态夹，和中间的窗体设计区。其中工作夹和状态夹各有三个子夹。下面我们逐个介绍：

1、主菜单

主菜单此处不多讲，有兴趣的请看这里，否则跳过。

2、工具栏

上排左边八个按钮肯定大家都非常熟悉了。其它的现在只要认识两个就够了：
① [image] 运行所编的程序 （位于工具栏 上排倒数第二个）
② [image] 预览当前设计窗体 （位于工具栏 下排左边第一个）
至于其它按钮，有兴趣的请看这里，否则跳过。

3、工作夹（工作夹有三个子夹，分别是：支持库、程序、属性；工作夹位于主窗口的左边）

工作夹的支持库子夹主要用于为大家提供帮助，编程过程中用到的各种函数（子程序）、数据类型、常量等，都可以在这里查到详细的帮助。支持库中信息被分为不同的类别，以方便大家查找、定位。
工作夹的程序子夹显示了当前程序的结构，用户可利用它迅速切换到程序的不同分支。
工作夹的属性子夹列出了当前选定窗口单元（控件）的属性，用户可在上面直接改动。

4、窗口单元工具箱（或称控件面板、组件面板，位于主窗口的右边）

右图所示就是易语言中的窗口单元工具箱，简称工具箱，也可叫作控件面板或组件面板，总之你习惯叫它什么就叫它什么——反正它又不会说话，哈哈！工具箱是易语言主窗口中很重要的组成部分，它包含了众多控件（也叫组件）。控件或组件是构造程序界面的基石。易语言2.1版共有40个控件。它们分别是：
第一排： （ 空 ） 编辑框 图片框 外形框
第二排： 画板 分组框 标签 按钮
第三排： 选择框 单选框 组合框 列表框
第四排： 选择列表框 横向滚动条 纵向滚动条 进度条
第五排： 滑块条 选择夹 影像框 日期框
第六排： 月历 驱动器框 目录框 文件框
第七排： 颜色选择器 超级链接框 调节框 通用对话框
第八排： 时钟 打印机 数据报 客户
第九排： 服务器 端口 表格 数据源
第十排： 通用提供者 数据库提供者 图形按钮 外部数据库
第11排： 外部数据提供者
[注：第一排第一列的箭头图标不是控件，其作用是取消选择已选定的控件]

完全没有必要记忆这些控件的名称和它们的图标，只要有些印象就行了。提示：把鼠标放到任一个控件上方，等一两秒，就会弹出一黄色的小框，上面是该控件的名称，如图：

5、状态夹（位于主窗口的下边）

状态夹的提示子夹是最常用到的，它的作用是随时随地为我们提供帮助信息。也就是说，无论你把光标移到哪里，提示夹中立即显示相关的提示信息。提示夹相当于其它程序中的状态栏，但易语言提示夹中可容纳的信息量要比状态栏大的多。（状态栏只能显示一行，不是吗？这有时候太简单了，看了还是不明白。而易语言的提示夹却可以为我们显示尽可能多的信息。这是专为我们初学编程的朋友精心打造的，我们平常一定要养成随时注意提示夹的习惯，千万别辜负了易语言的良苦用心。）
状态夹还有两个子夹：输出、调用表。很不常用，以后用到时再介绍好了。

   6、窗体设计区
（位于主窗口中央）
应用程序窗口的主设计区，通常与工作夹(位于易语言主窗口的左侧)的属性子夹配合工作。
窗体设计区外观上跟一个普通的空的窗口很相似，只是窗体设计区多了：①周围的八个小方框； ②窗体区密排的小黑点。
小方框的作用是调整设计窗体的大小；小黑点的作用是协助定位窗体中的控件。

设计应用程序窗体的一般流程是：⑴拖动工具箱(位于易语言主窗口的右侧)中的控件到窗体设计区；⑵ 选定窗体设计区的控件(通过单击选定)；⑶在工作夹(位于易语言主窗口的左侧)的属性子夹中调整选定控件的属性； ⑷重复上述操作直至满意为止。

二、代码编辑区

默认情况下，代码编辑区这主窗口上是看不到的。但因为代码是程序的灵魂，所以代码编辑区就显得格外重要。双击窗体设计区（位于主窗口中央）任意位置均可进入代码编辑区。

易语言中的代码编辑区与普通的文本编辑器（如记事本）有很大的不同。大家看到，上图中央闪烁的黄色虚框（由黄色点画线组成），这是易语言特有的光标（其它文本编辑器的光标多是闪烁的黑色竖线）。要编辑某一行时，请： 1、把光标移动到该行；2、按一下空格键进入编辑状态；3、输入代码；4、按回车键确认。初学者对这种编辑模式可能不大习惯，但要主动适应。它的好处大家很快就会发现了。

三、结束：

易语言集成开发环境中，还有许多组成部分，如菜单编辑器、结构/记录编辑器、报表编辑器、全局容器（全局变量）表、常量数据表、自定义数据类型表、资源表、DLL命令定义表，及程序调试环境等等。我们不可能面面俱到，好在以后还会碰到，到时再给大家作详细的介绍。

第四节：一个典型的易程序 [上一节 下一节]

本节请大家随便看一下，一个最基本的易语言程序就是这样子的。[不需要您掌握什么，看一下就行。]

一、设计界面

二、代码

三、运行界面

-------------------------------------
结束语：

讲到这里，第一章的内容就结束了。这一章的目的，就是要大家对易语言有一个整体的、宏观的印象。请不要太拘泥于细节，说这里看不懂、那里也想不明白——我还没有讲到操作呢！我还是那句话，所有的细节，后面我们都会无数次的提到，根本不必担心学不会。
好，最后回顾一下本章的主要内容：1。什么是易语言 2。如何获取易语言 3。易语言集成开发环境简介 4。一个典型的易程序 重点是对易语言集成开发环境的介绍。
从下一章开始，我带领大家编程序去！走喽——

《易语言零起点》——来自易语言天堂，作者：Liigo 7 上一页 下一页 8


易语言的主菜单

易语言的主菜单 [返回]

易语言的主菜单如下图所示：

正如上图所示，易语言的主菜单共有九个子菜单，它们分别是：程序、编辑、查看、插入、数据库、调试、运行、窗口、帮助等，下面将分述之。
[注：本文对各菜单项的解释流于泛泛，欲得知其详细功能，请在易语言主窗口中，将鼠标指针指向某菜单项，然后看状态夹的提示子夹，里面会有较详细的介绍。（状态夹位于易语言主窗口的下边，提示夹是其三个子夹之一。如果提示夹不在前台，请先用鼠标切换。）]

[编辑者注意：本页在FrantPage中显得零乱，但预览尚可，尽量不要动它（增加新内容除外）。]

（一）程序

新建——新建一个易程序（*.e）
打开——打开一个易程序（*.e）
关闭——关闭已打开的易程序
保存——保存易程序
另存为——以另一个文件名保存

导入其它程序——导入一*.e到当前程序
置为只读状态——设置当前程序不可改动

程序配置——设置当前程序选项
系统配置——设置易开发环境选项
易模块管理——对易语言模块进行管理

编译独立发布版本——生成可执行程序（*.exe）
编译非独立发布版本——生成可执行程序（*.exe）
编译为易模块——生成易模块文件（*.ec）

以下是最近打开的文件列表
(最多可达九个)

退出——退出易语言开发环境

（二）编辑

撤消
重复

剪切
复制

复制程序文本
加入
粘贴
向后粘贴
单行覆盖
删除

修改备注
置为草稿
重新处理
加到当前块首尾 ——\
转换为-> ——/
进行上次编辑

开始寻找
寻找下一个
寻找上一个

菜单编辑器
报表编辑器

子菜单项“加到当前块首尾”
与“转换为->”的子菜单是一样
的，均如下图所示。

（三）查看

“工具条”子菜单如下：

“资源表”子菜单如下：

（四）插入

新现行单元

新程序集
新子程序
新窗口
新数据类型
新全局容器（全局变量）
新DLL命令（API函数）
新常量
新资源

新参数
新局部容器（局部变量）

“新资源”子菜单如下：

（五）数据库

结构编辑器
记录编辑器

加入数据库常量

数据库格式转换

（六）调试

单步跟踪进入
单步跟踪
跟踪返回
执行到光标处

查改容器内容

设置或清除断点
清除所有断点

到现行执行位置

（七）运行

运行——调试运行已打开的程序

终止——终止正在调试运行的程序
重新运行——终止正在调试的程序并重新运行

`

（八）窗口

层叠——
平铺——
排列图标——
分隔——

以下是在易中打开的子窗口列表，
可用于在各子窗口之间切换。
打“√”标志的窗口为在前台显示的窗口。

（九）帮助

即时帮助——在状态夹中的提示子夹中显示帮助信息
易语言知识库——调出易语言知识库（e.chm 文件）

关于易语言。。。

---------[返回]----------


易语言的工具栏

易语言的工具栏 [返回]

下图就是易语言主窗口的工具栏：

易语言的工具栏分为两排，共26个按钮。下面将分述之：

新建程序，单击后将弹出“新建”对话框，等效于菜单“程序->新建”

打开易程序文件（*.e），等效于菜单“程序->打开”

保存当前打开的易程序，等效于菜单“程序->保存”

剪切、复制、粘贴，最常见的工具栏按钮，您不会不知道吧？

重做、撤消

设置易语言主窗口的布局

到上次编辑处

调试运行当前已打开的易程序

终止当前正在调试运行的易程序

--------------------------------------------------------------------------

预览当前正在编辑框的设计窗口

注：以下工具栏按钮均是对“同时选中的多个控件”进行操作（以最后选中的控件为基准）

左对齐、右对齐、上对齐、下对齐

垂直居中、水平居中

水平均布、垂直均布

等宽、等高

等宽高

------------[返回]-----------


内码转换

内码转换 命令 所属类别：内码转换

将指定汉字编码的文本转换为另外一种编码方式，其中的非汉字部分不受影响，返回转换结果文本。

语法： 文本型 内码转换 （待转换文本，转换方式）

参数名 | 描 述
待转换文本 | 必需的；文本型。本参数用作提供需要转换的文本。
转换方式 | 必需的；整数型。可以为以下常量值之一： 1、#GBK到BIG5； 2、#BIG5到GBK； 3、#GBK繁体到简体； 4、#GBK简体到繁体； 5、#BIG5到GBK简体。

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#GBK到BIG5 | 1 |
#BIG5到GBK | 2 |
#GBK繁体到简体 | 3 |
#GBK简体到繁体 | 4 |
#BIG5到GBK简体 | 5 |


内码转换

内码转换 类别 跳至：汉字编码转换支持库

内码转换


汉字编码转换支持库

汉字编码转换支持库1.0版 返回首页

本支持库实现了各种编码方式汉字文本之间的转换。

命令类别：

内码转换

常量表...


putref_Font (Command)

putref_Font 方法 所属对象：Command

返回一个 Font 对象。

语法： 无返回值 Command．putref_Font （参数1）

参数名 | 描 述
参数1 | 必需的；字体。

参见： 语法的描述规则、基本数据类型


putref_Picture (Command)

putref_Picture 方法 所属对象：Command

返回/设置一个有一定格式规范的图片，作为按钮的外观皮肤。

语法： 无返回值 Command．putref_Picture （参数1）

参数名 | 描 述
参数1 | 必需的；字节集。

参见： 语法的描述规则、基本数据类型


putref_ICON (Command)

putref_ICON 方法 所属对象：Command

返回/设置一个图片，作为按钮的图标。

语法： 无返回值 Command．putref_ICON （参数1）

参数名 | 描 述
参数1 | 必需的；字节集。

参见： 语法的描述规则、基本数据类型


GetRValue (Command)

GetRValue 方法 所属对象：Command

语法： 整数型 Command．GetRValue （rgbColor）

参数名 | 描 述
rgbColor | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetGValue (Command)

GetGValue 方法 所属对象：Command

语法： 整数型 Command．GetGValue （rgbColor）

参数名 | 描 述
rgbColor | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetBValue (Command)

GetBValue 方法 所属对象：Command

语法： 整数型 Command．GetBValue （rgbColor）

参数名 | 描 述
rgbColor | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


ChangetoGray (Command)

ChangetoGray 方法 所属对象：Command

语法： 无返回值 Command．ChangetoGray （SrcDC，nx，ny，nMaskColor，IMC，Dns）

参数名 | 描 述
SrcDC | 必需的；整数型。
nx | 必需的；整数型。
ny | 必需的；整数型。
nMaskColor | 必需的；整数型，初始值为“-1”。
IMC | 必需的；整数型，初始值为“-1”。
Dns | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


DrawGrayBitmap (Command)

DrawGrayBitmap 方法 所属对象：Command

语法： 无返回值 Command．DrawGrayBitmap （hdc，nx，ny，nWidth，nHeight，nMaskColor，IMC，Dns）

参数名 | 描 述
hdc | 必需的；整数型。
nx | 必需的；整数型。
ny | 必需的；整数型。
nWidth | 必需的；整数型。
nHeight | 必需的；整数型。
nMaskColor | 必需的；整数型，初始值为“-1”。
IMC | 必需的；整数型，初始值为“-1”。
Dns | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


DrawGrayBitmap2 (Command)

DrawGrayBitmap2 方法 所属对象：Command

语法： 无返回值 Command．DrawGrayBitmap2 （hdc，nx，ny，nWidth，nHeight，nMaskColor，IMC，Dns）

参数名 | 描 述
hdc | 必需的；整数型。
nx | 必需的；整数型。
ny | 必需的；整数型。
nWidth | 必需的；整数型。
nHeight | 必需的；整数型。
nMaskColor | 必需的；整数型，初始值为“-1”。
IMC | 必需的；整数型，初始值为“-1”。
Dns | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


ChangetoGray2 (Command)

ChangetoGray2 方法 所属对象：Command

语法： 无返回值 Command．ChangetoGray2 （SrcDC，nx，ny，nMaskColor，IMC，Dns）

参数名 | 描 述
SrcDC | 必需的；整数型。
nx | 必需的；整数型。
ny | 必需的；整数型。
nMaskColor | 必需的；整数型，初始值为“-1”。
IMC | 必需的；整数型，初始值为“-1”。
Dns | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


Command

Command 窗口单元 跳至：Command

CSCommand。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
MousePointer | hWnd | BackStyle | PICMaskColor
ICOMaskColor | MouseIcon | ICON | Picture
IconAlign | Appearance | PR | FR
Caption | DisabledFontColor | FontColor | Font
ShowFocus | Enabled | DisabledNewStyle | DisabledNewStyleB
全部属性 |  |  |

方法：

putref_Font | putref_Picture | putref_ICON | GetRValue
GetGValue | GetBValue | ChangetoGray | DrawGrayBitmap
DrawGrayBitmap2 | ChangetoGray2 |  |

自有事件：

Click | KeyDown | KeyPress | KeyUp
MouseOut | MouseDown | MouseMove | MouseUp

基本事件：


Click (Command)

Click 事件 所属对象：Command

语法： 无返回值 _Command_Click （）

参见： 语法的描述规则、基本数据类型


MouseOut (Command)

MouseOut 事件 所属对象：Command

语法： 无返回值 _Command_MouseOut （）

参见： 语法的描述规则、基本数据类型


Command

Command1.0版 返回首页

CSCommand。

窗口单元数据类型：

Command


MousePointer (Command)

MousePointer 属性 所属对象：Command

数据类型：整数型；返回/设置当鼠标经过对象某一部分时鼠标的指针类型。

参见： 基本数据类型


BackStyle (Command)

BackStyle 属性 所属对象：Command

数据类型：整数型；指出按钮的背景样式是否将屏蔽色区域设置为透明。

可供选择的属性值：
0、CSCMD_Transparent
1、CSCMD_Opaque

参见： 基本数据类型


PICMaskColor (Command)

PICMaskColor 属性 所属对象：Command

数据类型：整数型；返回/设置按钮皮肤图片的屏蔽色。

参见： 基本数据类型


ICOMaskColor (Command)

ICOMaskColor 属性 所属对象：Command

数据类型：整数型；返回/设置图标的屏蔽色。

参见： 基本数据类型


ICON (Command)

ICON 属性 所属对象：Command

数据类型：字节集；返回/设置一个图片，作为按钮的图标。

参见： 基本数据类型


Picture (Command)

Picture 属性 所属对象：Command

数据类型：字节集；返回/设置一个有一定格式规范的图片，作为按钮的外观皮肤。

参见： 基本数据类型


IconAlign (Command)

IconAlign 属性 所属对象：Command

数据类型：整数型；返回/设置是否显示图标和显示的位置。

可供选择的属性值：
0、CSCMD_None
1、CSCMD_Left
2、CSCMD_Right

参见： 基本数据类型


Appearance (Command)

Appearance 属性 所属对象：Command

数据类型：整数型；返回/设置按钮文本和图标运行时是否有三维的按下效果。

可供选择的属性值：
0、CSCMD_Flat
1、CSCMD_Solid
2、CSCMD_SolidB

参见： 基本数据类型


PR (Command)

PR 属性 所属对象：Command

数据类型：整数型；将皮肤图片分成三行三列，返回/设置以中间的矩形区域四角定点为圆心，与相应按钮边缘相切的圆的半径。

参见： 基本数据类型


FR (Command)

FR 属性 所属对象：Command

数据类型：整数型；返回/设置以焦点框四角顶点为圆心，与相应按钮边缘相切的圆的半径。

参见： 基本数据类型


Caption (Command)

Caption 属性 所属对象：Command

数据类型：文本型；返回/设置按钮的文字。

参见： 基本数据类型


DisabledFontColor (Command)

DisabledFontColor 属性 所属对象：Command

数据类型：整数型；返回/设置按钮不可用时文字的颜色。

参见： 基本数据类型


FontColor (Command)

FontColor 属性 所属对象：Command

数据类型：整数型；返回/设置按钮文字的颜色。

参见： 基本数据类型


Font (Command)

Font 属性 所属对象：Command

数据类型：字体；返回一个 Font 对象。

参见： 基本数据类型


ShowFocus (Command)

ShowFocus 属性 所属对象：Command

数据类型：逻辑型；返回/设置一个值，决定按钮是否显示焦点框。

参见： 基本数据类型


DisabledNewStyle (Command)

DisabledNewStyle 属性 所属对象：Command

数据类型：逻辑型；返回/设置一个值，决定按钮不可用时是否使用新的全灰度变换样式。

参见： 基本数据类型


DisabledNewStyleB (Command)

DisabledNewStyleB 属性 所属对象：Command

数据类型：逻辑型；一种新的“不可用图标处理样式”，返回/设置当DisabledNewStyle属性为True且不可用时，是否在对图标灰度变换的基础上同时进行色调变换。

参见： 基本数据类型


全部属性 (Command)

全部属性 属性 所属对象：Command

数据类型：字节集；使用OCX组件自身的属性表进行设置。

参见： 基本数据类型


左边 (Command)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (Command)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (Command)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (Command)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (Command)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (Command)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (Command)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (Command)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


打开扩展对话框

打开扩展对话框 命令 所属类别：扩展命令语句(v2.0.196)

XP样式的通用对话框,在Win2k/WinXP下有效，Win98/WinMe无效，不过不影响使用。成功返回所选文件的路径，失败或按取消返回空。

语法： 文本型 打开扩展对话框 （［标题］，［默认后缀］，［过滤器］，过滤器索引，初始路径，［允许改变大小］，［旧风格］，［允许多选］）

参数名 | 描 述
标题 | 可选的；文本型。对话框的标题。
默认后缀 | 可选的；文本型。对话框默认的扩展名。
过滤器 | 可选的；文本型。对话框过滤器。样式为“Hint|FileExec”如“所有文件(*.*)|*.*”。
过滤器索引 | 必需的；整数型，初始值为“0”。选择对话框的过滤器条目。
初始路径 | 必需的；文本型，初始值为“”。对话框默认起始目录。
允许改变大小 | 可选的；逻辑型。允许用户改变对话框大小。(启用风格时无效)。
旧风格 | 可选的；逻辑型。启用Win3.x风格。
允许多选 | 可选的；逻辑型。可以多选文件,返回文件路径以";"分隔。//(注意：本功能有限，如所选文件字符超过255则返回空。切记！。

参见： 语法的描述规则、基本数据类型


打开扩展保存对话框

打开扩展保存对话框 命令 所属类别：扩展命令语句(v2.0.196)

XP样式的通用对话框,在Win2k/WinXP下有效，Win98/WinMe无效，不过不影响使用。成功返回所选文件的路径，失败或按取消返回空。

语法： 文本型 打开扩展保存对话框 （［标题］，［默认后缀］，［过滤器］，过滤器索引，初始路径，［允许改变大小］，［旧风格］）

参数名 | 描 述
标题 | 可选的；文本型。对话框的标题。
默认后缀 | 可选的；文本型。对话框默认的扩展名。
过滤器 | 可选的；文本型。对话框过滤器。样式为“Hint|FileExec”如“所有文件(*.*)|*.*”。
过滤器索引 | 必需的；整数型，初始值为“0”。选择对话框的过滤器条目。
初始路径 | 必需的；文本型，初始值为“”。对话框默认起始目录。
允许改变大小 | 可选的；逻辑型。允许用户改变对话框大小。(启用风格时无效)。
旧风格 | 可选的；逻辑型。启用Win3.x风格。

参见： 语法的描述规则、基本数据类型


打开扩展图像对话框

打开扩展图像对话框 命令 所属类别：扩展命令语句(v2.0.196)

XP样式的通用对话框,在Win2k/WinXP下有效，Win98/WinMe无效，不过不影响使用。成功返回所选文件的路径，失败或按取消返回空。

语法： 文本型 打开扩展图像对话框 （［标题］，［默认后缀］，［过滤器］，过滤器索引，初始路径，［允许改变大小］，［旧风格］）

参数名 | 描 述
标题 | 可选的；文本型。对话框的标题。
默认后缀 | 可选的；文本型。对话框默认的扩展名。
过滤器 | 可选的；文本型。对话框过滤器。样式为“Hint|FileExec”如“所有文件(*.*)|*.*”。
过滤器索引 | 必需的；整数型，初始值为“0”。选择对话框的过滤器条目。
初始路径 | 必需的；文本型，初始值为“”。对话框默认起始目录。
允许改变大小 | 可选的；逻辑型。允许用户改变对话框大小。(启用风格时无效)。
旧风格 | 可选的；逻辑型。启用Win3.x风格。

参见： 语法的描述规则、基本数据类型


打开扩展保存图像对话框

打开扩展保存图像对话框 命令 所属类别：扩展命令语句(v2.0.196)

XP样式的通用对话框,在Win2k/WinXP下有效，Win98/WinMe无效，不过不影响使用。成功返回所选文件的路径，失败或按取消返回空。

语法： 文本型 打开扩展保存图像对话框 （［标题］，［默认后缀］，［过滤器］，过滤器索引，初始路径，［允许改变大小］，［旧风格］）

参数名 | 描 述
标题 | 可选的；文本型。对话框的标题。
默认后缀 | 可选的；文本型。对话框默认的扩展名。
过滤器 | 可选的；文本型。对话框过滤器。
过滤器索引 | 必需的；整数型，初始值为“0”。选择对话框的过滤器条目。
初始路径 | 必需的；文本型，初始值为“”。对话框默认起始目录。
允许改变大小 | 可选的；逻辑型。允许用户改变对话框大小。(启用风格时无效)。
旧风格 | 可选的；逻辑型。启用Win3.x风格。

参见： 语法的描述规则、基本数据类型


打开文件夹对话框

打开文件夹对话框 命令 所属类别：扩展命令语句(v2.0.196)

打开文件夹浏览对话框。成功返回所选目录的路径，失败返回空。

语法： 文本型 打开文件夹对话框 （［标题］，调用窗口的句柄，［允许显示路径］，［允许显示编辑框］，［允许选择文件］，［允许显示URL］，［显示XP样式］，［允许显示提示］，［隐藏新建按钮］，［允许显示共享文件］）

参数名 | 描 述
标题 | 可选的；文本型。对话框的标题(本对话框已内置对多国语言的支持。如需添加请用“LID：TEXT”的样式，如“0804=选择目录”)。
调用窗口的句柄 | 必需的；整数型，初始值为“0”。主窗口的句柄。一般为“_启动窗口.取窗口句柄()”(待以控件形式发布时就可免了:-))。
允许显示路径 | 可选的；逻辑型。对话框扩展样式。(XPStyle时无效)。
允许显示编辑框 | 可选的；逻辑型。对话框扩展样式。
允许选择文件 | 可选的；逻辑型。对话框扩展样式。
允许显示URL | 可选的；逻辑型。对话框扩展样式。(显示快捷方式)。
显示XP样式 | 可选的；逻辑型。对话框扩展样式。
允许显示提示 | 可选的；逻辑型。对话框扩展样式。(XPStyle为真时有效)。
隐藏新建按钮 | 可选的；逻辑型。对话框扩展样式。
允许显示共享文件 | 可选的；逻辑型。对话框扩展样式。

参见： 语法的描述规则、基本数据类型


弹出MSN信息框

弹出MSN信息框 命令 所属类别：扩展命令语句(v2.0.196)

MSN样式的信息框。可连续使用,但最后不用记得要清除。成功返回真，失败返回假。

语法： 逻辑型 弹出MSN信息框 （［标题］，［标题字体］，［标题字体大小］，［信息］，［URL字体］，［URL字体大小］，［URL］，［弹出速度］，［停留速度］，［信息框左边］，［信息框底边］，［信息框渐变色1］，［信息框渐变色2］）

参数名 | 描 述
标题 | 可选的；文本型。信息框的标题。
标题字体 | 可选的；文本型。信息框的标题字体。
标题字体大小 | 可选的；整数型。信息框的标题字体大小。
信息 | 可选的；文本型。信息框的信息。
URL字体 | 可选的；文本型。信息框的URL字体。
URL字体大小 | 可选的；整数型。信息框的URL字体大小。
URL | 可选的；文本型。信息框的URL。
弹出速度 | 可选的；整数型。信息框的停留速度，单位为秒。
停留速度 | 可选的；整数型。信息框的停留速度，单位为秒。
信息框左边 | 可选的；整数型。信息框的弹出位置。
信息框底边 | 可选的；整数型。信息框的弹出位置。
信息框渐变色1 | 可选的；整数型。信息框渐变色(可以用E的常量)。
信息框渐变色2 | 可选的；整数型。信息框渐变色(可以用E的常量)。

参见： 语法的描述规则、基本数据类型


打开关于对话框

打开关于对话框 命令 所属类别：扩展命令语句(v2.0.196)

打开系统的关于对话框。可以为我所用，是个减少文件体积，又能自我介绍的好方法。成功返回真，失败返回假。

语法： 逻辑型 打开关于对话框 （主窗口句柄，［标题］，［内容］，［应用程序］）

参数名 | 描 述
主窗口句柄 | 必需的；整数型，初始值为“0”。用“_启动窗口.取窗口句柄()”获得。
标题 | 可选的；文本型。对话框的标题。(注意：“关于”二字已在标题上)。
内容 | 可选的；文本型。关于的正文。
应用程序 | 可选的；文本型。您的程序的全路径名，用“取运行目录() +"\"+ 取执行文件名()”来获得(也可指向其他文件)。

参见： 语法的描述规则、基本数据类型


弹出信息框

弹出信息框 命令 所属类别：扩展命令语句(v2.0.196)

多功能的类似Hint,成功返回真,失败返回假。

语法： 逻辑型 弹出信息框 （窗口句柄，［位置X］，［位置Y］，标题，内容，［图标］，显示时间，［显示类型］，显示速度）

参数名 | 描 述
窗口句柄 | 必需的；整数型，初始值为“0”。用取窗口句柄()获得。
位置X | 可选的；整数型。显示在对象上的位置.0.左边,1.中间,2.右边.
位置Y | 可选的；整数型。显示在对象上的位置.0.顶边,1.中间,2.底边.
标题 | 必需的；文本型，初始值为“标题”。信息框上的标题。
内容 | 必需的；文本型，初始值为“内容”。信息框上的内容。
图标 | 可选的；整数型。显示的图标.0.信息,1.错误,2.警告.
显示时间 | 必需的；整数型，初始值为“0”。出现的时间.(一定要大于显示速度,0为永远显示。)。
显示类型 | 可选的；整数型。信息框显示的动画类型.0.无,1.渐现,2.伸展,3.(拉伸)左右,4.(拉伸)右左,5.(拉伸)上下,6.(拉伸)下上,7.(滚动)左右,8.(滚动)右左,9.(滚动)上下,10.(滚动)下上.
显示速度 | 必需的；整数型，初始值为“400”。信息框显示的动画速度.

参见： 语法的描述规则、基本数据类型


打开查找文件对话框

打开查找文件对话框 命令 所属类别：扩展命令语句(v2.0.196)

调用系统自带的查找文件对话框,成功返回真,失败返回假。

语法： 逻辑型 打开查找文件对话框 （驱动器）

参数名 | 描 述
驱动器 | 必需的；文本型，初始值为“C:”。打开对话框时定位到的驱动器。(如C *注：不带":")。

参见： 语法的描述规则、基本数据类型


打开方式对话框

打开方式对话框 命令 所属类别：扩展命令语句(v2.0.196)

调用系统自带的打开方式对话框。

语法： 无返回值 打开方式对话框 （文件名）

参数名 | 描 述
文件名 | 必需的；文本型。打开方式对话框时定位到的文件名。

参见： 语法的描述规则、基本数据类型


映射网络驱动器对话框

映射网络驱动器对话框 命令 所属类别：扩展命令语句(v2.0.196)

调用系统自带的映射网络驱动器对话框,成功返回真,失败返回假。

语法： 逻辑型 映射网络驱动器对话框 （）

参见： 语法的描述规则、基本数据类型


断开网络驱动器对话框

断开网络驱动器对话框 命令 所属类别：扩展命令语句(v2.0.196)

调用系统自带的断开网络驱动器对话框,成功返回真,失败返回假。

语法： 逻辑型 断开网络驱动器对话框 （）

参见： 语法的描述规则、基本数据类型


打开计算器对话框

打开计算器对话框 命令 所属类别：扩展命令语句(v2.0.196)

打开一个计算器对话框。

语法： 无返回值 打开计算器对话框 （）

参见： 语法的描述规则、基本数据类型


关闭计算机对话框

关闭计算机对话框 命令 所属类别：扩展命令语句(v2.0.196)

打开一个关闭计算机对话框。

语法： 无返回值 关闭计算机对话框 （）

参见： 语法的描述规则、基本数据类型


打开查看文件图标对话框

打开查看文件图标对话框 命令 所属类别：扩展命令语句(v2.0.196)

调用系统自带的查看文件图标对话框,成功返回图标索引,失败返回-1。

语法： 整数型 打开查看文件图标对话框 （文件名）

参数名 | 描 述
文件名 | 必需的；文本型。打开查看文件图标对话框时定位到的文件名。

参见： 语法的描述规则、基本数据类型


打开运行对话框

打开运行对话框 命令 所属类别：扩展命令语句(v2.0.196)

调用系统自带的运行对话框。

语法： 无返回值 打开运行对话框 （可以浏览）

参数名 | 描 述
可以浏览 | 必需的；逻辑型，初始值为“假”。打开运行对话框时是否显示浏览按钮。

参见： 语法的描述规则、基本数据类型


打开计算机属性对话框

打开计算机属性对话框 命令 所属类别：扩展命令语句(v2.0.196)

调用系统自带的计算机属性对话框,成功返回真,失败返回假。

语法： 逻辑型 打开计算机属性对话框 （）

参见： 语法的描述规则、基本数据类型


打开文件属性话框

打开文件属性话框 命令 所属类别：扩展命令语句(v2.0.196)

调用系统自带的文件属性话框,成功返回真,失败返回假。

语法： 逻辑型 打开文件属性话框 （文件名）

参数名 | 描 述
文件名 | 必需的；文本型。打开文件属性话框时定位到的文件名。

参见： 语法的描述规则、基本数据类型


扩展通用对话框

扩展通用对话框2.0版 返回首页

扩展通用对话框(测试版）。有BUG或建议请与论坛提出。(http://www.eyuyan.com)。

命令类别：

扩展命令语句(v2.0.196)


压缩数据

压缩数据 命令 所属类别：数据压缩解压

压缩一段字节集数据，返回被压缩后的结果字节集。如果压缩失败，返回空字节集。

语法： 字节集 压缩数据 （字节集数据）

参数名 | 描 述
字节集数据 | 必需的；字节集。为命令提供所需的字节集数据。

参见： 语法的描述规则、基本数据类型


解压数据

解压数据 命令 所属类别：数据压缩解压

解压一个内含被压缩数据的字节集，返回被解压后的结果字节集。如果压缩失败，返回空字节集。注意解压后的数据也有可能是空字节集。

语法： 字节集 解压数据 （字节集数据）

参数名 | 描 述
字节集数据 | 必需的；字节集。为命令提供所需的字节集数据。

参见： 语法的描述规则、基本数据类型


取数据摘要

取数据摘要 命令 所属类别：数据完整性校验

返回一段字节集数据的MD5数据摘要编码文本。不同数据的MD5码都不一样，因此本命令可以用作保证重要数据不会被篡改。

语法： 文本型 取数据摘要 （字节集数据）

参数名 | 描 述
字节集数据 | 必需的；字节集。为命令提供所需的字节集数据。

参见： 语法的描述规则、基本数据类型


加密数据

加密数据 命令 所属类别：数据加解密

使用DES算法加密一段字节集数据，返回加密后的结果字节集。如果失败，返回空字节集。

语法： 字节集 加密数据 （字节集数据，密码文本，［加密算法］）

参数名 | 描 述
字节集数据 | 必需的；字节集。为命令提供所需的字节集数据。
密码文本 | 必需的；文本型。
加密算法 | 可选的；整数型。指定具体使用的加密算法，可以为以下常量值之一：1: #DES算法； 2: #RC4算法。加密和解密必须使用相同的算法，有关算法的具体说明请参阅有关文献。如果本参数被省略，则默认值为1，即DES算法。

参见： 语法的描述规则、基本数据类型


解密数据

解密数据 命令 所属类别：数据加解密

解密一段使用DES算法加密的字节集数据，返回解密后的结果字节集。注意本命令并不对密码文本进行校验，如果密码提供错误，将返回错误的结果。如果失败，返回空字节集。

语法： 字节集 解密数据 （字节集数据，密码文本，［加密算法］）

参数名 | 描 述
字节集数据 | 必需的；字节集。为命令提供所需的字节集数据。
密码文本 | 必需的；文本型。
加密算法 | 可选的；整数型。指定具体使用的加密算法，可以为以下常量值之一：1: #DES算法； 2: #RC4算法。加密和解密必须使用相同的算法，有关算法的具体说明请参阅有关文献。如果本参数被省略，则默认值为1，即DES算法。

参见： 语法的描述规则、基本数据类型


数字签名

数字签名 命令 所属类别：数据完整性校验

使用RSA非对称密钥算法对指定字节集数据进行签署，支持32到4096之间任意合法的RSA位数，返回签署后的结果文本。 附一、电子签名系统简要实现方法： 首先给所有具有签署权利的人员授予不同的RSA钥匙，RSA钥匙由“公钥”、“私钥”、“公共模数”三部分组成，为了生成符合要求的随机密钥，可以下载使用 http://eyuyan.com/RSATool2v14.rar 第三方工具软件（内有操作说明）。然后将所有人员的“公钥”和“公共模数”成对向外公布，“私钥”由被授予人员自行妥善保管。 被授权人员使用“私钥”和“公共模数”对指定数据进行签署，然后将签署后的结果文本随同被签署数据一起发送，接收者收到后，使用该签署者公开的“公钥”和“公共模数”及签署结果文本对被签署数据进行验证，如验证通过则说明该数据必定是此签署者所认可的，且没有经过任何篡改。 附二、数字签名用作软件注册系统的实现步骤： 1、欲注册用户提供注册信息（如硬件代码、用户姓名等）； 2、软件作者使用自己的私钥对该注册信息进行数字签署得到签署结果文本； 3、将此签署结果文本作为注册钥匙文件发送给用户； 4、在用户端的软件使用相同的用户信息、注册钥匙文件及软件作者的公钥进行签名验证，如果通过表明已经注册，否则表示未注册。使用本方法在私钥未泄露的前提下，可以绝对避免破解者做出软件的注册机。

语法： 文本型 数字签名 （待签署字节集数据，签署者私钥文本，签署者公共模数）

参数名 | 描 述
待签署字节集数据 | 必需的；字节集。
签署者私钥文本 | 必需的；文本型。为十六进制数值文本。
签署者公共模数 | 必需的；文本型。为十六进制数值文本。

参见： 语法的描述规则、基本数据类型


签名验证

签名验证 命令 所属类别：数据完整性校验

使用指定公钥和签署结果文本对被签署字节集数据进行验证，如验证通过则说明该字节集数据必定是此公钥拥有者（即签署者）所认可的，且签署后未经任何篡改。验证通过返回真，否则返回假。

语法： 逻辑型 签名验证 （待验证被签署字节集，签署结果文本，签署者公钥文本，签署者公共模数）

参数名 | 描 述
待验证被签署字节集 | 必需的；字节集。
签署结果文本 | 必需的；文本型。必须为“数字签名”命令所返回的结果。
签署者公钥文本 | 必需的；文本型。为十六进制数值文本。
签署者公共模数 | 必需的；文本型。为十六进制数值文本。

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#DES算法 | 1 |
#RC4算法 | 2 |


数据压缩解压

数据压缩解压 类别 跳至：数据操作支持库一


数据完整性校验

数据完整性校验 类别 跳至：数据操作支持库一


数据加解密

数据加解密 类别 跳至：数据操作支持库一


数据操作支持库一

数据操作支持库一1.0版 返回首页

本支持库实现了数据压缩解压、数据完整性校验、数据加解密支持。

命令类别：

数据压缩解压 数据完整性校验 数据加解密

常量表...

例程列表：

例程名称 | 下载 | 说明
保证文件不被更改 | 保证文件不被更改.e | 本程序用作演示"取数据摘要"命令的使用方法,并且具有实用价值.
RSA数字签名钥匙有效性测试 | 数字签名钥匙测试.e | 本程序用作测试指定的RSA钥匙是否可用，同时演示了数字签名和签名验证的使用方法。


截获消息

截获消息 命令 所属类别：消息操作

为高级用户提供，初级用户无需掌握；
截获指定窗口的指定消息，并用相应的子程序加以处理。成功返回真，失败返回假。用该命令成功建立的消息截获将在其所属窗口正常销毁时被系统自动撤消，也可以在运行期间用“撤销消息截获”命令强制撤销。*注意：该命令只能用于调用该命令的程序中的窗口。

语法： 逻辑型 截获消息 （窗口句柄，消息号，消息处理子程序指针）

参数名 | 描 述
窗口句柄 | 必需的；整数型。这个窗口的消息将被截获。*注意：如果这个窗口不属于调用该命令的程序，则截获失败。
消息号 | 必需的；整数型。指明要截获的消息。
消息处理子程序指针 | 必需的；子程序指针。请用易语言IDE的 “工具” 菜单中 《复制“消息处理子程序”到剪贴板》 命令，然后在易语言代码区中粘贴，以获得消息处理子程序的框架。

参见： 语法的描述规则、基本数据类型


撤消消息截获

撤消消息截获 命令 所属类别：消息操作

为高级用户提供，初级用户无需掌握；
撤消对指定窗口的消息截获。成功返回真，失败返回假。该命令和“截获消息”命令配合使用。

语法： 逻辑型 撤消消息截获 （［窗口句柄］，［消息号］）

参数名 | 描 述
窗口句柄 | 可选的；整数型。本参数指定欲撤消其消息截获的窗口句柄。如果本参数省略，则<参数2>也被忽略，表示撤消已建立的所有的截获。*注意：如果指定了该参数，其值必须是用“截获消息”命令成功截获其消息的窗口的句柄。
消息号 | 可选的；整数型。撤消对该消息的截获。如果省略本参数且正确指定了<参数1>，表示撤消<参数1>指定的窗口中所有已建立的消息截获。*注意：如果指定了该参数，其值必须是用“截获消息”命令成功截获的消息号。

参见： 语法的描述规则、基本数据类型


取地址

取地址 命令 所属类别：内存操作

为高级用户提供，初级用户无需掌握；
返回指定容器的内存地址，返回0代表失败。

语法： 整数型 取地址 （欲取其内存地址的容器）

参数名 | 描 述
欲取其内存地址的容器 | 必需的；通用型，参数数据只能提供容器。当前版本仅支持取以下类型的容器的内存地址：1、字节型；2、短整数型；3、长整数型；4、小数型；5、双精度小数型；6、时间日期型；7、文本型；8、字节集；9、用户定义数据类型。注意：★如果该参数为文本型或字节集类型的容器，且在使用本命令前没有赋值，本命令会返回0。 ★如果是用户自定义数据类型，则该类型的成员只能是上列9种类型中的前6种！否则将得不到正确的结果。

参见： 语法的描述规则、基本数据类型


取数据

取数据 命令 所属类别：内存操作

为高级用户提供，初级用户无需掌握；
从指定的内存地址取回数据，成功返回真，失败返回假。

语法： 逻辑型 取数据 （内存地址，存放取得数据的容器，［成员数］）

参数名 | 描 述
内存地址 | 必需的；整数型。
存放取得数据的容器 | 必需的；通用型，参数数据只能提供容器。当前版本仅支持取以下类型的容器：1、字节型；2、短整数型；3、长整数型；4、小数型；5、双精度小数型；6、时间日期型；7、文本型；8、字节集；9、用户定义数据类型。注意： ★如果是“文本型”或“字节集”请确保不为空文本或空字节集（比如在使用本命令前用“取空白文本（255）”或“取空白字节集（255）为该容器赋值”），本命令最终取得的数据长度也仅限于该容器内原始数据的实际长度。如果是用户自定义数据类型，则该类型的成员只能是上列9种类型中的前6种,否则将得不到正确的结果。
成员数 | 可选的；整数型。代表<参数2>（自定义类型）的成员个数，如果 <参数2> 不为用户自定义类型，该参数将被忽略。

参见： 语法的描述规则、基本数据类型


取高字值

取高字值 命令 所属类别：数值操作

为高级用户提供，初级用户无需掌握；
取一个整数的高16位字节所代表的值。

语法： 整数型 取高字值 （整数）

参数名 | 描 述
整数 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取低字值

取低字值 命令 所属类别：数值操作

为高级用户提供，初级用户无需掌握；
取一个整数的低16位字节所代表的值。

语法： 整数型 取低字值 （整数）

参数名 | 描 述
整数 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


合并为整数

合并为整数 命令 所属类别：数值操作

为高级用户提供，初级用户无需掌握；
把代表一个整数高16位（高字）和低16位（低字）的值合并为一个整数。

语法： 整数型 合并为整数 （高字，低字）

参数名 | 描 述
高字 | 必需的；整数型。本参数指定返回值的高16位（高字）的值。
低字 | 必需的；整数型。本参数指定返回值的低16位（低字）的值。

参见： 语法的描述规则、基本数据类型


发送消息

发送消息 命令 所属类别：消息操作

为高级用户提供，初级用户无需掌握；
发送特定的消息到一个或多个窗口。该命令不会立即返回，只有在消息被处理完毕后才返回结果。返回值的具体含义随消息的不同而不同。

语法： 整数型 发送消息 （窗口句柄，消息号，消息参数1，消息参数2）

参数名 | 描 述
窗口句柄 | 必需的；整数型。本参数指定接收消息的窗口的句柄。
消息号 | 必需的；整数型。本参数指定欲发送的消息。
消息参数1 | 必需的；整数型。本参数指定消息的第一个参数。具体含义随消息的不同而不同。
消息参数2 | 必需的；整数型。本参数指定消息的第二个参数。具体含义随消息的不同而不同。

参见： 语法的描述规则、基本数据类型


投递消息

投递消息 命令 所属类别：消息操作

为高级用户提供，初级用户无需掌握；
投递特定的消息到一个或多个窗口。该命令会立即返回，成功投递返回真，失败返回假。

语法： 逻辑型 投递消息 （窗口句柄，消息号，消息参数1，消息参数2）

参数名 | 描 述
窗口句柄 | 必需的；整数型。本参数指定接收消息的窗口的句柄。
消息号 | 必需的；整数型。本参数指定欲投递的消息。
消息参数1 | 必需的；整数型。本参数指定消息的第一个参数。具体含义随消息的不同而不同。*注意：如果<参数2>指点的消息号小于1024，则该参数不能是容器地址，否则该命令失败！。
消息参数2 | 必需的；整数型。本参数指定消息的第二个参数。具体含义随消息的不同而不同。*注意：如果<参数2>指点的消息号小于1024，则该参数不能是容器地址，否则该命令失败！。

参见： 语法的描述规则、基本数据类型


注册热键

注册热键 命令 所属类别：系统相关

为高级用户提供，初级用户无需掌握；
指定一个系统范围的热键。成功返回其热键号，失败返回0。注意：★必须在程序结束前用“撤销热键”命令撤销成功注册的热键。

语法： 整数型 注册热键 （窗口句柄，功能键，其他键）

参数名 | 描 述
窗口句柄 | 必需的；整数型。指定接收“窗口_热键”消息的窗口。这个消息在参数<2>、参数<3>所指定的热键被按下时被发送到该窗口。关于该消息的说明详见本支持库的“常量”部分。
功能键 | 必需的；整数型。该参数指定热键中必须被按下的基本键。可以是本支持库常量中以“功能键”开头的常量或其组合。
其他键 | 必需的；整数型。该参数指定热键中必须被按下的功能键。可以是系统核心支持库中定义的键常量或其组合。

参见： 语法的描述规则、基本数据类型


撤销热键

撤销热键 命令 所属类别：系统相关

为高级用户提供，初级用户无需掌握；
撤销由“注册热键”命令成功注册的热键。成功返回真，失败返回假。该命令和“注册热键”命令配合使用。

语法： 逻辑型 撤销热键 （窗口句柄，热键号）

参数名 | 描 述
窗口句柄 | 必需的；整数型。见“注册热键”命令。
热键号 | 必需的；整数型。该参数指定欲撤销的热键的唯一标识。由“注册热键”命令返回。

参见： 语法的描述规则、基本数据类型


左移位

左移位 命令 所属类别：数值操作

为高级用户提供，初级用户无需掌握；
把一个整数值的各个二进制位（bit）依次向左移动指定位数后返回。

语法： 整数型 左移位 （欲左移位的整数，左移的位数）

参数名 | 描 述
欲左移位的整数 | 必需的；整数型。
左移的位数 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


右移位

右移位 命令 所属类别：数值操作

为高级用户提供，初级用户无需掌握；
把一个整数值的各个二进制位（bit）依次向右移动指定位数后返回。

语法： 整数型 右移位 （欲右移位的整数，右移的位数）

参数名 | 描 述
欲右移位的整数 | 必需的；整数型。
右移的位数 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取剪辑板数据

取剪辑板数据 命令 所属类别：剪辑板操作

为高级用户提供，初级用户无需掌握；
返回存放于当前 Windows 系统剪辑板中的数据。失败返回空字节集。

语法： 字节集 取剪辑板数据 （剪辑板数据格式）

参数名 | 描 述
剪辑板数据格式 | 必需的；整数型，初始值为“1”。即“剪辑板_文本”。指定欲取的剪辑板数据的格式。可以是本支持库常量中以“剪辑板_”开头的标准剪辑板常量，或“注册剪辑板格式”命令的返回值。

参见： 语法的描述规则、基本数据类型


置剪辑板数据

置剪辑板数据 命令 所属类别：剪辑板操作

为高级用户提供，初级用户无需掌握；
将指定数据存放到当前 Windows 系统剪辑板中去，剪辑板中的原有内容被覆盖。成功返回真，失败返回假。

语法： 逻辑型 置剪辑板数据 （准备置入剪辑板的数据，剪辑板数据格式）

参数名 | 描 述
准备置入剪辑板的数据 | 必需的；字节集。
剪辑板数据格式 | 必需的；整数型，初始值为“1”。即“剪辑板_文本”。指定欲置入剪辑板的数据格式。可以是本支持库常量中以“剪辑板_”开头的标准剪辑板格式常量，或“注册剪辑板格式”命令的返回值。

参见： 语法的描述规则、基本数据类型


取可用剪辑板格式

取可用剪辑板格式 命令 所属类别：剪辑板操作

为高级用户提供，初级用户无需掌握；
取出当前剪辑板数据的所有可用格式。返回第一个可用格式。失败返回0。

语法： 整数型 取可用剪辑板格式 （存放所有剪辑板数据格式的数组）

参数名 | 描 述
存放所有剪辑板数据格式的数组 | 必需的；整数型，参数数据只能提供容器数组。在命令执行完毕后，本容器数组内被顺序填入可用于当前剪辑板内容的所有格式值。容器数组内原有数据被全部销毁，容器数组的维数被自动调整为一维,并根据可用格式的数目自动调整所数组成员数。

参见： 语法的描述规则、基本数据类型


注册剪辑板格式

注册剪辑板格式 命令 所属类别：剪辑板操作

为高级用户提供，初级用户无需掌握；
注册一个新的剪辑板格式。成功返回该格式的整数值，失败返回0。

语法： 整数型 注册剪辑板格式 （新格式名称）

参数名 | 描 述
新格式名称 | 必需的；文本型。指定欲注册的剪辑板格式的名称。如果指定的格式已经注册，则直接返回该格式的值而不注册新的格式。因此该命令也可以用来查询指定的剪辑板格式的值。注意：*该参数大小写不敏感，即“ClpFmt1”与“clpfMt1”等被认为是同一格式。

参见： 语法的描述规则、基本数据类型


取剪辑板格式名称

取剪辑板格式名称 命令 所属类别：剪辑板操作

为高级用户提供，初级用户无需掌握；
返回指定的剪辑板数据格式值的名称文本，失败返回空文本。

语法： 文本型 取剪辑板格式名称 （欲取其名称的剪辑板格式）

参数名 | 描 述
欲取其名称的剪辑板格式 | 必需的；整数型。注意：*该参数不能为本支持库定义的以“剪辑板_”开头的标准剪辑板格式值。否则命令失败。

参见： 语法的描述规则、基本数据类型


监视剪辑板

监视剪辑板 命令 所属类别：剪辑板操作

为高级用户提供，初级用户无需掌握；
把指定窗口添加到系统剪辑板监视链，当剪辑板内容被改变后，这个窗口会收到“窗口_剪辑板内容已改变”消息。在该窗口正常销毁时系统会自动把该窗口从剪辑板监视链中移除。成功返回真，失败返回假。

语法： 逻辑型 监视剪辑板 （欲添加到剪辑板监视链的窗口的句柄）

参数名 | 描 述
欲添加到剪辑板监视链的窗口的句柄 | 必需的；整数型。该窗口在系统剪辑板内容改变后会收到“窗口_剪辑板内容已改变”消息。

参见： 语法的描述规则、基本数据类型


撤销剪辑板监视

撤销剪辑板监视 命令 所属类别：剪辑板操作

为高级用户提供，初级用户无需掌握；
把指定窗口从系统剪辑板监视链中移除。成功返回真，失败返回假。

语法： 逻辑型 撤销剪辑板监视 （欲从剪辑板监视链中移除的窗口的句柄）

参数名 | 描 述
欲从剪辑板监视链中移除的窗口的句柄 | 必需的；整数型。移除后该窗口将不再接收到“窗口_剪辑板内容已改变”消息。

参见： 语法的描述规则、基本数据类型


注册消息

注册消息 命令 所属类别：消息操作

为高级用户提供，初级用户无需掌握；
定义一个新的系统范围内唯一的窗口消息，返回其消息号。这个命令的返回值可以用于“发送消息”或“投递消息”等命令，以实现不同程序之间的通讯和协作。

语法： 整数型 注册消息 （欲注册的消息文本）

参数名 | 描 述
欲注册的消息文本 | 必需的；文本型。如果该消息已经被其他程序注册，则直接返回该消息的消息号而不注册新消息。

参见： 语法的描述规则、基本数据类型


取CPU运行周期

取CPU运行周期 命令 所属类别：底层操作

为高级用户提供，初级用户无需掌握；
返回CPU从开始运行到现在为止所经过的时钟周期数（clock cycles）。 该命令的一个典型用途是反跟踪调试：在程序中关键代码段的前后分别使用这个命令，然后比较这两个返回值，如果发现两值之差远远大于该段代码正常执行时所需的CPU时钟周期，就可以断定该段代码被跟踪调试了。由于该命令在实现时直接调用了汇编指令“RDTSC”，所以不受系统时钟的影响，就算系统时钟被调试工具中断，该命令也完全可以正常工作。 具体请看该支持库附带的例程。

语法： 长整数型 取CPU运行周期 （）

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#窗口_关闭 | 16 | 当一个窗口将被关闭时，产生这个消息。如果该消息得到了处理，其返回值为0。这个消息没有任何参数。 如果截获到了该消息，并在相应的消息处理子程序中返回“真”，这个窗口就会被销毁。
#窗口_销毁 | 2 | 当一个窗口正在被销毁时，产生这个消息。如果该消息得到了处理，其返回值为0。这个消息没有任何参数。 这个消息首先发送到正在销毁的窗口，然后发送到它的所有子窗口。在处理这个消息时，可以认为它的所有子窗口仍然存在。
#窗口_位置改变 | 3 | 一个窗口的位置发生改变后，产生这个消息。如果该消息得到了处理，其返回值为0。 这个消息只用到参数2，其中参数2的低16位（低字）和高16位（高字）分别表示窗口客户区左上角的X和Y坐标。
#窗口_正在移动 | 534 | 当用户正在移动窗口时，产生该消息。如果该消息得到了处理，其返回值为非零的整数。 该消息使用了两个参数，其中参数1表示窗口的那个部位被移动了。参数2是一个“矩形”（一个自定义数据类型，有4个整数型成员，分别代表矩形的左上角的X、Y坐标和右下角的X、Y坐标）类型容器的地址，表示窗口的“拖动矩形”。
#窗口_系统命令 | 274 | 当用户选择了窗口的“控制菜单”中的某个命令，或单击了最大化、最小化、恢复、关闭按钮中的一个时，产生该消息。如果该消息得到了处理，其返回值为0。 该消息使用了两个参数，其中参数1的低16位（低字）表示命令的类型。如果是用鼠标选择的命令，那么参数2大于0, 它的低16位（低字）、高16位（高字）分别表示当前鼠标指针的X和Y坐标（屏幕坐标，非窗口坐标）。
#窗口_恢复大小 | 19 | 当用户恢复一个最小化窗口到它原来的大小时，产生这个消息。这个消息没有任何参数。可以在对应的消息处理子程序中返回假，来阻止这个窗口从最小化恢复。
#窗口_非客户区左键按下 | 161 | 当用户在非客户区（比如标题栏，窗口边框等易语言自身的“窗口_鼠标左键被按下”事件无法检测到的地方）按下鼠标左键时，产生该消息。如果该消息得到了处理，其返回值为0。 这个消息有两个参数。其中参数1表示鼠标左键在窗口的什么位置按下。其中参数2的低16位（低字）和高16位（高字）分别代表该消息发生时鼠标指针在屏幕上的X和Y坐标。
#窗口_热键 | 786 | 当用户按下由“注册热键”命令注册的热键时，该消息被投递（post）到“注册热键”命令第一个参数所指定的窗口。 这个消息有两个参数。其中参数1代表“热键号”，即该热键的唯一标识，由“注册热键”命令返回。其中参数2的低16位（低字）和高16位（高字）分别代表“功能键”和“其他键”。详见“注册热键”命令的参数说明。
#窗口_剪辑板内容已改变 | 776 |
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#*保留未用* | 0 | 保留，暂未使用。
#功能键ALT | 1 | Alt键，用作“注册热键”命令的参数。
#功能键CTRL | 2 | Ctrl键，用作“注册热键”命令的参数。
#功能键SHIFT | 4 | Shift键，用作“注册热键”命令的参数。
#功能键WIN | 8 | Win键（即有Microsoft Windows标识的那个键），用作“注册热键”命令的参数。
#剪辑板_位图 | 2 | 标准剪辑板格式之一。位图格式。
#剪辑板_设备无关位图 | 8 | 设备无关位图格式。比如Windows自带的《画图》程序在复制、粘贴时就使用这种剪辑板格式。
#剪辑板_WinNT5设备无关位图 | 0 | *具体值目前还未查到。那位知道的朋友可以告诉我:)。
#剪辑板_DIF | 5 | DIF 格式。
#剪辑板_DSPBITMAP | 130 |
#剪辑板_DSPENHMETAFILE | 142 |
#剪辑板_DSPMETAFILEPICT | 131 |
#剪辑板_DSPTEXT | 129 |
#剪辑板_ENHMETAFILE | 14 |
#剪辑板_GDI首值 | 768 | 介于该值和“剪辑板_GDI终值”之间的值是程序定义的GDI对象剪辑板格式。
#剪辑板_GDI终值 | 1023 |
#剪辑板_HDROP | 15 |
#剪辑板_LOCALE | 16 |
#剪辑板_图元图像 | 3 | 图元图像格式。
#剪辑板_OEM文本 | 7 |
#剪辑板_OWNERDISPLAY | 128 |
#剪辑板_调色板 | 9 | 调色板格式。
#剪辑板_PENDATA | 10 |
#剪辑板_私有首值 | 512 | 介于该值和“剪辑板_私有终值”之间的整数值代表私有剪辑板格式。
#剪辑板_私有终值 | 767 |
#剪辑板_RIFF | 11 | RIFF音频格式。比“剪辑板_WAVE”更复杂的音频格式。
#剪辑板_符号链接 | 4 | 微软符号链接格式。
#剪辑板_文本 | 1 | 普通文本格式。
#剪辑板_WAVE | 12 | Wave音频格式。
#剪辑板_TIFF | 6 | 标签图像格式。
#剪辑板_UNICODE文本 | 13 |


消息操作

消息操作 类别 跳至：ｅＬＩＢ＋＋

截获消息 | 撤消消息截获 | 发送消息 | 投递消息
注册消息 |  |  |


ｅＬＩＢ＋＋

ｅＬＩＢ＋＋1.2版 返回首页

让我们心爱的《易语言》更好用，功能更强大！！。

命令类别：

消息操作 | 内存操作 | 数值操作 | 系统相关
剪辑板操作 | 底层操作 |  |

常量表...

为易语言系统提供的工具功能：

名称 | 说明
插入“消息处理子程序” | 感谢使用《ｅＬＩＢ＋＋》


Activate (EMenu)

Activate 方法 所属对象：EMenu

激活菜单特效。

语法： 通用型 EMenu．Activate （hwnd）

参数名 | 描 述
hwnd | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


Remove (EMenu)

Remove 方法 所属对象：EMenu

去除菜单特效。

语法： 通用型 EMenu．Remove （）

参见： 语法的描述规则、基本数据类型


MenuBackground (EMenu)

MenuBackground 方法 所属对象：EMenu

指定菜单背景(注意:不要载入空数据)。

语法： 通用型 EMenu．MenuBackground （Picture）

参数名 | 描 述
Picture | 必需的；字节集。返回/设置一个有一定格式规范的图片，作为按钮的外观皮肤。

参见： 语法的描述规则、基本数据类型


SetMenuIcon (EMenu)

SetMenuIcon 方法 所属对象：EMenu

设置菜单图标 (参数1:菜单标题,参数2:菜单图标索引)。

语法： 无返回值 EMenu．SetMenuIcon （MenuCaption，IconIndex）

参数名 | 描 述
MenuCaption | 必需的；文本型。
IconIndex | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


EMenu

EMenu 功能型窗口单元 跳至：EMenu

EMenuControl。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
IconHeight | IconWidth | MenuIconData | Font
EndColor | StartColor | MenuStyle | MaskColor

方法：


EMenu

EMenu1.0版 返回首页

EMenuControl。

窗口单元数据类型：

EMenu


IconHeight (EMenu)

IconHeight 属性 所属对象：EMenu

数据类型：整数型；菜单图标高度。

参见： 基本数据类型


IconWidth (EMenu)

IconWidth 属性 所属对象：EMenu

数据类型：整数型；菜单图标宽度。

参见： 基本数据类型


MenuIconData (EMenu)

MenuIconData 属性 所属对象：EMenu

数据类型：字节集；指定菜单图标组数据。

参见： 基本数据类型


Font (EMenu)

Font 属性 所属对象：EMenu

数据类型：字体；返回一个 Font 对象。

参见： 基本数据类型


EndColor (EMenu)

EndColor 属性 所属对象：EMenu

数据类型：整数型；菜单渐变结束颜色值。

参见： 基本数据类型


StartColor (EMenu)

StartColor 属性 所属对象：EMenu

数据类型：整数型；菜单渐变开始颜色值。

参见： 基本数据类型


MenuStyle (EMenu)

MenuStyle 属性 所属对象：EMenu

数据类型：整数型；菜单样式选择。

可供选择的属性值：
0、默认
1、渐变

参见： 基本数据类型


MaskColor (EMenu)

MaskColor 属性 所属对象：EMenu

数据类型：整数型；菜单图标组透明颜色。

参见： 基本数据类型


左边 (EMenu)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (EMenu)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (EMenu)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (EMenu)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (EMenu)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (EMenu)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (EMenu)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (EMenu)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


执行命令 (超文本浏览框)

执行命令 方法 所属对象：超文本浏览框

执行指定的浏览器命令。

语法： 无返回值 超文本浏览框．执行命令 （欲执行的命令）

参数名 | 描 述
欲执行的命令 | 必需的；整数型。指定欲执行命令的类型，为以下常量值之一： 0: #前进； 1: #后退； 2: #到首页； 3: #到搜索页； 4: #刷新； 5: #停止； 6: #另存为； 7: #打印； 8: #打印预览； 9: #页面设置。

参见： 语法的描述规则、基本数据类型


跳转 (超文本浏览框)

跳转 方法 所属对象：超文本浏览框

打开互联网或者本机上指定位置处的文档。

语法： 无返回值 超文本浏览框．跳转 （欲打开文档地址，［CHM文件名称］，［目标窗口名称］）

参数名 | 描 述
欲打开文档地址 | 必需的；文本型。指定文档位于互联网或本机上的地址。
CHM文件名称 | 可选的；文本型。如果欲打开文档处于 .CHM 文件内，本参数提供该 CHM 文件的名称。如果本参数被省略，默认值为空文本。
目标窗口名称 | 可选的；文本型。指定文档是否在单独窗口中打开，相同的名称指定相同的窗口。如果欲在浏览框内部打开，提供空文本参数值即可。如果本参数被省略，默认值为空文本。

参见： 语法的描述规则、基本数据类型


取文档类型 (超文本浏览框)

取文档类型 方法 所属对象：超文本浏览框

返回超文本浏览框中现行文档的类型文本。

语法： 文本型 超文本浏览框．取文档类型 （）

参见： 语法的描述规则、基本数据类型


是否正在下载 (超文本浏览框)

是否正在下载 方法 所属对象：超文本浏览框

如果当前正在下载文档或执行页面跳转，返回真，否则返回假。

语法： 逻辑型 超文本浏览框．是否正在下载 （）

参见： 语法的描述规则、基本数据类型


是否就绪 (超文本浏览框)

是否就绪 方法 所属对象：超文本浏览框

如果浏览框当前已经准备就绪，返回真，否则返回假。

语法： 逻辑型 超文本浏览框．是否就绪 （）

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#前进 | 0 |
#后退 | 1 |
#到首页 | 2 |
#到搜索页 | 3 |
#刷新 | 4 |
#停止 | 5 |
#另存为 | 6 |
#打印 | 7 |
#打印预览 | 8 |
#页面设置 | 9 |


超文本浏览框

超文本浏览框 窗口单元 跳至：超文本浏览框

提供对HTML页面的浏览支持。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
字体大小 | 离线浏览 | 静默 | 地址
状态条文本 | 标题 |  |

方法：

执行命令 | 跳转 | 取文档类型 | 是否正在下载
是否就绪 |  |  |

自有事件：

即将跳转 | 跳转完毕 | 载入开始 | 载入进度改变
载入完毕 | 已就绪 | 状态文本被改变 | 标题被改变
命令状态被改变 | 即将打开新窗口 |  |

基本事件：


即将跳转 (超文本浏览框)

即将跳转 事件 所属对象：超文本浏览框

在浏览器即将跳转到另一个页面之前产生此事件，在事件处理子程序中读取“地址”属性即可得知即将跳转到的地址，返回假不允许跳转，返回真或不返回值允许跳转。

语法： 逻辑型 _超文本浏览框_即将跳转 （）

参见： 语法的描述规则、基本数据类型


跳转完毕 (超文本浏览框)

跳转完毕 事件 所属对象：超文本浏览框

当浏览器已跳转到另一个页面之后产生此事件，在事件处理子程序中读取“地址”属性即可得知已跳转到的地址。

语法： 无返回值 _超文本浏览框_跳转完毕 （）

参见： 语法的描述规则、基本数据类型


载入开始 (超文本浏览框)

载入开始 事件 所属对象：超文本浏览框

本事件在“即将跳转”事件之后触发，表示浏览器已开始载入将要显示的文档。

语法： 无返回值 _超文本浏览框_载入开始 （）

参见： 语法的描述规则、基本数据类型


载入进度改变 (超文本浏览框)

载入进度改变 事件 所属对象：超文本浏览框

在浏览器载入文档的过程中，每当文档被载入一部分即触发本事件，用作通知载入进度。

语法： 无返回值 _超文本浏览框_载入进度改变 （进度百分比）

参数名 | 描 述
进度百分比 | 整数型；参数值指示当前文档已经被载入的百分比。

参见： 语法的描述规则、基本数据类型


载入完毕 (超文本浏览框)

载入完毕 事件 所属对象：超文本浏览框

当将要显示在浏览器内的文档被载入完毕后触发本事件。

语法： 无返回值 _超文本浏览框_载入完毕 （）

参见： 语法的描述规则、基本数据类型


已就绪 (超文本浏览框)

已就绪 事件 所属对象：超文本浏览框

当浏览器已经将所需显示的文档处理完毕后发送本事件，在事件处理子程序中读取“地址”属性即可得知已就绪文档的地址。

语法： 无返回值 _超文本浏览框_已就绪 （）

参见： 语法的描述规则、基本数据类型


状态文本被改变 (超文本浏览框)

状态文本被改变 事件 所属对象：超文本浏览框

当浏览器的状态条文本被改变后发送本事件，在事件处理子程序中读取“状态条文本”属性即可得知其内容。

语法： 无返回值 _超文本浏览框_状态文本被改变 （）

参见： 语法的描述规则、基本数据类型


标题被改变 (超文本浏览框)

标题被改变 事件 所属对象：超文本浏览框

当浏览器的标题文本被改变后发送本事件，在事件处理子程序中读取“标题”属性即可得知其内容。

语法： 无返回值 _超文本浏览框_标题被改变 （）

参见： 语法的描述规则、基本数据类型


命令状态被改变 (超文本浏览框)

命令状态被改变 事件 所属对象：超文本浏览框

当“前进”、“后退”等命令的允许状态被改变后发送此事件，用户程序应该根据状态值允许或禁止对应的按钮或菜单项。

语法： 无返回值 _超文本浏览框_命令状态被改变 （命令，是否被允许）

参数名 | 描 述
命令 | 整数型；参数值指示允许状态被改变的命令类型，为以下常量值之一：0: #前进； 1: #后退。
是否被允许 | 逻辑型；参数值指示该命令当前是否被允许。

参见： 语法的描述规则、基本数据类型


即将打开新窗口 (超文本浏览框)

即将打开新窗口 事件 所属对象：超文本浏览框

在浏览器即将打开新窗口浏览另一个页面之前产生此事件，事件处理子程序返回假不允许打开，返回真或不返回值允许打开。

语法： 逻辑型 _超文本浏览框_即将打开新窗口 （）

参见： 语法的描述规则、基本数据类型


超文本浏览框

超文本浏览框1.1版 返回首页

本支持库实现了对超文本浏览框窗口单元的支持。

窗口单元数据类型：

超文本浏览框

常量表...

例程列表：

例程名称 | 下载 | 说明
易浏览器 | 易浏览器.e | 演示了工具条、超文本浏览框、状态条的使用方法，可以浏览超文本网页。


字体大小 (超文本浏览框)

字体大小 属性 所属对象：超文本浏览框

数据类型：整数型；指定浏览页面时所使用的字体尺寸。

可供选择的属性值：
0、最小
1、较小
2、中等
3、较大
4、最大

参见： 基本数据类型


离线浏览 (超文本浏览框)

离线浏览 属性 所属对象：超文本浏览框

数据类型：逻辑型；指定浏览器是否从缓存里面读取超文本页面数据。

参见： 基本数据类型


静默 (超文本浏览框)

静默 属性 所属对象：超文本浏览框

数据类型：逻辑型；本属性如果为真，则浏览过程中不允许浏览器显示自己的对话框。

参见： 基本数据类型


地址 (超文本浏览框)

地址 属性 所属对象：超文本浏览框

数据类型：文本型；指定欲显示的网络或本机超文本页面地址。

参见： 基本数据类型


状态条文本 (超文本浏览框)

状态条文本 属性 所属对象：超文本浏览框

数据类型：文本型；只读；用作在运行时提供浏览器的当前状态条文本。

参见： 基本数据类型


标题 (超文本浏览框)

标题 属性 所属对象：超文本浏览框

数据类型：文本型；只读；用作在运行时提供浏览器的当前标题文本。

参见： 基本数据类型


左边 (超文本浏览框)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (超文本浏览框)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (超文本浏览框)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (超文本浏览框)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (超文本浏览框)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (超文本浏览框)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (超文本浏览框)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (超文本浏览框)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


取项目数 (树型框)

取项目数 方法 所属对象：树型框

返回树型框中所有项目的数目。

语法： 整数型 树型框．取项目数 （）

参见： 语法的描述规则、基本数据类型


取缩进层次 (树型框)

取缩进层次 方法 所属对象：树型框

返回指定项目所处缩进层次，层次值从1开始。如果未找到指定项目，返回 0 。

语法： 整数型 树型框．取缩进层次 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


取项目文本 (树型框)

取项目文本 方法 所属对象：树型框

返回指定项目的文本。如果该项目不存在，将返回空文本。

语法： 文本型 树型框．取项目文本 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


取图片 (树型框)

取图片 方法 所属对象：树型框

返回指定项目的图片索引。如果该项目不存在，将返回 -1 。

语法： 整数型 树型框．取图片 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


取选中图片 (树型框)

取选中图片 方法 所属对象：树型框

返回指定项目被选中后的图片索引。如果该项目不存在，将返回 -1 。

语法： 整数型 树型框．取选中图片 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


取项目数值 (树型框)

取项目数值 方法 所属对象：树型框

返回与指定项目相关联的数值。如果该项目不存在，将返回 0 。

语法： 整数型 树型框．取项目数值 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


置项目文本 (树型框)

置项目文本 方法 所属对象：树型框

设置指定项目的文本。成功返回真，失败返回假。

语法： 逻辑型 树型框．置项目文本 （项目索引，欲置入的项目文本）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


置图片 (树型框)

置图片 方法 所属对象：树型框

设置在指定项目首部所显示图片的索引。成功返回真，失败返回假。

语法： 逻辑型 树型框．置图片 （项目索引，图片索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
图片索引 | 必需的；整数型。图片索引用于指定图片组属性中的某张图片，从 0 开始。

参见： 语法的描述规则、基本数据类型


置选中图片 (树型框)

置选中图片 方法 所属对象：树型框

设置指定项目被选中后所显示图片的索引。成功返回真，失败返回假。

语法： 逻辑型 树型框．置选中图片 （项目索引，图片索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
图片索引 | 必需的；整数型。图片索引用于指定图片组属性中的某张图片，从 0 开始。

参见： 语法的描述规则、基本数据类型


置项目数值 (树型框)

置项目数值 方法 所属对象：树型框

设置与指定项目相关联的数值。成功返回真，失败返回假。

语法： 逻辑型 树型框．置项目数值 （项目索引，［欲置入的项目数值］）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。
欲置入的项目数值 | 可选的；整数型。该数值与指定项目相关联。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


加粗 (树型框)

加粗 方法 所属对象：树型框

将指定项目的标题加粗显示。

语法： 无返回值 树型框．加粗 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


取消加粗 (树型框)

取消加粗 方法 所属对象：树型框

将指定项目的标题取消加粗显示。

语法： 无返回值 树型框．取消加粗 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


扩展 (树型框)

扩展 方法 所属对象：树型框

打开指定项目的下属分枝。

语法： 无返回值 树型框．扩展 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


收缩 (树型框)

收缩 方法 所属对象：树型框

缩回指定项目的下属分枝。

语法： 无返回值 树型框．收缩 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


保证显示 (树型框)

保证显示 方法 所属对象：树型框

确保指定项目能够显示出来，如果不能显示，则自动滚动并显示该项目。

语法： 无返回值 树型框．保证显示 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


进入编辑 (树型框)

进入编辑 方法 所属对象：树型框

让指定项目进入编辑状态，执行本命令成功的前提是“允许编辑”属性为真。

语法： 无返回值 树型框．进入编辑 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


加入项目 (树型框)

加入项目 方法 所属对象：树型框

将指定项目加入到树型框中，成功返回加入后该项目所处的位置，失败返回 -1 。

语法： 整数型 树型框．加入项目 （［父项目索引］，项目文本，［图片索引］，［选中图片索引］，［项目数值］）

参数名 | 描 述
父项目索引 | 可选的；整数型。指定欲加入项目所处的父项目，0 为项目一，1 为项目二，如此类推。如果没有父项目（即欲加入项目为顶层项目），请提供值 -1 。如果本参数被省略，默认值为 -1 。
项目文本 | 必需的；文本型。
图片索引 | 可选的；整数型。图片索引用于指定图片组属性中的某张图片，从 0 开始。如果本参数被省略，默认值为 0 。
选中图片索引 | 可选的；整数型。选中图片索引用于指定项目被选中后所显示的图片，-1 表示与图片索引一致。如果本参数被省略，默认值为 -1 。
项目数值 | 可选的；整数型。指定与本项目相关联的数值。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


删除项目 (树型框)

删除项目 方法 所属对象：树型框

删除树型框中的指定项目。成功返回真，失败返回假。

语法： 逻辑型 树型框．删除项目 （项目索引）

参数名 | 描 述
项目索引 | 必需的；整数型。0 为项目一，1 为项目二，如此类推。

参见： 语法的描述规则、基本数据类型


清空 (树型框)

清空 方法 所属对象：树型框

删除树型框中的所有项目。

语法： 无返回值 树型框．清空 （）

参见： 语法的描述规则、基本数据类型


清空 (状态条)

清空 方法 所属对象：状态条

删除状态条中的所有栏目。

语法： 无返回值 状态条．清空 （）

参见： 语法的描述规则、基本数据类型


加入栏目 (状态条)

加入栏目 方法 所属对象：状态条

将指定栏目加入到状态条中，返回加入后该项目所处的位置。

语法： 整数型 状态条．加入栏目 （［栏目文本］，［宽度］，［动态提示文本］，［图片索引］，［外观类型］）

参数名 | 描 述
栏目文本 | 可选的；文本型。栏目文本指定栏目中的文本内容。如果本参数被省略，默认值为空文本。
宽度 | 可选的；整数型。单位为像素，如果为 -1 ，表示一直到窗口的最右边。如果被省略，默认值为 50 。
动态提示文本 | 可选的；文本型。动态提示文本仅当栏目只有图片但没有内容文本或者内容文本不能被全部显示的情况下才有效。如果本参数被省略，默认值为空文本。
图片索引 | 可选的；整数型。图片索引用于指定图片组属性中的某张图片，该图片将被显示在栏目的首部。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。
外观类型 | 可选的；整数型。外观类型指定栏目的显示外观，可以为以下常量值之一： 0: #凹入； 1: #无边框； 2: #凸出。如果本参数被省略，默认值为“#凹入”。

参见： 语法的描述规则、基本数据类型


删除栏目 (状态条)

删除栏目 方法 所属对象：状态条

删除指定的栏目。

语法： 无返回值 状态条．删除栏目 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取栏目数 (状态条)

取栏目数 方法 所属对象：状态条

取回状态条中栏目的总数。

语法： 整数型 状态条．取栏目数 （）

参见： 语法的描述规则、基本数据类型


取文本 (状态条)

取文本 方法 所属对象：状态条

取回指定栏目的内容文本。

语法： 文本型 状态条．取文本 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取提示文本 (状态条)

取提示文本 方法 所属对象：状态条

取回指定栏目的提示文本。

语法： 文本型 状态条．取提示文本 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取宽度 (状态条)

取宽度 方法 所属对象：状态条

取回指定栏目的宽度(单位为像素)。

语法： 整数型 状态条．取宽度 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取类型 (状态条)

取类型 方法 所属对象：状态条

取回指定栏目的外观类型，返回值为以下常量值之一： 0: #凹入； 1: #无边框； 2: #凸出。

语法： 整数型 状态条．取类型 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取图片 (状态条)

取图片 方法 所属对象：状态条

取回指定栏目的图片索引，图片索引指向图片组属性中的某一图片，从 0 开始，-1 表示本栏目无图片标志。

语法： 整数型 状态条．取图片 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取栏目左边 (状态条)

取栏目左边 方法 所属对象：状态条

取回指定栏目在状态条中显示区域的左边位置，单位为像素。

语法： 整数型 状态条．取栏目左边 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取栏目顶边 (状态条)

取栏目顶边 方法 所属对象：状态条

取回指定栏目在状态条中显示区域的顶边位置，单位为像素。

语法： 整数型 状态条．取栏目顶边 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取栏目宽度 (状态条)

取栏目宽度 方法 所属对象：状态条

取回指定栏目在状态条中显示区域的宽度，单位为像素。

语法： 整数型 状态条．取栏目宽度 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


取栏目高度 (状态条)

取栏目高度 方法 所属对象：状态条

取回指定栏目在状态条中显示区域的高度，单位为像素。

语法： 整数型 状态条．取栏目高度 （栏目索引）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。

参见： 语法的描述规则、基本数据类型


置文本 (状态条)

置文本 方法 所属对象：状态条

设置指定栏目的文本。

语法： 无返回值 状态条．置文本 （栏目索引，［栏目文本］）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。
栏目文本 | 可选的；文本型。栏目文本指定栏目中的文本内容。如果本参数被省略，默认值为空文本。

参见： 语法的描述规则、基本数据类型


置提示文本 (状态条)

置提示文本 方法 所属对象：状态条

设置指定栏目的提示文本。

语法： 无返回值 状态条．置提示文本 （栏目索引，［动态提示文本］）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。
动态提示文本 | 可选的；文本型。动态提示文本仅当栏目只有图片但没有内容文本或者内容文本不能被全部显示的情况下才有效。如果本参数被省略，默认值为空文本。

参见： 语法的描述规则、基本数据类型


置宽度 (状态条)

置宽度 方法 所属对象：状态条

设置指定栏目的宽度(单位像素)。

语法： 无返回值 状态条．置宽度 （栏目索引，［宽度］）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。
宽度 | 可选的；整数型。单位为像素，如果为 -1 ，表示一直到窗口的最右边。如果被省略，默认值为 50 。

参见： 语法的描述规则、基本数据类型


置类型 (状态条)

置类型 方法 所属对象：状态条

设置指定栏目的外观类型。

语法： 无返回值 状态条．置类型 （栏目索引，［外观类型］）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。
外观类型 | 可选的；整数型。外观类型指定栏目的显示外观，可以为以下常量值之一： 0: #凹入； 1: #无边框； 2: #凸出。如果本参数被省略，默认值为“#凹入”。

参见： 语法的描述规则、基本数据类型


置图片 (状态条)

置图片 方法 所属对象：状态条

设置指定栏目的图片索引，图片索引指向图片组属性中的某一图片，从 0 开始，-1 表示本栏目无图片标志。

语法： 无返回值 状态条．置图片 （栏目索引，［图片索引］）

参数名 | 描 述
栏目索引 | 必需的；整数型。0 为栏目一，1 为栏目二，如此类推。
图片索引 | 可选的；整数型。图片索引用于指定图片组属性中的某张图片，该图片将被显示在栏目的首部。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参见： 语法的描述规则、基本数据类型


插入按钮 (工具条)

插入按钮 方法 所属对象：工具条

将指定按钮插入到工具条中，返回插入后该按钮所处的位置。

语法： 整数型 工具条．插入按钮 （［插入位置］，［类型］，［图片索引］，［标题］，［动态提示文本］，［按钮状态］）

参数名 | 描 述
插入位置 | 可选的；整数型。指定新按钮插入的位置索引，0 为栏目一，1 为栏目二，如此类推。如果提供 -1 ，则插入到工具条的尾部。如果本参数被省略，默认值为 -1 。
类型 | 可选的；整数型。按钮的类型可以为以下常量值之一： 0: #普通按钮； 1: #多选按钮； 2: #单选按钮； 3: #下拉按钮； 4: #分隔条。 如果本参数被省略，默认值为“#普通按钮”。
图片索引 | 可选的；整数型。图片索引用于指定图片组属性中的某张图片，该图片将被显示在按钮表面。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。
标题 | 可选的；文本型。本参数指定显示在按钮下的标题文本。如果被省略，默认值为空文本。
动态提示文本 | 可选的；文本型。本参数指定当鼠标移动到按钮上并停留一段时间后所动态显示的提示文本。如果被省略，默认值为空文本。
按钮状态 | 可选的；整数型。本参数指定按钮的存在状态。状态值为 0 或者以下常量值任意组合(相加)： 1: #选中； 2: #按下； 4: #禁止； 8: #隐藏； 16: #变灰。 其中“选中”状态在类型为多选按钮或单选按钮时有效，“按下”状态在类型为普通按钮时有效。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


删除按钮 (工具条)

删除按钮 方法 所属对象：工具条

删除指定的按钮。

语法： 无返回值 工具条．删除按钮 （按钮索引）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。

参见： 语法的描述规则、基本数据类型


取按钮数 (工具条)

取按钮数 方法 所属对象：工具条

取回工具条中按钮的总数。

语法： 整数型 工具条．取按钮数 （）

参见： 语法的描述规则、基本数据类型


取标题 (工具条)

取标题 方法 所属对象：工具条

取回指定按钮的标题文本。

语法： 文本型 工具条．取标题 （按钮索引）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。

参见： 语法的描述规则、基本数据类型


取提示文本 (工具条)

取提示文本 方法 所属对象：工具条

取回指定按钮的提示文本。

语法： 文本型 工具条．取提示文本 （按钮索引）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。

参见： 语法的描述规则、基本数据类型


取类型 (工具条)

取类型 方法 所属对象：工具条

取回指定按钮的类型，返回值为以下常量值之一： 0: #普通按钮； 1: #多选按钮； 2: #单选按钮； 3: #下拉按钮； 4: #分隔条。

语法： 整数型 工具条．取类型 （按钮索引）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。

参见： 语法的描述规则、基本数据类型


取状态 (工具条)

取状态 方法 所属对象：工具条

取回指定按钮的状态，状态值为 0 或者以下常量值任意组合(相加)： 1: #选中； 2: #按下； 4: #禁止； 8: #隐藏； 16: #变灰。 可以用“位与”命令来判断指定的状态值是否被置位，如：“如果真 (位与 (工具条1.取按钮状态 (0)，#禁止) = #禁止)”语句即可判断工具条1的第一个按钮是否已被禁止。

语法： 整数型 工具条．取状态 （按钮索引）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。

参见： 语法的描述规则、基本数据类型


取图片 (工具条)

取图片 方法 所属对象：工具条

取回指定按钮的图片索引，图片索引指向图片组属性中的某一图片，从 0 开始，-1 表示本按钮无图片标志。

语法： 整数型 工具条．取图片 （按钮索引）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。

参见： 语法的描述规则、基本数据类型


置提示文本 (工具条)

置提示文本 方法 所属对象：工具条

设置指定按钮的提示文本。

语法： 无返回值 工具条．置提示文本 （按钮索引，［动态提示文本］）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。
动态提示文本 | 可选的；文本型。本参数指定当鼠标移动到按钮上并停留一段时间后所动态显示的提示文本。如果被省略，默认值为空文本。

参见： 语法的描述规则、基本数据类型


加入状态 (工具条)

加入状态 方法 所属对象：工具条

将指定状态值加入到按钮的存在状态中。

语法： 无返回值 工具条．加入状态 （按钮索引，［按钮状态］）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。
按钮状态 | 可选的；整数型。本参数指定按钮的存在状态。状态值为 0 或者以下常量值任意组合(相加)： 1: #选中； 2: #按下； 4: #禁止； 8: #隐藏； 16: #变灰。 其中“选中”状态在类型为多选按钮或单选按钮时有效，“按下”状态在类型为普通按钮时有效。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


去除状态 (工具条)

去除状态 方法 所属对象：工具条

从按钮的存在状态中去除指定状态值。

语法： 无返回值 工具条．去除状态 （按钮索引，［按钮状态］）

参数名 | 描 述
按钮索引 | 必需的；整数型。0 为按钮一，1 为按钮二，如此类推。
按钮状态 | 可选的；整数型。本参数指定按钮的存在状态。状态值为 0 或者以下常量值任意组合(相加)： 1: #选中； 2: #按下； 4: #禁止； 8: #隐藏； 16: #变灰。 其中“选中”状态在类型为多选按钮或单选按钮时有效，“按下”状态在类型为普通按钮时有效。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


取标题 (超级列表框)

取标题 方法 所属对象：超级列表框

取指定表项或子项的标题。

语法： 文本型 超级列表框．取标题 （表项索引，［列索引］）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。
列索引 | 可选的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始，如果当前列表框类型不是报表型列表框，提供 0 值即可。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


取图片 (超级列表框)

取图片 方法 所属对象：超级列表框

取回指定表项或子项的图片索引，图片索引指向图片组属性中的某一图片，从 0 开始，-1 表示无图片。

语法： 整数型 超级列表框．取图片 （表项索引，［列索引］）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。
列索引 | 可选的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始，如果当前列表框类型不是报表型列表框，提供 0 值即可。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


取当前状态图片 (超级列表框)

取当前状态图片 方法 所属对象：超级列表框

取回指定表项的当前状态图片索引，图片索引指向状态图片组属性中的某一图片，从 0 开始，-1 表示无图片。如果“是否有检查框”属性为真，返回值是当前检查框的选中状态，1表示被选中，0表示未选中。

语法： 整数型 超级列表框．取当前状态图片 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


取缩进数目 (超级列表框)

取缩进数目 方法 所属对象：超级列表框

取回指定表项的缩进数目。

语法： 整数型 超级列表框．取缩进数目 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


取表项数值 (超级列表框)

取表项数值 方法 所属对象：超级列表框

返回与指定表项相关联的数值。如果该表项不存在，返回 0 。

语法： 整数型 超级列表框．取表项数值 （表项索引）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。

参见： 语法的描述规则、基本数据类型


置标题 (超级列表框)

置标题 方法 所属对象：超级列表框

设置指定表项或子项的标题。

语法： 无返回值 超级列表框．置标题 （表项索引，［列索引］，［标题］）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。
列索引 | 可选的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始，如果当前列表框类型不是报表型列表框，提供 0 值即可。如果本参数被省略，默认值为 0 。
标题 | 可选的；文本型。本参数指定表项或子项的标题文本。如果被省略，默认值为空文本。

参见： 语法的描述规则、基本数据类型


置图片 (超级列表框)

置图片 方法 所属对象：超级列表框

设置指定表项或子项的图片。

语法： 无返回值 超级列表框．置图片 （表项索引，［列索引］，［图片索引］）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。
列索引 | 可选的；整数型。用作指定报表型列表框中项目所处的列，索引值从 0 开始，如果当前列表框类型不是报表型列表框，提供 0 值即可。如果本参数被省略，默认值为 0 。
图片索引 | 可选的；整数型。图片索引用于指定“图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参见： 语法的描述规则、基本数据类型


置状态图片 (超级列表框)

置状态图片 方法 所属对象：超级列表框

设置指定表项的状态图片。如果“是否有检查框”属性为真，调用“置状态图片 (0)”或“置状态图片 (1)”可以设置表项检查框的选中状态。

语法： 无返回值 超级列表框．置状态图片 （表项索引，［状态图片索引］）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。
状态图片索引 | 可选的；整数型。状态图片索引用于指定“状态图片组”属性中的某张图片。索引值从 0 开始，-1 表示无图片。如果本参数被省略，默认值为 -1 。

参见： 语法的描述规则、基本数据类型


置缩进数目 (超级列表框)

置缩进数目 方法 所属对象：超级列表框

设置指定表项的缩进数目。

语法： 无返回值 超级列表框．置缩进数目 （表项索引，［缩进数目］）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。
缩进数目 | 可选的；整数型。“缩进数目”仅在报表型列表框才有效，用作指定显示时在表项首部增加的空白数。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


置表项数值 (超级列表框)

置表项数值 方法 所属对象：超级列表框

设置与指定表项相关联的数值。

语法： 无返回值 超级列表框．置表项数值 （表项索引，［表项数值］）

参数名 | 描 述
表项索引 | 必需的；整数型。用于指定列表框中的某一项目，索引值从 0 开始。
表项数值 | 可选的；整数型。该数值与指定表项相关联。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#凹入 | 0 |
#无边框 | 1 |
#凸出 | 2 |
#普通按钮 | 0 |
#多选按钮 | 1 |
#单选按钮 | 2 |
#下拉按钮 | 3 |
#分隔条 | 4 |
#选中 | 1 |
#按下 | 2 |
#禁止 | 4 |
#隐藏 | 8 |
#变灰 | 16 |
#左对齐 | 0 |
#中间对齐 | 1 |
#右对齐 | 2 |


树型框

树型框 窗口单元 跳至：扩展界面支持库一

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 文本颜色 | 背景颜色 | 显示加减框
显示连线 | 显示根部线 | 允许编辑 | 始终显示选择项
现行选中项 | 行高 | 字体 | 图片组
项目 | 结束编辑文本 |  |

方法：

取项目数 | 取缩进层次 | 取项目文本 | 取图片
取选中图片 | 取项目数值 | 置项目文本 | 置图片
置选中图片 | 置项目数值 | 加粗 | 取消加粗
扩展 | 收缩 | 保证显示 | 进入编辑
加入项目 | 删除项目 | 清空 | 取父项目
是否有子项目 | 是否已扩展 |  |

自有事件：

项目被选择 | 双击项目 | 开始编辑 | 结束编辑
即将扩展 | 即将收缩 |  |

基本事件：


状态条

状态条 窗口单元 跳至：扩展界面支持库一

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
背景颜色 | 位置 | 尺寸调节器 | 字体
图片组 | 项目 |  |

方法：

清空 | 加入栏目 | 删除栏目 | 取栏目数
取文本 | 取提示文本 | 取宽度 | 取类型
取图片 | 取栏目左边 | 取栏目顶边 | 取栏目宽度
取栏目高度 | 置文本 | 置提示文本 | 置宽度
置类型 | 置图片 |  |

基本事件：


工具条

工具条 窗口单元 跳至：扩展界面支持库一

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
背景颜色 | 位置 | 平面 | 上边线
列表方式 | 允许多行 | 起始空白 | 字体
图片组 | 热点图片组 | 禁止图片组 | 按钮

方法：

插入按钮 | 删除按钮 | 取按钮数 | 取标题
取提示文本 | 取类型 | 取状态 | 取图片
置提示文本 | 加入状态 | 去除状态 |

自有事件：

被单击 被下拉

基本事件：


超级列表框

超级列表框 窗口单元 跳至：扩展界面支持库一

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 文本颜色 | 文本背景色 | 背景颜色
字体 | 类型 | 图标对齐方式 | 自动排列图标
标题自动换行 | 报表列 | 无表头 | 表头图片组
表头可单击 | 整行选择 | 显示表格线 | 表列可拖动
图片组 | 状态图片组 | 热点跟踪 | 手形指针
标注非热点 | 标注热点 | 允许编辑 | 排序方式
是否有检查框 | 平面滚动条 | 单一选择 | 现行选中项
始终显示选择项 | 表项 | 结束编辑文本 |

方法：

取标题 | 取图片 | 取当前状态图片 | 取缩进数目
取表项数值 | 置标题 | 置图片 | 置状态图片
置缩进数目 | 置表项数值 | 取被选择表项 | 取已选择表项数
是否被选择 | 选择表项 | 取消表项选择 | 取表项数
插入表项 | 删除表项 | 全部删除 | 查找表项
查找表项数值 | 保证显示 | 排列图标 | 取列标题
取列对齐方式 | 取列宽 | 取列图片 | 图片是否居右
置列标题 | 置列宽 | 置列图片 | 取列数
插入列 | 删除列 | 进入编辑 |

自有事件：

当前表项被改变 | 表项被激活 | 表头被单击 | 表项跟踪
左键单击表项 | 右键单击表项 | 开始编辑 | 结束编辑

基本事件：


透明标签

透明标签 窗口单元 跳至：扩展界面支持库一

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 效果 | 字体 | 文本颜色
横向对齐方式 | 是否自动折行 | 纵向对齐方式 |

基本事件：


项目被选择 (树型框)

项目被选择 事件 所属对象：树型框

如果当前选择项目被改变即产生此事件。

语法： 无返回值 _树型框_项目被选择 （选择方式）

参数名 | 描 述
选择方式 | 整数型；指示是如何操作导致当前选择项目被改变的： 0：键盘； 1：鼠标； 2：未知。

参见： 语法的描述规则、基本数据类型


双击项目 (树型框)

双击项目 事件 所属对象：树型框

当使用鼠标左键在某项目上双击时产生此事件。

语法： 无返回值 _树型框_双击项目 （）

参见： 语法的描述规则、基本数据类型


开始编辑 (树型框)

开始编辑 事件 所属对象：树型框

当项目进入标题编辑状态前产生此事件，要产生本事件“允许编辑”属性必须为真。事件处理子程序返回假则不允许进入编辑状态，返回真或不返回值允许进入。

语法： 逻辑型 _树型框_开始编辑 （项目索引）

参数名 | 描 述
项目索引 | 整数型；指示即将进入或结束编辑状态的项目的索引，从 0 开始。

参见： 语法的描述规则、基本数据类型


结束编辑 (树型框)

结束编辑 事件 所属对象：树型框

当项目结束标题编辑状态前产生此事件，要产生本事件“允许编辑”属性必须为真。在事件处理子程序中读取“结束编辑文本”属性可以得知标题被编辑后的内容，事件处理子程序返回假不允许使用编辑后的内容替换原有标题，返回真或不返回值则允许替换。

语法： 逻辑型 _树型框_结束编辑 （项目索引）

参数名 | 描 述
项目索引 | 整数型；指示即将进入或结束编辑状态的项目的索引，从 0 开始。

参见： 语法的描述规则、基本数据类型


即将扩展 (树型框)

即将扩展 事件 所属对象：树型框

当某项目即将被扩展以显示出下属子项目时产生本事件，返回真或不返回值允许扩展，否则将中止扩展。

语法： 逻辑型 _树型框_即将扩展 （项目索引）

参数名 | 描 述
项目索引 | 整数型；指示即将扩展或收缩显示下属子项目的项目索引，从 0 开始。

参见： 语法的描述规则、基本数据类型


即将收缩 (树型框)

即将收缩 事件 所属对象：树型框

当某项目即将被收缩以隐藏下属子项目时产生本事件，返回真或不返回值允许收缩，否则将中止收缩。

语法： 逻辑型 _树型框_即将收缩 （项目索引）

参数名 | 描 述
项目索引 | 整数型；指示即将扩展或收缩显示下属子项目的项目索引，从 0 开始。

参见： 语法的描述规则、基本数据类型


被单击 (工具条)

被单击 事件 所属对象：工具条

当工具条按钮被单击时即产生此事件。

语法： 无返回值 _工具条_被单击 （按钮索引）

参数名 | 描 述
按钮索引 | 整数型；提供被单击或被下拉按钮的索引。0 为按钮一，1 为按钮二，如此类推。

参见： 语法的描述规则、基本数据类型


扩展界面支持库一

扩展界面支持库一1.1版 返回首页

本支持库用作实现对扩展界面元素的支持，需要 Internet Explorer 4.0 或以上版本的支持。

窗口单元数据类型：

树型框 | 状态条 | 工具条 | 超级列表框
透明标签 |  |  |

常量表...

例程列表：

例程名称 | 下载 | 说明
工具条和状态条演示 | 工具及状态条.e | 本程序用作演示工具条和状态条的使用方法.
超级列表框演示 | 超级列表框演示.e | 演示超级列表框的使用方法.另外,在互联网支持库的例程"易之FTP"中也可以找到报表方式超级列表框的使用方法.


边框 (树型框)

边框 属性 所属对象：树型框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


文本颜色 (树型框)

文本颜色 属性 所属对象：树型框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (树型框)

背景颜色 属性 所属对象：树型框

数据类型：整数型；

参见： 基本数据类型


显示加减框 (树型框)

显示加减框 属性 所属对象：树型框

数据类型：逻辑型；本属性指定是否显示加减框。

参见： 基本数据类型


显示连线 (树型框)

显示连线 属性 所属对象：树型框

数据类型：逻辑型；本属性指定是否显示连接线。

参见： 基本数据类型


显示根部线 (树型框)

显示根部线 属性 所属对象：树型框

数据类型：逻辑型；本属性指定是否从根部显示连接线。

参见： 基本数据类型


允许编辑 (树型框)

允许编辑 属性 所属对象：树型框

数据类型：逻辑型；本属性指定是否允许编辑标签内容。

参见： 基本数据类型


始终显示选择项 (树型框)

始终显示选择项 属性 所属对象：树型框

数据类型：逻辑型；本属性指定是否始终显示当前被选择项目，即使树型框失去焦点。

参见： 基本数据类型


现行选中项 (树型框)

现行选中项 属性 所属对象：树型框

数据类型：整数型；本属性指定树型框中现行被选中项目的位置，位置值从 0 开始， -1 表示现行没有被选中的项目。

参见： 基本数据类型


行高 (树型框)

行高 属性 所属对象：树型框

数据类型：整数型；本属性指定树型框中项目行的显示高度，单位为像素， -1 表示使用系统默认值。

参见： 基本数据类型


字体 (树型框)

字体 属性 所属对象：树型框

数据类型：字体；

参见： 基本数据类型


图片组 (树型框)

图片组 属性 所属对象：树型框

数据类型：字节集；为树型框提供标志图片。

参见： 基本数据类型


项目 (树型框)

项目 属性 所属对象：树型框

数据类型：字节集；本属性指定各树型框项目。

参见： 基本数据类型


结束编辑文本 (树型框)

结束编辑文本 属性 所属对象：树型框

数据类型：文本型；只读；本属性仅在运行时有效，用作为“结束编辑”事件的处理子程序提供标题被编辑后的内容。

参见： 基本数据类型


背景颜色 (状态条)

背景颜色 属性 所属对象：状态条

数据类型：整数型；

参见： 基本数据类型


位置 (状态条)

位置 属性 所属对象：状态条

数据类型：整数型；本属性指定状态条的显示位置。

可供选择的属性值：
0、底边
1、顶边
2、自由

参见： 基本数据类型


尺寸调节器 (状态条)

尺寸调节器 属性 所属对象：状态条

数据类型：逻辑型；本属性指定是否在状态条右边提供用于调节窗口尺寸的调节器，注意尺寸调节器仅当窗口的边框可调（即为非固定边框）并且状态条位置在底边时才有效。

参见： 基本数据类型


字体 (状态条)

字体 属性 所属对象：状态条

数据类型：字体；

参见： 基本数据类型


图片组 (状态条)

图片组 属性 所属对象：状态条

数据类型：字节集；为状态条各栏目提供标志图片。

参见： 基本数据类型


项目 (状态条)

项目 属性 所属对象：状态条

数据类型：字节集；本属性设置状态条各栏目的信息。

参见： 基本数据类型


背景颜色 (工具条)

背景颜色 属性 所属对象：工具条

数据类型：整数型；

参见： 基本数据类型


位置 (工具条)

位置 属性 所属对象：工具条

数据类型：整数型；本属性指定工具条的显示位置。

可供选择的属性值：
0、顶边
1、底边
2、自由

参见： 基本数据类型


左边 (树型框)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (树型框)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (树型框)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (树型框)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (树型框)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (树型框)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (树型框)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (树型框)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


取文本长度 (超级编辑框)

取文本长度 方法 所属对象：超级编辑框

返回编辑框中现行所有文本内容的长度。

语法： 整数型 超级编辑框．取文本长度 （）

参见： 语法的描述规则、基本数据类型


取行数 (超级编辑框)

取行数 方法 所属对象：超级编辑框

返回编辑框中当前内容的行数。

语法： 整数型 超级编辑框．取行数 （）

参见： 语法的描述规则、基本数据类型


取行文本 (超级编辑框)

取行文本 方法 所属对象：超级编辑框

返回编辑框中指定行的文本内容。

语法： 文本型 超级编辑框．取行文本 （行号）

参数名 | 描 述
行号 | 必需的；整数型。行号从 0 开始，用作指定编辑框中的某一行。即：0 指定第一行，1 指定第二行，依此类推。

参见： 语法的描述规则、基本数据类型


取首可视行 (超级编辑框)

取首可视行 方法 所属对象：超级编辑框

返回编辑框中当前顶部可见第一行的行号，行号值从 0 开始。

语法： 整数型 超级编辑框．取首可视行 （）

参见： 语法的描述规则、基本数据类型


取行首位置 (超级编辑框)

取行首位置 方法 所属对象：超级编辑框

返回编辑框中指定行的首字符在编辑框全部内容中的索引位置，该索引位置从 0 开始。

语法： 整数型 超级编辑框．取行首位置 （［行号］）

参数名 | 描 述
行号 | 可选的；整数型。行号从 0 开始，用作指定编辑框中的某一行。即：0 指定第一行，1 指定第二行，依此类推。如果为 -1 ，则自动取当前光标所在行行号。如果本参数被省略，则默认值为 -1 。

参见： 语法的描述规则、基本数据类型


取字符所在行 (超级编辑框)

取字符所在行 方法 所属对象：超级编辑框

返回编辑框中指定位置字符所在行的行号，行号值从 0 开始。

语法： 整数型 超级编辑框．取字符所在行 （［字符位置］）

参数名 | 描 述
字符位置 | 可选的；整数型。字符位置为指定字符在编辑框全部内容中的索引位置，该索引位置从 0 开始。如果为 -1 ，则自动取当前光标所在字符位置。如果本参数被省略，则默认值为 -1 。

参见： 语法的描述规则、基本数据类型


滚动 (超级编辑框)

滚动 方法 所属对象：超级编辑框

垂直滚动多行编辑框中的内容显示区域。

语法： 无返回值 超级编辑框．滚动 （行数）

参数名 | 描 述
行数 | 必需的；整数型。本参数指定欲滚动行数，可以为负数。

参见： 语法的描述规则、基本数据类型


取默认字符格式 (超级编辑框)

取默认字符格式 方法 所属对象：超级编辑框

返回当前默认字符格式，默认字符格式影响编辑框中所有未曾明确设置其字符格式的文本。

语法： 字体 超级编辑框．取默认字符格式 （）

参见： 语法的描述规则、基本数据类型


置默认字符格式 (超级编辑框)

置默认字符格式 方法 所属对象：超级编辑框

设置当前默认字符格式，默认字符格式影响编辑框中所有未曾明确设置其字符格式的文本。

语法： 无返回值 超级编辑框．置默认字符格式 （字符格式）

参数名 | 描 述
字符格式 | 必需的；字体。本参数提供欲设置的字符格式。

参见： 语法的描述规则、基本数据类型


取选择区字符格式 (超级编辑框)

取选择区字符格式 方法 所属对象：超级编辑框

返回当前选择区内首字符文本的字符格式。

语法： 字体 超级编辑框．取选择区字符格式 （）

参见： 语法的描述规则、基本数据类型


置选择区字符格式 (超级编辑框)

置选择区字符格式 方法 所属对象：超级编辑框

设置当前选择区内所有文本的字符格式。

语法： 无返回值 超级编辑框．置选择区字符格式 （字符格式）

参数名 | 描 述
字符格式 | 必需的；字体。本参数提供欲设置的字符格式。

参见： 语法的描述规则、基本数据类型


取选择区段落格式 (超级编辑框)

取选择区段落格式 方法 所属对象：超级编辑框

返回当前选择区内首段落的段落格式。

语法： 编辑框 超级编辑框．取选择区段落格式 （）

参见： 语法的描述规则、基本数据类型


置选择区段落格式 (超级编辑框)

置选择区段落格式 方法 所属对象：超级编辑框

设置当前选择区内所有段落的段落格式。

语法： 无返回值 超级编辑框．置选择区段落格式 （段落格式）

参数名 | 描 述
段落格式 | 必需的；编辑框。本参数提供欲设置的段落格式。

参见： 语法的描述规则、基本数据类型


撤消 (超级编辑框)

撤消 方法 所属对象：超级编辑框

撤消编辑框中最后一次的更改操作。

语法： 无返回值 超级编辑框．撤消 （）

参见： 语法的描述规则、基本数据类型


可否撤消 (超级编辑框)

可否撤消 方法 所属对象：超级编辑框

如果当前编辑框中存在可以被撤消的更改操作，返回真，否则返回假。

语法： 逻辑型 超级编辑框．可否撤消 （）

参见： 语法的描述规则、基本数据类型


清空撤消数据 (超级编辑框)

清空撤消数据 方法 所属对象：超级编辑框

清除编辑框中为支持撤消上次更改操作所保存的所有数据，本命令执行后无法再撤消上次所更改的操作。

语法： 无返回值 超级编辑框．清空撤消数据 （）

参见： 语法的描述规则、基本数据类型


寻找 (超级编辑框)

寻找 方法 所属对象：超级编辑框

在编辑框中寻找指定的文本，如找到则返回该文本首字符所处的位置索引（从0开始），未找到则返回-1。

语法： 整数型 超级编辑框．寻找 （［起始寻找位置］，［是否区分大小写］，［是否匹配单词］，欲寻找文本）

参数名 | 描 述
起始寻找位置 | 可选的；整数型。参数值为以 0 开始的字符位置索引，如果被省略，则默认值为 0 。
是否区分大小写 | 可选的；逻辑型。指定寻找时是否区分大小写英文字母，如果被省略，则默认值为真。
是否匹配单词 | 可选的；逻辑型。指定寻找时是否只允许单词才能匹配，如果被省略，则默认值为假。
欲寻找文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


复制 (超级编辑框)

复制 方法 所属对象：超级编辑框

将现行被选择文本复制到剪辑板。

语法： 无返回值 超级编辑框．复制 （）

参见： 语法的描述规则、基本数据类型


剪切 (超级编辑框)

剪切 方法 所属对象：超级编辑框

将现行被选择文本剪切到剪辑板。

语法： 无返回值 超级编辑框．剪切 （）

参见： 语法的描述规则、基本数据类型


删除 (超级编辑框)

删除 方法 所属对象：超级编辑框

删除现行被选择文本。

语法： 无返回值 超级编辑框．删除 （）

参见： 语法的描述规则、基本数据类型


粘贴 (超级编辑框)

粘贴 方法 所属对象：超级编辑框

将剪辑板中的现行内容粘贴到光标位置。

语法： 无返回值 超级编辑框．粘贴 （）

参见： 语法的描述规则、基本数据类型


可否粘贴 (超级编辑框)

可否粘贴 方法 所属对象：超级编辑框

如果当前剪辑板中具有可以粘贴到编辑框中的数据，返回真，否则返回假。

语法： 逻辑型 超级编辑框．可否粘贴 （）

参见： 语法的描述规则、基本数据类型


读入文档 (超级编辑框)

读入文档 方法 所属对象：超级编辑框

显示对话框打开指定文档并读入到编辑框中，成功返回所读入文档的文件名，失败或被用户中止返回空文本。本命令可以自动调用当前Windows系统中已登记的所有文档转换器以读入各种其它类型文档，譬如Word文档、Excel表格等等。

语法： 文本型 超级编辑框．读入文档 （）

参见： 语法的描述规则、基本数据类型


转换文档

转换文档 命令 所属类别：文档格式转换

显示对话框打开指定文档并将其转换到RTF格式(RTF是国际标准丰富文本格式)，成功返回被转换文档的文件名且将转换结果存放到指定容器，失败或被用户中止返回空文本。本命令可以自动调用当前Windows系统中已登记的所有文档转换器以读入各种其它类型文档，譬如Word文档、Excel表格等等。

语法： 文本型 转换文档 （转换结果存放容器）

参数名 | 描 述
转换结果存放容器 | 必需的；文本型，参数数据只能提供容器。本参数提供用作存放转换后的RTF结果文本的容器。

参见： 语法的描述规则、基本数据类型


加入图片

加入图片 命令 所属类别：图片组处理

将图片加入到指定图片组数据中，成功返回所加入图片在被加入图片组中的位置索引，该索引值从 0 开始。如果失败，返回 -1 。注意如果欲加入图片的尺寸与图片组的单一图片尺寸参数不一致，该图片会被自动分解或缩放后加入。

语法： 整数型 加入图片 （图片组数据容器，欲加入图片，［图片透明色］）

参数名 | 描 述
图片组数据容器 | 必需的；字节集，参数数据只能提供容器。本参数提供即将被处理的图片组数据，处理后的图片组数据也被存放回此容器中。
欲加入图片 | 必需的；字节集。本参数提供即将被加入的图片数据，可以是JPG、BMP、GIF、ICO、CUR等各种格式。
图片透明色 | 可选的；整数型。本参数指定图片的背景透明色，如果为常量值“#默认色”，则系统自动取该图片最左上角一点的颜色值为透明色。如果本参数被省略，默认值为常量值“#默认色”。

参见： 语法的描述规则、基本数据类型


合并图片组

合并图片组 命令 所属类别：图片组处理

将两份图片组数据合并到一起形成新的图片组数据，成功返回合并后的图片组数据，失败返回空字节集。

语法： 字节集 合并图片组 （图片组数据1，图片组数据2）

参数名 | 描 述
图片组数据1 | 必需的；字节集。本参数提供即将被合并的图片组数据。
图片组数据2 | 必需的；字节集。本参数提供即将被合并的图片组数据。

参见： 语法的描述规则、基本数据类型


提取加入图片

提取加入图片 命令 所属类别：图片组处理

从指定文件中提取其中的某一图标，并将其加入到图片组中。成功返回所加入图标在被加入图片组中的位置索引，该索引值从 0 开始。如果失败，返回 -1 。

语法： 整数型 提取加入图片 （图片组数据容器，图标所在文件，［图标索引］）

参数名 | 描 述
图片组数据容器 | 必需的；字节集，参数数据只能提供容器。本参数提供即将被处理的图片组数据，处理后的图片组数据也被存放回此容器中。
图标所在文件 | 必需的；文本型。本参数提供图标资源所在的文件名(譬如EXE、DLL或ICO等文件)。
图标索引 | 可选的；整数型。本参数提供被提取图标在指定文件内所有图标中的索引位置，从 0 开始。如果本参数被省略，默认值为 0 。

参见： 语法的描述规则、基本数据类型


取文件内图标数

取文件内图标数 命令 所属类别：图片组处理

返回指定文件中所包含的图标数目。

语法： 整数型 取文件内图标数 （图标所在文件）

参数名 | 描 述
图标所在文件 | 必需的；文本型。本参数提供图标资源所在的文件名(譬如EXE、DLL或ICO等文件)。

参见： 语法的描述规则、基本数据类型


删除图片组图片

删除图片组图片 命令 所属类别：图片组处理

删除图片组数据中指定位置处的图片，成功返回真，失败返回假。

语法： 逻辑型 删除图片组图片 （图片组数据容器，欲删除图片位置，［欲删除图片数目］）

参数名 | 描 述
图片组数据容器 | 必需的；字节集，参数数据只能提供容器。本参数提供即将被处理的图片组数据，处理后的图片组数据也被存放回此容器中。
欲删除图片位置 | 必需的；整数型。本参数提供即将被删除图片所处的索引位置，位置值从 0 开始。
欲删除图片数目 | 可选的；整数型。如果本参数被省略，默认值为 1 。

参见： 语法的描述规则、基本数据类型


取图片组图片数

取图片组图片数 命令 所属类别：图片组处理

返回指定图片组数据中所包含图片的数目。

语法： 整数型 取图片组图片数 （图片组数据）

参数名 | 描 述
图片组数据 | 必需的；字节集。本参数提供希望获得其中图片数目的图片组数据。

参见： 语法的描述规则、基本数据类型


建空图片组

建空图片组 命令 所属类别：图片组处理

根据指定参数创建一份空白的图片组数据，成功返回所创建图片组的数据，失败返回空字节集。

语法： 字节集 建空图片组 （单一图片宽度，单一图片高度）

参数名 | 描 述
单一图片宽度 | 必需的；整数型。本参数指定图片组中单一图片的宽度，单位为像素。
单一图片高度 | 必需的；整数型。本参数指定图片组中单一图片的高度，单位为像素。

参见： 语法的描述规则、基本数据类型


取图片组图片

取图片组图片 命令 所属类别：图片组处理

返回图片组数据中所包含的指定图片，成功返回所获取图片的数据，失败返回空字节集。

语法： 字节集 取图片组图片 （图片组数据，欲获取图片位置，［透明填充色］）

参数名 | 描 述
图片组数据 | 必需的；字节集。本参数提供希望获得其中图片的图片组数据。
欲获取图片位置 | 必需的；整数型。本参数提供希望被获取图片在图片组中所处的索引位置，位置值从 0 开始。
透明填充色 | 可选的；整数型。本参数指定用作填充图片透明背景部分的颜色。如果被省略，默认值为常量值“#白色”。

参见： 语法的描述规则、基本数据类型


RTF到纯文本

RTF到纯文本 命令 所属类别：文档格式转换

取出并返回指定RTF丰富格式文本数据中的纯文本内容。

语法： 文本型 RTF到纯文本 （RTF文本）

参数名 | 描 述
RTF文本 | 必需的；文本型。本参数提供欲转换的RTF文本数据。

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#禁止更改 | 16 | 用作保护编辑框中的某段指定内容不被更改。
#段落居左 | 1 |
#段落居中 | 2 |
#段落居右 | 3 |


文档格式转换

文档格式转换 类别 跳至：扩展界面支持库二


图片组处理

图片组处理 类别 跳至：扩展界面支持库二


超级按钮

超级按钮 窗口单元 跳至：扩展界面支持库二

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
按钮风格 | 选择框方式 | 选中 | 对齐方式
压入方式 | 绘制边框 | 绘制焦点 | 通常图片
通常图片透明色 | 点燃图片 | 点燃图片透明色 | 禁止图片
禁止图片透明色 | 字体 | 标题 | 使用默认色
通常前景色 | 通常背景色 | 点燃前景色 | 点燃背景色
焦点前景色 | 焦点背景色 | 标准音提示 | 经过提示音
单击提示音 | 提示文本 | 默认类型 |

自有事件：

被单击

基本事件：


被单击 (超级按钮)

被单击 事件 所属对象：超级按钮

当单击按钮后即产生此事件。

语法： 无返回值 _超级按钮_被单击 （）

参见： 语法的描述规则、基本数据类型


扩展界面支持库二

扩展界面支持库二1.1版 返回首页

本支持库用作实现对扩展界面元素的支持。

命令类别：

文档格式转换 图片组处理

窗口单元数据类型：

超级按钮 高级影像框 分隔条 超级编辑框

其它数据类型：

字符格式 段落格式

常量表...

例程列表：

例程名称 | 下载 | 说明
AVI播放器 | AVI播放器.e | 演示高级影像框的使用方法
超级按钮演示 | 超级按钮.e | 演示超级按钮的使用方法
分隔条演示 | 分隔条演示.e | 本程序用做演示分隔条的使用方法
可执行文件浏览器 | 可执行文件浏览器.e | 演示动态管理图片组的方法
文档转换 | 文档转换.e | 演示如何进行文档格式转换。


绘制边框 (超级按钮)

绘制边框 属性 所属对象：超级按钮

数据类型：逻辑型；本属性指定非立体风格按钮是否绘制边框线。

参见： 基本数据类型


绘制焦点 (超级按钮)

绘制焦点 属性 所属对象：超级按钮

数据类型：逻辑型；本属性指定非立体风格按钮获得焦点后是否绘制焦点边框线。

参见： 基本数据类型


通常图片 (超级按钮)

通常图片 属性 所属对象：超级按钮

数据类型：字节集；本属性指定当鼠标位于按钮外时显示的图片。

参见： 基本数据类型


通常图片透明色 (超级按钮)

通常图片透明色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定通常图片中透明部分的颜色，如果属性值为默认背景色则自动以图片左上角第一点的颜色值作为透明色。

参见： 基本数据类型


点燃图片 (超级按钮)

点燃图片 属性 所属对象：超级按钮

数据类型：字节集；本属性指定当鼠标位于按钮上时显示的图片，如果不提供，系统将会自动使用通常图片。

参见： 基本数据类型


点燃图片透明色 (超级按钮)

点燃图片透明色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定点燃图片中透明部分的颜色，如果属性值为默认背景色则自动以图片左上角第一点的颜色值作为透明色。

参见： 基本数据类型


禁止图片 (超级按钮)

禁止图片 属性 所属对象：超级按钮

数据类型：字节集；本属性指定当按钮被禁止时显示的图片，如果不提供，系统将会自动生成。

参见： 基本数据类型


禁止图片透明色 (超级按钮)

禁止图片透明色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定禁止图片中透明部分的颜色，如果属性值为默认背景色则自动以图片左上角第一点的颜色值作为透明色。

参见： 基本数据类型


字体 (超级按钮)

字体 属性 所属对象：超级按钮

数据类型：字体；本属性指定按钮文本使用的显示字体。

参见： 基本数据类型


标题 (超级按钮)

标题 属性 所属对象：超级按钮

数据类型：文本型；本属性指定按钮标题文本的内容。

参见： 基本数据类型


使用默认色 (超级按钮)

使用默认色 属性 所属对象：超级按钮

数据类型：逻辑型；本属性指定是否使用操作系统默认配色方案来对按钮进行配色。

参见： 基本数据类型


通常前景色 (超级按钮)

通常前景色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定当鼠标位于按钮外时文本标题所使用的显示颜色。

参见： 基本数据类型


通常背景色 (超级按钮)

通常背景色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定当鼠标位于按钮外时显示的背景颜色。

参见： 基本数据类型


点燃前景色 (超级按钮)

点燃前景色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定当鼠标位于按钮上时文本标题所使用的显示颜色。

参见： 基本数据类型


点燃背景色 (超级按钮)

点燃背景色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定当鼠标位于按钮上时显示的背景颜色。

参见： 基本数据类型


焦点前景色 (超级按钮)

焦点前景色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定当按钮获得输入焦点时文本标题所使用的显示颜色。

参见： 基本数据类型


焦点背景色 (超级按钮)

焦点背景色 属性 所属对象：超级按钮

数据类型：整数型；本属性指定当按钮获得输入焦点时显示的背景颜色。

参见： 基本数据类型


标准音提示 (超级按钮)

标准音提示 属性 所属对象：超级按钮

数据类型：逻辑型；本属性指定当鼠标单击按钮或移动到非立体风格按钮上时是否同时发出标准的“哒哒”音。

参见： 基本数据类型


经过提示音 (超级按钮)

经过提示音 属性 所属对象：超级按钮

数据类型：字节集；本属性指定当鼠标移动到非立体风格按钮上时所发出的声音，注意仅支持WAV格式。

参见： 基本数据类型


单击提示音 (超级按钮)

单击提示音 属性 所属对象：超级按钮

数据类型：字节集；本属性指定当鼠标单击按钮时所发出的声音，注意仅支持WAV格式。

参见： 基本数据类型


提示文本 (超级按钮)

提示文本 属性 所属对象：超级按钮

数据类型：文本型；本属性指定当鼠标停留在按钮上时动态显示的提示文本。

参见： 基本数据类型


默认类型 (超级按钮)

默认类型 属性 所属对象：超级按钮

数据类型：整数型；当在窗口上按下Enter键时，如果没有将窗口的“回车下移输入点”属性设置为真，则等同于按下了具有“默认”类型的按钮。因此具有“默认”类型的按钮在同一窗口上应当只有一个。“通常”类型的按钮无对应的操作默认键。

可供选择的属性值：
0、通常
1、默认

参见： 基本数据类型


左边 (超级按钮)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (超级按钮)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (超级按钮)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (超级按钮)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (超级按钮)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (超级按钮)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (超级按钮)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (超级按钮)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


连接发信服务器

连接发信服务器 命令 所属类别：邮件发送

连接到指定的SMTP邮件发送服务器，成功返回真，失败返回假。

语法： 逻辑型 连接发信服务器 （发信邮件服务器地址，［端口号］，［用户名］，［密码］，［最长等待时间］）

参数名 | 描 述
发信邮件服务器地址 | 必需的；文本型。指定用作发送邮件的SMTP邮件服务器地址。
端口号 | 可选的；整数型。指定欲连接到SMTP邮件服务器上的端口号，如果本参数被省略，默认值为标准 25 端口。
用户名 | 可选的；文本型。指定在SMTP邮件服务器上的用户帐号名称，如果本参数被省略，默认值为空文本，即无需登录。
密码 | 可选的；文本型。指定在SMTP邮件服务器上的用户帐号密码，如果本参数被省略，默认值为空文本，即无需登录。
最长等待时间 | 可选的；整数型。指定在发信过程中等待SMTP邮件服务器响应的最大时间，单位为毫秒，如果本参数被省略，默认值为 2000 毫秒。

参见： 语法的描述规则、基本数据类型


断开发信服务器

断开发信服务器 命令 所属类别：邮件发送

断开通过“连接发信服务器”命令建立的到SMTP邮件发送服务器的连接。

语法： 无返回值 断开发信服务器 （）

参见： 语法的描述规则、基本数据类型


添加附件文件

添加附件文件 命令 所属类别：邮件发送

添加指定的文件附件到即将发送的邮件中，成功返回真，失败返回假。

语法： 逻辑型 添加附件文件 （欲添加的附件文件）

参数名 | 描 述
欲添加的附件文件 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


添加附件数据

添加附件数据 命令 所属类别：邮件发送

添加附件数据到即将发送的邮件中，成功返回真，失败返回假。

语法： 逻辑型 添加附件数据 （欲添加的附件数据，附件标题）

参数名 | 描 述
欲添加的附件数据 | 必需的；字节集。
附件标题 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


清除所有附件

清除所有附件 命令 所属类别：邮件发送

清除所有使用“添加附件文件”和“添加附件数据”命令添加到即将发送邮件中的附件数据。

语法： 无返回值 清除所有附件 （）

参见： 语法的描述规则、基本数据类型


发送邮件

发送邮件 命令 所属类别：邮件发送

发送邮件到指定信箱，注意邮件中包含所有使用“添加附件文件”和“添加附件数据”命令添加的附件。成功返回空文本，失败返回具体错误信息文本。

语法： 文本型 发送邮件 （主题，正文，收信人邮件地址，［抄送邮件地址］，［暗送邮件地址］，发信人邮件地址，［回复邮件地址］）

参数名 | 描 述
主题 | 必需的；文本型。
正文 | 必需的；文本型。
收信人邮件地址 | 必需的；文本型。可以为地址列表并包括友好名称，示例如：“吴涛〈fly@eyuyan.com〉;易语言俱乐部〈club@eyuyan.com〉” 或：“fly@eyuyan.com;club@eyuyan.com”都可以，多地址之间用逗号或分号分隔，友好名称后的邮件地址用半角尖括号括住。
抄送邮件地址 | 可选的；文本型。地址格式等同于“收信人邮件地址”，如果本参数被省略，默认为空文本。
暗送邮件地址 | 可选的；文本型。地址格式等同于“收信人邮件地址”，如果本参数被省略，默认为空文本。
发信人邮件地址 | 必需的；文本型。只能为单个邮件地址，可以包括友好名称，示例如：“吴涛〈fly@eyuyan.com〉”或“fly@eyuyan.com”。
回复邮件地址 | 可选的；文本型。指定收件人回复此邮件的地址。如果被省略，默认为与发信人邮件地址相同。

参见： 语法的描述规则、基本数据类型


置代理服务器

置代理服务器 命令 所属类别：HTTP及FTP操作

设置在以后HTTP及FTP互联网操作中所使用代理服务器的名称。

语法： 无返回值 置代理服务器 （［代理服务器名称］）

参数名 | 描 述
代理服务器名称 | 可选的；文本型。如果要取消代理服务器设置，请提供空文本。如果本参数被省略，默认值为空文本。

参见： 语法的描述规则、基本数据类型


HTTP读文件

HTTP读文件 命令 所属类别：HTTP及FTP操作

获取互联网上指定HTTP地址处的网页或数据文件，返回文件内容字节集。

语法： 字节集 HTTP读文件 （HTTP文件地址）

参数名 | 描 述
HTTP文件地址 | 必需的；文本型。本参数指定欲读取文件在互联网上的HTTP地址（即URL）。

参见： 语法的描述规则、基本数据类型


连接FTP服务器

连接FTP服务器 命令 所属类别：HTTP及FTP操作

连接到互联网上指定地址处的FTP服务器。在进行所有FTP操作之前必须首先成功连接FTP服务器。成功返回真，失败返回假。

语法： 逻辑型 连接FTP服务器 （FTP服务器地址，［用户名］，［密码］，［端口号］，［是否使用被动语义］）

参数名 | 描 述
FTP服务器地址 | 必需的；文本型。本参数指定FTP服务器在互联网上的地址。
用户名 | 可选的；文本型。本参数提供用作通过FTP服务器用户验证的用户名称，如果被省略，默认值为匿名用户名“anonymous”。
密码 | 可选的；文本型。本参数提供用作通过FTP服务器用户验证的密码，如果被省略，默认值为空文本。
端口号 | 可选的；整数型。本参数提供欲连接到FTP服务器上的端口号，如果被省略，默认值为标准端口 21 。
是否使用被动语义 | 可选的；逻辑型。如果本参数被省略，默认值为假。

参见： 语法的描述规则、基本数据类型


断开FTP服务器

断开FTP服务器 命令 所属类别：HTTP及FTP操作

断开通过“连接FTP服务器”命令建立的到互联网上FTP服务器的连接，本命令执行后不能再进行FTP操作。

语法： 无返回值 断开FTP服务器 （）

参见： 语法的描述规则、基本数据类型


FTP文件下载

FTP文件下载 命令 所属类别：HTTP及FTP操作

将FTP服务器上的指定文件下载到本地，成功返回真，失败返回假。

语法： 逻辑型 FTP文件下载 （欲下载的FTP文件，本地文件名，［是否使用ASCII码方式］）

参数名 | 描 述
欲下载的FTP文件 | 必需的；文本型。本参数指定在FTP服务器上欲下载文件的路径。
本地文件名 | 必需的；文本型。本参数指定被下载文件的本地保存位置。
是否使用ASCII码方式 | 可选的；逻辑型。指定是否使用ASCII编码方式传递文件数据。如果本参数被省略，默认值为假，即使用二进制方式传送。

参见： 语法的描述规则、基本数据类型


FTP文件上传

FTP文件上传 命令 所属类别：HTTP及FTP操作

将本地文件上传到FTP服务器上的指定位置，成功返回真，失败返回假。

语法： 逻辑型 FTP文件上传 （欲上传的本地文件，FTP文件路径，［是否使用ASCII码方式］）

参数名 | 描 述
欲上传的本地文件 | 必需的；文本型。本参数指定欲上传到FTP服务器上本地文件的路径。
FTP文件路径 | 必需的；文本型。本参数指定上传到FTP服务器上文件的保存位置。
是否使用ASCII码方式 | 可选的；逻辑型。指定是否使用ASCII编码方式传递文件数据。如果本参数被省略，默认值为假，即使用二进制方式传送。

参见： 语法的描述规则、基本数据类型


FTP删除文件

FTP删除文件 命令 所属类别：HTTP及FTP操作

删除FTP服务器上的指定文件。成功返回真，失败返回假。

语法： 逻辑型 FTP删除文件 （欲删除的FTP文件）

参数名 | 描 述
欲删除的FTP文件 | 必需的；文本型。本参数指定在FTP服务器上欲删除文件的路径。

参见： 语法的描述规则、基本数据类型


FTP文件改名

FTP文件改名 命令 所属类别：HTTP及FTP操作

更改FTP服务器上指定文件的名称。成功返回真，失败返回假。

语法： 逻辑型 FTP文件改名 （欲改名的FTP文件，新文件名称）

参数名 | 描 述
欲改名的FTP文件 | 必需的；文本型。本参数指定FTP服务器上欲改名文件的路径。
新文件名称 | 必需的；文本型。本参数指定欲改为的文件名称。

参见： 语法的描述规则、基本数据类型


FTP创建目录

FTP创建目录 命令 所属类别：HTTP及FTP操作

在FTP服务器上指定位置处创建新的目录。成功返回真，失败返回假。

语法： 逻辑型 FTP创建目录 （FTP目录路径）

参数名 | 描 述
FTP目录路径 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


FTP删除目录

FTP删除目录 命令 所属类别：HTTP及FTP操作

删除FTP服务器上的指定目录。成功返回真，失败返回假。

语法： 逻辑型 FTP删除目录 （FTP目录路径）

参数名 | 描 述
FTP目录路径 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


FTP置现行目录

FTP置现行目录 命令 所属类别：HTTP及FTP操作

设置FTP服务器上的当前目录，设置后可以在其他FTP命令中使用相对路径来指定文件。成功返回真，失败返回假。

语法： 逻辑型 FTP置现行目录 （FTP目录路径）

参数名 | 描 述
FTP目录路径 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


FTP取现行目录

FTP取现行目录 命令 所属类别：HTTP及FTP操作

返回FTP服务器上的当前目录。成功返回目录路径，失败返回空文本。

语法： 文本型 FTP取现行目录 （）

参见： 语法的描述规则、基本数据类型


FTP目录列表

FTP目录列表 命令 所属类别：HTTP及FTP操作

返回FTP服务器上指定目录内的所有匹配文件和子目录信息。成功返回被找到的文件和子目录的数目，失败返回 0 。

语法： 整数型 FTP目录列表 （欲列出的文件，［欲列出文件的属性］，［存放文件名的数组容器］，［存放文件属性的数组容器］，［存放文件尺寸的数组容器］，［存放文件时间的数组容器］）

参数名 | 描 述
欲列出的文件 | 必需的；文本型。可以包含路径，可以使用多字符 (*) 和单字符 (?) 通配符来指定多重文件及目录。
欲列出文件的属性 | 可选的；整数型。参数值可以为以下常量值或其和： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 16、#子目录； 32、#存档文件 。通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数，默认为搜寻所有子目录和文件。
存放文件名的数组容器 | 可选的；文本型，参数数据只能提供容器数组。在命令执行完毕后，本容器数组内被顺序填入所找到的匹配文件和子目录名称。容器数组内原有数据被全部销毁，容器数组的维数被自动调整为所找到的文件数目。如果本参数被省略，默认值为空。
存放文件属性的数组容器 | 可选的；整数型，参数数据只能提供容器数组。在命令执行完毕后，本容器数组内被顺序填入所找到的匹配文件的属性，并与文件名数组成员一一对应。此属性值由以下常量或其和构成： 1、#只读文件； 2、#隐藏文件； 4、#系统文件； 16、#子目录；32、#存档文件 。要判断是否设置了某个属性，在返回值与想要得知的属性值之间使用“位与”命令进行比较。如果所得的结果不为零，则表示设置了这个属性值。容器数组内原有数据被全部销毁，容器数组的维数被自动调整为所找到的文件数目。如果本参数被省略，默认值为空。
存放文件尺寸的数组容器 | 可选的；整数型，参数数据只能提供容器数组。在命令执行完毕后，本容器数组内被顺序填入所找到的匹配文件的尺寸，并与文件名数组成员一一对应。容器数组内原有数据被全部销毁，容器数组的维数被自动调整为所找到的文件数目。如果本参数被省略，默认值为空。
存放文件时间的数组容器 | 可选的；日期时间型，参数数据只能提供容器数组。在命令执行完毕后，本容器数组内被顺序填入所找到的匹配文件的最后修改时间，并与文件名数组成员一一对应。容器数组内原有数据被全部销毁，容器数组的维数被自动调整为所找到的文件数目。如果本参数被省略，默认值为空。

参见： 语法的描述规则、基本数据类型


取拨号连接数

取拨号连接数 命令 所属类别：拨号上网

返回用户在Windows系统中已建立的拨号连接配置数目。

语法： 整数型 取拨号连接数 （）

参见： 语法的描述规则、基本数据类型


取连接名称

取连接名称 命令 所属类别：拨号上网

返回指定拨号连接配置的名称。

语法： 文本型 取连接名称 （拨号网络索引）

参数名 | 描 述
拨号网络索引 | 必需的；整数型。指定获取哪一个拨号网络配置信息，索引值从 0 开始，最大值为“取拨号连接数”命令的返回值减一。

参见： 语法的描述规则、基本数据类型


取用户帐号

取用户帐号 命令 所属类别：拨号上网

返回指定拨号连接配置所使用的用户帐号名称。

语法： 文本型 取用户帐号 （拨号网络索引）

参数名 | 描 述
拨号网络索引 | 必需的；整数型。指定获取哪一个拨号网络配置信息，索引值从 0 开始，最大值为“取拨号连接数”命令的返回值减一。

参见： 语法的描述规则、基本数据类型


拨号

拨号 命令 所属类别：拨号上网

开始拨号并试图建立网络连接。成功返回真，失败返回假。注意如果“是否等待连接完毕”参数为假，则即使本命令返回真，也并不意味着马上就可以使用该网络连接，必须等到“是否已在线”命令返回真时才可以。如果“是否等待连接完毕”参数为真，则本命令会一直等待到连接操作执行完毕后才会返回。另外，建议在执行本命令前调用“是否已在线”命令查看当前是否已经连接到网络上，如果已经连接，则不需要再执行本命令。

语法： 逻辑型 拨号 （电话号码，用户帐号，帐号密码，［是否等待连接完毕］，［状态标签］）

参数名 | 描 述
电话号码 | 必需的；文本型。指定欲拨出的电话号码，如果欲使用已经存在的用户拨号网络配置中的电话号码，请使用“@n”格式文本，其中n为指定拨号网络配置的索引数值，从0开始。如：拨号 (“@0”, ...) 即使用第一个拨号网络配置中的电话号码拨号。
用户帐号 | 必需的；文本型。指定用户帐号名称。
帐号密码 | 必需的；文本型。指定用户帐号的密码。
是否等待连接完毕 | 可选的；逻辑型。指定命令是否一直等到连接完毕（成功或失败）后才返回，如果本参数为真，则“状态标签”参数无效。如果本参数被省略，默认值为假。
状态标签 | 可选的；标签。如果提供了一个已经存在的标签型窗口单元并且“是否等待连接完毕”参数为假，拨号过程中的状态文本将即时显示到该标签上。如果本参数被省略，默认值为空。

参见： 语法的描述规则、基本数据类型


是否已在线

是否已在线 命令 所属类别：拨号上网

如果当前已经存在可用的网络连接(即已连接到网络上)，返回真，否则返回假。

语法： 逻辑型 是否已在线 （）

参见： 语法的描述规则、基本数据类型


挂断

挂断 命令 所属类别：拨号上网

挂断当前拨号网络连接。一旦不再需要拨号网络连接，就可以使用本命令将连接断开。

语法： 无返回值 挂断 （）

参见： 语法的描述规则、基本数据类型


邮件发送

邮件发送 类别 跳至：互联网支持库


HTTP及FTP操作

HTTP及FTP操作 类别 跳至：互联网支持库

置代理服务器 | HTTP读文件 | 连接FTP服务器 | 断开FTP服务器
FTP文件下载 | FTP文件上传 | FTP删除文件 | FTP文件改名
FTP创建目录 | FTP删除目录 | FTP置现行目录 | FTP取现行目录
FTP目录列表 |  |  |


拨号上网

拨号上网 类别 跳至：互联网支持库


互联网支持库

互联网支持库1.0版 返回首页

本支持库用作实现对常用互联网际协议的支持，如SMTP、HTTP、FTP等。

命令类别：

邮件发送 HTTP及FTP操作 拨号上网

例程列表：

例程名称 | 下载 | 说明
下载HTTP文件 | 下载HTTP文件.e | 本程序能够将指定HTTP地址处的网页下载到本地后阅读,演示了互联网支持库中的HTTP类命令及超文本浏览框的使用方法.
拨号上网 | 拨号上网.e | 本程序演示了如何在程序中直接拨号上网.
易之FTP | 易之FTP.e | 本程序演示了互联网支持库中的FTP类命令和扩展界面支持库一中的报表型超级列表框的使用方法.
易邮件发送器 | 易邮件发送器.e | 本程序用作演示邮件发送类命令的使用方法。


如果

如果 命令 所属类别：流程控制

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到左侧箭头线指向的命令处去执行。

语法： 无返回值 如果 （条件）

参数名 | 描 述
条件 | 必需的；逻辑型。本条件值的结果决定下一步程序执行位置。

参见： 语法的描述规则、基本数据类型


如果真

如果真 命令 所属类别：流程控制

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到左侧箭头线指向的命令处去执行。同“如果”命令相比，本命令没有为假时的程序部分。

语法： 无返回值 如果真 （条件）

参数名 | 描 述
条件 | 必需的；逻辑型。本条件值的结果决定下一步程序执行位置。

参见： 语法的描述规则、基本数据类型


判断

判断 命令 所属类别：流程控制

本命令根据提供的逻辑参数的值，来决定是否改变程序的执行位置，如果提供的逻辑参数值为真，程序继续顺序向下执行，否则跳转到下一分支处去继续判断。

语法： 无返回值 判断 （条件）

参数名 | 描 述
条件 | 必需的；逻辑型。本条件值的结果决定下一步程序执行位置。

参见： 语法的描述规则、基本数据类型


判断循环首

判断循环首 命令 所属类别：流程控制

本命令根据提供的逻辑参数的值，来决定是否进入循环。如果提供的逻辑参数值为真，程序顺序执行下一条命令进入循环，否则跳转到本命令所对应的“判断循环尾”命令的下一条命令处以跳出循环。

语法： 无返回值 判断循环首 （条件）

参数名 | 描 述
条件 | 必需的；逻辑型。本条件值的结果决定下一步程序执行位置。

参见： 语法的描述规则、基本数据类型


循环判断首

循环判断首 命令 所属类别：流程控制

执行本命令后将顺序执行下一条命令进入程序循环。

语法： 无返回值 循环判断首 （）

参见： 语法的描述规则、基本数据类型


计次循环首

计次循环首 命令 所属类别：流程控制

执行本命令将把循环体内的命令重复执行指定的次数。提供的整数参数值决定将重复执行的次数。

语法： 无返回值 计次循环首 （循环次数，［已循环次数记录容器］）

参数名 | 描 述
循环次数 | 必需的；整数型。本数值指定执行计次循环体内所有命令的次数，必须大于等于零。
已循环次数记录容器 | 可选的；整数型，参数数据只能提供容器。本数值型容器用作记录当前循环首已经被进入过的次数（从 1 开始），程序可以直接取用此容器中的值。

参见： 语法的描述规则、基本数据类型


容器循环首

容器循环首 命令 所属类别：流程控制

执行本命令将利用容器对循环体内的命令进行循环执行。第一次执行此命令时将使用“容器起始值”参数初始化“循环容器”参数所指定的容器。每次（包括第一次）执行到此命令处都将判断循环容器内的值是否已经超过“容器目标值”参数所指定的值，如已超过，则跳转到对应的“容器循环尾”命令的下一条命令处继续执行，否则顺序执行下一条语句继续进行循环。

语法： 无返回值 容器循环首 （容器起始值，容器目标值，容器递增值，［循环容器］）

参数名 | 描 述
容器起始值 | 必需的；整数型，初始值为“1”。定义循环容器的起始数值。
容器目标值 | 必需的；整数型。定义循环容器的目标数值，在循环首部如果发现容器值已超出此目标值时将跳出循环。
容器递增值 | 必需的；整数型，初始值为“1”。每次执行到循环尾部时都将把此值加入到循环容器中去，此值可为正数或负数，如为正数则递增，为负数则递减。
循环容器 | 可选的；整数型，参数数据只能提供容器。本数值型容器将用作控制循环执行次数，在循环尾部将自动递增或递减该容器内的数值。如果被省略，命令将自动使用内部临时容器。

参见： 语法的描述规则、基本数据类型


到循环尾

到循环尾 命令 所属类别：流程控制

本命令转移当前程序执行位置到当前所处循环体的循环尾语句处。

语法： 无返回值 到循环尾 （）

参见： 语法的描述规则、基本数据类型


跳出循环

跳出循环 命令 所属类别：流程控制

本命令转移当前程序执行位置到当前所处循环体循环尾语句的下一条语句处。

语法： 无返回值 跳出循环 （）

参见： 语法的描述规则、基本数据类型


返回

返回 命令 所属类别：流程控制

本命令转移当前程序执行位置到调用本子程序语句的下一条语句处,并可根据需要返回一个值到子程序调用处。

语法： 无返回值 返回 （［返回到调用方的值］）

参数名 | 描 述
返回到调用方的值 | 可选的；通用型。

参见： 语法的描述规则、基本数据类型


结束

结束 命令 所属类别：流程控制

本命令结束当前易程序的运行。

语法： 无返回值 结束 （）

参见： 语法的描述规则、基本数据类型


相乘

相乘 命令 所属类别：算术运算

返回两个数值的乘积，运算符号为“*”或“×”。

语法： 双精度小数型 相乘 （被乘数，乘数，… ）

参数名 | 描 述
被乘数 | 必需的；双精度小数型。
乘数 | 必需的；可扩充的；双精度小数型。

参见： 语法的描述规则、基本数据类型


相除

相除 命令 所属类别：算术运算

返回两个数值的商，运算符号为“/”或“÷”。

语法： 双精度小数型 相除 （被除数，除数，… ）

参数名 | 描 述
被除数 | 必需的；双精度小数型。
除数 | 必需的；可扩充的；双精度小数型。

参见： 语法的描述规则、基本数据类型


整除

整除 命令 所属类别：算术运算

求出两个数值的商，并返回其整数部分，运算符号为“\”。

语法： 双精度小数型 整除 （被除数，除数，… ）

参数名 | 描 述
被除数 | 必需的；双精度小数型。
除数 | 必需的；可扩充的；双精度小数型。

参见： 语法的描述规则、基本数据类型


求余数

求余数 命令 所属类别：算术运算

求出两个数值的商，并返回余数部分，运算符号为“%”或“Mod”。

语法： 双精度小数型 求余数 （被除数，除数，… ）

参数名 | 描 述
被除数 | 必需的；双精度小数型。
除数 | 必需的；可扩充的；双精度小数型。

参见： 语法的描述规则、基本数据类型


相加

相加 命令 所属类别：算术运算

运算符号为“+”，用途为：1、返回两个数值的和；2、将两个文本首尾连接起来，返回连接后的文本；3、将两个字节集首尾连接起来，返回连接后的字节集。

语法： 通用型 相加 （被加数或文本或字节集，加数或文本或字节集，… ）

参数名 | 描 述
被加数或文本或字节集 | 必需的；通用型。
加数或文本或字节集 | 必需的；可扩充的；通用型。

参见： 语法的描述规则、基本数据类型


相减

相减 命令 所属类别：算术运算

返回两个数值的差，运算符号为“-”。

语法： 双精度小数型 相减 （被减数，减数，… ）

参数名 | 描 述
被减数 | 必需的；双精度小数型。
减数 | 必需的；可扩充的；双精度小数型。

参见： 语法的描述规则、基本数据类型


负

负 命令 所属类别：算术运算

反转一个数值的正负符号并返回反转后的值，运算符号为“-”（放在表达式首）。

语法： 双精度小数型 负 （数值）

参数名 | 描 述
数值 | 必需的；双精度小数型。

参见： 语法的描述规则、基本数据类型


取符号

取符号 命令 所属类别：算术运算

返回一个整数，如果小于零，表明给定数值为负；如果等于零，表明给定数值为零；如果大于零，表明给定数值为正。

语法： 整数型 取符号 （欲取其符号的数值）

参数名 | 描 述
欲取其符号的数值 | 必需的；双精度小数型。

参见： 语法的描述规则、基本数据类型


取绝对值

取绝对值 命令 所属类别：算术运算

如果所提供数值为字节型，则将直接返回该数值。

语法： 双精度小数型 取绝对值 （欲取其绝对值的数值）

参数名 | 描 述
欲取其绝对值的数值 | 必需的；双精度小数型。

参见： 语法的描述规则、基本数据类型


取整

取整 命令 所属类别：算术运算

返回一个小数的整数部分。本命令与“绝对取整”命令不相同之处为： 如果给定小数为负数，则本命令返回小于或等于该小数的第一个负整数，而“绝对取整”命令则会返回大于或等于该小数的第一个负整数。例如，本命令将 -7.8 转换成 -8，而“绝对取整”命令将 -7.8 转换成 -7。

语法： 整数型 取整 （欲取整的小数）

参数名 | 描 述
欲取整的小数 | 必需的；双精度小数型。

参见： 语法的描述规则、基本数据类型


绝对取整

绝对取整 命令 所属类别：算术运算

返回一个小数的整数部分。本命令与“取整”命令不相同之处为： 如果给定小数为负数，则本命令返回大于或等于该小数的第一个负整数，而“取整”命令则会返回小于或等于该小数的第一个负整数。例如，本命令将 -7.8 转换成 -7，而“取整”命令将 -7.8 转换成 -8。

语法： 整数型 绝对取整 （欲取整的小数）

参数名 | 描 述
欲取整的小数 | 必需的；双精度小数型。

参见： 语法的描述规则、基本数据类型


四舍五入

四舍五入 命令 所属类别：算术运算

返回按照指定的方式进行四舍五入运算的结果数值。

语法： 双精度小数型 四舍五入 （欲被四舍五入的数值，［被舍入的位置］）

参数名 | 描 述
欲被四舍五入的数值 | 必需的；双精度小数型。
被舍入的位置 | 可选的；整数型。如果大于0，表示小数点右边应保留的位数；如果等于0，表示舍入到整数；如果小于0，表示小数点左边舍入到的位置。例如：四舍五入 (1056.65, 1) 返回 1056.7； 四舍五入 (1056.65, 0) 返回 1057； 四舍五入 (1056.65, -1) 返回 1060。如果省略本参数，则默认为0。

参见： 语法的描述规则、基本数据类型


求次方

求次方 命令 所属类别：算术运算

返回指定数值的指定次方。

语法： 双精度小数型 求次方 （欲求次方数值，次方数）

参数名 | 描 述
欲求次方数值 | 必需的；双精度小数型。参数值指定欲求其某次方的数值。
次方数 | 必需的；双精度小数型。参数值指定对欲求次方数值的运算指数。

参见： 语法的描述规则、基本数据类型


求平方根

求平方根 命令 所属类别：算术运算

返回指定参数的平方根。

语法： 双精度小数型 求平方根 （欲求其平方根的数值）

参数名 | 描 述
欲求其平方根的数值 | 必需的；双精度小数型。参数值如果小于零将导致计算错误。

参见： 语法的描述规则、基本数据类型


求正弦

求正弦 命令 所属类别：算术运算

返回指定角的正弦值。

语法： 双精度小数型 求正弦 （欲进行计算的角）

参数名 | 描 述
欲进行计算的角 | 必需的；双精度小数型。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

参见： 语法的描述规则、基本数据类型


求余弦

求余弦 命令 所属类别：算术运算

返回指定角的余弦值。

语法： 双精度小数型 求余弦 （欲进行计算的角）

参数名 | 描 述
欲进行计算的角 | 必需的；双精度小数型。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

参见： 语法的描述规则、基本数据类型


求正切

求正切 命令 所属类别：算术运算

返回指定角的正切值。

语法： 双精度小数型 求正切 （欲进行计算的角）

参数名 | 描 述
欲进行计算的角 | 必需的；双精度小数型。所使用单位为弧度。为了将角度转换成弧度，请将角度乘以 #pi / 180。为了将弧度转换成角度，请将弧度乘以 180 / #pi。如果参数值大于等于 2 的 63 次方，或者小于等于 -2 的 63 次方，将导致计算溢出。

参见： 语法的描述规则、基本数据类型


求反正切

求反正切 命令 所属类别：算术运算

返回指定数的反正切值。

语法： 双精度小数型 求反正切 （欲求其反正切值的数值）

参数名 | 描 述
欲求其反正切值的数值 | 必需的；双精度小数型。

参见： 语法的描述规则、基本数据类型


求自然对数

求自然对数 命令 所属类别：算术运算

返回指定参数的自然对数值。自然对数是以 e 为底的对数。常量 #e 的值大约是 2.718282。

语法： 双精度小数型 求自然对数 （欲求其自然对数的数值）

参数名 | 描 述
欲求其自然对数的数值 | 必需的；双精度小数型。

参见： 语法的描述规则、基本数据类型


求反对数

求反对数 命令 所属类别：算术运算

返回 e（自然对数的底）的某次方。

语法： 双精度小数型 求反对数 （欲求其反对数的数值）

参数名 | 描 述
欲求其反对数的数值 | 必需的；双精度小数型。如果参数值超过 709.782712893，将导致计算溢出。

参见： 语法的描述规则、基本数据类型


是否运算正确

是否运算正确 命令 所属类别：算术运算

对“求次方”、“求平方根”、“求正弦值”、“求余弦值”、“求正切值”、“求反正切值”、“求自然对数”、“求反对数”等等数学运算命令所计算出来的双精度结果数值进行校验，如果该数值正确有效，返回真。如果该数值是运算错误或运算溢出后的结果，返回假。

语法： 逻辑型 是否运算正确 （欲校验的计算结果）

参数名 | 描 述
欲校验的计算结果 | 必需的；双精度小数型。

参见： 语法的描述规则、基本数据类型


置随机数种子

置随机数种子 命令 所属类别：算术运算

为随机数生成器初始化一个种子值，不同的种子值将导致“取随机数”命令返回不同的随机数系列。

语法： 无返回值 置随机数种子 （［欲置入的种子数值］）

参数名 | 描 述
欲置入的种子数值 | 可选的；整数型。如果省略本参数，将默认使用当前计算机系统的时钟值。

参见： 语法的描述规则、基本数据类型


取随机数

取随机数 命令 所属类别：算术运算

返回一个指定范围内的随机数值。在使用本命令取一系列的随机数之前，应该先使用“置随机数种子”命令为随机数生成器初始化一个种子值。

语法： 整数型 取随机数 （［欲取随机数的最小值］，［欲取随机数的最大值］）

参数名 | 描 述
欲取随机数的最小值 | 可选的；整数型。参数必须大于或等于零。本参数如果被省略，默认为 0 。
欲取随机数的最大值 | 可选的；整数型。参数必须大于或等于零。本参数如果被省略，默认为无限。

参见： 语法的描述规则、基本数据类型


等于

等于 命令 所属类别：逻辑比较

被比较值与比较值相同时返回真，否则返回假，运算符号为“=”或“==”。

语法： 逻辑型 等于 （被比较值，比较值）

参数名 | 描 述
被比较值 | 必需的；通用型。
比较值 | 必需的；通用型。比较值的数据类型必须与“被比较值”一致或者可以相互转换。

参见： 语法的描述规则、基本数据类型


不等于

不等于 命令 所属类别：逻辑比较

被比较值与比较值不相同时返回真，否则返回假，运算符号为“<>”或“!=”或“≠”。

语法： 逻辑型 不等于 （被比较值，比较值）

参数名 | 描 述
被比较值 | 必需的；通用型。
比较值 | 必需的；通用型。比较值的数据类型必须与“被比较值”一致或者可以相互转换。

参见： 语法的描述规则、基本数据类型


小于

小于 命令 所属类别：逻辑比较

被比较值小于比较值时返回真，否则返回假，运算符号为“<”。

语法： 逻辑型 小于 （被比较值，比较值）

参数名 | 描 述
被比较值 | 必需的；通用型。被比较值的数据类型可以为数值型、日期时间型、文本型。
比较值 | 必需的；通用型。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

参见： 语法的描述规则、基本数据类型


大于

大于 命令 所属类别：逻辑比较

被比较值大于比较值时返回真，否则返回假，运算符号为“>”。

语法： 逻辑型 大于 （被比较值，比较值）

参数名 | 描 述
被比较值 | 必需的；通用型。被比较值的数据类型可以为数值型、日期时间型、文本型。
比较值 | 必需的；通用型。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

参见： 语法的描述规则、基本数据类型


小于或等于

小于或等于 命令 所属类别：逻辑比较

被比较值小于或等于比较值时返回真，否则返回假，运算符号为“<=”或“≤”。

语法： 逻辑型 小于或等于 （被比较值，比较值）

参数名 | 描 述
被比较值 | 必需的；通用型。被比较值的数据类型可以为数值型、日期时间型、文本型。
比较值 | 必需的；通用型。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

参见： 语法的描述规则、基本数据类型


大于或等于

大于或等于 命令 所属类别：逻辑比较

被比较值大于或等于比较值时返回真，否则返回假，运算符号为“>=”或“≥”。

语法： 逻辑型 大于或等于 （被比较值，比较值）

参数名 | 描 述
被比较值 | 必需的；通用型。被比较值的数据类型可以为数值型、日期时间型、文本型。
比较值 | 必需的；通用型。比较值的数据类型可以为数值型、日期时间型、文本型，且必须与“被比较值”一致或者可以相互转换。

参见： 语法的描述规则、基本数据类型


近似等于

近似等于 命令 所属类别：逻辑比较

当比较文本在被比较文本的首部被包容时返回真，否则返回假，运算符号为“?=”或“≈”。

语法： 逻辑型 近似等于 （被比较文本，比较文本）

参数名 | 描 述
被比较文本 | 必需的；文本型。
比较文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


并且

并且 命令 所属类别：逻辑比较

如果所提供的两个参数逻辑值都为真则返回真，否则返回假，运算符号为“&&”或“And”或“且”。

语法： 逻辑型 并且 （逻辑值一，逻辑值二，… ）

参数名 | 描 述
逻辑值一 | 必需的；逻辑型。
逻辑值二 | 必需的；可扩充的；逻辑型。

参见： 语法的描述规则、基本数据类型


或者

或者 命令 所属类别：逻辑比较

如果所提供的两个参数逻辑值中任意有一个为真则返回真，否则返回假，运算符号为“||”或“Or”或“或”。

语法： 逻辑型 或者 （逻辑值一，逻辑值二，… ）

参数名 | 描 述
逻辑值一 | 必需的；逻辑型。
逻辑值二 | 必需的；可扩充的；逻辑型。

参见： 语法的描述规则、基本数据类型


取反

取反 命令 所属类别：逻辑比较

如果参数值为真则返回假，如果参数值为假则返回真。

语法： 逻辑型 取反 （被反转的逻辑值）

参数名 | 描 述
被反转的逻辑值 | 必需的；逻辑型。

参见： 语法的描述规则、基本数据类型


位取反

位取反 命令 所属类别：位运算

将指定数值每一个比特位的值取反后返回。

语法： 整数型 位取反 （欲取反的数值）

参数名 | 描 述
欲取反的数值 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


位与

位与 命令 所属类别：位运算

如两个数值有某共同比特位为1，则返回值的对应位也为1，否则为0。返回计算后的结果。

语法： 整数型 位与 （位运算数值一，位运算数值二，… ）

参数名 | 描 述
位运算数值一 | 必需的；整数型。
位运算数值二 | 必需的；可扩充的；整数型。

参见： 语法的描述规则、基本数据类型


位或

位或 命令 所属类别：位运算

如两个数值中有一个数值的某一比特位不为零，则返回值的对应位就为1，否则为0。返回计算后的结果。

语法： 整数型 位或 （位运算数值一，位运算数值二，… ）

参数名 | 描 述
位运算数值一 | 必需的；整数型。
位运算数值二 | 必需的；可扩充的；整数型。

参见： 语法的描述规则、基本数据类型


位异或

位异或 命令 所属类别：位运算

如两个数值对应比特位的值不相等，则返回值的对应位就为1，否则为0。返回计算后的结果。

语法： 整数型 位异或 （位运算数值一，位运算数值二，… ）

参数名 | 描 述
位运算数值一 | 必需的；整数型。
位运算数值二 | 必需的；可扩充的；整数型。

参见： 语法的描述规则、基本数据类型


赋值

赋值 命令 所属类别：容器操作

将指定的常数、常数集、常量、资源、对象或者容器赋于到指定的容器或容器数组中去。运算符号为“=”。

语法： 无返回值 赋值 （被赋值的容器或容器数组，用作赋于的值或资源）

参数名 | 描 述
被赋值的容器或容器数组 | 必需的；通用型，参数数据只能提供容器及容器数组。
用作赋于的值或资源 | 必需的；通用型，参数数据可以同时提供数组或非数组数据。

参见： 语法的描述规则、基本数据类型


连续赋值

连续赋值 命令 所属类别：容器操作

将指定的常数、常数集、常量、资源、对象或者容器赋于到一系列容器或容器数组中去。

语法： 无返回值 连续赋值 （用作赋于的值或资源，被赋值的容器或容器数组，… ）

参数名 | 描 述
用作赋于的值或资源 | 必需的；通用型，参数数据可以同时提供数组或非数组数据。
被赋值的容器或容器数组 | 必需的；可扩充的；通用型，参数数据只能提供容器及容器数组。

参见： 语法的描述规则、基本数据类型


重定义数组

重定义数组 命令 所属类别：数组操作

本命令可以重新定义指定数组的维数及各维的上限值。

语法： 无返回值 重定义数组 （欲重定义的数组容器，是否保留以前的内容，数组对应维的上限值，… ）

参数名 | 描 述
欲重定义的数组容器 | 必需的；通用型，参数数据只能提供容器数组。
是否保留以前的内容 | 必需的；逻辑型，初始值为“假”。
数组对应维的上限值 | 必需的；可扩充的；整数型。

参见： 语法的描述规则、基本数据类型


取数组成员数

取数组成员数 命令 所属类别：数组操作

取指定数组容器的全部成员数目，如果该容器不为数组，返回-1，因此本命令也可以用作检查指定容器是否为数组容器。

语法： 整数型 取数组成员数 （欲检查的容器）

参数名 | 描 述
欲检查的容器 | 必需的；通用型，参数数据只能提供容器及容器数组。参数值指定欲检查其成员数目的数组容器或者欲检查其是否为数组的容器。

参见： 语法的描述规则、基本数据类型


取数组下标

取数组下标 命令 所属类别：数组操作

返回指定数组维可用的最大下标（最小下标固定为1）。如果给定容器不为数组容器或指定维不存在，返回 0 。

语法： 整数型 取数组下标 （欲取某维最大下标的数组容器，［欲取其最大下标的维］）

参数名 | 描 述
欲取某维最大下标的数组容器 | 必需的；通用型，参数数据只能提供容器及容器数组。
欲取其最大下标的维 | 可选的；整数型。1 表示第一维，2 表示第二维，如此类推。如果省略本参数，默认值是 1。

参见： 语法的描述规则、基本数据类型


复制数组

复制数组 命令 所属类别：数组操作

将数组数据复制到指定的数组容器，该数组容器内的所有数据和数组维定义信息将被全部覆盖。

语法： 无返回值 复制数组 （复制到的数组容器，待复制的数组数据）

参数名 | 描 述
复制到的数组容器 | 必需的；通用型，参数数据只能提供容器数组。
待复制的数组数据 | 必需的；通用型，参数数据只能提供数组数据。

参见： 语法的描述规则、基本数据类型


加入成员

加入成员 命令 所属类别：数组操作

将数据加入到指定数组容器的尾部，并通过重新定义数组维数自动增加其成员数目。数组容器如为多维数组，加入完毕后将被转换为单维数组。

语法： 无返回值 加入成员 （欲加入成员的数组容器，欲加入的成员数据）

参数名 | 描 述
欲加入成员的数组容器 | 必需的；通用型，参数数据只能提供容器数组。
欲加入的成员数据 | 必需的；通用型，参数数据可以同时提供数组或非数组数据。参数值所指定成员数据的数据类型必须能够与第一个参数所指定的数组容器相匹配。

参见： 语法的描述规则、基本数据类型


插入成员

插入成员 命令 所属类别：数组操作

将数据插入到指定数组容器的指定位置，并通过重新定义数组维数自动增加其成员数目。数组容器如为多维数组，插入完毕后将被转换为单维数组。

语法： 无返回值 插入成员 （欲插入成员的数组容器，欲插入的位置，欲插入的成员数据）

参数名 | 描 述
欲插入成员的数组容器 | 必需的；通用型，参数数据只能提供容器数组。
欲插入的位置 | 必需的；整数型。位置值从 1 开始，如果小于 1 或大于第一个参数所指定数组容器的成员数目 + 1，将不会插入任何数据。
欲插入的成员数据 | 必需的；通用型，参数数据可以同时提供数组或非数组数据。参数值所指定成员数据的数据类型必须能够与第一个参数所指定的数组容器相匹配。

参见： 语法的描述规则、基本数据类型


删除成员

删除成员 命令 所属类别：数组操作

删除指定数组容器中的成员，并通过重新定义数组维数自动减少其成员数目。数组容器如为多维数组，删除完毕后将被转换为单维数组。返回所实际删除的成员数目。

语法： 整数型 删除成员 （欲删除成员的数组容器，欲删除的位置，［欲删除的成员数目］）

参数名 | 描 述
欲删除成员的数组容器 | 必需的；通用型，参数数据只能提供容器数组。
欲删除的位置 | 必需的；整数型。位置值从 1 开始，如果小于 1 或大于第一个参数所指定数组容器的成员数目，将不会删除任何数据。
欲删除的成员数目 | 可选的；整数型。本参数如果被省略，默认为 1 。

参见： 语法的描述规则、基本数据类型


清除数组

清除数组 命令 所属类别：数组操作

删除指定数组容器中的所有成员，释放这些成员所占用的存储空间，重新定义该容器为单维 0 成员数组容器。

语法： 无返回值 清除数组 （欲删除成员的数组容器）

参数名 | 描 述
欲删除成员的数组容器 | 必需的；通用型，参数数据只能提供容器数组。

参见： 语法的描述规则、基本数据类型


数组排序

数组排序 命令 所属类别：数组操作

对指定数值数组容器内的所有数组成员进行快速排序，不影响数组的维定义信息，排序结果存放回该数组容器。

语法： 无返回值 数组排序 （数值数组容器，［排序方向是否为从小到大］）

参数名 | 描 述
数值数组容器 | 必需的；通用型，参数数据只能提供容器数组。
排序方向是否为从小到大 | 可选的；逻辑型。如果参数值为真，排序方向为从小到大，否则为从大到小。如果本参数被省略，默认值为真。

参见： 语法的描述规则、基本数据类型


取命令行

取命令行 命令 所属类别：环境存取

本命令可以取出在启动易程序时附加在其可执行文件名后面的所有以空格分隔的命令行文本段。

语法： 无返回值 取命令行 （存放被取回命令行文本的数组容器）

参数名 | 描 述
存放被取回命令行文本的数组容器 | 必需的；文本型，参数数据只能提供容器数组。在命令执行完毕后，本容器数组内被顺序填入在启动易程序时附加在其可执行文件名后面的以空格分隔的命令行文本段。容器数组内原有数据被全部销毁，容器数组的维数被自动调整为命令行文本段数。

参见： 语法的描述规则、基本数据类型


取运行目录

取运行目录 命令 所属类别：环境存取

取当前被执行的易程序文件所处的目录。

语法： 文本型 取运行目录 （）

参见： 语法的描述规则、基本数据类型


取执行文件名

取执行文件名 命令 所属类别：环境存取

取当前被执行的易程序文件的名称。

语法： 文本型 取执行文件名 （）

参见： 语法的描述规则、基本数据类型


读环境变量

读环境变量 命令 所属类别：环境存取

返回文本，它关连于一个操作系统环境变量。成功时返回所取得的值，失败则返回空文本。

语法： 文本型 读环境变量 （环境变量名称）

参数名 | 描 述
环境变量名称 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


写环境变量

写环境变量 命令 所属类别：环境存取

修改或建立指定的操作系统环境变量。成功返回真，失败返回假。

语法： 逻辑型 写环境变量 （环境变量名称，欲写入内容）

参数名 | 描 述
环境变量名称 | 必需的；文本型。
欲写入内容 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


取所有发音

取所有发音 命令 所属类别：拼音处理

返回包含指定汉字所有拼音编码的文本数组（支持多音字），目前仅支持国标汉字。返回的数组结果可以用“复制数组”命令保存到同类型数组容器。

语法： 文本型数组 取所有发音 （欲取其拼音的汉字）

参数名 | 描 述
欲取其拼音的汉字 | 必需的；文本型。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个成员数目为 0 的空文本数组。

参见： 语法的描述规则、基本数据类型


取发音数目

取发音数目 命令 所属类别：拼音处理

返回指定汉字的发音数目。

语法： 整数型 取发音数目 （欲取其发音数目的汉字）

参数名 | 描 述
欲取其发音数目的汉字 | 必需的；文本型。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回 0。

参见： 语法的描述规则、基本数据类型


取拼音

取拼音 命令 所属类别：拼音处理

返回包含指定汉字的指定拼音编码的文本。如果该指定拼音编码不存在，将返回空文本。目前仅支持国标汉字。多音字的第一个发音为常用音。

语法： 文本型 取拼音 （欲取其拼音编码的汉字，欲取拼音编码的索引）

参数名 | 描 述
欲取其拼音编码的汉字 | 必需的；文本型。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。
欲取拼音编码的索引 | 必需的；整数型，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

参见： 语法的描述规则、基本数据类型


取声母

取声母 命令 所属类别：拼音处理

返回包含指定汉字指定拼音编码的声母部分文本。如果指定拼音编码不存在或该汉字此发音无声母，将返回空文本。目前仅支持国标汉字。

语法： 文本型 取声母 （欲取其拼音编码的汉字，欲取拼音编码的索引）

参数名 | 描 述
欲取其拼音编码的汉字 | 必需的；文本型。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。
欲取拼音编码的索引 | 必需的；整数型，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

参见： 语法的描述规则、基本数据类型


取韵母

取韵母 命令 所属类别：拼音处理

返回包含指定汉字指定拼音编码的韵母部分文本。如果指定拼音编码不存在，将返回空文本。目前仅支持国标汉字。

语法： 文本型 取韵母 （欲取其拼音编码的汉字，欲取拼音编码的索引）

参数名 | 描 述
欲取其拼音编码的汉字 | 必需的；文本型。只取用文本首部的第一个汉字，如果该文本首部不为国标汉字，命令将返回一个空文本。
欲取拼音编码的索引 | 必需的；整数型，初始值为“1”。应该在 1 到该汉字的发音数目之间。汉字的发音数目数目可以使用“取发音数目”命令取得。

参见： 语法的描述规则、基本数据类型


发音比较

发音比较 命令 所属类别：拼音处理

比较两个文本的发音，如果发音相同返回真，否则返回假。对于文本中的非国标汉字部分，将仅进行简单的值比较。

语法： 逻辑型 发音比较 （待比较文本一，待比较文本二，是否支持南方音，［是否为模糊比较］）

参数名 | 描 述
待比较文本一 | 必需的；文本型。
待比较文本二 | 必需的；文本型。
是否支持南方音 | 必需的；逻辑型，初始值为“真”。为真则支持南方音。如果支持南方音，比较时将认为所有相近的发音都相同。如： n 和 l、 z 和 zh、 ie 和 ue 等等。
是否为模糊比较 | 可选的；逻辑型。本参数为真时，当待比较文本一的发音在待比较文本二的首部被包容时即认为比较通过。如果被省略，默认值为假。

参见： 语法的描述规则、基本数据类型


输入字比较

输入字比较 命令 所属类别：拼音处理

将一个拼音输入字文本与另外一个普通文本比较，如果两者相符，返回真，否则返回假。

语法： 逻辑型 输入字比较 （待比较拼音输入字，待比较普通文本，是否支持南方音，［拼音输入字类别］）

参数名 | 描 述
待比较拼音输入字 | 必需的；文本型。拼音输入字有以下三类： 一、首拼及全拼类： 如：“jsj”匹配“计算机”，同时“jisuanji”也匹配“计算机”。系统自动判别该输入字具体是首拼方式还是全拼方式； 二、双拼类： 如：“jisrji”匹配“计算机”，双拼编码的方案与 Windows 系统下的双拼输入法一致； 三、自动判别类： 使用此类别需在拼音输入字的首部加一个半角字符用作判别：分号 (“;”) 代表首拼及全拼类，冒号 (“:”) 代表双拼类，如既不为分号也不为冒号，则默认为首拼及全拼类。如“jsj”、“;jsj”、“;jisuanji”、“:jisrji”都匹配“计算机”。 另：书写拼音输入字时的一些规则： 一、为了匹配目标文本中的大小写英文字母，请在相应位置处使用对应的大写英文字母。如：“jsjA”匹配“计算机a”、“计算机A”； 二、为了匹配目标文本中的半角数字，请在相应位置处使用该数字。如：“jsj1”匹配“计算机1”； 三、为了匹配目标文本中的汉字符号或不知道发音的汉字，请在相应位置处使用该汉字。如：“j算j1”匹配“计算机1”； 四、拼音输入字内不能包含除了“_”以外的所有其他半角符号。
待比较普通文本 | 必需的；文本型。
是否支持南方音 | 必需的；逻辑型，初始值为“真”。为真则支持南方音。如果支持南方音，比较时将认为所有相近的发音都相同。如： n 和 l、 z 和 zh、 ie 和 ue 等等。
拼音输入字类别 | 可选的；整数型。参数值可以为以下常量之一： 1、#首拼及全拼； 2、#双拼； 3、#自动判别。 如果省略本参数，默认为“#自动判别”。

参见： 语法的描述规则、基本数据类型


取文本长度

取文本长度 命令 所属类别：文本操作

取文本型数据的长度，不包含结束0。

语法： 整数型 取文本长度 （文本数据）

参数名 | 描 述
文本数据 | 必需的；文本型。参数值指定欲检查其长度的文本数据。

参见： 语法的描述规则、基本数据类型


取文本左边

取文本左边 命令 所属类别：文本操作

返回一个文本，其中包含指定文本中从左边算起指定数量的字符。

语法： 文本型 取文本左边 （欲取其部分的文本，欲取出字符的数目）

参数名 | 描 述
欲取其部分的文本 | 必需的；文本型。
欲取出字符的数目 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取文本右边

取文本右边 命令 所属类别：文本操作

返回一个文本，其中包含指定文本中从右边算起指定数量的字符。

语法： 文本型 取文本右边 （欲取其部分的文本，欲取出字符的数目）

参数名 | 描 述
欲取其部分的文本 | 必需的；文本型。
欲取出字符的数目 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取文本中间

取文本中间 命令 所属类别：文本操作

返回一个文本，其中包含指定文本中从指定位置算起指定数量的字符。

语法： 文本型 取文本中间 （欲取其部分的文本，起始取出位置，欲取出字符的数目）

参数名 | 描 述
欲取其部分的文本 | 必需的；文本型。
起始取出位置 | 必需的；整数型。1为首位置，2为第2个位置，如此类推。
欲取出字符的数目 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


字符

字符 命令 所属类别：文本操作

返回一个文本，其中包含有与指定字符代码相关的字符。

语法： 文本型 字符 （欲取其字符的字符代码）

参数名 | 描 述
欲取其字符的字符代码 | 必需的；字节型。

参见： 语法的描述规则、基本数据类型


取代码

取代码 命令 所属类别：文本操作

返回文本中指定位置处字符的代码。如果指定位置超出文本长度，返回0。

语法： 整数型 取代码 （欲取字符代码的文本，［欲取其代码的字符位置］）

参数名 | 描 述
欲取字符代码的文本 | 必需的；文本型。
欲取其代码的字符位置 | 可选的；整数型。1为首位置，2为第2个位置，如此类推。如果本参数被省略，默认为首位置。

参见： 语法的描述规则、基本数据类型


寻找文本

寻找文本 命令 所属类别：文本操作

返回一个整数值，指定一文本在另一文本中最先出现的位置，位置值从 1 开始。如果未找到，返回-1。

语法： 整数型 寻找文本 （被搜寻的文本，欲寻找的文本，［起始搜寻位置］，是否不区分大小写）

参数名 | 描 述
被搜寻的文本 | 必需的；文本型。
欲寻找的文本 | 必需的；文本型。
起始搜寻位置 | 可选的；整数型。位置值从 1 开始。如果本参数被省略，默认为 1 。
是否不区分大小写 | 必需的；逻辑型，初始值为“假”。为真不区分大小写，为假区分。

参见： 语法的描述规则、基本数据类型


倒找文本

倒找文本 命令 所属类别：文本操作

返回一个整数值，指定一文本在另一文本中最后出现的位置，位置值从 1 开始。如果未找到，返回-1。

语法： 整数型 倒找文本 （被搜寻的文本，欲寻找的文本，［起始搜寻位置］，是否不区分大小写）

参数名 | 描 述
被搜寻的文本 | 必需的；文本型。
欲寻找的文本 | 必需的；文本型。
起始搜寻位置 | 可选的；整数型。位置值从 1 开始。如果本参数被省略，默认为从被搜寻文本的尾部开始。
是否不区分大小写 | 必需的；逻辑型，初始值为“假”。为真不区分大小写，为假区分。

参见： 语法的描述规则、基本数据类型


到大写

到大写 命令 所属类别：文本操作

将文本中的小写英文字母变换为大写，返回变换后的结果文本。

语法： 文本型 到大写 （欲变换的文本）

参数名 | 描 述
欲变换的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


到小写

到小写 命令 所属类别：文本操作

将文本中的大写英文字母变换为小写，返回变换后的结果文本。

语法： 文本型 到小写 （欲变换的文本）

参数名 | 描 述
欲变换的文本 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#引号 | “"” | 半角双引号。
#左引号 | ““” | 全角左双引号。
#右引号 | “”” | 全角右双引号。
#换行符 | “字符（13）+字符（10）” | 一个回车符（13）和一个换行符（10）的组合。
#pi | 3.1415926535 |
#e | 2.718282 |
#黑色 | 0 | 常用颜色值。
#藏青 | 8388608 |
#墨绿 | 32768 |
#深青 | 8421376 |
#红褐 | 128 |
#紫红 | 8388736 |
#褐绿 | 32896 |
#浅灰 | 12632256 |
#灰色 | 8421504 |
#蓝色 | 16711680 |
#绿色 | 65280 |
#艳青 | 16776960 |
#红色 | 255 |
#品红 | 16711935 |
#黄色 | 65535 |
#白色 | 16777215 |
#蓝灰 | 16744576 |
#藏蓝 | 14692440 |
#嫩绿 | 57472 |
#青绿 | 8445952 |
#黄褐 | 24768 |
#粉红 | 16754943 |
#嫩黄 | 55512 |
#银白 | 15527148 |
#紫色 | 16711824 |
#天蓝 | 16746496 |
#灰绿 | 8429696 |
#青蓝 | 12607488 |
#橙黄 | 33023 |
#桃红 | 8409343 |
#芙红 | 12615935 |
#深灰 | 6316128 |
#透明 | -16777216 |
#隐藏窗口 | 1 |
#普通激活 | 2 |
#最小化激活 | 3 |
#最大化激活 | 4 |
#普通不激活 | 5 |
#最小化不激活 | 6 |
#读入 | 1 |
#写出 | 2 |
#读写 | 3 |
#重写 | 4 |
#改写 | 5 |
#改读 | 6 |
#无限制 | 1 |
#禁止读 | 2 |
#禁止写 | 3 |
#禁止读写 | 4 |
#文件首 | 1 |
#文件尾 | 2 |
#现行位置 | 3 |
#只读文件 | 1 |
#隐藏文件 | 2 |
#系统文件 | 4 |
#子目录 | 16 |
#存档文件 | 32 |
#无属性文件 | 128 |
#字节型 | 1 |
#短整数型 | 2 |
#整数型 | 3 |
#长整数型 | 4 |
#小数型 | 5 |
#双精度小数型 | 6 |
#逻辑型 | 7 |
#日期时间型 | 8 |
#子程序指针型 | 9 |
#文本型 | 10 |
#年份 | 1 |
#季度 | 2 |
#月份 | 3 |
#周 | 4 |
#自年首周数 | 4 |
#日 | 5 |
#小时 | 6 |
#分钟 | 7 |
#秒 | 8 |
#星期几 | 9 |
#自年首天数 | 10 |
#确认钮 | 0 | “信息框”命令使用。
#确认取消钮 | 1 |
#放弃重试忽略钮 | 2 |
#取消是否钮 | 3 |
#是否钮 | 4 |
#重试取消钮 | 5 |
#错误图标 | 16 |
#询问图标 | 32 |
#警告图标 | 48 |
#信息图标 | 64 |
#默认按钮一 | 0 |
#默认按钮二 | 256 |
#默认按钮三 | 512 |
#默认按钮四 | 768 |
#程序等待 | 0 |
#系统等待 | 4096 |
#位于前台 | 65536 |
#文本右对齐 | 524288 |
#取消钮 | 1 |
#放弃钮 | 2 |
#重试钮 | 3 |
#忽略钮 | 4 |
#是钮 | 5 |
#否钮 | 6 |
#首拼及全拼 | 1 |
#双拼 | 2 |
#自动判别 | 3 |
#Ctrl键状态 | 1 |
#Shift键状态 | 2 |
#Alt键状态 | 4 |
#键0 | 48 | 按键代码值。
#键1 | 49 |
#键2 | 50 |
#键3 | 51 |
#键4 | 52 |
#键5 | 53 |
#键6 | 54 |
#键7 | 55 |
#键8 | 56 |
#键9 | 57 |
#A键 | 65 |
#B键 | 66 |
#C键 | 67 |
#D键 | 68 |
#E键 | 69 |
#F键 | 70 |
#G键 | 71 |
#H键 | 72 |
#I键 | 73 |
#J键 | 74 |
#K键 | 75 |
#L键 | 76 |
#M键 | 77 |
#N键 | 78 |
#O键 | 79 |
#P键 | 80 |
#Q键 | 81 |
#R键 | 82 |
#S键 | 83 |
#T键 | 84 |
#U键 | 85 |
#V键 | 86 |
#W键 | 87 |
#X键 | 88 |
#Y键 | 89 |
#Z键 | 90 |
#F1键 | 112 |
#F2键 | 113 |
#F3键 | 114 |
#F4键 | 115 |
#F5键 | 116 |
#F6键 | 117 |
#F7键 | 118 |
#F8键 | 119 |
#F9键 | 120 |
#F10键 | 121 |
#F11键 | 122 |
#F12键 | 123 |
#F13键 | 124 |
#F14键 | 125 |
#F15键 | 126 |
#F16键 | 127 |
#Break键 | 3 |
#退格键 | 8 |
#Tab键 | 9 |
#回车键 | 13 |
#Shift键 | 16 |
#Ctrl键 | 17 |
#Alt键 | 18 |
#Pause键 | 19 |
#CapsLock键 | 20 |
#NumLock键 | 144 |
#ScrollLock键 | 145 |
#Esc键 | 27 |
#空格键 | 32 |
#PageUp键 | 33 |
#PageDown键 | 34 |
#Home键 | 36 |
#End键 | 35 |
#左光标键 | 37 |
#上光标键 | 38 |
#右光标键 | 39 |
#下光标键 | 40 |
#Ins键 | 45 |
#Del键 | 46 |
#分号键 | 186 |
#等号键 | 187 |
#逗号键 | 188 |
#减号键 | 189 |
#圆点键 | 190 |
#除号键 | 191 |
#反撇号键 | 192 |
#左中括号键 | 219 |
#右中括号键 | 221 |
#斜杠键 | 220 |
#单引号键 | 222 |
#顶层 | 1 | 在窗口 Z 顺序的最前面。
#底层 | 2 | 在窗口 Z 顺序的最后面。
#最高层 | 3 | 在所有现行窗口的最前面并一直保持此位置。
#次高层 | 4 | 在最高层窗口的下面但在其他窗口的前面。
#全部转换 | 1 |
#日期部分 | 2 |
#时间部分 | 3 |
#输入文本 | 1 |
#输入整数 | 2 |
#输入小数 | 3 |
#拷贝 | 1 |
#翻转拷贝 | 2 |
#位异或 | 3 |
#位或 | 4 |
#位与 | 5 |
#从上到下 | 1 |
#从左到右 | 2 |
#从左上到右下 | 3 |
#从右上到左下 | 4 |
#从下到上 | 5 |
#从右到左 | 6 |
#从右下到左上 | 7 |
#从左下到右上 | 8 |
#字节集型 | 11 | 可以存储大量的不定长字节数据。
#备注型 | 12 | 文本型的扩充，可以存储大量的不定长文本数据。
#通常索引 | 1 |
#读音索引 | 2 |
#南方读音索引 | 3 |
#不区分大小写 | 1 |
#忽略所有空格 | 2 |
#取平均值 | 1 |
#求和 | 2 |
#取最大值 | 3 | 取最大数值及日期。
#取最小值 | 4 | 取最小数值及日期。
#禁止修改 | 1 | 如果禁止修改，则自动禁止添加和删除。
#禁止添加 | 2 |
#禁止删除 | 4 |
#禁止自动判断 | 8 |
#根类 | 1 |
#现行设置 | 2 |
#现行用户 | 3 |
#本地机器 | 4 |
#所有用户 | 5 |
#单击左键 | 1 |
#双击 | 2 |
#单击右键 | 3 |
#默认色 | -16777216 |
#文本 | 1 |
#图片文件名 | 2 |
#图片数据 | 3 |
#字节集数据 | 4 |
#上左 | 1 |
#上中 | 2 |
#上右 | 3 |
#中左 | 4 |
#中中 | 5 |
#中右 | 6 |
#下左 | 7 |
#下中 | 8 |
#下右 | 9 |
#缩放图片 | 10 |
#居中图片 | 11 |
#缩放居中图片 | 12 |
#平铺图片 | 13 |
#缩放平铺图片 | 14 |
#粗体 | 1 |
#斜体 | 2 |
#下划线 | 4 |
#删除线 | 8 |
#通常型 | 0 |
#左边框 | 1 |
#上边框 | 2 |
#右边框 | 4 |
#下边框 | 8 |
#水平线 | 16 |
#垂直线 | 32 |
#单斜线 | 64 |
#双斜线 | 128 |
#交叉线 | 256 |
#左单元格 | 1 |
#上单元格 | 2 |
#右单元格 | 3 |
#下单元格 | 4 |
#无页号 | 0 |
#上左页号 | 1 |
#上中页号 | 2 |
#上右页号 | 3 |
#下左页号 | 4 |
#下中页号 | 5 |
#下右页号 | 6 |
#全部页 | 0 |
#仅打印奇数页 | 1 |
#仅打印偶数页 | 2 |
#页范围 | 1 |
#行范围 | 2 |
#纵向 | 0 |
#横向 | 1 |
#默认纸 | 0 |
#A3纸 | 1 | 297 x 420 毫米。
#A4纸 | 2 | 210 x 297 毫米。
#A5纸 | 3 | 148 x 210 毫米。
#B4纸 | 4 | 250 x 354 毫米。
#B5纸 | 5 | 182 x 257 毫米。
#四开 | 6 | 215 x 275 毫米。
#十六开 | 7 | 146 x 215 毫米。
#三十二开 | 8 | 97 x 151 毫米。
#信纸 | 9 | 216 x 279 毫米。
#法律用纸 | 10 | 216 x 355 毫米。
#行政用纸 | 11 | 184 x 266 毫米。
#声明 | 12 | 140 x 216 毫米。
#小报 | 13 | 279 x 432 毫米。
#笔记 | 14 | 216 x 279 毫米。
#帐本 | 15 | 432 x 279 毫米。
#对开纸 | 16 | 216 x 330 毫米。
#输入密码 | 4 |
#缩放到纸宽 | -1 |
#限定到纸宽 | -2 |
#常量 | 0 |
#资源 | 1 |
#清除信号 | 1 |
#发送或置位 | 2 |
#DTR信号 | 1 |
#RTS信号 | 2 |
#Break信号 | 3 |
#GBK中文 | 1 |
#英文 | 2 |
#BIG5中文 | 3 |


流程控制

流程控制 类别 跳至：系统核心支持库


算术运算

算术运算 类别 跳至：系统核心支持库

相乘 | 相除 | 整除 | 求余数
相加 | 相减 | 负 | 取符号
取绝对值 | 取整 | 绝对取整 | 四舍五入
求次方 | 求平方根 | 求正弦 | 求余弦
求正切 | 求反正切 | 求自然对数 | 求反对数
是否运算正确 | 置随机数种子 | 取随机数 |


逻辑比较

逻辑比较 类别 跳至：系统核心支持库


位运算

位运算 类别 跳至：系统核心支持库


容器操作

容器操作 类别 跳至：系统核心支持库


数组操作

数组操作 类别 跳至：系统核心支持库


窗口

窗口 包容型窗口单元 跳至：系统核心支持库

本类型对象的方法被除开功能型外所有的窗口单元共享。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
标题 | 边框 | 底色 | 底图
底图方式 | 背景音乐 | 播放次数 | 控制按钮
最大化按钮 | 最小化按钮 | 位置 | 可否移动
图标 | 回车下移焦点 | Esc键关闭 | F1键打开帮助
帮助文件名 | 帮助标志值 | 在任务条中显示 | 随意移动
外形 | 总在最前 | 保持标题条激活 |

方法：

取窗口句柄 | 销毁 | 获取焦点 | 可有焦点
取用户区宽度 | 取用户区高度 | 禁止重画 | 允许重画
重画 | 部分重画 | 取消重画 | 刷新显示
移动 | 调整层次 | 弹出菜单 | 发送信息
投递信息 | 取标记单元 | 置外形图片 | 激活
置托盘图标 | 弹出托盘菜单 |  |

自有事件：

创建完毕 | 可否被关闭 | 将被销毁 | 位置被改变
尺寸被改变 | 被激活 | 被取消激活 | 空闲
首次激活 | 托盘事件 | 被显示 | 被隐藏

基本事件：


菜单

菜单 数据类型 跳至：系统核心支持库

用作指定某一个菜单项目。

属性：

标题 选中 禁止 可视

自有事件：

被选择


字体

字体 数据类型 跳至：系统核心支持库

成员 | 描 述
角度 | 整数型；以 1 / 10 度为单位。
加粗 | 逻辑型；
倾斜 | 逻辑型；
删除线 | 逻辑型；
下划线 | 逻辑型；
字体大小 | 整数型；初始值为 9 。单位为点（1 / 72 英寸）。
字体名称 | 文本型；初始值为“宋体”。

参见： 基本数据类型


编辑框

编辑框 窗口单元 跳至：系统核心支持库

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
内容 | 边框 | 文本颜色 | 背景颜色
字体 | 隐藏选择 | 最大允许长度 | 是否允许多行
滚动条 | 对齐方式 | 输入方式 | 密码遮盖字符
转换方式 | 调节器方式 | 调节器底限值 | 调节器上限值
起始选择位置 | 被选择字符数 | 被选择文本 | 数据源
数据列 |  |  |

方法：

加入文本

自有事件：

内容被改变 调节钮被按下

基本事件：


图片框

图片框 包容型窗口单元 跳至：系统核心支持库

不能接受输入焦点；

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
边框 | 背景颜色 | 图片 | 显示方式
播放动画 | 数据源 | 数据列 |

基本事件：


创建完毕 (窗口)

创建完毕 事件 所属对象：窗口

当窗口及其中的所有单元均被创建后在显示之前产生此事件，用户可以在响应此事件期间做一些初始化工作。本事件为该窗口的第一个事件。

语法： 无返回值 _窗口_创建完毕 （）

参见： 语法的描述规则、基本数据类型


可否被关闭 (窗口)

可否被关闭 事件 所属对象：窗口

在窗口被关闭之前产生此事件，用于询问窗口可否被关闭。如果返回假则不允许窗口被关闭，返回真或不返回值允许关闭。

语法： 逻辑型 _窗口_可否被关闭 （）

参见： 语法的描述规则、基本数据类型


将被销毁 (窗口)

将被销毁 事件 所属对象：窗口

当窗口将被销毁前产生此事件。窗口被销毁后所有对此窗口及其内部单元的修改都将被作废。

语法： 无返回值 _窗口_将被销毁 （）

参见： 语法的描述规则、基本数据类型


位置被改变 (窗口)

位置被改变 事件 所属对象：窗口

当窗口的位置被改变时产生此事件。

语法： 无返回值 _窗口_位置被改变 （）

参见： 语法的描述规则、基本数据类型


尺寸被改变 (窗口)

尺寸被改变 事件 所属对象：窗口

当窗口的尺寸被改变后产生此事件。

语法： 无返回值 _窗口_尺寸被改变 （）

参见： 语法的描述规则、基本数据类型


被激活 (窗口)

被激活 事件 所属对象：窗口

当窗口转换为激活状态时产生此事件。

语法： 无返回值 _窗口_被激活 （）

参见： 语法的描述规则、基本数据类型


被取消激活 (窗口)

被取消激活 事件 所属对象：窗口

当窗口转换为非激活状态时产生此事件。

语法： 无返回值 _窗口_被取消激活 （）

参见： 语法的描述规则、基本数据类型


空闲 (窗口)

空闲 事件 所属对象：窗口

当系统正处于空闲状态时产生此事件，用户可以在响应此事件时做一些后台处理工作。如果事件处理子程序返回假或者不返回值，在此次空闲期间系统将不再产生空闲事件（可以降低 CPU 占用率）。如果返回真，系统将继续产生空闲事件。

语法： 逻辑型 _窗口_空闲 （已空闲时间）

参数名 | 描 述
已空闲时间 | 整数型；指示自系统本次进入空闲状态后到现在所经过的空闲时间，单位为毫秒。用户程序在空闲状态下所进行的大工作量操作最好等到此值较大时进行。

参见： 语法的描述规则、基本数据类型


首次激活 (窗口)

首次激活 事件 所属对象：窗口

当窗口创建完毕后被首次激活显示时产生此事件，在此事件及此事件后用户可以开始在窗口内的画板单元上写出内容。

语法： 无返回值 _窗口_首次激活 （）

参见： 语法的描述规则、基本数据类型


托盘事件 (窗口)

托盘事件 事件 所属对象：窗口

当用户用鼠标单击或双击本窗口对象“置托盘图标”方法所设置的图标后即产生本事件。

语法： 无返回值 _窗口_托盘事件 （操作类型）

参数名 | 描 述
操作类型 | 整数型；指示用户操作类型，可能为的值为：1、#左键单击；2、#左键双击；3、#右键单击。

参见： 语法的描述规则、基本数据类型


被显示 (窗口)

被显示 事件 所属对象：窗口

当窗口被显示时产生此事件。

语法： 无返回值 _窗口_被显示 （）

参见： 语法的描述规则、基本数据类型


被隐藏 (窗口)

被隐藏 事件 所属对象：窗口

当窗口被隐藏时产生此事件。

语法： 无返回值 _窗口_被隐藏 （）

参见： 语法的描述规则、基本数据类型


被选择 (菜单)

被选择 事件 所属对象：菜单

当菜单项被用户选择后即产生此事件。

语法： 无返回值 _菜单_被选择 （）

参见： 语法的描述规则、基本数据类型


系统核心支持库

系统核心支持库3.3版 返回首页

本支持库是易语言的核心库，为系统本身和每个易程序提供必需的功能支持。

命令类别：

流程控制 | 算术运算 | 逻辑比较 | 位运算
容器操作 | 数组操作 | 环境存取 | 拼音处理
文本操作 | 字节集操作 | 数值转换 | 时间操作
磁盘操作 | 文件读写 | 系统处理 | 媒体播放
程序调试 | 其他 | 数据库 | 网络通信
易向导 |  |  |

窗口单元数据类型：

窗口 | 编辑框 | 图片框 | 外形框
画板 | 分组框 | 标签 | 按钮
选择框 | 单选框 | 组合框 | 列表框
选择列表框 | 横向滚动条 | 纵向滚动条 | 进度条
滑块条 | 选择夹 | 影像框 | 日期框
月历 | 驱动器框 | 目录框 | 文件框
颜色选择器 | 超级链接框 | 调节器 | 通用对话框
时钟 | 打印机 | 数据报 | 客户
服务器 | 端口 | 表格 | 数据源
通用提供者 | 数据库提供者 | 图形按钮 | 外部数据库
外部数据提供者 |  |  |

其它数据类型：

菜单 字体 字段信息 打印设置信息

常量表...

例程列表：

例程名称 | 下载 | 说明
ACCESS数据库备注及二进制字段读写示例 | ACCESS数据库备注及二进制字段读写.e | 本程序演示了对ACCESS数据库的备注及二进制字段内容进行读写的方法. 注意:本程序用作示范相关编程技术,仅仅用作阅读.由于您的计算机上不包含相应的附属文件,因此执行将不会成功.
位运算类命令演示 | 位操作类命令.e | 演示所有位运算类命令的使用方法
一步一步跟我学写易程序一 | 一步一步跟我学写易程序一.e 学生情况.edb 学生情况.EDT 一步一步跟我学写易程序一.doc | 本程序通过一个简单的学生管理程序来演示如何学写易程序。
一步步跟我学写易程序二 | 一步一步跟我学写易程序二.e 学生情况.edb 学生情况.EDT 密码.edb 系统日志.edb 一步一步跟我学写易程序二.doc | 本程序通过一个简单的学生管理程序来演示如何学写易程序，是一步一步<<跟我学写易程序一>>的后续程序。
全面操作MS_Access数据库 | 全面操作Access数据库.e MSAccess.mdb | 本程序演示如何在易语言中借助“外部数据库”控件，通过ODBC操纵Microsoft Access数据库。支持记录的查询、排序、删除、添加、更新，及创建、删除表的操作。本程序同时为用户提供了一个良好的SQL语言的学习环境。 具体教程请见随系统附带的"ACCESS数据库使用详解.doc"文件. 作者：Liigo 2002/4/1 Liigo@chinaren.com http://Liigo.yeah.net
图形按钮示例 | 图形按钮.e | 本程序演示了如何创建图形按钮
学生管理系统 | 学生管理系统.e base.grd 体育.edb 体育.edt 化学.edb 化学.edt 历史.edb 历史.edt 地理.edb 地理.edt 学生.edb 学生.edt 政治.edb 政治.edt 数学.edb 数学.edt 物理.edb 物理.edt 生物.edb 生物.edt 英文.edb 英文.edt 计算机.edb 计算机.edt 语文.edb 语文.edt 音乐.edb 音乐.edt | 本程序通过一个较实用的学生管理系统来说明数据库程序的编写方法,内含报表的查询、打印、打印预览功能的实现。
容器操作类命令演示 | 容器操作命令.e | 演示所有容器操作类命令的使用方法
托盘图标支持演示 | 托盘图标.e | 在本例程中可以学习到如何在系统托盘中加入并控制自己的图标。
拼音处理类命令演示 | 拼音类命令.e | 演示所有拼音处理类命令的使用方法
数组操作类命令演示 | 数组类命令.e | 演示所有数组操作类命令的使用方法
数据绑定演示 | 数据绑定.e people.edb people.edt | 本例程序演示数据绑定的使用方法
文本操作类命令演示 | 文本操作命令.e | 演示所有文本操作类命令的使用方法
欢迎使用易语言 | 欢迎.e | 本例程为欢迎用户使用易语言的封面程序。在其中可以学习到 GIF 动画、背景音乐、底图、画板单元、时钟单元的使用方法。
流程控制类命令演示 | 流程类命令.e | 演示所有流程控制类命令的使用方法
爆炸 | 爆炸.e | 具有爆炸外形的窗口
环境存取类命令演示 | 环境类命令.e | 演示所有环境存取类命令的使用方法
第一个程序 | 第一个程序.e | 本例程为在学习易语言手册时用户所编写的第一个易程序。初级用户可以在此基础上进行练习，比如改变文字颜色、字体大小等等。
算术运算类命令演示 | 算术类命令.e | 演示所有算术运算类命令的使用方法
脸 | 脸.e | 注意它的眼睛！
逻辑比较类命令演示 | 逻辑类命令.e | 演示所有逻辑比较类命令的使用方法
超级方块 | 俄罗斯方块.e | 这是一个由吴涛编写的专业级俄罗斯方块游戏，共有 15 关，要打通这 15 关绝对不容易。它一定会让你流连忘返！另外：运行前请将想在游戏过程中听的所有 MIDI 音乐文件放到与此程序相同的目录中。
语法示例 | 易语言手册例程.e | 本例程用于与易语言手册配合阅读以快速掌握易语言语法。
MP3 播放者 | mp3播放者.e | 本程序能够自动搜寻并播放指定驱动器内内所有的 MP3 音乐文件。
图片浏览 | 查看图片.e | 在本例程中可以学习到驱动器框、目录框、文件框、图片框单元的使用方法。
向导 | 动态显示单元群.e | 演示了在同一位置动态显示数个单元群的技术。
通信端口测试 | 端口通讯.E |
好友录 | 好友录.e | 本程序使用易语言数据库功能编写了一个简单的好友管理程序，里面使用了数据库的增加、删除、查找、定位等功能，你可以进一步完善她。
随机图形及右键弹出菜单 | 绘画.e | 在本例程序中可以学习到图形的绘画方法及右键弹出菜单的使用方法。
基于连接的服务器测试 | 服务器测试.E |
数值表计算 | 计算.e | 本例程能够对一系列数值进行汇总、求平均值、排序。在其中可以学习到编辑框、列表框单元的使用方法及文本文件的读写方法。
记事本 | 记事本.e | 本例程为一个实用的记事本软件，其功能超过了Windows系统自带的记事本。在其中可以学习到文件的操作方法、编辑框及多窗口的使用方法。
基于连接的客户机测试 | 客户机测试.E |
聊天室服务端 | 聊天室服务器.e | 此为聊天室的服务端程序，用作进行客户群的管理和消息分发。
聊天室客户端 | 聊天室客户.e | 此为聊天室的客户端程序，运行本程序后需要首先连接到已经在运行聊天室服务端的机器上。
保护自己的软件 | 软件注册.e | 这是使用硬盘特征字来保护自己软件的例子。
数据报测试 | 数据报.e | 使用方法：在多台机器上同时运行本程序，它们之间可以相互通信或广播。
速度密码 | 速度密码.e | 要想速度密码复核通过，不光密码要相符，输入速度也要一致哟。
新年快乐 | 新年好.e | 一个具有图片外形的窗口，其外形图片在“#图片1”资源中。
加解密工具 | 加解密工具.e | 本程序用作测试“打开加密文件”命令，并且具有实际应用价值。


标题 (窗口)

标题 属性 所属对象：窗口

数据类型：文本型；本属性指定窗口的标题文本。

参见： 基本数据类型


边框 (窗口)

边框 属性 所属对象：窗口

数据类型：整数型；本属性指定窗口边框的类型。

可供选择的属性值：
0、无边框
1、普通可调边框
2、普通固定边框
3、窄标题可调边框
4、窄标题固定边框
5、镜框式可调边框
6、镜框式固定边框

参见： 基本数据类型


底色 (窗口)

底色 属性 所属对象：窗口

数据类型：整数型；本属性指定窗口背景的颜色。

参见： 基本数据类型


底图 (窗口)

底图 属性 所属对象：窗口

数据类型：字节集；本属性指定显示在窗口背景上的图片。

参见： 基本数据类型


底图方式 (窗口)

底图方式 属性 所属对象：窗口

数据类型：整数型；如果设定了底图，本属性指定窗口背景上底图的显示方式。

可供选择的属性值：
0、图片居左上
1、图片平铺
2、图片居中

参见： 基本数据类型


背景音乐 (窗口)

背景音乐 属性 所属对象：窗口

数据类型：字节集；本属性指定当窗口调入时自动开始播放的音乐。

参见： 基本数据类型


播放次数 (窗口)

播放次数 属性 所属对象：窗口

数据类型：整数型；本属性指定背景音乐的播放次数。

可供选择的属性值：
0、循环播放
1、仅播放一次
2、不播放

参见： 基本数据类型


控制按钮 (窗口)

控制按钮 属性 所属对象：窗口

数据类型：逻辑型；本属性设置是否显示窗口上的所有控制按钮及窗口控制菜单。

参见： 基本数据类型


最大化按钮 (窗口)

最大化按钮 属性 所属对象：窗口

数据类型：逻辑型；本属性设置是否显示窗口右上角的最大化或还原按钮。

参见： 基本数据类型


最小化按钮 (窗口)

最小化按钮 属性 所属对象：窗口

数据类型：逻辑型；本属性设置是否显示窗口右上角的最小化按钮。

参见： 基本数据类型


位置 (窗口)

位置 属性 所属对象：窗口

数据类型：整数型；本属性设置窗口的位置及状态。注意如果欲设置为“最大化”，“边框”属性必须不为固定类边框。

可供选择的属性值：
0、通常
1、居中
2、最小化
3、最大化

参见： 基本数据类型


可否移动 (窗口)

可否移动 属性 所属对象：窗口

数据类型：逻辑型；本属性设置窗口位置能否被移动。

参见： 基本数据类型


图标 (窗口)

图标 属性 所属对象：窗口

数据类型：字节集；本属性设置窗口左上角所显示的图标。

参见： 基本数据类型


回车下移焦点 (窗口)

回车下移焦点 属性 所属对象：窗口

数据类型：逻辑型；本属性如果设置为真，运行时当用户在本窗口上按下回车键后，将自动将当前焦点转移到下一个单元。本属性如果设置为假，当用户在本窗口上按下回车键后，将等同于按下具有“默认”属性的按钮。

参见： 基本数据类型


Esc键关闭 (窗口)

Esc键关闭 属性 所属对象：窗口

数据类型：逻辑型；本属性设置运行时用户是否可以用 Esc 键关闭本窗口。

参见： 基本数据类型


F1键打开帮助 (窗口)

F1键打开帮助 属性 所属对象：窗口

数据类型：逻辑型；本属性设置运行时用户是否可以用 F1 键打开有关本窗口的帮助信息。

参见： 基本数据类型


帮助文件名 (窗口)

帮助文件名 属性 所属对象：窗口

数据类型：文本型；指定欲打开帮助文件的名称，如果没有指定帮助文件，将使用默认帮助文件名称，即本易程序的文件名称（不含其后缀）＋“.hlp”后缀。

参见： 基本数据类型


帮助标志值 (窗口)

帮助标志值 属性 所属对象：窗口

数据类型：整数型；用于在帮助文件中指定相应的帮助标志数值。本属性如果为零，则显示帮助主题。

参见： 基本数据类型


在任务条中显示 (窗口)

在任务条中显示 属性 所属对象：窗口

数据类型：逻辑型；设置本窗口是否出现在 Windows 系统的任务条中。

参见： 基本数据类型


随意移动 (窗口)

随意移动 属性 所属对象：窗口

数据类型：逻辑型；设置当用户在窗口上任何位置按下鼠标左键后是否进入窗口整体移动模式。注意如果本属性设置为真，则在本窗口及其中所有不能接收输入焦点的子单元上均不能再接收到“鼠标左键被按下”和“鼠标左键被放开”事件。

参见： 基本数据类型


外形 (窗口)

外形 属性 所属对象：窗口

数据类型：整数型；设置窗口的外形。

可供选择的属性值：
0、矩形
1、椭圆
2、圆角矩形
3、环
4、正三角
5、倒三角
6、左三角
7、右三角
8、平行四边形
9、五边形
10、六边形
11、梯形
12、菱形
13、五角星
14、十字星
15、闪电形
16、爆炸形1
17、爆炸形2
18、燕尾
19、折角矩形
20、左箭头
21、右箭头
22、上箭头
23、下箭头
24、左右箭头
25、上下箭头
26、十字箭头
27、丁字箭头
28、燕尾箭头
29、五边形箭头

参见： 基本数据类型


总在最前 (窗口)

总在最前 属性 所属对象：窗口

数据类型：逻辑型；设置本窗口永远位于其它窗口的前面。

参见： 基本数据类型


保持标题条激活 (窗口)

保持标题条激活 属性 所属对象：窗口

数据类型：逻辑型；如果希望本窗口在非激活状态下其标题条仍然与激活状态时相同，请设置本属性为真。

参见： 基本数据类型


内容 (编辑框)

内容 属性 所属对象：编辑框

数据类型：文本型；

参见： 基本数据类型


边框 (编辑框)

边框 属性 所属对象：编辑框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


文本颜色 (编辑框)

文本颜色 属性 所属对象：编辑框

数据类型：整数型；

参见： 基本数据类型


背景颜色 (编辑框)

背景颜色 属性 所属对象：编辑框

数据类型：整数型；

参见： 基本数据类型


字体 (编辑框)

字体 属性 所属对象：编辑框

数据类型：字体；

参见： 基本数据类型


隐藏选择 (编辑框)

隐藏选择 属性 所属对象：编辑框

数据类型：逻辑型；本属性指定失去输入焦点后是否还显示当前被选择的区域。

参见： 基本数据类型


最大允许长度 (编辑框)

最大允许长度 属性 所属对象：编辑框

数据类型：整数型；本属性设置最大允许输入到本单元中的字符数目，如为0则输入字符数目不受限制。

参见： 基本数据类型


边框 (图片框)

边框 属性 所属对象：图片框

数据类型：整数型；

可供选择的属性值：
0、无边框
1、凹入式
2、凸出式
3、浅凹入式
4、镜框式
5、单线边框式

参见： 基本数据类型


背景颜色 (图片框)

背景颜色 属性 所属对象：图片框

数据类型：整数型；

参见： 基本数据类型


图片 (图片框)

图片 属性 所属对象：图片框

数据类型：字节集；本属性指定显示在图片框上的图片。

参见： 基本数据类型


显示方式 (图片框)

显示方式 属性 所属对象：图片框

数据类型：整数型；如果设定了图片，本属性指定图片框上图片的显示方式。

可供选择的属性值：
0、图片居左上
1、缩放图片
2、图片居中

参见： 基本数据类型


播放动画 (图片框)

播放动画 属性 所属对象：图片框

数据类型：逻辑型；当图片为 GIF 动画格式时，通过改变此属性可控制其播放或停止。如在设计时置本属性为真，运行时动画在图片框被创建后即自动开始播放。

参见： 基本数据类型


数据源 (图片框)

数据源 属性 所属对象：图片框

数据类型：文本型；指定提供数据的数据源单元名。

参见： 基本数据类型


数据列 (图片框)

数据列 属性 所属对象：图片框

数据类型：文本型；指定数据源中的字节集或图片数据列，可以是列名或以1开始的列序号文本。

参见： 基本数据类型


左边 (窗口)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (窗口)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (窗口)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (窗口)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (窗口)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (窗口)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (窗口)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (窗口)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


求两数和

求两数和 命令 所属类别：命令分类(1)

为高级用户提供，初级用户无需掌握；
这是对“求两数和”命令的介绍，简单加法……（liigo删削888字）。

语法： 整数型 求两数和 （加数一，加数二）

参数名 | 描 述
加数一 | 必需的；整数型，初始值为“0”。加数一的介绍……。
加数二 | 必需的；整数型，初始值为“0”。

参见： 语法的描述规则、基本数据类型


新版信息框

新版信息框 命令 所属类别：命令分类(1)

为高级用户提供，初级用户无需掌握；
调用API函数MessageBox产生的信息框窗口。

语法： 无返回值 新版信息框 （提示文本，按钮，窗口标题）

参数名 | 描 述
提示文本 | 必需的；文本型，初始值为“”。
按钮 | 必需的；整数型，初始值为“0”。与“信息框”中同名参数取值相同。
窗口标题 | 必需的；文本型，初始值为“信息：”。

参见： 语法的描述规则、基本数据类型


关于

关于 命令 所属类别：命令分类(1)

为高级用户提供，初级用户无需掌握；
这是对“关于”命令的介绍，弹出一个有Delphi特色的窗口。

语法： 无返回值 关于 （）

参见： 语法的描述规则、基本数据类型


播放Flash

播放Flash 命令 所属类别：命令分类(1)

为高级用户提供，初级用户无需掌握；
弹出一个窗口，在其中播放指定的SWF文件。

语法： 无返回值 播放Flash （SWF文件名(*.swf)）

参数名 | 描 述
SWF文件名(*.swf) | 必需的；文本型。需要指定包括完整路径和扩展名的*.swf文件，如c:\liigo\1.swf。

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#常量一 | “我是Liigo！” |


命令分类(1)

命令分类(1) 类别 跳至：liigo_elib


liigo_elib

liigo_elib1.0版 返回首页

用Delphi写的易支持库，仅仅是做一下测试而已，博君一笑。现在急着拿出这个预览版，不是为了哗众取宠，而是因为我这几天做了一些比较有益的事情（把易支持库开发文档中的C++声明文件转换成了Pascal声明文件，花了很多心思的^_^），希望把这个成果拿出来和易友们共同分享，希望大家有更多的方式开发易语言支持库，希望易语言越走越好！希望大家开开心心！！安装了本支持库，在易主窗口“工具”菜单下应该会出现“关于liigo的支持库”一项（前提是您打开或新建了一个程序），内置UPX压缩功能。 下一步Liigo将推出更多有实用价值的易语言支持库，敬请关注！。

命令类别：

命令分类(1)

常量表...

为易语言系统提供的工具功能：

名称 | 说明
关于liigo的支持库 | 内置UPX压缩功能，用于压缩可执行文件(*.exe,*.dll,*.ocx等)。

例程列表：

例程名称 | 下载 | 说明
演示程序 | elib_test.e | 演示本库中的以下四个全局命令：求两数据和；新版信息框；关于；播放FLASH。


put_Output (通讯端口)

put_Output 方法 所属对象：通讯端口

Writes a string of characters to the transmit buffer.

语法： 无返回值 通讯端口．put_Output （发送数据）

参数名 | 描 述
发送数据 | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


get_Output (通讯端口)

get_Output 方法 所属对象：通讯端口

Writes a string of characters to the transmit buffer.

语法： 通用型 通讯端口．get_Output （）

参见： 语法的描述规则、基本数据类型


put_Input (通讯端口)

put_Input 方法 所属对象：通讯端口

Returns and removes a string of characters from the receive buffer.

语法： 无返回值 通讯端口．put_Input （参数1）

参数名 | 描 述
参数1 | 必需的；通用型。

参见： 语法的描述规则、基本数据类型


接收数据 (通讯端口)

接收数据 方法 所属对象：通讯端口

Returns and removes a string of characters from the receive buffer.

语法： 通用型 通讯端口．接收数据 （）

参见： 语法的描述规则、基本数据类型


通讯端口

通讯端口 功能型窗口单元 跳至：通讯端口

Microsoft Comm Control 6.0。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
数据接收方式 | 允许EOF | 通讯事件或错误 | 端口触发前接收字符数
端口特性 | 允许RTS | RTS状态 | 打开端口
替换字符 | 发送缓冲区中字符数 | 发送缓冲区大小 | 允许NULL字符
一次接收字符数 | 中断信号 | 接收缓冲区中字符数 | 接收缓冲区大小
握手协议 | 允许DTR | DSR状态 | CTS状态
端口号 | 设备句柄 | CD状态 | 全部属性

方法：

put_Output get_Output put_Input 接收数据

自有事件：

端口被触发


端口被触发 (通讯端口)

端口被触发 事件 所属对象：通讯端口

Occurs whenever the value of the CommEvent property changes.

语法： 无返回值 _通讯端口_端口被触发 （）

参见： 语法的描述规则、基本数据类型


通讯端口

通讯端口1.0版 返回首页

Microsoft Comm Control 6.0。

窗口单元数据类型：

通讯端口


数据接收方式 (通讯端口)

数据接收方式 属性 所属对象：通讯端口

数据类型：整数型；Sets/returns the type of data retrieved by the Input property.

可供选择的属性值：
0、文本方式
1、二进制方式

参见： 基本数据类型


允许EOF (通讯端口)

允许EOF 属性 所属对象：通讯端口

数据类型：逻辑型；Sets/returns the whether to search for the EOF character.

参见： 基本数据类型


通讯事件或错误 (通讯端口)

通讯事件或错误 属性 所属对象：通讯端口

数据类型：整数型；返回最近的通讯事件或错误。该属性在设计时无效，在运行时为只读。 说明 只要有通讯错误或事件发生时都会产生 OnComm 事件，CommEvent 属性存有该错误或事件的数值代码。要确定引发 OnComm 事件的确切的错误或事件，请参阅 CommEvent 属性。 CommEvent 属性返回下列值之一来表示不同的通讯错误或事件。这些常数可以在该控件的对象库中找到。通讯错误包括下列设置值： 常数 值 描述 1001 接收到一个中断信号。 1002 Clear To Send 超时。在系统规定时间内传输一个字符时，Clear To Send 线为低电平。 1003 Data Set Ready 超时。在系统规定时间内传输一个字符时，Data Set Ready 线为低电平。 1004 帧错误。硬件检测到一帧错误。 1006 端口超速。没有在下一个字符到达之前从硬件读取字符，该字符丢失。 1007 载波检测超时。在系统规定时间内传输一个字符时，Carrier Detect 线为低电平。 1008 接受缓冲区溢出。接收缓冲区没有空间。 1009 奇偶校验。硬件检测到奇偶校验错误 1010 传输缓冲区已满。传输字符时传输缓冲区已满 1011 检索端口的设备控制块 (DCB) 时的意外错误 通讯事件包括下列设置值： 1 在传输缓冲区中有比 Sthreshold 数少的字符。 2 收到 Rthreshold 个字符。该事件将持续产生直到用 Input 属性从接收缓冲区中删除数据。 3 CTS线的状态发生变化。 4 DSR线的状态发生变化。该事件只在 DST 从 1 变到 0 时才发生。 5 CD线的状态发生变化。 6 检测到振铃信号。一些 UART（通用异步接收- 传输）可能不支持该事件。 7 收到文件结束（ASCII 字符为 26）字符。 数据类型:整数型。

参见： 基本数据类型


端口触发前接收字符数 (通讯端口)

端口触发前接收字符数 属性 所属对象：通讯端口

数据类型：整数型；Sets/returns the minimum number of characters allowable in the transmit.

参见： 基本数据类型


端口特性 (通讯端口)

端口特性 属性 所属对象：通讯端口

数据类型：文本型；Sets/returns the baud rate, parity, data bit, and stop bit parameters.

参见： 基本数据类型


允许RTS (通讯端口)

允许RTS 属性 所属对象：通讯端口

数据类型：逻辑型；Determines whether to enable the Request To Send line.

参见： 基本数据类型


RTS状态 (通讯端口)

RTS状态 属性 所属对象：通讯端口

数据类型：整数型；Sets/returns the number of characters to receive.

参见： 基本数据类型


打开端口 (通讯端口)

打开端口 属性 所属对象：通讯端口

数据类型：逻辑型；

参见： 基本数据类型


替换字符 (通讯端口)

替换字符 属性 所属对象：通讯端口

数据类型：文本型；Sets/returns the character that replaces an invalid character in the data stream when a parity error occurs.

参见： 基本数据类型


发送缓冲区中字符数 (通讯端口)

发送缓冲区中字符数 属性 所属对象：通讯端口

数据类型：整数型；Returns the number of characters waiting in the transmit buffer.

参见： 基本数据类型


发送缓冲区大小 (通讯端口)

发送缓冲区大小 属性 所属对象：通讯端口

数据类型：整数型；Sets/returns the size, in characters, of the transmit buffer.

参见： 基本数据类型


允许NULL字符 (通讯端口)

允许NULL字符 属性 所属对象：通讯端口

数据类型：逻辑型；Determines whether null characters are transferred from the port to the receive buffer.

参见： 基本数据类型


一次接收字符数 (通讯端口)

一次接收字符数 属性 所属对象：通讯端口

数据类型：整数型；Sets/returns the number of characters the Input property reads from the receive buffer.

参见： 基本数据类型


中断信号 (通讯端口)

中断信号 属性 所属对象：通讯端口

数据类型：逻辑型；设置或清除中断信号的状态。该属性在设计时无效。 设置值描述 真 设置中断信号状态 假 清除中断信号状态 说明 当设置为 真，Break 属性发送一个中断信号。该中断信号挂起字符传输，并置传输线为中断状态直到把 Break 属性设置为 假。 一般，仅当使用的通讯设备要求设置一个中断信号时，才设置一个短时的中断状态。 数据类型:逻辑型。

参见： 基本数据类型


接收缓冲区中字符数 (通讯端口)

接收缓冲区中字符数 属性 所属对象：通讯端口

数据类型：整数型；Returns the number of characters waiting in the receive buffer.

参见： 基本数据类型


接收缓冲区大小 (通讯端口)

接收缓冲区大小 属性 所属对象：通讯端口

数据类型：整数型；Sets/returns the size of the receive buffer in bytes.

参见： 基本数据类型


握手协议 (通讯端口)

握手协议 属性 所属对象：通讯端口

数据类型：整数型；Sets/returns the hardware handshaking protocol.

可供选择的属性值：
0、无握手协议
1、XOnXoff协议
2、RTS协议
3、RTSXOnXOff协议

参见： 基本数据类型


允许DTR (通讯端口)

允许DTR 属性 所属对象：通讯端口

数据类型：逻辑型；Determines whether to enable the Data Terminal Ready line during communications.

参见： 基本数据类型


DSR状态 (通讯端口)

DSR状态 属性 所属对象：通讯端口

数据类型：逻辑型；确定 Data Set Ready (DSR) 线的状态。DSR 信号由调制解调器发送到相连计算机，指示作好操作准备。该属性在设计时无效，在运行时为只读。 真 Data Set Ready 线高电平 假 Data Set Ready 线低电平 说明 当 DSR线为高电平 (DSR状态 = 真) 且超时时，MSComm 控件设置 通讯事件或错误=1003 并产生 OnComm 事件。 当为 Data Terminal Equipment (DTE) 机器写 Data Set Ready/Data Terminal Ready 握手例程时该属性是十分有用的。 数据类型：逻辑型。

参见： 基本数据类型


CTS状态 (通讯端口)

CTS状态 属性 所属对象：通讯端口

数据类型：逻辑型；确定是否可通过查询 CTS线的状态发送数据。CTS是调制解调器发送到相联计算机的信号，指示传输可以进行。该属性在设计时无效，在运行时为只读。 真 CTS线为高电平。 假 CTS线为低电平。 说明 如果 CTS线为低电平 (CTS状态 = 假) 并且超时时，MSComm 控件设置 通讯事件或错误属性=3 并产生 OnComm 事件。 CTS线用于 RTS/CTS (RTS/CTS) 硬件握手。如果需要确定 CTS 线的状态，CTS状态 属性给出一种手工查询的方法。 数据类型:逻辑型。

参见： 基本数据类型


端口号 (通讯端口)

端口号 属性 所属对象：通讯端口

数据类型：整数型；设置并返回通讯端口号。 说明 在设计时，value 可以设置成从 1 到 16 的任何数（缺省值为 1）。但是如果用 PortOpen 属性打开一个并不存在的端口时，MSComm 控件会产生错误 68（设备无效）。 警告 必须在打开端口之前设置 CommPort 属性。 数据类型:整数型。

参见： 基本数据类型


设备句柄 (通讯端口)

设备句柄 属性 所属对象：通讯端口

数据类型：整数型；返回一个说明通讯设备的句柄。该属性在设计时无效，在运行时为只读。 说明 该值与 Windows API CreateFile 函数返回的值一致。在 Windows API 中调用任何通讯例程时使用该值。 数据类型:整数型。

参见： 基本数据类型


CD状态 (通讯端口)

CD状态 属性 所属对象：通讯端口

数据类型：逻辑型；通过查询 Carrier Detect (CD) 线的状态确定当前是否有传输。Carrier Detect 是从调制解调器发送到相联计算机的一个信号，指示调制解调器正在联机。该属性在设计时无效，在运行时为只读。 设置 描述 真 Carrier Detect 线为高电平 假 Carrier Detect 线为低电平 说明 注意当 Carrier Detect 线为高电平 (CDHolding = 真) 且超时时，MSComm 控件设置CommEvent 属性为 comEventCDTO（Carrier Detect 超时错误），并产生 OnComm 事件。 注意 在主机应用程序中捕获一个丢失的传输是特别重要的，例如一个公告板，因为呼叫者可以随时挂起（放弃传输）。 Carrier Detect 也被称为 Receive Line Signal Detect (RLSD)。 数据类型:逻辑型。

参见： 基本数据类型


全部属性 (通讯端口)

全部属性 属性 所属对象：通讯端口

数据类型：字节集；使用OCX组件自身的属性表进行设置。

参见： 基本数据类型


左边 (通讯端口)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (通讯端口)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (通讯端口)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (通讯端口)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (通讯端口)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (通讯端口)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (通讯端口)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (通讯端口)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


端口读入

端口读入 命令 所属类别：端口访问

从指定端口读入并返回一个字节数据，注意如果没有安装port95nt.exe，本命令将失败并始终返回0。请在运行本命令的目的机器上下载安装第三方免费软件 http://www.eyuyan.com/port95nt.exe 。

语法： 字节型 端口读入 （端口号）

参数名 | 描 述
端口号 | 必需的；整数型。本参数提供欲进行读写端口的端口号。

参见： 语法的描述规则、基本数据类型


端口写出

端口写出 命令 所属类别：端口访问

向指定端口写出一个字节数据，注意如果没有安装port95nt.exe，本命令将失败。请在运行本命令的目的机器上下载安装第三方免费软件 http://www.eyuyan.com/port95nt.exe 。

语法： 无返回值 端口写出 （端口号，欲写出字节）

参数名 | 描 述
端口号 | 必需的；整数型。本参数提供欲进行读写端口的端口号。
欲写出字节 | 必需的；字节型。本参数提供欲写出到指定端口的字节数据。

参见： 语法的描述规则、基本数据类型


查询并口

查询并口 命令 所属类别：并口设置

返回当前计算机上所有并口的配置情况。返回数据是一个整数数组，其中每三个成员描述一个并口的信息。第一个成员记录此并口的端口访问地址，第二个记录该并口的类型，为以下整数值之一： 0: 未定义; 1: SPP; 2: PS2; 3: EPP; 4: ECP 。如果并口类型为ECP，第三个成员记录具体的ECP模式，为以下整数值之一： 0: 未定义; 1: SPP; 2: PS2; 3: FastCentronics; 4: ECP; 5: EPP; 6: Test; 7: Configuration 。如果并口类型不为ECP，则第三个成员始终为0。注意如果没有安装port95nt.exe，本命令将失败并返回空整数数组。请在运行本命令的目的机器上下载安装第三方免费软件 http://www.eyuyan.com/port95nt.exe 。

语法： 整数型数组 查询并口 （）

参见： 语法的描述规则、基本数据类型


置ECP模式

置ECP模式 命令 所属类别：并口设置

如果指定并口类型为ECP，则可以使用本命令设置其具体的ECP模式。注意如果没有安装port95nt.exe，本命令将失败。请在运行本命令的目的机器上下载安装第三方免费软件 http://www.eyuyan.com/port95nt.exe 。

语法： 无返回值 置ECP模式 （并口端口号，ECP模式）

参数名 | 描 述
并口端口号 | 必需的；整数型。本参数提供ECP类型并口的端口号。
ECP模式 | 必需的；整数型。本参数可以为以下值之一: 1: SPP; 2: PS2; 3: FastCentronics; 4: ECP; 5: EPP; 6: Test; 7: Configuration。

参见： 语法的描述规则、基本数据类型


端口访问

端口访问 类别 跳至：端口访问支持库


并口设置

并口设置 类别 跳至：端口访问支持库


端口访问支持库

端口访问支持库1.0版 返回首页

本支持库实现了对计算机端口的直接访问支持，注意在执行本支持库内命令前计算机上必须要安装有第三方免费软件 port95nt.exe，下载地址 http://www.eyuyan.com/port95nt.exe 。

命令类别：


创建快捷方式

创建快捷方式 命令 所属类别：快捷方式操作

本命令建立指定的快捷方式文件，成功返回真，失败返回假。

语法： 逻辑型 创建快捷方式 （快捷方式文件名，指向文件路径，［备注信息］，［命令行文本］，［工作目录］）

参数名 | 描 述
快捷方式文件名 | 必需的；文本型。如果文件名不包含后缀，将自动加上“.lnk”后缀名。
指向文件路径 | 必需的；文本型。本参数提供快捷方式所指向文件的全路径名。
备注信息 | 可选的；文本型。本参数提供对应此快捷方式的描述文本信息，如果被省略，默认为空文本。
命令行文本 | 可选的；文本型。本参数提供启动快捷方式指向文件时附加的命令行文本，如果被省略，默认为空文本。
工作目录 | 可选的；文本型。本参数提供启动快捷方式指向文件时所需预置的工作目录，如果被省略，默认为空文本。

参见： 语法的描述规则、基本数据类型


查询快捷方式

查询快捷方式 命令 所属类别：快捷方式操作

本命令从指定快捷方式文件中获取该快捷方式所指向的文件路径名，如果该文件不是快捷方式文件或执行失败则返回空文本。

语法： 文本型 查询快捷方式 （快捷方式文件名）

参数名 | 描 述
快捷方式文件名 | 必需的；文本型。如果文件名不包含后缀，将自动加上“.lnk”后缀名。

参见： 语法的描述规则、基本数据类型


浏览文件夹

浏览文件夹 命令 所属类别：文件操作

打开一个对话框，浏览系统中存在的所有文件夹，返回被选定文件夹的路径名，如果未选中任何文件夹，则返回空文本。

语法： 文本型 浏览文件夹 （标题，［是否包含文件］）

参数名 | 描 述
标题 | 必需的；文本型。本参数提供显示在对话框上部的标题文本。
是否包含文件 | 可选的；逻辑型。本参数指定是否在浏览框中同时列出文件名。如果被省略，默认值为假。

参见： 语法的描述规则、基本数据类型


删除到回收站

删除到回收站 命令 所属类别：文件操作

本命令可以将一个或一批文件删除到Windows系统回收站中，成功返回真，失败或被用户中止删除操作返回假。

语法： 逻辑型 删除到回收站 （［删除选项］，欲删除文件，… ）

参数名 | 描 述
删除选项 | 可选的；整数型。本参数提供删除操作选项，可以为以下常量值之一或之和： 1: #不询问删除; 2: #不提示错误; 4: #不显示进度。如果被省略，默认值为 0 。
欲删除文件 | 必需的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。可以以数组方式同时提供多个文件或文件夹名，注意必须是全路径，支持通配符“*”和“?”。

参见： 语法的描述规则、基本数据类型


进度复制文件

进度复制文件 命令 所属类别：文件操作

本命令可以将一个或一批文件复制到另一个目录中，并同时显示一个复制进度对话框，成功返回真，失败或被用户中止复制操作返回假。

语法： 逻辑型 进度复制文件 （目的目录，源文件，… ）

参数名 | 描 述
目的目录 | 必需的；文本型。本参数提供目的目录路径，如果该目录不存在，系统将自动询问是否创建。
源文件 | 必需的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。可以以数组方式同时提供多个文件或文件夹名，注意必须是全路径，支持通配符“*”和“?”。

参见： 语法的描述规则、基本数据类型


进度移动文件

进度移动文件 命令 所属类别：文件操作

本命令可以将一个或一批文件移动到另一个目录中，并同时显示一个移动进度对话框，成功返回真，失败或被用户中止移动操作返回假。

语法： 逻辑型 进度移动文件 （目的目录，源文件，… ）

参数名 | 描 述
目的目录 | 必需的；文本型。本参数提供目的目录路径，如果该目录不存在，系统将自动询问是否创建。
源文件 | 必需的；可扩充的；文本型，参数数据可以同时提供数组或非数组数据。可以以数组方式同时提供多个文件或文件夹名，注意必须是全路径，支持通配符“*”和“?”。

参见： 语法的描述规则、基本数据类型


执行

执行 命令 所属类别：杂类

使用Windows的用户界面系统执行指定命令。

语法： 无返回值 执行 （［命令类型］，欲操作文件名，［命令行］，［默认当前目录］）

参数名 | 描 述
命令类型 | 可选的；整数型。本参数提供欲执行命令的类型，可以为以下常量值之一： 1: #编辑文档; 启动编辑软件打开“欲操作文件名”参数所指定的文档文件进行编辑。 2: #浏览文件夹; 打开“欲操作文件名”参数所指定的文件夹进行浏览。 3: #寻找文件; 打开“欲操作文件名”参数所指定的文件夹进行文件寻找操作。 4: #打开文件; 打开“欲操作文件名”参数所指定的文件，该文件可以是可执行文件、文档文件或文件夹。 5: #打印文档; 打印“欲操作文件名”参数所指定的文档文件，注意该文档的编辑软件可能不支持本命令，故使用前需要先测试是否可用。 如果本参数被省略或者为0，系统将首先搜寻注册表以获取对应于欲操作文件的一个合适命令类型，如果未找到，将使用“#打开文件”命令。
欲操作文件名 | 必需的；文本型。本参数提供欲操作文件或文件夹的名称。
命令行 | 可选的；文本型。如果欲进行操作的类型为“打开文件”且被打开文件为可执行文件，本参数提供启动该可执行文件时欲附加的命令行文本，其它情况下本参数将被忽略。如果本参数被省略，默认为空文本。
默认当前目录 | 可选的；文本型。本参数提供命令执行时的默认当前目录，如果被省略，默认为空文本。

参见： 语法的描述规则、基本数据类型


取特定目录

取特定目录 命令 所属类别：杂类

本命令返回指定的Windows系统特定目录，所返回目录名以“\”符号结束，如失败返回空文本。

语法： 文本型 取特定目录 （欲获取目录类型）

参数名 | 描 述
欲获取目录类型 | 必需的；整数型。本参数指定欲获取目录的类型，可以为以下常量值之一： 1: #我的文档; 2: #我的收藏夹; 3: #系统桌面; 4: #系统字体; 5: #开始菜单组; 6: #程序菜单组; 7: #启动菜单组; 8: #程序数据目录; 9: #Windows安装目录; 10: #Windows系统目录; 11: #临时文件目录。

参见： 语法的描述规则、基本数据类型


关闭系统

关闭系统 命令 所属类别：杂类

本命令可以执行关机、重启、注销等Windows系统操作。成功返回真，失败返回假。

语法： 逻辑型 关闭系统 （关闭方式，［是否强制执行］）

参数名 | 描 述
关闭方式 | 必需的；整数型。本参数可以为以下常量值之一： 1: #关机; 2: #重启; 3: #注销; 4: #休眠 5: #冬眠。 注意在Windows95/98/ME下冬眠等同于休眠。
是否强制执行 | 可选的；逻辑型。本参数指定是否不等待当前正在运行的所有软件正常结束而立即执行指定的操作。如果本参数被省略，默认值为假。

参见： 语法的描述规则、基本数据类型


常量 | 常量值 | 描 述
#编辑文档 | 1 |
#浏览文件夹 | 2 |
#寻找文件 | 3 |
#打开文件 | 4 |
#打印文档 | 5 |
#我的文档 | 1 |
#我的收藏夹 | 2 |
#系统桌面 | 3 |
#系统字体 | 4 |
#开始菜单组 | 5 |
#程序菜单组 | 6 |
#启动菜单组 | 7 |
#程序数据目录 | 8 |
#Windows安装目录 | 9 |
#Windows系统目录 | 10 |
#临时文件目录 | 11 |
#不询问删除 | 1 |
#不提示错误 | 2 |
#不显示进度 | 4 |
#关机 | 1 |
#重启 | 2 |
#注销 | 3 |
#休眠 | 4 |
#冬眠 | 5 |


快捷方式操作

快捷方式操作 类别 跳至：操作系统界面功能支持库


文件操作

文件操作 类别 跳至：操作系统界面功能支持库


杂类

杂类 类别 跳至：操作系统界面功能支持库


操作系统界面功能支持库

操作系统界面功能支持库1.0版 返回首页

本支持库封装了Windows操作系统用户界面中的常用功能。

命令类别：

快捷方式操作 文件操作 杂类

常量表...

例程列表：

例程名称 | 下载 | 说明
界面支持库测试程序 | 功能全面演示.e | 本程序用作测试操作系统界面支持库。
关闭系统测试 | 关闭系统测试.e | 本程序用作测试"关闭系统"命令


添加提示

添加提示 命令 所属类别：提示工具

创建一个提示标签。

语法： 无返回值 添加提示 （控件句柄，提示文本，是否为气泡型，提示工具位置）

参数名 | 描 述
控件句柄 | 必需的；整数型。需要添加提示标签的控件的句柄。
提示文本 | 必需的；文本型。提示标签上显示的文字，如果要显示多行，请加上#换行符。
是否为气泡型 | 必需的；逻辑型。comctl32.dll版本必须≥v5.8，以第一次调用为准，因为所有提示都相同，不能分开定义。
提示工具位置 | 必需的；逻辑型。为真表示总显示在控件的中下方，为假表示跟随鼠标。

参见： 语法的描述规则、基本数据类型


删除提示

删除提示 命令 所属类别：提示工具

删除一个控件的提示标签。

语法： 无返回值 删除提示 （控件句柄）

参数名 | 描 述
控件句柄 | 必需的；整数型。需要删除提示标签的控件的句柄。

参见： 语法的描述规则、基本数据类型


置提示文本

置提示文本 命令 所属类别：提示工具

设置指定控件的提示文本。

语法： 无返回值 置提示文本 （控件句柄，提示文本）

参数名 | 描 述
控件句柄 | 必需的；整数型。需要修改提示标签的控件的句柄。
提示文本 | 必需的；文本型。新的提示标签的文本。

参见： 语法的描述规则、基本数据类型


置提示底色

置提示底色 命令 所属类别：提示工具

设置所有控件的提示标签的背景颜色。

语法： 无返回值 置提示底色 （背景底色）

参数名 | 描 述
背景底色 | 必需的；整数型。新的提示标签的背景颜色，-1表示系统背景颜色。

参见： 语法的描述规则、基本数据类型


置提示文本色

置提示文本色 命令 所属类别：提示工具

设置所有控件的提示标签的文本颜色。

语法： 无返回值 置提示文本色 （文本颜色）

参数名 | 描 述
文本颜色 | 必需的；整数型。新的提示标签的文本颜色，-1表示系统文本颜色。

参见： 语法的描述规则、基本数据类型


置提示时间

置提示时间 命令 所属类别：提示工具

设置所有控件的提示标签的显示时间。

语法： 无返回值 置提示时间 （显示时间）

参数名 | 描 述
显示时间 | 必需的；整数型。提示标签的显示时间，-1表示一直显示。

参见： 语法的描述规则、基本数据类型


置提示图标

置提示图标 命令 所属类别：提示工具

设置所有控件的提示标签的显示图标。

语法： 无返回值 置提示图标 （图标类型，图标标题文本）

参数名 | 描 述
图标类型 | 必需的；整数型。提示标签的图标类型，0:无图标,1:信息,2:警告,3:错误。
图标标题文本 | 必需的；文本型。提示标签的图标标题文本，如果为空文本，则表示无图标。

参见： 语法的描述规则、基本数据类型


提示工具

提示工具 类别 跳至：提示工具支持库


提示工具支持库

提示工具支持库1.1版 返回首页

主要功能用来创建提示工具。

命令类别：

提示工具


get_ColAlignment (vsFlexLib)

get_ColAlignment 方法 所属对象：vsFlexLib

Returns or sets the alignment of the given column.

语法： 整数型 vsFlexLib．get_ColAlignment （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_ColAlignment (vsFlexLib)

put_ColAlignment 方法 所属对象：vsFlexLib

Returns or sets the alignment of the given column.

语法： 无返回值 vsFlexLib．put_ColAlignment （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_ColWidth (vsFlexLib)

get_ColWidth 方法 所属对象：vsFlexLib

Returns or sets the width of the specified column in twips.

语法： 整数型 vsFlexLib．get_ColWidth （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_ColWidth (vsFlexLib)

put_ColWidth 方法 所属对象：vsFlexLib

Returns or sets the width of the specified column in twips.

语法： 无返回值 vsFlexLib．put_ColWidth （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_RowHeight (vsFlexLib)

get_RowHeight 方法 所属对象：vsFlexLib

Returns or sets the height of the specified row in twips.

语法： 整数型 vsFlexLib．get_RowHeight （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_RowHeight (vsFlexLib)

put_RowHeight 方法 所属对象：vsFlexLib

Returns or sets the height of the specified row in twips.

语法： 无返回值 vsFlexLib．put_RowHeight （Row，参数2）

参数名 | 描 述
Row | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_MergeRow (vsFlexLib)

get_MergeRow 方法 所属对象：vsFlexLib

Returns or sets whether a row will have its cells merged (see also the MergeCells property).

语法： 逻辑型 vsFlexLib．get_MergeRow （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_MergeRow (vsFlexLib)

put_MergeRow 方法 所属对象：vsFlexLib

Returns or sets whether a row will have its cells merged (see also the MergeCells property).

语法： 无返回值 vsFlexLib．put_MergeRow （Row，参数2）

参数名 | 描 述
Row | 必需的；整数型。
参数2 | 必需的；逻辑型。

参见： 语法的描述规则、基本数据类型


get_MergeCol (vsFlexLib)

get_MergeCol 方法 所属对象：vsFlexLib

Returns or sets whether a column will have its cells merged (see also the MergeCells property).

语法： 逻辑型 vsFlexLib．get_MergeCol （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_MergeCol (vsFlexLib)

put_MergeCol 方法 所属对象：vsFlexLib

Returns or sets whether a column will have its cells merged (see also the MergeCells property).

语法： 无返回值 vsFlexLib．put_MergeCol （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；逻辑型。

参见： 语法的描述规则、基本数据类型


get_RowPosition (vsFlexLib)

get_RowPosition 方法 所属对象：vsFlexLib

Moves a given row into a new position.

语法： 整数型 vsFlexLib．get_RowPosition （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_RowPosition (vsFlexLib)

put_RowPosition 方法 所属对象：vsFlexLib

Moves a given row into a new position.

语法： 无返回值 vsFlexLib．put_RowPosition （Row，参数2）

参数名 | 描 述
Row | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_ColPosition (vsFlexLib)

get_ColPosition 方法 所属对象：vsFlexLib

Moves a given column into a new position.

语法： 整数型 vsFlexLib．get_ColPosition （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_ColPosition (vsFlexLib)

put_ColPosition 方法 所属对象：vsFlexLib

Moves a given column into a new position.

语法： 无返回值 vsFlexLib．put_ColPosition （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_RowData (vsFlexLib)

get_RowData 方法 所属对象：vsFlexLib

Returns or sets a user-defined long value associated with the given row.

语法： 整数型 vsFlexLib．get_RowData （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_RowData (vsFlexLib)

put_RowData 方法 所属对象：vsFlexLib

Returns or sets a user-defined long value associated with the given row.

语法： 无返回值 vsFlexLib．put_RowData （Row，参数2）

参数名 | 描 述
Row | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_ColData (vsFlexLib)

get_ColData 方法 所属对象：vsFlexLib

Returns or sets a user-defined long value associated with the given column.

语法： 整数型 vsFlexLib．get_ColData （Col）

参数名 | 描 述
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_ColData (vsFlexLib)

put_ColData 方法 所属对象：vsFlexLib

Returns or sets a user-defined long value associated with the given column.

语法： 无返回值 vsFlexLib．put_ColData （Col，参数2）

参数名 | 描 述
Col | 必需的；整数型。
参数2 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


AddItem (vsFlexLib)

AddItem 方法 所属对象：vsFlexLib

Adds a row to the control.

语法： 无返回值 vsFlexLib．AddItem （Item，［Row］）

参数名 | 描 述
Item | 必需的；文本型。
Row | 可选的；通用型。

参见： 语法的描述规则、基本数据类型


RemoveItem (vsFlexLib)

RemoveItem 方法 所属对象：vsFlexLib

Removes a row from the control.

语法： 无返回值 vsFlexLib．RemoveItem （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_TextMatrix (vsFlexLib)

get_TextMatrix 方法 所属对象：vsFlexLib

Returns or sets the contents of a cell identified by its row and column coordinates.

语法： 文本型 vsFlexLib．get_TextMatrix （Row，Col）

参数名 | 描 述
Row | 必需的；整数型。
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_TextMatrix (vsFlexLib)

put_TextMatrix 方法 所属对象：vsFlexLib

Returns or sets the contents of a cell identified by its row and column coordinates.

语法： 无返回值 vsFlexLib．put_TextMatrix （Row，Col，参数3）

参数名 | 描 述
Row | 必需的；整数型。
Col | 必需的；整数型。
参数3 | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


Clear (vsFlexLib)

Clear 方法 所属对象：vsFlexLib

Clears the contents of the control. Optional parameters specify what to clear and where.

语法： 无返回值 vsFlexLib．Clear （［Where］，［What］）

参数名 | 描 述
Where | 可选的；通用型。
What | 可选的；通用型。

参见： 语法的描述规则、基本数据类型


EditCell (vsFlexLib)

EditCell 方法 所属对象：vsFlexLib

Activates edit mode.

语法： 无返回值 vsFlexLib．EditCell （）

参见： 语法的描述规则、基本数据类型


get_ValueMatrix (vsFlexLib)

get_ValueMatrix 方法 所属对象：vsFlexLib

Returns the numeric value of a cell identified by its row and column coordinates.

语法： 双精度小数型 vsFlexLib．get_ValueMatrix （Row，Col）

参数名 | 描 述
Row | 必需的；整数型。
Col | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


get_IsSubtotal (vsFlexLib)

get_IsSubtotal 方法 所属对象：vsFlexLib

Returns or sets whether a row contains subtotals (as opposed to data).

语法： 逻辑型 vsFlexLib．get_IsSubtotal （Row）

参数名 | 描 述
Row | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


put_IsSubtotal (vsFlexLib)

put_IsSubtotal 方法 所属对象：vsFlexLib

Returns or sets whether a row contains subtotals (as opposed to data).

语法： 无返回值 vsFlexLib．put_IsSubtotal （Row，参数2）

参数名 | 描 述
Row | 必需的；整数型。
参数2 | 必需的；逻辑型。

参见： 语法的描述规则、基本数据类型


vsFlexLib

vsFlexLib 窗口单元 跳至：vsFlexLib

:-) VideoSoft vsFlex3 Controls。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
Ellipsis | MergeCompare | CellChecked | PicturesOver
AllowSelection | SheetBorder | TabBehavior | OleDropMode
OleDragMode | DataMode | OwnerDraw | BackColorAlternate
MultiTotals | RightToLeft | AutoSizeMode | 窗口句柄
EditText | ClientHeight | ClientWidth | ExtendLastCol
RightCol | BottomRow | AutoResize | GridLineWidth
TreeColor | OutlineBar | 外观 | 允许
字体 | 边框风格 | SubtotalPosition | CellFloodColor
CellFloodPercent | FloodColor | Value | ComboList
Editable | VirtualData | MouseIcon | MousePointer
AllowUserResizing | AllowBigSelection | PictureType | Picture
MergeCells | SelectionMode | Sort | Clip
FontWidth | CellFontStrikethru | CellFontUnderline | CellFontWidth
CellFontItalic | CellFontBold | CellFontSize | CellFontName
CellPictureAlignment | CellPicture | CellTextStyle | CellAlignment
CellForeColor | CellBackColor | GridColorFixed | GridColor
GridLinesFixed | GridLines | FillStyle | RowHeightMin
CellHeight | CellWidth | CellTop | CellLeft
MouseCol | MouseRow | ScrollBars | Redraw
HighLight | FocusRect | ScrollTrack | TextStyleFixed
TextStyle | WordWrap | BackColorBkg | ForeColorSel
BackColorSel | ForeColorFixed | BackColorFixed | ForeColor
BackColor | Text | ColSel | RowSel
Col | Row | LeftCol | TopRow
FixedCols | FixedRows | FormatString | Version
Cols | Rows | FontUnderline | FontStrikethru
FontItalic | FontBold | FontSize | FontName
全部属性 |  |  |

方法：

get_ColAlignment | put_ColAlignment | get_ColWidth | put_ColWidth
get_RowHeight | put_RowHeight | get_MergeRow | put_MergeRow
get_MergeCol | put_MergeCol | get_RowPosition | put_RowPosition
get_ColPosition | put_ColPosition | get_RowData | put_RowData
get_ColData | put_ColData | AddItem | RemoveItem
get_TextMatrix | put_TextMatrix | Clear | EditCell
get_ValueMatrix | get_IsSubtotal | put_IsSubtotal | Subtotal
刷新 | Outline | get_FixedAlignment | put_FixedAlignment
get_RowIsVisible | get_ColIsVisible | get_RowPos | get_ColPos
get_IsSelected | put_IsSelected | get_TextArray | put_TextArray
get_IsCollapsed | put_IsCollapsed | Select | AutoSize
DataRefresh | CellBorder | OleDrag | SaveGrid
LoadGrid | Archive | get_ArchiveInfo | get_ColSort
put_ColSort | get_ColFormat | put_ColFormat | get_ColDataType
put_ColDataType | 关于对话框 |  |

自有事件：

SelChange | RowColChange | EnterCell | LeaveCell
Scroll | Compare | 组件被单击 | 组件被双击
组件按下某键 | 组件字符输入 | 组件放开某键 | 组件鼠标左键被按下
组件鼠标位置被移动 | 组件鼠标左键被放开 | UserResized | Collapsed
AfterEdit | BeforeEdit | KeyPressEdit | Validate
BeforeDataRefresh | AfterDataRefresh | DrawCell | OLEGiveFeedback
OLECompleteDrag | KeyDownEdit | KeyUpEdit | BeforePageBreak
GetHeaderRow | Error |  |

基本事件：


SelChange (vsFlexLib)

SelChange 事件 所属对象：vsFlexLib

Fired after the selected range changes.

语法： 无返回值 _vsFlexLib_SelChange （）

参见： 语法的描述规则、基本数据类型


RowColChange (vsFlexLib)

RowColChange 事件 所属对象：vsFlexLib

Fired when the current cell changes to a different cell.

语法： 无返回值 _vsFlexLib_RowColChange （）

参见： 语法的描述规则、基本数据类型


EnterCell (vsFlexLib)

EnterCell 事件 所属对象：vsFlexLib

Fired when a cell becomes active.

语法： 无返回值 _vsFlexLib_EnterCell （）

参见： 语法的描述规则、基本数据类型


LeaveCell (vsFlexLib)

LeaveCell 事件 所属对象：vsFlexLib

Fired before the current cell changes to a different cell.

语法： 无返回值 _vsFlexLib_LeaveCell （）

参见： 语法的描述规则、基本数据类型


Scroll (vsFlexLib)

Scroll 事件 所属对象：vsFlexLib

Fired after the control scrolls.

语法： 无返回值 _vsFlexLib_Scroll （）

参见： 语法的描述规则、基本数据类型


Compare (vsFlexLib)

Compare 事件 所属对象：vsFlexLib

Fired when the Sort property is set to flexSortCustom, to allow custom comparison of rows.

语法： 无返回值 _vsFlexLib_Compare （Row1，Row2，Cmp）

参数名 | 描 述
Row1 | 整数型；传址；
Row2 | 整数型；传址；
Cmp | 短整数型；传址；

参见： 语法的描述规则、基本数据类型


组件被单击 (vsFlexLib)

组件被单击 事件 所属对象：vsFlexLib

语法： 无返回值 _vsFlexLib_组件被单击 （）

参见： 语法的描述规则、基本数据类型


组件被双击 (vsFlexLib)

组件被双击 事件 所属对象：vsFlexLib

语法： 无返回值 _vsFlexLib_组件被双击 （）

参见： 语法的描述规则、基本数据类型


组件按下某键 (vsFlexLib)

组件按下某键 事件 所属对象：vsFlexLib

语法： 无返回值 _vsFlexLib_组件按下某键 （KeyCode，Shift）

参数名 | 描 述
KeyCode | 短整数型；传址；
Shift | 短整数型；

参见： 语法的描述规则、基本数据类型


组件字符输入 (vsFlexLib)

组件字符输入 事件 所属对象：vsFlexLib

语法： 无返回值 _vsFlexLib_组件字符输入 （KeyAscii）

参数名 | 描 述
KeyAscii | 短整数型；传址；

参见： 语法的描述规则、基本数据类型


组件放开某键 (vsFlexLib)

组件放开某键 事件 所属对象：vsFlexLib

语法： 无返回值 _vsFlexLib_组件放开某键 （KeyCode，Shift）

参数名 | 描 述
KeyCode | 短整数型；传址；
Shift | 短整数型；

参见： 语法的描述规则、基本数据类型


组件鼠标左键被按下 (vsFlexLib)

组件鼠标左键被按下 事件 所属对象：vsFlexLib

语法： 无返回值 _vsFlexLib_组件鼠标左键被按下 （Button，Shift，X，Y）

参数名 | 描 述
Button | 短整数型；
Shift | 短整数型；
X | 整数型；
Y | 整数型；

参见： 语法的描述规则、基本数据类型


组件鼠标位置被移动 (vsFlexLib)

组件鼠标位置被移动 事件 所属对象：vsFlexLib

语法： 无返回值 _vsFlexLib_组件鼠标位置被移动 （Button，Shift，X，Y）

参数名 | 描 述
Button | 短整数型；
Shift | 短整数型；
X | 整数型；
Y | 整数型；

参见： 语法的描述规则、基本数据类型


组件鼠标左键被放开 (vsFlexLib)

组件鼠标左键被放开 事件 所属对象：vsFlexLib

语法： 无返回值 _vsFlexLib_组件鼠标左键被放开 （Button，Shift，X，Y）

参数名 | 描 述
Button | 短整数型；
Shift | 短整数型；
X | 整数型；
Y | 整数型；

参见： 语法的描述规则、基本数据类型


UserResized (vsFlexLib)

UserResized 事件 所属对象：vsFlexLib

Fired after the user resizes a row or a column.

语法： 无返回值 _vsFlexLib_UserResized （Row，Col）

参数名 | 描 述
Row | 整数型；
Col | 整数型；

参见： 语法的描述规则、基本数据类型


Collapsed (vsFlexLib)

Collapsed 事件 所属对象：vsFlexLib

Fired after the user expands or collapses a row group in an outline.

语法： 无返回值 _vsFlexLib_Collapsed （）

参见： 语法的描述规则、基本数据类型


AfterEdit (vsFlexLib)

AfterEdit 事件 所属对象：vsFlexLib

Fired after the control exits cell edit mode.

语法： 无返回值 _vsFlexLib_AfterEdit （Row，Col）

参数名 | 描 述
Row | 整数型；
Col | 整数型；

参见： 语法的描述规则、基本数据类型


BeforeEdit (vsFlexLib)

BeforeEdit 事件 所属对象：vsFlexLib

Fired before the control enters cell edit mode.

语法： 无返回值 _vsFlexLib_BeforeEdit （Row，Col，Cancel）

参数名 | 描 述
Row | 整数型；
Col | 整数型；
Cancel | 逻辑型；传址；

参见： 语法的描述规则、基本数据类型


KeyPressEdit (vsFlexLib)

KeyPressEdit 事件 所属对象：vsFlexLib

Fired when the user presses a key in cell-editing mode.

语法： 无返回值 _vsFlexLib_KeyPressEdit （Row，Col，KeyAscii）

参数名 | 描 述
Row | 整数型；
Col | 整数型；
KeyAscii | 短整数型；传址；

参见： 语法的描述规则、基本数据类型


Validate (vsFlexLib)

Validate 事件 所属对象：vsFlexLib

Fired before the control exits cell edit mode.

语法： 无返回值 _vsFlexLib_Validate （Row，Col，Cancel）

参数名 | 描 述
Row | 整数型；
Col | 整数型；
Cancel | 逻辑型；传址；

参见： 语法的描述规则、基本数据类型


BeforeDataRefresh (vsFlexLib)

BeforeDataRefresh 事件 所属对象：vsFlexLib

Fired before reading data from the record source.

语法： 无返回值 _vsFlexLib_BeforeDataRefresh （Cancel）

参数名 | 描 述
Cancel | 逻辑型；传址；

参见： 语法的描述规则、基本数据类型


AfterDataRefresh (vsFlexLib)

AfterDataRefresh 事件 所属对象：vsFlexLib

Fired after reading data from the record source.

语法： 无返回值 _vsFlexLib_AfterDataRefresh （）

参见： 语法的描述规则、基本数据类型


vsFlexLib

vsFlexLib1.0版 返回首页

:-) VideoSoft vsFlex3 Controls。

窗口单元数据类型：

vsFlexLib


Ellipsis (vsFlexLib)

Ellipsis 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether the control should display ellipsis (...) after long strings.

可供选择的属性值：
0、flexNoEllipsis
1、flexEllipsisEnd
2、flexEllipsisPath

参见： 基本数据类型


MergeCompare (vsFlexLib)

MergeCompare 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the type of comparison used when merging cells.

参见： 基本数据类型


CellChecked (vsFlexLib)

CellChecked 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether a grid cell has a check mark in it.

可供选择的属性值：
0、flexNoCheckbox
1、flexChecked
2、flexUnchecked

参见： 基本数据类型


PicturesOver (vsFlexLib)

PicturesOver 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether text and pictures should be overlaid in cells.

参见： 基本数据类型


AllowSelection (vsFlexLib)

AllowSelection 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether the user can select ranges of cells with the mouse and keyboard.

参见： 基本数据类型


SheetBorder (vsFlexLib)

SheetBorder 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the color used to draw the border around the sheet.

参见： 基本数据类型


TabBehavior (vsFlexLib)

TabBehavior 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether the tab key will move focus between controls (VB default) or between grid cells.

可供选择的属性值：
0、flexTabControls
1、flexTabCells

参见： 基本数据类型


OleDropMode (vsFlexLib)

OleDropMode 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether the control can act as an OLE drag/drop target, either automatically or under program control.

可供选择的属性值：
0、flexOleDropNone
1、flexOleDropManual
2、flexOleDropAutomatic

参见： 基本数据类型


OleDragMode (vsFlexLib)

OleDragMode 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether the control can act as an OLE drag/drop source, either automatically or under program control.

可供选择的属性值：
0、flexOleDragManual
1、flexOleDragAutomatic

参见： 基本数据类型


DataMode (vsFlexLib)

DataMode 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the type of data binding used by the control when it is connected to a data source (read-only or read/write).

可供选择的属性值：
0、flexDMFree
1、flexDMBound

参见： 基本数据类型


OwnerDraw (vsFlexLib)

OwnerDraw 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether and when the control will fire the DrawCell event.

可供选择的属性值：
0、flexODNone
1、flexODOver
2、flexODContent
3、flexODComplete
4、flexODOverFixed
5、flexODContentFixed
6、flexODCompleteFixed

参见： 基本数据类型


BackColorAlternate (vsFlexLib)

BackColorAlternate 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the background color for alternate rows (set to 0 to disable).

参见： 基本数据类型


MultiTotals (vsFlexLib)

MultiTotals 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether subtotals will be displayed in a single row when possible.

参见： 基本数据类型


RightToLeft (vsFlexLib)

RightToLeft 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether text should be displayed from right to left on Hebrew and Arabic systems.

参见： 基本数据类型


AutoSizeMode (vsFlexLib)

AutoSizeMode 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether AutoSize will adjust column widths or row heights to fit cell contents.

可供选择的属性值：
0、flexAutoSizeColWidth
1、flexAutoSizeRowHeight

参见： 基本数据类型


窗口句柄 (vsFlexLib)

窗口句柄 属性 所属对象：vsFlexLib

数据类型：整数型；返回一个句柄到(from Microsoft Windows)一个对象的窗口。

参见： 基本数据类型


EditText (vsFlexLib)

EditText 属性 所属对象：vsFlexLib

数据类型：文本型；Returns or sets the text in the cell editor.

参见： 基本数据类型


ClientHeight (vsFlexLib)

ClientHeight 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the height of the control's client area, in twips.

参见： 基本数据类型


ClientWidth (vsFlexLib)

ClientWidth 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the width of the control's client area, in twips.

参见： 基本数据类型


ExtendLastCol (vsFlexLib)

ExtendLastCol 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether the last column should be adjusted to fit the control's width.

参见： 基本数据类型


RightCol (vsFlexLib)

RightCol 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the zero-based index of the last column displayed in the control。

参见： 基本数据类型


BottomRow (vsFlexLib)

BottomRow 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the zero-based index of the last row displayed in the control.

参见： 基本数据类型


AutoResize (vsFlexLib)

AutoResize 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether column widths will be automatically adjusted when data is loaded.

参见： 基本数据类型


GridLineWidth (vsFlexLib)

GridLineWidth 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the width of the grid lines, in pixels.

参见： 基本数据类型


TreeColor (vsFlexLib)

TreeColor 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the color used to draw the outline tree.

参见： 基本数据类型


OutlineBar (vsFlexLib)

OutlineBar 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the type of outline bar that should be displayed.

可供选择的属性值：
0、flexOutlineBarNone
1、flexOutlineBarComplete
2、flexOutlineBarSimple

参见： 基本数据类型


外观 (vsFlexLib)

外观 属性 所属对象：vsFlexLib

数据类型：整数型；返回/设置按钮文本和图标运行时是否有三维的按下效果。

可供选择的属性值：
0、flexFlat
1、flex3D

参见： 基本数据类型


允许 (vsFlexLib)

允许 属性 所属对象：vsFlexLib

数据类型：逻辑型；返回/设置一个值，决定一个对象是否响应用户生成事件。

参见： 基本数据类型


字体 (vsFlexLib)

字体 属性 所属对象：vsFlexLib

数据类型：字体；返回一个 Font 对象。

参见： 基本数据类型


边框风格 (vsFlexLib)

边框风格 属性 所属对象：vsFlexLib

数据类型：整数型；

参见： 基本数据类型


SubtotalPosition (vsFlexLib)

SubtotalPosition 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether subtotals should be inserted above or below the totaled data.

可供选择的属性值：
0、flexSTBelow
1、flexSTAbove

参见： 基本数据类型


CellFloodColor (vsFlexLib)

CellFloodColor 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the color to be used for flooding a cell.

参见： 基本数据类型


CellFloodPercent (vsFlexLib)

CellFloodPercent 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the percentage of flooding for a cell.

参见： 基本数据类型


FloodColor (vsFlexLib)

FloodColor 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the color used to flood cells.

参见： 基本数据类型


Value (vsFlexLib)

Value 属性 所属对象：vsFlexLib

数据类型：双精度小数型；Returns the numeric value of the current cell.

参见： 基本数据类型


ComboList (vsFlexLib)

ComboList 属性 所属对象：vsFlexLib

数据类型：文本型；Returns or sets the list to be used as a drop-down when editing a cell.

参见： 基本数据类型


Editable (vsFlexLib)

Editable 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether the control allows in-cell editing.

参见： 基本数据类型


VirtualData (vsFlexLib)

VirtualData 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether all data is fetched from the data source at once or as needed.

参见： 基本数据类型


MouseIcon (vsFlexLib)

MouseIcon 属性 所属对象：vsFlexLib

数据类型：字节集；设置一个自定义鼠标图标。

参见： 基本数据类型


MousePointer (vsFlexLib)

MousePointer 属性 所属对象：vsFlexLib

数据类型：整数型；返回/设置当鼠标经过对象某一部分时鼠标的指针类型。

可供选择的属性值：
0、flexDefault
1、flexArrow
2、flexCross
3、flexIBeam
4、flexIcon
5、flexSize
6、flexSizeNESW
7、flexSizeNS
8、flexSizeNWSE
9、flexSizeEW
10、flexUpArrow
11、flexHourglass
12、flexNoDrop
13、flexArrowHourGlass
14、flexArrowQuestion
15、flexSizeAll
99、flexCustom

参见： 基本数据类型


AllowUserResizing (vsFlexLib)

AllowUserResizing 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether the user is allowed to resize rows and columns with the mouse.

可供选择的属性值：
0、flexResizeNone
1、flexResizeColumns
2、flexResizeRows
3、flexResizeBoth

参见： 基本数据类型


AllowBigSelection (vsFlexLib)

AllowBigSelection 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether clicking on the fixed area will select entire columns and rows.

参见： 基本数据类型


PictureType (vsFlexLib)

PictureType 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the type of picture returned by the Picture property.

可供选择的属性值：
0、flexPictureColor
1、flexPictureMonochrome

参见： 基本数据类型


Picture (vsFlexLib)

Picture 属性 所属对象：vsFlexLib

数据类型：字节集；返回/设置一个有一定格式规范的图片，作为按钮的外观皮肤。

参见： 基本数据类型


MergeCells (vsFlexLib)

MergeCells 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether cells with the same contents will be merged into a single cell.

可供选择的属性值：
0、flexMergeNever
1、flexMergeFree
2、flexMergeRestrictRows
3、flexMergeRestrictColumns
4、flexMergeRestrictAll

参见： 基本数据类型


SelectionMode (vsFlexLib)

SelectionMode 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether the control will select cells in a free range, by row, by column, or like a listbox.

可供选择的属性值：
0、flexSelectionFree
1、flexSelectionByRow
2、flexSelectionByColumn
3、flexSelectionListBox

参见： 基本数据类型


Sort (vsFlexLib)

Sort 属性 所属对象：vsFlexLib

数据类型：整数型；Sets a sorting order for the selected rows using the selected columns as keys.

可供选择的属性值：
0、flexSortNone
1、flexSortGenericAscending
2、flexSortGenericDescending
3、flexSortNumericAscending
4、flexSortNumericDescending
5、flexSortStringNoCaseAscending
6、flexSortStringNoCaseDescending
7、flexSortStringAscending
8、flexSortStringDescending
9、flexSortCustom
10、flexSortUseColSort

参见： 基本数据类型


Clip (vsFlexLib)

Clip 属性 所属对象：vsFlexLib

数据类型：文本型；Returns or sets the contents of a range.

参见： 基本数据类型


FontWidth (vsFlexLib)

FontWidth 属性 所属对象：vsFlexLib

数据类型：双精度小数型；Returns or sets the width of the font, in points.

参见： 基本数据类型


CellFontStrikethru (vsFlexLib)

CellFontStrikethru 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets the Strikethru attribute of the font of the selected cell or range.

参见： 基本数据类型


CellFontUnderline (vsFlexLib)

CellFontUnderline 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets the Underline attribute of the font of the selected cell or range.

参见： 基本数据类型


CellFontWidth (vsFlexLib)

CellFontWidth 属性 所属对象：vsFlexLib

数据类型：双精度小数型；Returns or sets the width of the font of the selected cell or range.

参见： 基本数据类型


CellFontItalic (vsFlexLib)

CellFontItalic 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets the Italic attribute of the font of the selected cell or range.

参见： 基本数据类型


CellFontBold (vsFlexLib)

CellFontBold 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets the Bold attribute of the font of the selected cell or range.

参见： 基本数据类型


CellFontSize (vsFlexLib)

CellFontSize 属性 所属对象：vsFlexLib

数据类型：双精度小数型；Returns or sets the size of the font of the selected cell or range.

参见： 基本数据类型


CellFontName (vsFlexLib)

CellFontName 属性 所属对象：vsFlexLib

数据类型：文本型；Returns or sets the name of the font of the selected cell or range.

参见： 基本数据类型


CellPictureAlignment (vsFlexLib)

CellPictureAlignment 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the alignment of the pictures in the selected cell or range.

可供选择的属性值：
0、flexPicAlignLeftTop
1、flexPicAlignLeftCenter
2、flexPicAlignLeftBottom
3、flexPicAlignCenterTop
4、flexPicAlignCenterCenter
5、flexPicAlignCenterBottom
6、flexPicAlignRightTop
7、flexPicAlignRightCenter
8、flexPicAlignRightBottom
9、flexPicAlignStretch
10、flexPicAlignTile

参见： 基本数据类型


CellPicture (vsFlexLib)

CellPicture 属性 所属对象：vsFlexLib

数据类型：字节集；Returns or sets the picture displayed in a selected cell or range.

参见： 基本数据类型


CellTextStyle (vsFlexLib)

CellTextStyle 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets 3D effects for text in a selected cell or range.

可供选择的属性值：
0、flexTextFlat
1、flexTextRaised
2、flexTextInset
3、flexTextRaisedLight
4、flexTextInsetLight

参见： 基本数据类型


CellAlignment (vsFlexLib)

CellAlignment 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the alignment of text in the selected cell or range.

可供选择的属性值：
0、flexAlignLeftTop
1、flexAlignLeftCenter
2、flexAlignLeftBottom
3、flexAlignCenterTop
4、flexAlignCenterCenter
5、flexAlignCenterBottom
6、flexAlignRightTop
7、flexAlignRightCenter
8、flexAlignRightBottom
9、flexAlignGeneral

参见： 基本数据类型


CellForeColor (vsFlexLib)

CellForeColor 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the foreground color of the selected cell or range.

参见： 基本数据类型


CellBackColor (vsFlexLib)

CellBackColor 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the background color of the selected cell or range.

参见： 基本数据类型


GridColorFixed (vsFlexLib)

GridColorFixed 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the color used to draw the grid lines between the fixed cells.

参见： 基本数据类型


GridColor (vsFlexLib)

GridColor 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the color used to draw the grid lines between the non-fixed cells.

参见： 基本数据类型


GridLinesFixed (vsFlexLib)

GridLinesFixed 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the type of lines to be drawn between fixed cells.

可供选择的属性值：
0、flexGridNone
1、flexGridFlat
2、flexGridInset
3、flexGridRaised
4、flexGridFlatHorz
5、flexGridInsetHorz
6、flexGridRaisedHorz
7、flexGridSkipHorz
8、flexGridFlatVert
9、flexGridInsetVert
10、flexGridRaisedVert
11、flexGridSkipVert

参见： 基本数据类型


GridLines (vsFlexLib)

GridLines 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the type of lines to be drawn between non-fixed cells.

可供选择的属性值：
0、flexGridNone
1、flexGridFlat
2、flexGridInset
3、flexGridRaised
4、flexGridFlatHorz
5、flexGridInsetHorz
6、flexGridRaisedHorz
7、flexGridSkipHorz
8、flexGridFlatVert
9、flexGridInsetVert
10、flexGridRaisedVert
11、flexGridSkipVert

参见： 基本数据类型


FillStyle (vsFlexLib)

FillStyle 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether changes to the Text or Cell formatting properties apply to the current cell or to the entire selection.

可供选择的属性值：
0、flexFillSingle
1、flexFillRepeat

参见： 基本数据类型


RowHeightMin (vsFlexLib)

RowHeightMin 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets a minimum row height for the entire control, in twips.

参见： 基本数据类型


CellHeight (vsFlexLib)

CellHeight 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the height of the selected cell, in twips. Also brings the cell into view, scrolling if necessary.

参见： 基本数据类型


CellWidth (vsFlexLib)

CellWidth 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the width of the selected cell, in twips. Also brings the cell into view, scrolling if necessary.

参见： 基本数据类型


CellTop (vsFlexLib)

CellTop 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the top (y) coordinate of the selected cell relative to the control, in twips. Also brings the cell into view, scrolling if necessary.

参见： 基本数据类型


CellLeft (vsFlexLib)

CellLeft 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the left (x) coordinate of the selected cell relative to the control, in twips. Also brings the cell into view, scrolling if necessary.

参见： 基本数据类型


MouseCol (vsFlexLib)

MouseCol 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the zero-based index of the column under the mouse pointer.

参见： 基本数据类型


MouseRow (vsFlexLib)

MouseRow 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the zero-based index of the row under the mouse pointer.

参见： 基本数据类型


ScrollBars (vsFlexLib)

ScrollBars 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether the control will display horizontal or vertical scroll bars.

可供选择的属性值：
0、flexScrollBarNone
1、flexScrollBarHorizontal
2、flexScrollBarVertical
3、flexScrollBarBoth

参见： 基本数据类型


Redraw (vsFlexLib)

Redraw 属性 所属对象：vsFlexLib

数据类型：逻辑型；Enables or disables redrawing of the FlexArray control.

参见： 基本数据类型


HighLight (vsFlexLib)

HighLight 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets whether selected cells will be highlighted.

可供选择的属性值：
0、flexHighlightNever
1、flexHighlightAlways
2、flexHighlightWithFocus

参见： 基本数据类型


FocusRect (vsFlexLib)

FocusRect 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the type of focus rectangle to be displayed around the current cell.

可供选择的属性值：
0、flexFocusNone
1、flexFocusLight
2、flexFocusHeavy

参见： 基本数据类型


ScrollTrack (vsFlexLib)

ScrollTrack 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets scrolling should occur while the user moves the scroll thumb.

参见： 基本数据类型


TextStyleFixed (vsFlexLib)

TextStyleFixed 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets 3D effects for displaying text in fixed cells.

可供选择的属性值：
0、flexTextFlat
1、flexTextRaised
2、flexTextInset
3、flexTextRaisedLight
4、flexTextInsetLight

参见： 基本数据类型


TextStyle (vsFlexLib)

TextStyle 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets 3D effects for displaying text in non-fixed cells.

可供选择的属性值：
0、flexTextFlat
1、flexTextRaised
2、flexTextInset
3、flexTextRaisedLight
4、flexTextInsetLight

参见： 基本数据类型


WordWrap (vsFlexLib)

WordWrap 属性 所属对象：vsFlexLib

数据类型：逻辑型；Returns or sets whether text wider that its cell will wrap.

参见： 基本数据类型


BackColorBkg (vsFlexLib)

BackColorBkg 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the background color of the area not covered by any cells.

参见： 基本数据类型


ForeColorSel (vsFlexLib)

ForeColorSel 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the foreground color of the selected cells.

参见： 基本数据类型


BackColorSel (vsFlexLib)

BackColorSel 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the background color of the selected cells.

参见： 基本数据类型


ForeColorFixed (vsFlexLib)

ForeColorFixed 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the foreground color of the fixed rows and columns.

参见： 基本数据类型


BackColorFixed (vsFlexLib)

BackColorFixed 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the background color of the fixed rows and columns.

参见： 基本数据类型


ForeColor (vsFlexLib)

ForeColor 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the foreground color of the non-fixed cells.

参见： 基本数据类型


BackColor (vsFlexLib)

BackColor 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the background color of the non-fixed cells.

参见： 基本数据类型


Text (vsFlexLib)

Text 属性 所属对象：vsFlexLib

数据类型：文本型；Returns or sets the contents of the selected cell or range.

参见： 基本数据类型


ColSel (vsFlexLib)

ColSel 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the extent of a range of columns.

参见： 基本数据类型


RowSel (vsFlexLib)

RowSel 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the extent of a range of rows.

参见： 基本数据类型


Col (vsFlexLib)

Col 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the zero-based index of the current column.

参见： 基本数据类型


Row (vsFlexLib)

Row 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the zero-based index of the current row.

参见： 基本数据类型


LeftCol (vsFlexLib)

LeftCol 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the zero-based index of the leftmost non-fixed column displayed in the control.

参见： 基本数据类型


TopRow (vsFlexLib)

TopRow 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the zero-based index of the topmost non-fixed row displayed in the control.

参见： 基本数据类型


FixedCols (vsFlexLib)

FixedCols 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the total number of fixed (non-scrollable) columns.

参见： 基本数据类型


FixedRows (vsFlexLib)

FixedRows 属性 所属对象：vsFlexLib

数据类型：整数型；Returns or sets the total number of fixed (non-scrollable) rows.

参见： 基本数据类型


FormatString (vsFlexLib)

FormatString 属性 所属对象：vsFlexLib

数据类型：文本型；Assigns column widths, alignments, and fixed row and column text.

参见： 基本数据类型


Version (vsFlexLib)

Version 属性 所属对象：vsFlexLib

数据类型：整数型；Returns the version of vsFlex currently loaded in memory.

参见： 基本数据类型


左边 (vsFlexLib)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (vsFlexLib)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (vsFlexLib)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (vsFlexLib)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (vsFlexLib)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (vsFlexLib)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (vsFlexLib)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (vsFlexLib)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


Play (MediaPlayer)

Play 方法 所属对象：MediaPlayer

Begins playing from the current position or marker。

语法： 无返回值 MediaPlayer．Play （）

参见： 语法的描述规则、基本数据类型


Stop (MediaPlayer)

Stop 方法 所属对象：MediaPlayer

Stops file playback at the current position。

语法： 无返回值 MediaPlayer．Stop （）

参见： 语法的描述规则、基本数据类型


Pause (MediaPlayer)

Pause 方法 所属对象：MediaPlayer

Pauses file playback at the current position。

语法： 无返回值 MediaPlayer．Pause （）

参见： 语法的描述规则、基本数据类型


GetMarkerTime (MediaPlayer)

GetMarkerTime 方法 所属对象：MediaPlayer

Returns the time of a marker。

语法： 双精度小数型 MediaPlayer．GetMarkerTime （MarkerNum）

参数名 | 描 述
MarkerNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetMarkerName (MediaPlayer)

GetMarkerName 方法 所属对象：MediaPlayer

Returns the name of a marker。

语法： 文本型 MediaPlayer．GetMarkerName （MarkerNum）

参数名 | 描 述
MarkerNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


关于对话框 (MediaPlayer)

关于对话框 方法 所属对象：MediaPlayer

Displays version information dialog box。

语法： 无返回值 MediaPlayer．关于对话框 （）

参见： 语法的描述规则、基本数据类型


GetCodecInstalled (MediaPlayer)

GetCodecInstalled 方法 所属对象：MediaPlayer

Returns whether or not a codec is installed。

语法： 逻辑型 MediaPlayer．GetCodecInstalled （CodecNum）

参数名 | 描 述
CodecNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetCodecDescription (MediaPlayer)

GetCodecDescription 方法 所属对象：MediaPlayer

Returns the descriptive name of a codec。

语法： 文本型 MediaPlayer．GetCodecDescription （CodecNum）

参数名 | 描 述
CodecNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetCodecURL (MediaPlayer)

GetCodecURL 方法 所属对象：MediaPlayer

Returns the URL for a codec。

语法： 文本型 MediaPlayer．GetCodecURL （CodecNum）

参数名 | 描 述
CodecNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetMoreInfoURL (MediaPlayer)

GetMoreInfoURL 方法 所属对象：MediaPlayer

Returns a More Information URL。

语法： 文本型 MediaPlayer．GetMoreInfoURL （MoreInfoType）

参数名 | 描 述
MoreInfoType | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetMediaInfoString (MediaPlayer)

GetMediaInfoString 方法 所属对象：MediaPlayer

Returns an Information String for the Media。

语法： 文本型 MediaPlayer．GetMediaInfoString （MediaInfoType）

参数名 | 描 述
MediaInfoType | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


Cancel (MediaPlayer)

Cancel 方法 所属对象：MediaPlayer

Cancels the current operation。

语法： 无返回值 MediaPlayer．Cancel （）

参见： 语法的描述规则、基本数据类型


Open (MediaPlayer)

Open 方法 所属对象：MediaPlayer

Opens the given filename asynchronously。

语法： 无返回值 MediaPlayer．Open （bstrFileName）

参数名 | 描 述
bstrFileName | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


IsSoundCardEnabled (MediaPlayer)

IsSoundCardEnabled 方法 所属对象：MediaPlayer

Determines whether the sound card is enabled on the machine。

语法： 逻辑型 MediaPlayer．IsSoundCardEnabled （）

参见： 语法的描述规则、基本数据类型


Next (MediaPlayer)

Next 方法 所属对象：MediaPlayer

Jumps to the next item。

语法： 无返回值 MediaPlayer．Next （）

参见： 语法的描述规则、基本数据类型


Previous (MediaPlayer)

Previous 方法 所属对象：MediaPlayer

Jumps to the previous item。

语法： 无返回值 MediaPlayer．Previous （）

参见： 语法的描述规则、基本数据类型


StreamSelect (MediaPlayer)

StreamSelect 方法 所属对象：MediaPlayer

Selects a media stream。

语法： 无返回值 MediaPlayer．StreamSelect （StreamNum）

参数名 | 描 述
StreamNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


FastForward (MediaPlayer)

FastForward 方法 所属对象：MediaPlayer

Fast Forwards the playback。

语法： 无返回值 MediaPlayer．FastForward （）

参见： 语法的描述规则、基本数据类型


FastReverse (MediaPlayer)

FastReverse 方法 所属对象：MediaPlayer

Fast Reverses the playback。

语法： 无返回值 MediaPlayer．FastReverse （）

参见： 语法的描述规则、基本数据类型


GetStreamName (MediaPlayer)

GetStreamName 方法 所属对象：MediaPlayer

Returns the name of a media stream。

语法： 文本型 MediaPlayer．GetStreamName （StreamNum）

参数名 | 描 述
StreamNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetStreamGroup (MediaPlayer)

GetStreamGroup 方法 所属对象：MediaPlayer

Returns the group of a media stream。

语法： 整数型 MediaPlayer．GetStreamGroup （StreamNum）

参数名 | 描 述
StreamNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetStreamSelected (MediaPlayer)

GetStreamSelected 方法 所属对象：MediaPlayer

Returns whether a media stream is selected。

语法： 逻辑型 MediaPlayer．GetStreamSelected （StreamNum）

参数名 | 描 述
StreamNum | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetMediaParameter (MediaPlayer)

GetMediaParameter 方法 所属对象：MediaPlayer

Returns the value for a given parameter name and entry number。

语法： 文本型 MediaPlayer．GetMediaParameter （EntryNum，bstrParameterName）

参数名 | 描 述
EntryNum | 必需的；整数型。
bstrParameterName | 必需的；文本型。

参见： 语法的描述规则、基本数据类型


GetMediaParameterName (MediaPlayer)

GetMediaParameterName 方法 所属对象：MediaPlayer

Returns the name for a given parameter index and entry number。

语法： 文本型 MediaPlayer．GetMediaParameterName （EntryNum，Index）

参数名 | 描 述
EntryNum | 必需的；整数型。
Index | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


GetCurrentEntry (MediaPlayer)

GetCurrentEntry 方法 所属对象：MediaPlayer

Returns the current playlist item's entry number。

语法： 整数型 MediaPlayer．GetCurrentEntry （）

参见： 语法的描述规则、基本数据类型


SetCurrentEntry (MediaPlayer)

SetCurrentEntry 方法 所属对象：MediaPlayer

Sets the current playlist entry。

语法： 无返回值 MediaPlayer．SetCurrentEntry （EntryNumber）

参数名 | 描 述
EntryNumber | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


ShowDialog (MediaPlayer)

ShowDialog 方法 所属对象：MediaPlayer

Displays modal dialog box containing WMP options。

语法： 无返回值 MediaPlayer．ShowDialog （mpDialogIndex）

参数名 | 描 述
mpDialogIndex | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


MediaPlayer

MediaPlayer 窗口单元 跳至：MediaPlayer

Windows Media Player。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
EntryCount | WindowlessVideo | EnableFullScreenControls | 自动调节尺寸
ConnectionSpeed | ClientId | StreamCount | SAMIFileName
SAMILang | SAMIStyle | AudioStream | Language
HasMultipleItems | PreviewMode | CanPreview | Mute
CaptioningID | ShowAudioControls | ShowCaptioning | ShowStatusBar
ShowGotoBar | VideoBorderColor | VideoBorderWidth | VideoBorder3D
DisplayMode | DisplayBackColor | DisplayForeColor | 允许
EnableTracker | EnablePositionControls | ShowTracker | ShowPositionControls
ShowControls | ShowDisplay | SelectionEnd | SelectionStart
就绪状态 | Balance | Volume | TransparentAtStart
AnimationAtStart | ErrorCode | ErrorDescription | HasError
DefaultFrame | BaseURL | InvokeURLs | DisplaySize
SendPlayStateChangeEvents | PlayState | SendErrorEvents | SendWarningEvents
SendOpenStateChangeEvents | OpenState | IsDurationValid | AllowChangeDisplaySize
CodecCount | CursorType | EnableContextMenu | AllowScan
ClickToPlay | PlayCount | SendMouseMoveEvents | SendMouseClickEvents
SendKeyboardEvents | Rate | AutoRewind | AutoStart
BufferingTime | ContactEmail | ContactPhone | ContactAddress
ChannelURL | ChannelDescription | ChannelName | BufferingProgress
IsBroadcast | BufferingCount | ReceptionQuality | LostPackets
RecoveredPackets | ReceivedPackets | SourceProtocol | Bandwidth
ErrorCorrection | CreationDate | SourceLink | FileName
CurrentMarker | CanSeekToMarkers | CanSeek | CanScan
MarkerCount | ImageSourceHeight | ImageSourceWidth | Duration
CurrentPosition | 全部属性 |  |

方法：

Play | Stop | Pause | GetMarkerTime
GetMarkerName | 关于对话框 | GetCodecInstalled | GetCodecDescription
GetCodecURL | GetMoreInfoURL | GetMediaInfoString | Cancel
Open | IsSoundCardEnabled | Next | Previous
StreamSelect | FastForward | FastReverse | GetStreamName
GetStreamGroup | GetStreamSelected | GetMediaParameter | GetMediaParameterName
GetCurrentEntry | SetCurrentEntry | ShowDialog |

自有事件：

DVDNotify | EndOfStream | 组件按下某键 | 组件放开某键
组件字符输入 | 组件鼠标位置被移动 | 组件鼠标左键被按下 | 组件鼠标左键被放开
组件被单击 | 组件被双击 | OpenStateChange | PlayStateChange
ScriptCommand | Buffering | Error | MarkerHit
Warning | NewStream | Disconnect | PositionChange
DisplayModeChange | 就绪状态改变 |  |

基本事件：


DVDNotify (MediaPlayer)

DVDNotify 事件 所属对象：MediaPlayer

DVD related notifications。

语法： 无返回值 _MediaPlayer_DVDNotify （EventCode，EventParam1，EventParam2）

参数名 | 描 述
EventCode | 整数型；
EventParam1 | 整数型；
EventParam2 | 整数型；

参见： 语法的描述规则、基本数据类型


EndOfStream (MediaPlayer)

EndOfStream 事件 所属对象：MediaPlayer

Sent when the end of file is reached。

语法： 无返回值 _MediaPlayer_EndOfStream （Result）

参数名 | 描 述
Result | 整数型；

参见： 语法的描述规则、基本数据类型


组件按下某键 (MediaPlayer)

组件按下某键 事件 所属对象：MediaPlayer

Sent when a key is pressed。

语法： 无返回值 _MediaPlayer_组件按下某键 （KeyCode，ShiftState）

参数名 | 描 述
KeyCode | 短整数型；
ShiftState | 短整数型；

参见： 语法的描述规则、基本数据类型


组件放开某键 (MediaPlayer)

组件放开某键 事件 所属对象：MediaPlayer

Sent when a key is released。

语法： 无返回值 _MediaPlayer_组件放开某键 （KeyCode，ShiftState）

参数名 | 描 述
KeyCode | 短整数型；
ShiftState | 短整数型；

参见： 语法的描述规则、基本数据类型


组件字符输入 (MediaPlayer)

组件字符输入 事件 所属对象：MediaPlayer

Sent when a character is entered。

语法： 无返回值 _MediaPlayer_组件字符输入 （CharacterCode）

参数名 | 描 述
CharacterCode | 短整数型；

参见： 语法的描述规则、基本数据类型


组件鼠标位置被移动 (MediaPlayer)

组件鼠标位置被移动 事件 所属对象：MediaPlayer

Sent when the mouse is moved。

语法： 无返回值 _MediaPlayer_组件鼠标位置被移动 （Button，ShiftState，x，y）

参数名 | 描 述
Button | 短整数型；
ShiftState | 短整数型；
x | 整数型；
y | 整数型；

参见： 语法的描述规则、基本数据类型


组件鼠标左键被按下 (MediaPlayer)

组件鼠标左键被按下 事件 所属对象：MediaPlayer

Sent when a mouse button is pressed。

语法： 无返回值 _MediaPlayer_组件鼠标左键被按下 （Button，ShiftState，x，y）

参数名 | 描 述
Button | 短整数型；
ShiftState | 短整数型；
x | 整数型；
y | 整数型；

参见： 语法的描述规则、基本数据类型


组件鼠标左键被放开 (MediaPlayer)

组件鼠标左键被放开 事件 所属对象：MediaPlayer

Sent when a mouse button is released。

语法： 无返回值 _MediaPlayer_组件鼠标左键被放开 （Button，ShiftState，x，y）

参数名 | 描 述
Button | 短整数型；
ShiftState | 短整数型；
x | 整数型；
y | 整数型；

参见： 语法的描述规则、基本数据类型


组件被单击 (MediaPlayer)

组件被单击 事件 所属对象：MediaPlayer

Sent when a mouse button is clicked。

语法： 无返回值 _MediaPlayer_组件被单击 （Button，ShiftState，x，y）

参数名 | 描 述
Button | 短整数型；
ShiftState | 短整数型；
x | 整数型；
y | 整数型；

参见： 语法的描述规则、基本数据类型


组件被双击 (MediaPlayer)

组件被双击 事件 所属对象：MediaPlayer

Sent when a mouse button is double clicked。

语法： 无返回值 _MediaPlayer_组件被双击 （Button，ShiftState，x，y）

参数名 | 描 述
Button | 短整数型；
ShiftState | 短整数型；
x | 整数型；
y | 整数型；

参见： 语法的描述规则、基本数据类型


OpenStateChange (MediaPlayer)

OpenStateChange 事件 所属对象：MediaPlayer

Sent when the control changes OpenState。

语法： 无返回值 _MediaPlayer_OpenStateChange （OldState，NewState）

参数名 | 描 述
OldState | 整数型；
NewState | 整数型；

参见： 语法的描述规则、基本数据类型


PlayStateChange (MediaPlayer)

PlayStateChange 事件 所属对象：MediaPlayer

Sent when the control changes PlayState。

语法： 无返回值 _MediaPlayer_PlayStateChange （OldState，NewState）

参数名 | 描 述
OldState | 整数型；
NewState | 整数型；

参见： 语法的描述规则、基本数据类型


ScriptCommand (MediaPlayer)

ScriptCommand 事件 所属对象：MediaPlayer

Sent when a synchronized command or URL is received。

语法： 无返回值 _MediaPlayer_ScriptCommand （scType，Param）

参数名 | 描 述
scType | 文本型；
Param | 文本型；

参见： 语法的描述规则、基本数据类型


Buffering (MediaPlayer)

Buffering 事件 所属对象：MediaPlayer

Sent when the control begins or ends buffering。

语法： 无返回值 _MediaPlayer_Buffering （Start）

参数名 | 描 述
Start | 逻辑型；

参见： 语法的描述规则、基本数据类型


Error (MediaPlayer)

Error 事件 所属对象：MediaPlayer

Sent when the control has an error condition。

语法： 无返回值 _MediaPlayer_Error （）

参见： 语法的描述规则、基本数据类型


MarkerHit (MediaPlayer)

MarkerHit 事件 所属对象：MediaPlayer

Sent when a marker is reached。

语法： 无返回值 _MediaPlayer_MarkerHit （MarkerNum）

参数名 | 描 述
MarkerNum | 整数型；

参见： 语法的描述规则、基本数据类型


Warning (MediaPlayer)

Warning 事件 所属对象：MediaPlayer

Sent when the control encounters a problem。

语法： 无返回值 _MediaPlayer_Warning （WarningType，Param，Description）

参数名 | 描 述
WarningType | 整数型；
Param | 整数型；
Description | 文本型；

参见： 语法的描述规则、基本数据类型


NewStream (MediaPlayer)

NewStream 事件 所属对象：MediaPlayer

Sent when a new stream is started in a channel。

语法： 无返回值 _MediaPlayer_NewStream （）

参见： 语法的描述规则、基本数据类型


Disconnect (MediaPlayer)

Disconnect 事件 所属对象：MediaPlayer

Sent when the control is disconnected from the server。

语法： 无返回值 _MediaPlayer_Disconnect （Result）

参数名 | 描 述
Result | 整数型；

参见： 语法的描述规则、基本数据类型


PositionChange (MediaPlayer)

PositionChange 事件 所属对象：MediaPlayer

Indicates that the current position of the movie has changed。

语法： 无返回值 _MediaPlayer_PositionChange （oldPosition，newPosition）

参数名 | 描 述
oldPosition | 双精度小数型；
newPosition | 双精度小数型；

参见： 语法的描述规则、基本数据类型


DisplayModeChange (MediaPlayer)

DisplayModeChange 事件 所属对象：MediaPlayer

Indicates that the display mode of the movie has changed。

语法： 无返回值 _MediaPlayer_DisplayModeChange （）

参见： 语法的描述规则、基本数据类型


就绪状态改变 (MediaPlayer)

就绪状态改变 事件 所属对象：MediaPlayer

Reports that the ReadyState property of the ActiveMovie Control has changed。

语法： 无返回值 _MediaPlayer_就绪状态改变 （ReadyState）

参数名 | 描 述
ReadyState | 整数型；

参见： 语法的描述规则、基本数据类型


MediaPlayer

MediaPlayer1.0版 返回首页

Windows Media Player。

窗口单元数据类型：

MediaPlayer


EntryCount (MediaPlayer)

EntryCount 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the number of playlist entries。

参见： 基本数据类型


WindowlessVideo (MediaPlayer)

WindowlessVideo 属性 所属对象：MediaPlayer

数据类型：逻辑型；Render video without a window。

参见： 基本数据类型


EnableFullScreenControls (MediaPlayer)

EnableFullScreenControls 属性 所属对象：MediaPlayer

数据类型：逻辑型；Enables controls during full screen。

参见： 基本数据类型


自动调节尺寸 (MediaPlayer)

自动调节尺寸 属性 所属对象：MediaPlayer

数据类型：逻辑型；Size the control automatically to the loaded media。

参见： 基本数据类型


ConnectionSpeed (MediaPlayer)

ConnectionSpeed 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the network connection speed of the player。

参见： 基本数据类型


ClientId (MediaPlayer)

ClientId 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns a unique id for the player。

参见： 基本数据类型


StreamCount (MediaPlayer)

StreamCount 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the number of media streams。

参见： 基本数据类型


SAMIFileName (MediaPlayer)

SAMIFileName 属性 所属对象：MediaPlayer

数据类型：文本型；Returns or sets the closed-captioning filename。

参见： 基本数据类型


SAMILang (MediaPlayer)

SAMILang 属性 所属对象：MediaPlayer

数据类型：文本型；Returns or sets the closed-captioning language。

参见： 基本数据类型


SAMIStyle (MediaPlayer)

SAMIStyle 属性 所属对象：MediaPlayer

数据类型：文本型；Returns or sets the closed-captioning style。

参见： 基本数据类型


AudioStream (MediaPlayer)

AudioStream 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the current audio stream。

参见： 基本数据类型


Language (MediaPlayer)

Language 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the current language, using windows LCIDs。

参见： 基本数据类型


HasMultipleItems (MediaPlayer)

HasMultipleItems 属性 所属对象：MediaPlayer

数据类型：逻辑型；只读；Returns whether the control currently has something that contains multiple items。

参见： 基本数据类型


PreviewMode (MediaPlayer)

PreviewMode 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether the control is in preview mode。

参见： 基本数据类型


CanPreview (MediaPlayer)

CanPreview 属性 所属对象：MediaPlayer

数据类型：逻辑型；只读；Returns whether the control currently has something that can be previewed。

参见： 基本数据类型


Mute (MediaPlayer)

Mute 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets the current mute state of the stream。

参见： 基本数据类型


CaptioningID (MediaPlayer)

CaptioningID 属性 所属对象：MediaPlayer

数据类型：文本型；Returns or sets the captioning information。

参见： 基本数据类型


ShowAudioControls (MediaPlayer)

ShowAudioControls 属性 所属对象：MediaPlayer

数据类型：逻辑型；Show audio controls。

参见： 基本数据类型


ShowCaptioning (MediaPlayer)

ShowCaptioning 属性 所属对象：MediaPlayer

数据类型：逻辑型；Show captioning text。

参见： 基本数据类型


ShowStatusBar (MediaPlayer)

ShowStatusBar 属性 所属对象：MediaPlayer

数据类型：逻辑型；Show status bar。

参见： 基本数据类型


ShowGotoBar (MediaPlayer)

ShowGotoBar 属性 所属对象：MediaPlayer

数据类型：逻辑型；Show Gotobar。

参见： 基本数据类型


VideoBorderColor (MediaPlayer)

VideoBorderColor 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the video border color。

参见： 基本数据类型


VideoBorderWidth (MediaPlayer)

VideoBorderWidth 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the video border width。

参见： 基本数据类型


VideoBorder3D (MediaPlayer)

VideoBorder3D 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets the video border 3D effect。

参见： 基本数据类型


DisplayMode (MediaPlayer)

DisplayMode 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the display mode (time or frames)。

可供选择的属性值：
0、mpTime
1、mpFrames

参见： 基本数据类型


DisplayBackColor (MediaPlayer)

DisplayBackColor 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the background color of the display panel。

参见： 基本数据类型


DisplayForeColor (MediaPlayer)

DisplayForeColor 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the foreground color of the display panel。

参见： 基本数据类型


允许 (MediaPlayer)

允许 属性 所属对象：MediaPlayer

数据类型：逻辑型；Enables or disables the control。

参见： 基本数据类型


EnableTracker (MediaPlayer)

EnableTracker 属性 所属对象：MediaPlayer

数据类型：逻辑型；Enables or disables the tracker bar in the control panel。

参见： 基本数据类型


EnablePositionControls (MediaPlayer)

EnablePositionControls 属性 所属对象：MediaPlayer

数据类型：逻辑型；Enables or disables the position buttons in the control panel。

参见： 基本数据类型


ShowTracker (MediaPlayer)

ShowTracker 属性 所属对象：MediaPlayer

数据类型：逻辑型；Shows or hides the tracker bar in the control panel。

参见： 基本数据类型


ShowPositionControls (MediaPlayer)

ShowPositionControls 属性 所属对象：MediaPlayer

数据类型：逻辑型；Shows or hides the position buttons in the control panel。

参见： 基本数据类型


ShowControls (MediaPlayer)

ShowControls 属性 所属对象：MediaPlayer

数据类型：逻辑型；Shows or hides the control panel。

参见： 基本数据类型


ShowDisplay (MediaPlayer)

ShowDisplay 属性 所属对象：MediaPlayer

数据类型：逻辑型；Shows or hides the display panel。

参见： 基本数据类型


SelectionEnd (MediaPlayer)

SelectionEnd 属性 所属对象：MediaPlayer

数据类型：双精度小数型；Returns or sets the position where playback will stop。

参见： 基本数据类型


SelectionStart (MediaPlayer)

SelectionStart 属性 所属对象：MediaPlayer

数据类型：双精度小数型；Returns or sets the position where playback will begin。

参见： 基本数据类型


就绪状态 (MediaPlayer)

就绪状态 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the readiness state of the control。

可供选择的属性值：
0、mpReadyStateUninitialized
1、mpReadyStateLoading
3、mpReadyStateInteractive
4、mpReadyStateComplete

参见： 基本数据类型


Balance (MediaPlayer)

Balance 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the current balance of the stream。

参见： 基本数据类型


Volume (MediaPlayer)

Volume 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the current volume of the stream。

参见： 基本数据类型


TransparentAtStart (MediaPlayer)

TransparentAtStart 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control is transparent before playing。

参见： 基本数据类型


AnimationAtStart (MediaPlayer)

AnimationAtStart 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control shows its animation during initial file buffering。

参见： 基本数据类型


ErrorCode (MediaPlayer)

ErrorCode 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the current error code。

参见： 基本数据类型


ErrorDescription (MediaPlayer)

ErrorDescription 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the description of the current error state。

参见： 基本数据类型


HasError (MediaPlayer)

HasError 属性 所属对象：MediaPlayer

数据类型：逻辑型；只读；Returns whether or not the control currently has an error。

参见： 基本数据类型


DefaultFrame (MediaPlayer)

DefaultFrame 属性 所属对象：MediaPlayer

数据类型：文本型；Returns or sets the control's default target HTTP frame。

参见： 基本数据类型


BaseURL (MediaPlayer)

BaseURL 属性 所属对象：MediaPlayer

数据类型：文本型；Returns or sets the control's base HTTP URL。

参见： 基本数据类型


InvokeURLs (MediaPlayer)

InvokeURLs 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not received URLs are automatically invoked。

参见： 基本数据类型


DisplaySize (MediaPlayer)

DisplaySize 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the display size of images。

可供选择的属性值：
0、mpDefaultSize
1、mpHalfSize
2、mpDoubleSize
3、mpFullScreen
4、mpFitToSize
5、mpOneSixteenthScreen
6、mpOneFourthScreen
7、mpOneHalfScreen

参见： 基本数据类型


SendPlayStateChangeEvents (MediaPlayer)

SendPlayStateChangeEvents 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control sends PlayStateChange events。

参见： 基本数据类型


PlayState (MediaPlayer)

PlayState 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the play state of the control。

可供选择的属性值：
0、mpStopped
1、mpPaused
2、mpPlaying
3、mpWaiting
4、mpScanForward
5、mpScanReverse
6、mpClosed

参见： 基本数据类型


SendErrorEvents (MediaPlayer)

SendErrorEvents 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control sends Error events。

参见： 基本数据类型


SendWarningEvents (MediaPlayer)

SendWarningEvents 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control sends Warning events。

参见： 基本数据类型


SendOpenStateChangeEvents (MediaPlayer)

SendOpenStateChangeEvents 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control sends OpenStateChange events。

参见： 基本数据类型


OpenState (MediaPlayer)

OpenState 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the open state of the control。

参见： 基本数据类型


IsDurationValid (MediaPlayer)

IsDurationValid 属性 所属对象：MediaPlayer

数据类型：逻辑型；只读；Returns whether or not the duration is known。

参见： 基本数据类型


AllowChangeDisplaySize (MediaPlayer)

AllowChangeDisplaySize 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the display size can be set at run time。

参见： 基本数据类型


CodecCount (MediaPlayer)

CodecCount 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the number of installable codecs used by the file。

参见： 基本数据类型


CursorType (MediaPlayer)

CursorType 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the cursor type。

参见： 基本数据类型


EnableContextMenu (MediaPlayer)

EnableContextMenu 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not a right mouse click invokes a context menu。

参见： 基本数据类型


AllowScan (MediaPlayer)

AllowScan 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not scanning is enabled on files that support it。

参见： 基本数据类型


ClickToPlay (MediaPlayer)

ClickToPlay 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not clicking on the control starts file playback。

参见： 基本数据类型


PlayCount (MediaPlayer)

PlayCount 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the number of times a file plays。

参见： 基本数据类型


SendMouseMoveEvents (MediaPlayer)

SendMouseMoveEvents 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control sends mouse move events。

参见： 基本数据类型


SendMouseClickEvents (MediaPlayer)

SendMouseClickEvents 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control sends mouse click events。

参见： 基本数据类型


SendKeyboardEvents (MediaPlayer)

SendKeyboardEvents 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not the control sends keyboard events。

参见： 基本数据类型


Rate (MediaPlayer)

Rate 属性 所属对象：MediaPlayer

数据类型：双精度小数型；Returns or sets the current playback rate。

参见： 基本数据类型


AutoRewind (MediaPlayer)

AutoRewind 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not a file is rewound at the end of playback。

参见： 基本数据类型


AutoStart (MediaPlayer)

AutoStart 属性 所属对象：MediaPlayer

数据类型：逻辑型；Returns or sets whether or not file playback is automatically started。

参见： 基本数据类型


BufferingTime (MediaPlayer)

BufferingTime 属性 所属对象：MediaPlayer

数据类型：双精度小数型；Returns the control's buffering time。

参见： 基本数据类型


ContactEmail (MediaPlayer)

ContactEmail 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the contact e-mail address of the station。

参见： 基本数据类型


ContactPhone (MediaPlayer)

ContactPhone 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the contact phone number of the station。

参见： 基本数据类型


ContactAddress (MediaPlayer)

ContactAddress 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the contact address of the station。

参见： 基本数据类型


ChannelURL (MediaPlayer)

ChannelURL 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the location of the station metafile。

参见： 基本数据类型


ChannelDescription (MediaPlayer)

ChannelDescription 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the description of the station。

参见： 基本数据类型


ChannelName (MediaPlayer)

ChannelName 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the name of the station。

参见： 基本数据类型


BufferingProgress (MediaPlayer)

BufferingProgress 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the percentage of buffering completed。

参见： 基本数据类型


IsBroadcast (MediaPlayer)

IsBroadcast 属性 所属对象：MediaPlayer

数据类型：逻辑型；只读；Returns whether or not the source is a broadcast。

参见： 基本数据类型


BufferingCount (MediaPlayer)

BufferingCount 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the number of times buffering occurred during playback。

参见： 基本数据类型


ReceptionQuality (MediaPlayer)

ReceptionQuality 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the percentage of packets received in the last 30 seconds。

参见： 基本数据类型


LostPackets (MediaPlayer)

LostPackets 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the number of packets lost。

参见： 基本数据类型


RecoveredPackets (MediaPlayer)

RecoveredPackets 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the number of packets recovered。

参见： 基本数据类型


ReceivedPackets (MediaPlayer)

ReceivedPackets 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the number of packets received。

参见： 基本数据类型


SourceProtocol (MediaPlayer)

SourceProtocol 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the protocol used to receive data。

参见： 基本数据类型


Bandwidth (MediaPlayer)

Bandwidth 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the bandwidth of the file in bits per second。

参见： 基本数据类型


ErrorCorrection (MediaPlayer)

ErrorCorrection 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the error correction type of the file。

参见： 基本数据类型


CreationDate (MediaPlayer)

CreationDate 属性 所属对象：MediaPlayer

数据类型：日期时间型；只读；Returns the creation date of the file。

参见： 基本数据类型


SourceLink (MediaPlayer)

SourceLink 属性 所属对象：MediaPlayer

数据类型：文本型；只读；Returns the source path of the file。

参见： 基本数据类型


FileName (MediaPlayer)

FileName 属性 所属对象：MediaPlayer

数据类型：文本型；Returns or sets the current file name and path。

参见： 基本数据类型


CurrentMarker (MediaPlayer)

CurrentMarker 属性 所属对象：MediaPlayer

数据类型：整数型；Returns or sets the current marker number。

参见： 基本数据类型


CanSeekToMarkers (MediaPlayer)

CanSeekToMarkers 属性 所属对象：MediaPlayer

数据类型：逻辑型；只读；Returns whether or not the file can be seeked into by markers。

参见： 基本数据类型


CanSeek (MediaPlayer)

CanSeek 属性 所属对象：MediaPlayer

数据类型：逻辑型；只读；Returns whether or not the file can be seeked into。

参见： 基本数据类型


CanScan (MediaPlayer)

CanScan 属性 所属对象：MediaPlayer

数据类型：逻辑型；只读；Returns whether or not the file can be fast forwarded or reversed。

参见： 基本数据类型


MarkerCount (MediaPlayer)

MarkerCount 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the number of markers in the file。

参见： 基本数据类型


ImageSourceHeight (MediaPlayer)

ImageSourceHeight 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the original height of the source images。

参见： 基本数据类型


ImageSourceWidth (MediaPlayer)

ImageSourceWidth 属性 所属对象：MediaPlayer

数据类型：整数型；只读；Returns the original width of the source images。

参见： 基本数据类型


Duration (MediaPlayer)

Duration 属性 所属对象：MediaPlayer

数据类型：双精度小数型；只读；Returns the play duration of the file。

参见： 基本数据类型


CurrentPosition (MediaPlayer)

CurrentPosition 属性 所属对象：MediaPlayer

数据类型：双精度小数型；Returns or sets the current position in the file。

参见： 基本数据类型


全部属性 (MediaPlayer)

全部属性 属性 所属对象：MediaPlayer

数据类型：字节集；使用OCX组件自身的属性表进行设置。

参见： 基本数据类型


左边 (MediaPlayer)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (MediaPlayer)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (MediaPlayer)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (MediaPlayer)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (MediaPlayer)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (MediaPlayer)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (MediaPlayer)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (MediaPlayer)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


播放 (WM播放器)

播放 方法 所属对象：WM播放器

从当前文件位置或标记开始播放。 Begins playing from the current file position or marker。

语法： 无返回值 WM播放器．播放 （）

参见： 语法的描述规则、基本数据类型


停止 (WM播放器)

停止 方法 所属对象：WM播放器

从当前位置停止文件重播。 Stops file playback at the current position。

语法： 无返回值 WM播放器．停止 （）

参见： 语法的描述规则、基本数据类型


暂停 (WM播放器)

暂停 方法 所属对象：WM播放器

从当前位置暂停文件重播。 Pauses file playback at the current position。

语法： 无返回值 WM播放器．暂停 （）

参见： 语法的描述规则、基本数据类型


取标记时间 (WM播放器)

取标记时间 方法 所属对象：WM播放器

返回一个标记的时间。 Returns the time of a marker。

语法： 双精度小数型 WM播放器．取标记时间 （标记号）

参数名 | 描 述
标记号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取标记名 (WM播放器)

取标记名 方法 所属对象：WM播放器

Returns the name of a marker。

语法： 文本型 WM播放器．取标记名 （标记号）

参数名 | 描 述
标记号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


关于对话框 (WM播放器)

关于对话框 方法 所属对象：WM播放器

Displays version information dialog box。

语法： 无返回值 WM播放器．关于对话框 （）

参见： 语法的描述规则、基本数据类型


取解码器安装 (WM播放器)

取解码器安装 方法 所属对象：WM播放器

返回一个解码器是否被安装。 Returns whether or not a codec is installed。

语法： 逻辑型 WM播放器．取解码器安装 （解码号）

参数名 | 描 述
解码号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取解码器描述 (WM播放器)

取解码器描述 方法 所属对象：WM播放器

返回一个解码器的描述名。 Returns the descriptive name of a codec。

语法： 文本型 WM播放器．取解码器描述 （解码号）

参数名 | 描 述
解码号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取解码器路径 (WM播放器)

取解码器路径 方法 所属对象：WM播放器

返回一个解码器的路径。 Returns the URL for a codec。

语法： 文本型 WM播放器．取解码器路径 （解码号）

参数名 | 描 述
解码号 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


取更多路径信息 (WM播放器)

取更多路径信息 方法 所属对象：WM播放器

Returns a More Information URL。

语法： 文本型 WM播放器．取更多路径信息 （更多信息类型）

参数名 | 描 述
更多信息类型 | 必需的；整数型。

参见： 语法的描述规则、基本数据类型


WM播放器

WM播放器 窗口单元 跳至：WM播放器

微软视窗媒体播放器（Windows Media Player）。

属性：

左边 | 顶边 | 宽度 | 高度
标记 | 可视 | 禁止 | 鼠标指针
播放列数 | 无窗口视频 | 全屏控制 | 自动调节尺寸
连接速度 | 客户名 | 媒体流数 | 关闭标题文件名
关闭标题语言 | 关闭标题类型 | 音频流 | 语言
多重项目 | 预览模式 | 可否预览 | 静音
标题名 | 显示音频控制 | 显示标题 | 显示状态条
显示跳转条 | 视频边框色 | 视频边框宽 | 3D视频边框
显示方式 | 显示背景色 | 显示前景色 | 允许
进度条 | 位置按钮 | 显示进度 | 显示位置按钮
显示控件面板 | 显示陈列面板 | 结束位置 | 开始位置
就绪状态 | 流对比值 | 音量 | 开始时透明
开始时活泼 | 错误码 | 错误描述 | 是否错误
默认画面 | 基本路径 | 调用路径 | 图像尺寸
发送播放状态被改变事件 | 播放状态 | 发送错误事件 | 发送警告事件
发送打开状态改变事件 | 打开状态 | 有效持续时间 | 允许改变显示尺寸
解码器数 | 指针类型 | 可否上下文菜单 | 激活扫描
单击播放 | 播放数 | 发送鼠标移动事件 | 发送鼠标单击事件
发送键盘事件 | 速度 | 自动重绕 | 自动开始
缓冲时间 | 联系邮箱 | 联系电话 | 联系地址
联系URL | 联系描述 | 联系名 | 缓冲比率
来源于播放 | 缓冲数 | 接收质量 | 失去信息包
恢复信息包 | 信息包标准号 | 协议源 | 结合带宽
错误修正 | 创建日期 | 链接源 | 文件名
当前标记 | 可否用标记搜寻 | 可否被搜寻 | 可否预览
标记号 | 图片源高 | 图片源宽 | 持续时间
当前位置 | 全部属性 |  |

方法：

播放 | 停止 | 暂停 | 取标记时间
取标记名 | 关于对话框 | 取解码器安装 | 取解码器描述
取解码器路径 | 取更多路径信息 | 取媒体信息 | 取消
打开 | 声卡激活 | 向下 | 向前
选择流 | 快进 | 快退 | 取流名
取流组 | 取选择流 | 取媒体参数 | 取媒体参数名
取当前入口 | 置当前入口 | 显示会话 |

自有事件：

DVD通报 | 到播放尾 | 按下某键 | 放开某键
字符输入 | 鼠标位置被移动 | 鼠标左键被按下 | 鼠标左键被放开
被单击 | 组件被双击 | 改变打开状态 | 改变播放状态
命令行控制 | 缓冲器被控制 | 错误状态 | 标记被选中
警告发送 | 新流出发 | 被断开 | 位置被改变
陈列方式被改变 | 就绪状态被改变 |  |

基本事件：


DVD通报 (WM播放器)

DVD通报 事件 所属对象：WM播放器

DVD叙述通知。 DVD related notifications。

语法： 无返回值 _WM播放器_DVD通报 （EventCode，EventParam1，EventParam2）

参数名 | 描 述
EventCode | 整数型；
EventParam1 | 整数型；
EventParam2 | 整数型；

参见： 语法的描述规则、基本数据类型


到播放尾 (WM播放器)

到播放尾 事件 所属对象：WM播放器

当到达文件尾部时。 Sent when the end of file is reached。

语法： 无返回值 _WM播放器_到播放尾 （结果）

参数名 | 描 述
结果 | 整数型；

参见： 语法的描述规则、基本数据类型


按下某键 (WM播放器)

按下某键 事件 所属对象：WM播放器

当组件具有输入焦点时用户按下了某键后产生本事件。

语法： 无返回值 _WM播放器_按下某键 （键代码，移动状态）

参数名 | 描 述
键代码 | 短整数型；
移动状态 | 短整数型；

参见： 语法的描述规则、基本数据类型


放开某键 (WM播放器)

放开某键 事件 所属对象：WM播放器

当组件具有输入焦点时用户放开了某键后产生本事件。

语法： 无返回值 _WM播放器_放开某键 （键代码，移动状态）

参数名 | 描 述
键代码 | 短整数型；
移动状态 | 短整数型；

参见： 语法的描述规则、基本数据类型


字符输入 (WM播放器)

字符输入 事件 所属对象：WM播放器

Occurs when the user presses and releases an ANSI key.

语法： 无返回值 _WM播放器_字符输入 （代码特征）

参数名 | 描 述
代码特征 | 短整数型；

参见： 语法的描述规则、基本数据类型


鼠标位置被移动 (WM播放器)

鼠标位置被移动 事件 所属对象：WM播放器

Occurs when the user moves the mouse.

语法： 无返回值 _WM播放器_鼠标位置被移动 （按钮，移动状态，横向，纵向）

参数名 | 描 述
按钮 | 短整数型；
移动状态 | 短整数型；
横向 | 整数型；
纵向 | 整数型；

参见： 语法的描述规则、基本数据类型


鼠标左键被按下 (WM播放器)

鼠标左键被按下 事件 所属对象：WM播放器

Occurs when the user presses a mouse button.

语法： 无返回值 _WM播放器_鼠标左键被按下 （按钮，移动状态，横向，纵向）

参数名 | 描 述
按钮 | 短整数型；
移动状态 | 短整数型；
横向 | 整数型；
纵向 | 整数型；

参见： 语法的描述规则、基本数据类型


鼠标左键被放开 (WM播放器)

鼠标左键被放开 事件 所属对象：WM播放器

Occurs when the user presses and releases a mouse button.

语法： 无返回值 _WM播放器_鼠标左键被放开 （按钮，移动状态，横向，纵向）

参数名 | 描 述
按钮 | 短整数型；
移动状态 | 短整数型；
横向 | 整数型；
纵向 | 整数型；

参见： 语法的描述规则、基本数据类型


WM播放器

WM播放器1.0版 返回首页

微软视窗媒体播放器（Windows Media Player）。

窗口单元数据类型：

WM播放器


播放列数 (WM播放器)

播放列数 属性 所属对象：WM播放器

数据类型：整数型；只读；返回播放列数。

参见： 基本数据类型


无窗口视频 (WM播放器)

无窗口视频 属性 所属对象：WM播放器

数据类型：逻辑型；无窗口呈递视频。

参见： 基本数据类型


全屏控制 (WM播放器)

全屏控制 属性 所属对象：WM播放器

数据类型：逻辑型；设置在全屏时能控制。

参见： 基本数据类型


自动调节尺寸 (WM播放器)

自动调节尺寸 属性 所属对象：WM播放器

数据类型：逻辑型；给填满的媒体自动排列控制器。

参见： 基本数据类型


连接速度 (WM播放器)

连接速度 属性 所属对象：WM播放器

数据类型：整数型；只读；返回播放器的网络连接速度。

参见： 基本数据类型


客户名 (WM播放器)

客户名 属性 所属对象：WM播放器

数据类型：文本型；只读；返回播放器的唯一标识。

参见： 基本数据类型


媒体流数 (WM播放器)

媒体流数 属性 所属对象：WM播放器

数据类型：整数型；只读；返回媒体流的一个数值。

参见： 基本数据类型


关闭标题文件名 (WM播放器)

关闭标题文件名 属性 所属对象：WM播放器

数据类型：文本型；返回或设置关闭-字幕文件名。

参见： 基本数据类型


关闭标题语言 (WM播放器)

关闭标题语言 属性 所属对象：WM播放器

数据类型：文本型；返回或设置关闭-字幕说明语言。

参见： 基本数据类型


关闭标题类型 (WM播放器)

关闭标题类型 属性 所属对象：WM播放器

数据类型：文本型；返回或设置关闭-字幕标题类型。

参见： 基本数据类型


音频流 (WM播放器)

音频流 属性 所属对象：WM播放器

数据类型：整数型；返回或设置当前音频流。

参见： 基本数据类型


语言 (WM播放器)

语言 属性 所属对象：WM播放器

数据类型：整数型；返回或设置当前语言，使用窗口LCIDs。

参见： 基本数据类型


多重项目 (WM播放器)

多重项目 属性 所属对象：WM播放器

数据类型：逻辑型；只读；返回控件是否通常地有某事以容纳多个项目。 (Returns whether the control currently has something that contains multiple items)。

参见： 基本数据类型


预览模式 (WM播放器)

预览模式 属性 所属对象：WM播放器

数据类型：逻辑型；返回或设置控件是否处于预览模式。 Returns or sets whether the control is in preview mode。

参见： 基本数据类型


可否预览 (WM播放器)

可否预览 属性 所属对象：WM播放器

数据类型：逻辑型；只读；返回控件是否通常地有某事能够被预览。 Returns whether the control currently has something that can be previewed。

参见： 基本数据类型


静音 (WM播放器)

静音 属性 所属对象：WM播放器

数据类型：逻辑型；返回/设置流的当前静音状态。 Returns or sets the current mute state of the stream。

参见： 基本数据类型


标题名 (WM播放器)

标题名 属性 所属对象：WM播放器

数据类型：文本型；返回/设置标题信息。 Returns or sets the captioning information。

参见： 基本数据类型


显示音频控制 (WM播放器)

显示音频控制 属性 所属对象：WM播放器

数据类型：逻辑型；Show audio controls。

参见： 基本数据类型


左边 (WM播放器)

左边 基本属性

数据类型：整数型；

参见： 基本数据类型


顶边 (WM播放器)

顶边 基本属性

数据类型：整数型；

参见： 基本数据类型


宽度 (WM播放器)

宽度 基本属性

数据类型：整数型；

参见： 基本数据类型


高度 (WM播放器)

高度 基本属性

数据类型：整数型；

参见： 基本数据类型


标记 (WM播放器)

标记 基本属性

数据类型：文本型；

参见： 基本数据类型


可视 (WM播放器)

可视 基本属性

数据类型：逻辑型；

参见： 基本数据类型


禁止 (WM播放器)

禁止 基本属性

数据类型：逻辑型；

参见： 基本数据类型


鼠标指针 (WM播放器)

鼠标指针 基本属性

数据类型：字节集；

参见： 基本数据类型


随想按钮

随想按钮1.0版 返回首页

CSCommand。

窗口单元数据类型：

随想按钮