在吗 上线了当面交流, 我已经解决掉这个问题了
第一步:创建线程,把处理的字符串问题写在线程函数里
第二步:把处理的那循环变量 i 和要处理的数据总数 m 传出来
第三步:用一个定时器,每隔1秒
progressbar1position:=(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:Thandle;//定义一个句柄
ThreadID:DWord;
end;
var
Form1: TForm1;
implementation
{$R dfm}
function MyThreadFunc(P:pointer):Longint;stdcall;
var
i:longint;
DC:HDC;
S:string;
begin
form1Button1Enabled :=false;
applicationProcessMessages;
DC:=GetDC(Form1Handle);
for i:=0 to 500000 do begin
S:=Inttostr(i);
Textout(DC,10,10,Pchar(S),length(S));
form1edit1Text:=inttostr(i);
end;
ReleaseDC(Form1Handle,DC);
form1Button1Enabled :=true;
end;
procedure TForm1Button1Click(Sender: TObject);
begin
hthread:=CreateThread(nil,0,@MyThreadfunc,nil,0,ThreadID);
end;
procedure TForm1Button2Click(Sender: TObject);
begin
SuspendThread(hThread); //挂起线程
end;
procedure TForm1Button3Click(Sender: TObject);
begin
ResumeThread(hThread); // 激活线程
end;
procedure TForm1Button4Click(Sender: TObject);
begin
TerminateThread(hThread,0); // 终止线程
end;
end
function MyThreadFunc(P:pointer ):Longint;
作为一个函数 你的result是什么?
我觉的你这部分写成过程就可以了,你只是实例化了一个TIdIcmpClient
hThread没有初始化,但是单独测试了下BtnUsedThreadClick这部分,似乎也能编译通过
如果发现本窗口失去焦点立即自动获得焦点 设置form1的formstyle为fsStayOnTop integer; var hOtherWin,OtherTHreadID,hFocusWin:integer; begin hOtherWin:=,
以上就是关于急!delphi处理进度显示!!!大虾都来帮帮忙!全部的内容,包括:急!delphi处理进度显示!!!大虾都来帮帮忙!、Delphi高手过来帮帮忙、delphi 怎样获得ie的WinProcessId等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)