如何实现,卡拉OK中,歌词动态变颜色呢?

解决方案 »

  1.   

    简单的方法,两个label,同样的位置,下面的label为背景颜色,上面的label前景颜色,通过改变上面的label的长度就可以了。
      

  2.   

    参考这个例子:http://www.2ccc.com/article.asp?articleid=2197
      

  3.   

    非常感谢rouqing(*冰雨&双子座奇缘*) 和keyz(keyz) ,我下载试一下看看!
      

  4.   

    rouqing(*冰雨&双子座奇缘*) 提供的例子可以实现,但感觉不是太好控制,比如说,变色的文字比较多时,会出现显示不出来的情况;变色的快慢也不好控制,keyz(keyz) ( )的方法有例子吗?
      

  5.   

    这个还要例子啊?自己动动手嘛。procedure TForm1.Button1Click(Sender: TObject);
    var
      i:integer;
    begin
      Self.DoubleBuffered := True;
      Label1.Caption := '如何实现,卡拉OK中,歌词动态变颜色呢? ';  Label2.Caption:=Label1.Caption;
      Label2.Height := Label1.Height;
      Label2.Top:=Label1.Top;
      Label2.Font.Color := clRed;
      Label2.Left:=Label1.Left;
      AutoSize := False;
      Label2.Width := 0;//可以改为用 Timer 实现
      for i:= 1 to Label1.Width do
      begin
        Application.ProcessMessages;
        Label2.Width := i;
        Sleep(10);
      end;end;