您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 用delphi如何实现下面的效果?有一个字符串,我想每隔一秒钟…………

用delphi如何实现下面的效果?有一个字符串,我想每隔一秒钟…………

来源:网络整理     时间:2016/7/2 23:50:43     关键词:

关于网友提出的“ 用delphi如何实现下面的效果?有一个字符串,我想每隔一秒钟…………”问题疑问,本网通过在网上对“ 用delphi如何实现下面的效果?有一个字符串,我想每隔一秒钟…………”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 用delphi如何实现下面的效果?有一个字符串,我想每隔一秒钟…………
描述:

每隔一秒钟从前到后一次显示8个字符在TMemo控件中,如何实现?
举例说明一下我要实现的效果:比如有一个长字符串:“中国国奥在广州亚运会八分之一决赛中以0-3惨败于宿敌韩国脚下,当比赛进行到80分钟时现场数万球迷开始倒戈国奥队,震耳欲聋的“解散”“解散”声在天河体育中心响起。”,我想第一秒在TMemo控件中显示“中国国奥在广州亚”,第二秒在TMemo控件中显示“运会八分之一决赛”,第三秒在TMemo控件中显示“中以0-3惨败于”…………以此类推,直到显示完毕,如果最后一秒显示的内容不够8个字,就有几个字显示几个字。请问如何实现呢?


解决方案1:


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
type
  TForm1 = class(TForm)
    Mmo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  s:string;
  t:Cardinal;
  h:THandle;
implementation
{$R *.dfm}
procedure Addstr();stdcall;
var
tmps:string;
begin
  while Length(s)>0 do
  begin
  if Length(s)>8 then
  begin
  tmps:=Copy(s,1,8);
  Delete(s,1,8);
  end else tmps:=s;
  Form1.Mmo1.Clear;
  Form1.Mmo1.Lines.Add(tmps);
  Sleep(1000);
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  h:=CreateThread(NIL, 0, @Addstr, nil, 0,t);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
s:='中国国奥在广州亚运会八分之一决赛中以0-3惨败于宿敌韩国脚下,当比赛进行到80分钟时现场数万球迷开始倒戈国奥队,震耳欲聋的“解散”“解散”声在天河体育中心响起。';
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if h<>null then CloseHandle(h);
end;
end.

楼主试试我的代码
以上介绍了“ 用delphi如何实现下面的效果?有一个字符串,我想每隔一秒钟…………”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2226140.html

相关图片

相关文章