急!delphi处理进度显示!!!大虾都来帮帮忙!

来源:百度知道 编辑:UC知道 时间:2024/06/30 13:43:15
最近用delphi做了一个处理字符串的程序,因为要多次用到替换字符串的功能,所以处理的时候很慢,小的文本还行,大一点的就很慢了。所以想做一个能显示进度的功能,所以呢,就用了一个Label控件,在处理前设置了“label.caption:='处理了0%'”,处理到一半时设置“label.caption:='处理了50%'”,处理完成时设置“label.caption:='处理了100%'”。
可是运行时,当处理字符串时,程序就向死机时一样,Label控件什么也没显示,按钮也按不了,处理完成后,Label控件才显示'处理了100%'。这不是跟没用进度显示一样吗,后来用Sleep(1000),希望能停一下来显示进度,可还是没用。没辙了!想问一下,怎么才能边处理边显示进度啊?

在吗 上线了当面交流, 我已经解决掉这个问题了
第一步:创建线程,把处理的字符串问题写在线程函数里
第二步:把处理的那循环变量 i 和要处理的数据总数 m 传出来
第三步:用一个定时器,每隔1秒
progressbar1.position:=(i div m)*100

再弄不好的话 把你的代码发给我 我给你修改好了发回去给你
为解决你这个问题,我也找了很多资料。我自己也学会了。
QQ: 869673357

你看一下,要是还不成的话通知我,我还在整

我感觉把你的数据处理放在一个线程里面就行的
我现在尝试一下 弄好了给你发上来
为了你的100分拼了 拼出来了一部分,找到了资料,你看一下

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
hThread:Than