TC官方合作论坛

标题: 大侠进。。。。。。谢谢! [打印本页]

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

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

    返回 假
功能结束


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

作者: 1525299008    时间: 2014-2-27 10:22
顶回去
作者: 陌上青衣。    时间: 2014-2-27 11:11
你观察下界面是不是卡住了
作者: 1525299008    时间: 2014-2-27 11:20
陌上青衣。 发表于 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
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. 功能结束
复制代码


作者: 1525299008    时间: 2014-2-27 12:37
小西 发表于 2014-2-27 11:56
有循环的代码,将循环放到线程里操作,不然容易把界面卡死.比如 空间名是 测试

谢谢。我还有一个大问题。就是说,我想一启动程序,在界面里自动就开始标签跑。而不是点开始后,标签跑。如何思路?
作者: 小西    时间: 2014-2-27 12:47
1525299008 发表于 2014-2-27 12:37
谢谢。我还有一个大问题。就是说,我想一启动程序,在界面里自动就开始标签跑。而不是点开始后,标签跑。 ...

thread.beginthread("测试.标签跑","")
将线程开启这一句放到初始化里面就可以了.
作者: dongyijun1979    时间: 2014-2-27 13:13
那就是走马灯嘛

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

  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>
复制代码




[attach]14611[/attach]

作者: 1525299008    时间: 2014-2-27 13:27
dongyijun1979 发表于 2014-2-27 13:13
那就是走马灯嘛

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

谢谢!我研究一下




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1