我想将文字逐渐显示,所以在文字上加盖了一个shape,然后用timer使得shape.top:=shape.top+1;
但是结果是可以使文字逐渐显示,但是闪屏严重,请高手帮解决一下,谢谢!

解决方案 »

  1.   

    直接在canvas里画
    要么就用双缓冲
      

  2.   

    也可以通过定时器来触发作个例子给你!
    var
      Form1: TForm1;
      DisplayText:Widestring;
    implementation{$R *.dfm}procedure TForm1.Timer1Timer(Sender: TObject);
    var
     MidStr:widestring;
    begin
       MidStr:=Widestring(Label1.Caption);
       if Length(MidStr)<Length(DisplayText) then
       begin
          MidStr:=MidStr+DisplayText[Length(MidStr)+1];
          Label1.Caption:=MidStr;
       end
       else Label1.Caption:='';  //写满了 从新循环写!
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
        DisplayText:='打到小日本,我是龙的传人,上海教授去吃屎吧!'
    end;end.
      

  3.   

    据说底下加个Panel 就不哪么闪了,