CheatMaker 论坛

首页 » 修改器版块 » CheatMaker综合讨论 » 煋?无意中想出的实现简单循环的办法
誇り高き騎士王 - 2018/9/7 1:59:25
ちくしょう!刚才因为传控件时遇到Flash问题,码好的字全消失了!而且没法恢复!💢
之前添加控件后忘给某按钮改脚本了,于是造成了If死循环,程序崩溃。后来一想,控制一下不是可以拿它实现简单循环么,经试验确实可以。“简单”即只能用于一次性写入操作,不能用于锁定保存的循环。
举个简单的例子:
在Frame1窗口中,由Button1按钮实现对地址10000开始,间隔30h的50个地址写入数据1:
新建TextBox1,用于写入数据,地址10000。
新建TextBox2,用于控制循环,地址可以空着。
两个TextBox均设置为隐藏,且建议设置为默认禁用,以免干扰其它控件或功能。
新建Button1,功能为只执行脚本。【红字为仅用于此帖中的注释】
Button1脚本:

ClickEnd
{
TextBox1.Address=10000;  '每次执行按钮功能时重新设置控件起始地址
TextBox2.Text=0;  '每次执行按钮功能时重新设置控制循环控件的已循环次数
TextBox1.Disabled=False;  '暂时将写入数据的控件停止禁用
Call.Func(Frame1,Button1,Switch);  'Switch可依自己喜好命名。此处功能为进入脚本的循环控制部分
}

Switch  '循环控制部分
{
If TextBox2.Text!=50  '判断循环是否已达到要执行的次数
Call.Func(Frame1,Button1,Script);  '未达到要执行的次数则进入脚本的数据写入部分
Else
TextBox1.Disabled=True;  '已达到时,用于数据写入的脚本恢复禁用
Call.MsgBox("完成!");  '已达到时,弹出完成提示【非必要】
EndIf
}

Script  '数据写入部分
{
TextBox1.Text=1;  '写入数值1。如果全写入同一个数值,此行可移到上方ClickEnd里的Call.Func之前,只循环保存操作,这样能适当提高一点执行效率【通常不明显】。不过要是写入时需要依条件判断是否写入,就必须写在这里了。
Call.SaveData(TextBox1);  '保存控件值
TextBox1.Address+=30;  '控件的地址增加30,即变为下一次循环时的地址
TextBox2.Text+=1;  '循环已执行次数增1。
Call.Func(Frame1,Button1,Switch);  '返回循环控制部分,判断是否要执行下一次写入。
}


—————————————————不—怎—么—华—丽—的—分—隔—线————————————————————
附件里的cmf就是上述举例的循环,可以拿计算器或者画图之类的程序进行测试。【为直观测试,两个TextBox没有设置隐藏】
简单循环功能测试.cmf (, 下载次数:1190)
银河漫步 - 2018/9/7 7:45:44
相互call的方法我用过
但解决不了列表初始化问题
比如
integer x;
ComboBox1.ListDisplay[x] = Textbox.Text;需要的是这种脚本本身可以引入变量的循环
这样才好初始化列表
誇り高き騎士王 - 2018/9/7 8:18:23
回复 2楼银河漫步的帖子

没见过你这样的脚本,也不明白初始化列表指什么。
天枫十一郎 - 2018/9/8 15:19:28
回复 3楼誇り高き騎士王的帖子

可以说你的方法已经实现了基本的循环写数据.简直就是神操作!!
1
查看完整版本: 煋?无意中想出的实现简单循环的办法