刚学delphi一周,有个问题:
运行程序时,程序屏幕上有一条字“海南欢迎您”
但每隔一秒才显示一个字也就是
第1秒,显示“海”
第2秒,显示“南”,加起来就是显示“海南”
第3秒,显示“欢”,加起来就是显示“海南欢”
……
这样的程序怎么实现?
假如字很长很长,有没有什么高效率的方法?

解决方案 »

  1.   

    定义两个全局变量:
    i: Integer;
    s: String;
    在form的show事件中:
    i:=1;
    s:='假如字很长很长,有没有什么高效率的方法?';
    放一个Timer控件,间隔1秒。
    在Timer的事件中:
    i := i + 1;
    if i>length(s) then
      i := 1;
    label1.caption := copy(s,1,i);
    差不多这样吧,没环境试。
      

  2.   

    恩,为什么要用copy函数?str[i]不可以啊?
      

  3.   

    一楼方式挺好的
    时钟循环增加计数
    然后 COPY字符来显示
      

  4.   

    因为汉字是两位的字符,所以,若用str[i]方式,该每次取2位,即:
    label1.caption:=str[i]+str[i+1];
    这样的模式,当然,这i的变化步长是2,而不是1. 
      

  5.   

    不是用str[i]+str[i+1],而是应该用widestring变量