易语言里的“标记”有什么用。在那里显示的?

2024-12-21 21:07:16
推荐回答(1个)
回答1:

 第一步、引入  朋友们学习易语言编程,总少不了要使用窗口及组件。今天我们就来看看易语言中的窗口组件。
  首先,请朋友看一下这个小程序。(请在编辑框中输入“组件识别”)
  朋友们知道这里用了些什么组件吗?知道不知道是用了什么方法写成的?请打开易语言系统,动手写一下。
  现在我们再看一下这一个程序。(请在编辑框中输入“下一个”)
  大家是不是觉得这两个没有分别?  错!前一个使用了组件的标记属性,后一个没有使用。虽然在显示效果上看不出分别,但是,在写代码的时候却大大不一样。使用了标记,代码会简化许多,不用标记属性,就得花费大量的变量与代码才能达到同样的效果。  第二步、解释  我们知道,易语言中有很多组件,组件除了具有自身的属性外,还有一些共同的属性,比如:高度、宽度、左边、顶边……等等。我们常常注意到这些属性,并用它们来对组件进行操作。但是,组件还有一个共同的属性,却被我们忽视了,这就是“标记”。标记是易语言窗口组件的基本属性,但是在《易语言知识库》和《易语言编程系统》中,对标记的讲解却非常少,在论坛上众多的学习例程中,也很少有提及标记的。可能不少的朋友还不知道什么是标记,也不清楚标记是如何使用的。那么,我就来简单地谈谈组件的标记属性。  一、什么是标记  支持库中对标记是这样说明的:
  数据类型为:文本型。本属性记录用作标记当前所选择对象的附加文本数据,以供在运行时使用。
  (请在编辑框中输入“易语言编程系统”)
  知识库中对标记是这样说明的:
  数据类型:文本型;
  语法:对象.标记=文本型  应用对象:窗口、编辑框、图片框、外形框、画板、分组框、标签、按钮、选择框、单选框、组合框、列表框、选择列表框、横向滚动条、纵向滚动条、进度条、滑块条、选择夹、影像框、日期框、月历、驱动器框、目录框、文件框、颜色选择器、超级链接框、调节器、通用对话框、时钟、打印机、数据报、客户、服务器、端口、表格数据源、通用提供者、数据库提供者、图形按钮、外部数据库、外部数据提供者、超文本浏览框、树型框、状态条、工具条、超级列表框、透明标签、超级按钮、高级影像框、分隔条、超级编辑框、数据库连接、记录集、柱状图控件、饼形图控件、曲线图控件、Word程序、Word文档集、Word图形、Excel程序、Excel工作簿、Excel图表、脚本组件  对于上面这样的几句简单的解释,我想很多朋友都会犯晕:标记到底是什么?  标记是易语言窗口组件的基本属性。该属性的类型为文本型。也就是说我们可以把一些附加信息以文本的形式放在组件的标记中。按照我的理解,标记就是给组件作的记号,就好像我们给货物写让记号一样的。如果你到超市买东西,收款台给你的收据上,列出的不仅有你所购物品的名称,有的还会有编号。通过物品的编号,就可以查出你买的是什么物品。在易语言中与此相似,我们可以通过组件的标记来找到该标记所属的组件。  二、为什么要用标记  标记,可以看作是一种特殊的变量,不仅可以把一些信息放在标记里,而且可以通过标记值来找到具有该标记的组件,不但方便对组件的操作,也可以将其作为一个变量来使用。组件的其他属性就不具备这样的功能。我们把一些信息放置在组件的标记属性中,在以后需要的时候,可以随时调用。如果我们想改变设置的信息,也可以对某一组件的标记重新赋值。  不少朋友在编程的时候,总是喜欢定义一个又一个的变量,变量过多,不仅容易产生这样那样的错误,也造成了资源的浪费。这时,我们应该挖掘组件里的一些资源,加以合理利用,不仅减小了变量,也减少错误的发生。  三、标记内容的分类  标记是文本型的。为了方便使用,我对标记进行了这样的分类:标记文本中是纯数字的,为数值型标记,否则为非数值型标记。数值型标记,在程序中可以通过标记来动态调用组件,非数值型标记只能调用标记内容,无法通过标记来调用组件。  第三步、操作  四、标记的应用  1、数值型标记  数值型的标记,我们可以在设计程序界面的时候就给加上,也可以在程序中动态添加。要注意的是,一定要用纯数字。我们这样做,是为了在程序中可以通过标记来对所有的被标记了的组件进行操作。例如:  在前面的程序中我们拖动滑块条,所对应的标签状态就会发生变化。如果我们不用组件标记的话,就会很麻烦了,需要使用多个判断,语句会多出很多。我们打开易语言,来做一下。代码如下:
.版本 2标签1.标题 = “备选项目_0001”
标签2.标题 = “备选项目_0002”
标签3.标题 = “备选项目_0003”
标签4.标题 = “备选项目_0004”
标签5.标题 = “备选项目_0005”
标签6.标题 = “备选项目_0006”
标签7.标题 = “备选项目_0007”
标签8.标题 = “备选项目_0008”
标签9.标题 = “备选项目_0009”
标签10.标题 = “备选项目_0010”
颜色1 = #黑色
颜色2 = #品红
(以上是标题赋值部分)
.版本 2连续赋值 (颜色1, 标签1.文本颜色, 标签2.文本颜色, 标签3.文本颜色, 标签4.文本颜色, 标签5.文本颜色, 标签6.文本颜色, 标签7.文本颜色, 标签8.文本颜色, 标签9.文本颜色, 标签10.文本颜色)
连续赋值 (假, 标签1.字体.加粗, 标签2.字体.加粗, 标签3.字体.加粗, 标签4.字体.加粗, 标签5.字体.加粗, 标签6.字体.加粗, 标签7.字体.加粗, 标签8.字体.加粗, 标签9.字体.加粗, 标签10.字体.加粗)
连续赋值 (2, 标签1.边框, 标签2.边框, 标签3.边框, 标签4.边框, 标签5.边框, 标签6.边框, 标签7.边框, 标签8.边框, 标签9.边框, 标签10.边框)
(以上是文字颜色还原部分)
.版本 2标签文字色还原 ()
.判断开始 (滑块条1.位置 = 1)
标签1.文本颜色 = 颜色2
标签1.字体.加粗 = 真
标签1.边框 = 1
.判断 (滑块条1.位置 = 2)
标签2.文本颜色 = 颜色2
标签2.字体.加粗 = 真
标签2.边框 = 1
.判断 (滑块条1.位置 = 3)
标签3.文本颜色 = 颜色2
标签3.字体.加粗 = 真
标签3.边框 = 1
.判断 (滑块条1.位置 = 4)
标签4.文本颜色 = 颜色2
标签4.字体.加粗 = 真
标签4.边框 = 1
.判断 (滑块条1.位置 = 5)
标签5.文本颜色 = 颜色2
标签5.字体.加粗 = 真
标签5.边框 = 1
.判断 (滑块条1.位置 = 6)
标签6.文本颜色 = 颜色2
标签6.字体.加粗 = 真
标签6.边框 = 1
.判断 (滑块条1.位置 = 7)
标签7.文本颜色 = 颜色2
标签7.字体.加粗 = 真
标签7.边框 = 1
.判断 (滑块条1.位置 = 8)
标签8.文本颜色 = 颜色2
标签8.字体.加粗 = 真
标签8.边框 = 1
.判断 (滑块条1.位置 = 9)
标签9.文本颜色 = 颜色2
标签9.字体.加粗 = 真
标签9.边框 = 1
.判断 (滑块条1.位置 = 10)
标签10.文本颜色 = 颜色2
标签10.字体.加粗 = 真
标签10.边框 = 1
.默认  (以上是滑动条位置被改变部分)
  (请在编辑框中输入“易语言”)
  使用了标记,我们只要用一个循环,就可以对所有的这一类的组件进行设置。代码如下:.版本 2.局部变量 LL, 整数型.计次循环首 (10, LL)
标记标签 = 取标记组件 (LL)
标记标签.标题 = “备选项目_” + 取文本右边 (“00000” + 到文本 (LL), 4)
标记标签.文本颜色 = 到数值 (滑块条1.标记)
标记标签.字体.加粗 = 假
标记标签.边框 = 2
.计次循环尾 ()(一个循环就把标签的标题赋值与颜色的改变给设置完了).版本 2标签文字色还原 ()
标记标签 = _启动窗口.取标记组件 (滑块条1.位置)
标记标签.文本颜色 = 多项选择 (到数值 (分组框1.标记), #蓝色, #黑色, #红色, #品红)
标记标签.字体.加粗 = 真
标记标签.边框 = 1(这里只要几句简单的代码,就解决了滑动条改变时文字颜色随之改变的问题)
(具体的代码请见例程。请在编辑框中输入“嗯?还不下课?”)  通过上面的对比,我们很容易明白使用组件标记的好处:不必考虑原来的组件是什么名字,也就不容易出错。
  在使用时,我们先定义一个变量,变量的类型就是我们做标记的组件的类型。比如,我们对标签做了标记,用来操作的变量的类型就是“标签”;我们做了标记的组件是按钮,那么我们用来操作的变量的类型就是“按钮”。  在我的例程中,我用了十个标签,要对这十个标签进行标题设置、文本颜色设置、边框类型设置等。我定义了一个“标记标签”的“标签”类型的变量,通过对这一变量的操作,达到操作原来标签的目的。

用到的命令:取标记组件()
━━━━━━━━━━━━━━━━━━━━━━━━━━
调用格式:〈通用型〉对象.取标记组件(整数型 欲寻找组件的标记数值)-系统核心支持库->窗口
英文名称:GetSpecTagUnit
返回当前窗口中具有指定标记数值文本的组件。如果不存在,将产生运行时错误。本命令为初级对象成员命令。
参数<1>的名称为“欲寻找组件的标记数值”,类型为“整数型(int)”。即该组件的“标记”属性文本的数值形式。
操作系统需求:Windows
例如:
.版本 2.局部变量 LL, 整数型.计次循环首 (10, LL)
标记标签 = 取标记组件 (LL)
标记标签.标题 = “ 备选项目_” + 取文本右边 (“000” + 到文本 (LL), 4)
.计次循环尾 ()
  通过这样一个循环,就把十个标签的标题都进行了赋值。如果不用标记,我们只有通过如下方法:一是在界面设计中对每一个标签的标题都进行设置,我们要反复地打出那些名字。二是用赋值,一个标签一行,要写十行。

标签1.标题 = “备选项目_0001”
标签2.标题 = “备选项目_0002”
标签3.标题 = “备选项目_0003”
标签4.标题 = “备选项目_0004”
标签5.标题 = “备选项目_0005”
标签6.标题 = “备选项目_0006”
标签7.标题 = “备选项目_0007”
标签8.标题 = “备选项目_0008”
标签9.标题 = “备选项目_0009”
标签10.标题 = “备选项目_0010”  两相比较,孰优孰劣,不说自明。
  在程序中动态改变标记,可以用赋值,比如:标签1.标记=标记内容。这里的标记内容,一定要用文本,或者文本型的变量,否则就会出错。例如:.版本 2 标记按钮.标记 = 到文本 (多项选择 (LL, #红色, #墨绿, #蓝色, #黑色))  这里就把颜色值转换成文本,给了按钮的标记。以后,我们就可以通过调用按钮的标记来改变颜色。
再如:滑块条1.标记 = 标记按钮.标记这是将一个组件的标记赋值给另一个组件,方便调用。第四步、注意  使用数值型标记,要注意以下几点:
  一是刚才说过的,一定要用纯数字,否则就不能取出正确的组件。无标记、字母、汉字或、符号,或者是0,都将出错。
  我们取标记组件,只能使用数字,并且是非0数字。你可以这么做:
  取标记组件(-1) 或者 取标记组件(3)
  但是你不能这么做:
  取标记组件(0) 或者 取标记组件() 或者 取标记组件(“易语言”)
  二是所有组件的标记不要使用相同的数值。比如:有一个组件的标记为1,就不要再给另一个组件标记为1,否则就会出错。
  如果是同类型的组件有了相同的标记,就不会取出重复的标记的组件。比如:标签1的标记为1,标签2的标记也为1,那么,你就只能取出标签1,标签2就不能被取出。
  如果是不同类型的组件有了相同的标记,必须按照组件类型的名称的顺序来取标记,否则就会出错。例如:
  一个标签和一个按钮的标记都是1,先取的组件是按钮,然后才能取标签。例如代码:.版本 2.计次循环首 (10, LL)
.如果真 (LL < 5)
标记按钮 = 取标记组件 (LL)
标记按钮.标记 = 到文本 (多项选择 (LL, #红色, #墨绿, #蓝色, #黑色))
.如果真结束
标记标签 = 取标记组件 (LL)
标记标签.标题 = “备选项目_” + 取文本右边 (“00000” + 到文本 (LL), 4)
.计次循环尾 ()  这里,我们按钮的标记是1到4,标签的标记是1到10,显然有四个是重复的。如果我们先取标签,就会出错。不信的话,你可以把代码改成下面这样的试试:.版本 2.计次循环首 (10, LL)
标记标签 = 取标记组件 (LL)
标记标签.标题 = “备选项目_” + 取文本右边 (“00000” + 到文本 (LL), 4)
.如果真 (LL < 5)
标记按钮 = 取标记组件 (LL)
标记按钮.标记 = 到文本 (多项选择 (LL, #红色, #墨绿, #蓝色, #黑色))
.如果真结束
.计次循环尾 ()  2、非数值型标记
  这类标记可以是任意文本。在易语言4.03版出来以前,要在程序中加入一个文本,就必须用“图片资源”,把文本导入资源,用的时候再使用“到文本()”命令把字节集转变为文本,特别不方便(请在编辑框中输入“大强太罗嗦?”)。其实我们可以在程序设计中把文本存放在组件的标记中,不受任何限制。只要是文本,就可以放进去。(请在编辑框中输入“一言一语易语言”)
  在程序中,我们也可以像使用其他变量一样的使用标记,可以省下一个变量。比如:  标签1.标记 = 标签1.标记 + “我爱易语言” + #换行符  这样,我们就把一段动态的文本放置在标签1的标记中了,需要的时候我们可以把这段文本显示在编辑框或者标签中。  使用非数值型标记要注意的是:
  一定要指明调用标记所属的组件,就如同调用组件的其他属性一样。如:编辑框1.标记,标签1.标记……等等。组件的标记相当于一个程序集变量,在首次使用时最好给一个初始值。把数值放入标记时,一定要先转变成文本。
  例如,你可以这么写:标签1.标记 = “123”
但是你不能这么写:
标签1.标记 = 123口令说明口令“组件识别”导出文件“窗口组件识别.exe”
口令“下一个”导出文件“组件识别对比.exe”
口令“易语言”导出文件“非标记例程.e”
口令“嗯?还不下课?”导出文件“标记例程.e”
口令“易语言编程系统”导出文件“标记属性(系统例程).e”(*)
口令“一言一语易语言”导出文件“标记例程ALL.e”
口令“大强太罗嗦?”导出文件“非标记例程ALL.e”
口令“§☆给个材料啊☆§”导出讲课材料
口令“标记的应用”查看海报(*)
口令“我要走啦!”关闭海报(*)
口令“快快帮忙啊!”调出帮助(*)
口令“放假了,散会!”结束程序带*号的为新版材料所有的功能。