|
|
(一)例程名称:计算编辑框的输入内容的长度
设立本100例教程的目的:把易语言现有的例程都学习一遍,以达到共同脱菜的目的。
★、例程来源。
㈠、例程名称:计算编辑框的输入内容的长度(暂名)
㈡、下载地址:
㈢、作者:(暂不详)
★、例程详解。
不知程序作者是谁?该程序作者或提问者为什么要做该例程?有什么作用?有知道者请跟贴。我在编辑时修改。
该例程只有一个子程序,该子程序只有一行执行代码,程序如下:
子程序:_编辑框1_内容被改变
标签1.标题 = 到文本 (取文本长度 (编辑框1.内容))
编程大概思路:
㈠、确定用什么样的子程序,包括确定用什么控件来发送指令(事件驱动承担者),什么控件用来传递指令,什么控件用来执行指令,什么控件用来反馈指令。
⑴、确定发送指令控件。比如用按钮作为事件驱动(发送指令)承担者,则程序大概是:
子程序:_按钮1_被单击
标签1.标题 = 到文本 (取文本长度 (编辑框1.内容))
当然,如果想使编辑框在输入文本时即时显示文本长度,就要用到编辑框本身的事件,如本程序的第一种子程序,即子程序:_编辑框1_内容被改变,通过在编辑框输入信息来发送指令。
⑵、确定传递、执行或反馈指令控件。如果我们用信息框来执行或反馈指令,则程序大概类似下面为好:
子程序:_按钮1_被单击
信息框 (“你输入的文本长度是:” + 到文本 (取文本长度 (编辑框1.内容))
0
)
思考:如果想做到按“enter”时就弹出该信息框,应怎样做?
㈡、“计算编辑框的输入内容的长度”也即是确定编辑框的某个属性值,那么我们就重点查找编辑框的有关属性、方法和事件及易语言系统有关的命令,看有哪些在本例程中用得上。还是比较难找呢。
交流附件上传地址:http://www.91asp.com/
(二)例程名称:幼儿算术软件
由于还没有找到新空间存放例程,所以《菜鸟每日一课》和其他课程暂停,代之以一门新课程:《易语言时尚编程100例》,专门学习研究别人的程序。由于本人也是菜鸟,所以一般是照搬其中的代码,保持原汁原味,其中是否有错,由高手来跟贴完善评改吧。
★、例程来源。
㈠、例程名称:幼儿算术软件
㈡、下载地址: http://eyuyan.com/non-cgi/usr/1/1_3244.e
㈢、作者:bklbklbk
★、例程详解。
该程序近日由作者上传到论坛,程序明白易懂,主要功能代码也不多,所以我们现在就以它为研究学习对象。
该程序由三个窗口组成,其中_启动窗口只是该程序的封面,窗口2只是说明文件,核心功能都在窗口1中实现,所以这里只讲解窗口1,窗口1中又只有“出题”和“计算结果”两个重要子程序,其他的子程序是辅助的。
㈠、先讲讲怎样实现随机出题。
在随机出题中作者要做两件事:⑴、用单选框设置有三个出题计算数的范围:1到10;1到20;1到100,分别代表三种不同的学习程度。⑵、按三种计算数范围随机出题。下面看程序是怎样做的:
子程序:_按钮1_被单击
置随机数种子 ()
※一般过程是先置随机数种子再随机取数
编辑框1.内容 = 到文本 (取整 (取随机数 (最小号码
最大号码)))
※随机选择第一个计算数
编辑框2.内容 = 到文本 (取整 (取随机数 (最小号码
最大号码)))
※随机选择第一个计算数。取整数的随机数,“取整”是算术运算命令
编辑框3.内容 = “”
※清空“编辑框3”以便你把结果填上去
标签2.标题 = “”
※清空“标签2”(提示正确与否)以方便指出对还是错
编辑框3.获取焦点 ()
※使“编辑框3”获取焦点光标以便你输入计算结果
如果 (单选框1.选中 = 真)
最大号码 = 10
※当选择最大数为10的计算范围时
否则
如果 (单选框2.选中 = 真)
最大号码 = 20
否则
如果 (单选框3.选中 = 真)
最大号码 = 100
否则
如果结束
如果结束
如果结束
㈡、再讲讲怎样评价你的计算结果。
该子程序分别设置了加、减、乘、除四种运算情况,我们以“减法”为例说明:
如果 (标签3.标题 = “-”)
※当选择为减法运算时。选择不同的运算方式,该标签的标题就发生相应变化
如果 (变量1 > 变量2)
※当减数大于被减数时
如果 (变量3 = 变量1 - 变量2)
※当运算结果正确时
标签7.可视 = 真
※该标签的标题是“正确”
标签2.标题 = “恭喜你!做对了”
标签5.标题 = 到文本 (变量4 + 1)
※显示正确的次数,变量4存放的是正确次数,为静态短整数型容器,静态容器能将正确次数保留到下次运算,数值型数据的默认值为0
变量4 = 变量4 + 1
※给变量4赋值
否则 ※当运算结果错误时
标签2.标题 = “错啦!重做一遍”
标签8.可视 = 真
※该标签的标题是“错误”
标签6.标题 = 到文本 (变量5 + 1)
变量5 = 变量5 + 1
如果结束
变量6 = 变量4 + 变量5
※赋值于变量6 ,表示运算次数的总和,即正确次数与错误次数之和
标签13.可视 = 真
※该标签的标题是“共计”
标签12.标题 = 到文本 (变量4 + 变量5)
标签9.标题 = 到文本 (取整 (变量4 ÷ 变量6 × 100))
标签11.可视 = 真
※该标签的标题是“正确率”
标签10.可视 = 真
※该标签的标题是“ %”
否则
标签2.标题 = “不能相减”
※当减数小于被减数时
如果结束
上面是以减法的实现为例对该软件功能实现作一说明,整个窗口1的程序如下:
窗口程序集:窗口程序集2
程序集容器:最小号码 数据类型:短整数型
程序集容器:最大号码 数据类型:短整数型
------------------------------
子程序:_按钮2_被单击
局部容器:变量1 数据类型:短整数型
局部容器:变量2 数据类型:短整数型
局部容器:变量3 数据类型:短整数型
局部容器:变量4 数据类型:短整数型
局部容器:变量5 数据类型:短整数型
局部容器:变量6 数据类型:整数型
变量1 = 文本到数值 (编辑框1.内容)
变量2 = 文本到数值 (编辑框2.内容)
变量3 = 文本到数值 (编辑框3.内容)
编辑框3.获取焦点 ()
如果 (标签3.标题 = “+”)
如果 (变量3 = 变量1 + 变量2)
标签7.可视 = 真
标签2.标题 = “恭喜你!做对了”
标签5.标题 = 到文本 (变量4 + 1)
变量4 = 变量4 + 1
否则
标签2.标题 = “错啦!重算一遍”
标签8.可视 = 真
标签6.标题 = 到文本 (变量5 + 1)
变量5 = 变量5 + 1
如果结束
变量6 = 变量4 + 变量5
标签13.可视 = 真
标签12.标题 = 到文本 (变量4 + 变量5)
标签9.标题 = 到文本 (取整 (变量4 ÷ 变量6 × 100))
标签11.可视 = 真
标签10.可视 = 真
否则
如果 (标签3.标题 = “-”)
如果 (变量1 > 变量2)
如果 (变量3 = 变量1 - 变量2)
标签7.可视 = 真
标签2.标题 = “恭喜你!做对了”
标签5.标题 = 到文本 (变量4 + 1)
变量4 = 变量4 + 1
否则
标签2.标题 = “错啦!重做一遍”
标签8.可视 = 真
标签6.标题 = 到文本 (变量5 + 1)
变量5 = 变量5 + 1
如果结束
变量6 = 变量4 + 变量5
标签13.可视 = 真
标签12.标题 = 到文本 (变量4 + 变量5)
标签9.标题 = 到文本 (取整 (变量4 ÷ 变量6 × 100))
标签11.可视 = 真
标签10.可视 = 真
否则
标签2.标题 = “不能相减”
如果结束
否则
如果 (标签3.标题 = “×”)
如果 (变量3 = 变量1 × 变量2)
标签7.可视 = 真
标签2.标题 = “恭喜你!做对了”
标签5.标题 = 到文本 (变量4 + 1)
变量4 = 变量4 + 1
否则
标签2.标题 = “错啦!重做一遍”
标签8.可视 = 真
标签6.标题 = 到文本 (变量5 + 1)
变量5 = 变量5 + 1
如果结束
变量6 = 变量4 + 变量5
标签13.可视 = 真
标签12.标题 = 到文本 (变量4 + 变量5)
标签9.标题 = 到文本 (取整 (变量4 ÷ 变量6 × 100))
标签11.可视 = 真
标签10.可视 = 真
否则
如果 (标签3.标题 = “÷”)
如果 (变量2 ≠ 0)
如果 (变量3 = 变量1 ÷ 变量2)
标签7.可视 = 真
标签2.标题 = “恭喜你!做对了”
标签5.标题 = 到文本 (变量4 + 1)
变量4 = 变量4 + 1
否则
信息框 (“错啦!重做一遍”
#错误图标
“错误”)
标签8.可视 = 真
标签6.标题 = 到文本 (变量5 + 1)
变量5 = 变量5 + 1
如果结束
变量6 = 变量4 + 变量5
标签13.可视 = 真
标签12.标题 = 到文本 (变量4 + 变量5)
标签9.标题 = 到文本 (取整 (变量4 ÷ 变量6 × 100))
标签11.可视 = 真
标签10.可视 = 真
否则
信息框 (“除数不能为0”
#错误图标
“错误”)
如果结束
否则
如果结束
如果结束
如果结束
如果结束
------------------------------
子程序:_按钮7_被单击
销毁 ()
------------------------------
子程序:_按钮3_被单击
标签3.标题 = “+”
标签1.标题 = “加法运算”
编辑框3.获取焦点 ()
------------------------------
子程序:_按钮4_被单击
标签3.标题 = “-”
标签1.标题 = “减法运算”
编辑框3.获取焦点 ()
------------------------------
子程序:_按钮5_被单击
标签3.标题 = “×”
标签1.标题 = “乘法运算”
编辑框3.获取焦点 ()
------------------------------
子程序:_按钮6_被单击
标签3.标题 = “÷”
标签1.标题 = “除法运算”
编辑框3.获取焦点 ()
------------------------------
子程序:_按钮1_被单击
置随机数种子 ()
编辑框1.内容 = 到文本 (取整 (取随机数 (最小号码
最大号码)))
编辑框2.内容 = 到文本 (取整 (取随机数 (最小号码
最大号码)))
编辑框3.内容 = “”
标签2.标题 = “”
编辑框3.获取焦点 ()
如果 (单选框1.选中 = 真)
最大号码 = 10
否则
如果 (单选框2.选中 = 真)
最大号码 = 20
否则
如果 (单选框3.选中 = 真)
最大号码 = 100
否则
如果结束
如果结束
如果结束
------------------------------
子程序:_窗口1_创建完毕
编辑框1.内容 = “”
编辑框2.内容 = “”
编辑框3.内容 = “”
单选框1.选中 = 真
最小号码 = 1
编辑框3.获取焦点 ()
子程序:_按钮8_被单击
载入 (窗口2
假)
窗口1.可视 = 假
交流附件上传地址:http://www.91asp.com/
(三)IP地址的获取
[这个贴子最后由bb88在 2002/04/26 08:32pm 编辑]
我们进行网络通讯编程常常要获取自己或对方的网络地址(IP),比如通过IP连接进行网络对战游戏,或通过IP连接的聊天室,都要知道主机方(建立游戏或聊天室的一方)的IP才能连接,就象你给对方打电话要知道对方的电话号码才能通话一样。假如你是主机方,你先要告诉对方你的IP,对方才能进入你的主机。怎样即时显示自己的IP而免去查找的麻烦?看看下面的解答。
要实现显示自己IP的功能只需一个子程序,程序示例如下:
子程序:__启动窗口_创建完毕
标签1.标题 = “欢迎你登陆bb88的IP获取教程,你的主机名是:” + #换行符 + 到文本 (取主机名 ()) + #换行符 + #换行符 + “你的IP是:” + #换行符 + 到文本 (转换为IP地址 (取主机名 ()))
解析:⑴、画一个标签用来显示你的主机名及IP地址。用载入启动窗口作为该子程序的驱动事件(_启动窗口_创建完毕)。
⑵、易语言关于网络通讯的命令只有四个:取主机名、通信测试、转换为主机名、转换为IP地址,本例程用到其中两个命令。
⑶、取主机名——即返回本机的主机名,用作在网络通讯中标志本机地址。语法: 取主机名 ()。该命令参数为空,若有参数,可能会类似这样:“取主机名(主机)”或“取主机名 (202.103.113.8)”,即该命令处理的数据对象是某个主机,用“取主机名”的方式进行处理。
⑷、转换为IP地址——即将指定的主机名转换为其 IP 地址。如果失败返回空文本。语法:转换为IP地址 (欲转换主机名)。我们要先获得你的主机名才能转换,所以该语句为:转换为IP地址 (取主机名 ())。该命令所处理的数据对象(参数)为“所取得的主机名”(即“取主机名 ()”的返回值),用“转换为IP地址”方式处理该参数。
思考题:⑴、假设你已经知道你的主机名叫“huhuhu”,为什么用“标签1.标题 = 到文本 (转换为IP地址 (到文本 (huhuhu)))”却不能获得你的IP地址?欢迎高手菜鸟作答。
⑵、为什么“取主机名 ()”这个命令的参数为空?
交流附件上传地址:http://www.91asp.com/
(四)例程名称:小小闹钟
[这个贴子最后由bb88在 2002/04/27 07:09pm 编辑]
★、例程来源。
㈠、例程名称:小小闹钟
㈡、下载地址:
㈢、作者:(请作者跟贴说明)
㈣、主页:
★、例程详解。
㈠、主要功能。⑴、设定闹钟铃响时间。⑵、显示剩余时间(现时间离闹钟铃响时间的间隔)。⑶、到设定的时间时闹钟铃响。
㈡、功能实现。
⑴、设定闹钟铃响时间。分别建立时、分、秒和开始这四个窗口程序集容器,分别用来存放设定闹钟铃响时间中的时、分、秒和开始计时的状态。用下面的子程序来设定闹钟铃响时间(即分别给三个变量“时”、“分”、“秒”赋值)。
子程序:_时编辑框_内容被改变
时 = 文本到数值 (时编辑框.内容)
------------------------------
子程序:_分编辑框_内容被改变
分 = 文本到数值 (分编辑框.内容)
------------------------------
子程序:_秒编辑框_内容被改变
秒 = 文本到数值 (秒编辑框.内容)
⑵、显示剩余时间。
子程序:_时钟1_周期事件
如果真 (开始)
开始计时 ()
剩余时间显示标签.标题 = 到文本 ((取时间部分 (取现行时间 ()
#小时) - 时) × -1) + “时” + 到文本 ((取时间部分 (取现行时间 ()
#分钟) - 分) × -1) + “分” + 到文本 ((取时间部分 (取现行时间 ()
#秒) - 秒) × -1) + “秒”
如果真结束
※变量“开始”表示按下了“确认按钮”(确定闹钟铃响时间和开始计时)。“如果真 (开始)”的意义等同于“如果真 (开始=真)”。
※显示剩余时间(现时间离闹钟铃响时间的间隔)好象这样也行:
剩余时间显示标签.标题 = 到文本 (时 - 取时间部分 (取现行时间 ()
#小时)) + “时” + 到文本 (分 - 取时间部分 (取现行时间 ()
#分钟)) + “分” + 到文本 (秒 - 取时间部分 (取现行时间 ()
#秒)) + “秒”
※我的数学基础很差,不知以上代码行不?望原作者给予解答。
⑶、到设定的时间时闹钟铃响。
子程序:_确认按钮_被单击
如果 (时 ≤ 60 且 分 ≤ 60 且 秒 ≤ 60)
如果 (时 ≥ 取时间部分 (取现行时间 ()
#小时))
时编辑框.禁止 = 真
分编辑框.禁止 = 真
秒编辑框.禁止 = 真
确认按钮.禁止 = 真 ※以上使确定闹钟铃响时间的编辑框不可以输入
开始计时 () ※调用“开始计时”子程序
开始 = 真 ※表示按下了“确认”按钮,使系统开始计算剩余时间
否则
信息框 (“错误!输入时间小于当前时间!”
#确认钮
“错误!”)
※排除闹钟铃响的过期时间
如果结束
否则
信息框 (“请确认输入时间不得大于60!”
#确认钮
“错误!”)
※排除输入错误的时间
如果结束
------------------------------
子程序:开始计时
如果真 (取时间部分 (取现行时间 ()
#小时) ≥ 时)
如果真 (取时间部分 (取现行时间 ()
#分钟) ≥ 分)
如果真 (取时间部分 (取现行时间 ()
#秒) ≥ 秒)
时编辑框.禁止 = 假
分编辑框.禁止 = 假
秒编辑框.禁止 = 假
确认按钮.禁止 = 假
开始 = 假
_启动窗口.位置 = 1
_启动窗口.总在最前 = 假
鸣叫 ()
信息框 (“请注意!您所定的时间到了!”
#确认钮
“时间到了!”)
如果真结束
如果真结束
如果真结束
返回 ()
※以上“开始计时”设定当时间到期时闹钟响铃,通过调用“鸣叫”系统处理命令(通过计算机媒体设备或者喇叭发出一个声音)来表示,或者也可以通过调用一个模拟铃声的声音资源来表示。
㈢、该小小闹钟的完整源程序如下:
窗口程序集:窗口程序集1
程序集容器:时 数据类型:整数型
程序集容器:分 数据类型:整数型
程序集容器:秒 数据类型:整数型
程序集容器:开始 数据类型:逻辑型
------------------------------
子程序:_时钟1_周期事件
当前时间标签.标题 = “当前时间为:” + 时间到文本 (取现行时间 ()
)
如果真 (开始)
开始计时 ()
剩余时间显示标签.标题 = 到文本 (时 - 取时间部分 (取现行时间 ()
#小时)) + “时” + 到文本 (分 - 取时间部分 (取现行时间 ()
#分钟)) + “分” + 到文本 (秒 - 取时间部分 (取现行时间 ()
#秒)) + “秒”
如果真结束
------------------------------
子程序:_时编辑框_内容被改变
时 = 文本到数值 (时编辑框.内容)
------------------------------
子程序:_分编辑框_内容被改变
分 = 文本到数值 (分编辑框.内容)
------------------------------
子程序:_秒编辑框_内容被改变
秒 = 文本到数值 (秒编辑框.内容)
------------------------------
子程序:_确认按钮_被单击
如果 (时 ≤ 60 且 分 ≤ 60 且 秒 ≤ 60)
如果 (时 ≥ 取时间部分 (取现行时间 ()
#小时))
时编辑框.禁止 = 真
分编辑框.禁止 = 真
秒编辑框.禁止 = 真
确认按钮.禁止 = 真
开始计时 ()
开始 = 真
否则
信息框 (“错误!输入时间小于当前时间!”
#确认钮
“错误!”)
如果结束
否则
信息框 (“请确认输入时间不得大于60!”
#确认钮
“错误!”)
如果结束
------------------------------
子程序:_更改按钮_被单击
确认按钮.禁止 = 假
时编辑框.禁止 = 假
分编辑框.禁止 = 假
秒编辑框.禁止 = 假
_启动窗口.位置 = 1
_启动窗口.总在最前 = 假
------------------------------
子程序:_退出按钮_被单击
结束 ()
------------------------------
子程序:开始计时
如果真 (取时间部分 (取现行时间 ()
#小时) ≥ 时)
如果真 (取时间部分 (取现行时间 ()
#分钟) ≥ 分)
如果真 (取时间部分 (取现行时间 ()
#秒) ≥ 秒)
时编辑框.禁止 = 假
分编辑框.禁止 = 假
秒编辑框.禁止 = 假
确认按钮.禁止 = 假
开始 = 假
_启动窗口.位置 = 1
_启动窗口.总在最前 = 假
鸣叫 ()
信息框 (“请注意!您所定的时间到了!”
#确认钮
“时间到了!”)
如果真结束
如果真结束
如果真结束
返回 ()