TC官方合作论坛

 找回密码
 立即注册
查看: 770|回复: 8

[已解决] 大侠进。。。。。。谢谢!

[复制链接]
发表于 2014-2-27 10:05:10 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我想做个滚动屏那种效果。就象银行柜台叫号那个样子。如何思考?(注:一启动程序,4个标签就开始滚动)
我开始的思路是想放在初始化上,发现不对。因为初始化的意思是,先执行初始化里的程序后,才打开界面。后来我想在路由上试试。请看下代码:

功能 滚动文字_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)
    if(消息 == 512)
        辅助.等待(5000)
        控件.可见("标签0",假)
        控件.可见("标签1",假)
        控件.可见("标签2",假)
        控件.可见("标签3",假)
        辅助.等待(5000)
        控件.可见("标签0",真)
        辅助.等待(5000)
        控件.可见("标签1",真)
        辅助.等待(5000)
        控件.可见("标签2",真)
        辅助.等待(5000)
        控件.可见("标签3",真)  
    endif

    返回 假
功能结束


效果是一滑动鼠标,就执行。但是问题是4个标签是能隐藏,但是隔5秒后,4个标签不出来。我是新手,请大侠指点。本身我的想法很初级,我还想问问,还有什么别的函数,别的思路。
回复

使用道具 举报

发表于 2014-2-27 12:47:53 | 显示全部楼层
1525299008 发表于 2014-2-27 12:37
谢谢。我还有一个大问题。就是说,我想一启动程序,在界面里自动就开始标签跑。而不是点开始后,标签跑。 ...

thread.beginthread("测试.标签跑","")
将线程开启这一句放到初始化里面就可以了.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-27 10:22:06 | 显示全部楼层
顶回去
回复

使用道具 举报

发表于 2014-2-27 11:11:27 | 显示全部楼层
你观察下界面是不是卡住了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-27 11:20:51 | 显示全部楼层
陌上青衣。 发表于 2014-2-27 11:11
你观察下界面是不是卡住了

我改了下思路。

代码如下:
功能 开始_点击()
    循环(真)
        
        辅助.等待(1000)
        控件.设置位置("标签0",54,268,93,34,1)
        辅助.等待(1000)
        
        控件.设置位置("标签0",154,268,93,34,1)
        辅助.等待(1000)
        
        控件.设置位置("标签0",254,268,93,34,1)
        辅助.等待(1000)
        
        控件.设置位置("标签0",354,268,93,34,1)
        辅助.等待(1000)
        
        控件.设置位置("标签0",454,268,93,34,1)
        辅助.等待(1000)
        
        控件.设置位置("标签0",554,268,93,34,1)
        辅助.等待(1000)
        
        控件.设置位置("标签0",654,268,93,34,1)
        辅助.等待(1000)
        
        控件.设置位置("标签0",754,268,93,34,1)
    循环结束
   
功能结束

效果是,移动到最后一个后,标签没回来。而且还卡界面。原因是什么
回复 支持 反对

使用道具 举报

发表于 2014-2-27 11:56:24 | 显示全部楼层
1525299008 发表于 2014-2-27 11:20
我改了下思路。

代码如下:

有循环的代码,将循环放到线程里操作,不然容易把界面卡死.比如 空间名是 测试


  1. 功能 开始_点击()
  2.     thread.beginthread("测试.标签跑","")
  3. 功能结束

  4. 功能 标签跑()   
  5.     循环(真)
  6.         for(i=0;i<8;i++)
  7.             控件.设置位置("标签0",54+100*i,268,93,34,1)
  8.             辅助.等待(1000)
  9.         endfor
  10.     循环结束   
  11. 功能结束
复制代码

回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-27 12:37:29 | 显示全部楼层
小西 发表于 2014-2-27 11:56
有循环的代码,将循环放到线程里操作,不然容易把界面卡死.比如 空间名是 测试

谢谢。我还有一个大问题。就是说,我想一启动程序,在界面里自动就开始标签跑。而不是点开始后,标签跑。如何思路?
回复 支持 反对

使用道具 举报

发表于 2014-2-27 13:13:42 | 显示全部楼层
那就是走马灯嘛

我写了两行,给你跑起来:

  1. <P>namespace aaa
  2. //默认空间
  3. var hThread
  4. //开始按钮_点击操作
  5. function start_click()
  6.       hThread=thread.beginthread("aaa.滚动窗口线程","3")//第二个参数中的3表示三秒一滚动
  7. endfunction

  8. //退出按钮_点击操作
  9. function exit_click()
  10.    if(hThread>0)
  11.    thread.closethread(hThread,0)
  12. endif
  13. help.exit()
  14. endfunction

  15. function 滚动窗口线程(t)
  16.     var content="#,Please!"//content存放固定内容
  17.     var count=1,i//count为编号计数,i为循环变量
  18.     var currentTime=datetime.now()//存放当前时间
  19.     while(true)
  20.         if(datetime.diff("s",currentTime,datetime.now())>=t)//如果到达指定的时间间隔,则滚动字幕
  21.             traceprint("到达指定时间")
  22.            count++
  23.            contentOfLabel=statictext.gettext("Static0") & type.cstring(count) & content
  24.             for(i=0;i<10;i++)
  25.                contentOfLabel=str.strcut(contentOfLabel,1,true)              //向左移除一个字符,循环10次,因为每条信息是10个字符
  26.               statictext.settext("Static0",contentOfLabel)
  27.               help.sleep(100)
  28.            endfor
  29.            currentTime=datetime.now()
  30.         else
  31.           help.sleep(200)
  32.        endif
  33. endwhile</P>
  34. <P>endfunction

  35. endnamespace
  36. //空间结束</P>
复制代码





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-27 13:27:28 | 显示全部楼层
dongyijun1979 发表于 2014-2-27 13:13
那就是走马灯嘛

我写了两行,给你跑起来:

谢谢!我研究一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-9-24 11:45 , Processed in 0.037337 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表