如题:如何获取过程或函数中的动态变化值,如下例:
test(var varp:integer)
想在函数运行过程中,动态取出varp的值,如何实现?
完整例子如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Function test(var varp:integer):Boolean;
end;var
Form1: TForm1;implementation{$R *.dfm}
Function TForm1.test(var varp:integer):Boolean;
var
j:integer;
begin
Result:=False;
For j:=0 to 10000 do
begin
varp:=j;
application.ProcessMessages;
end;
Result:=True;
end;procedure TForm1.Button1Click(Sender: TObject);
var
flag:boolean;
myvarp:integer;
begin
flag:=False;
repeat
flag:=test(myvarp);
Caption:=inttostr(myvarp);
application.ProcessMessages;
until Flag;
end;end.
test(var varp:integer)
想在函数运行过程中,动态取出varp的值,如何实现?
完整例子如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
Function test(var varp:integer):Boolean;
end;var
Form1: TForm1;implementation{$R *.dfm}
Function TForm1.test(var varp:integer):Boolean;
var
j:integer;
begin
Result:=False;
For j:=0 to 10000 do
begin
varp:=j;
application.ProcessMessages;
end;
Result:=True;
end;procedure TForm1.Button1Click(Sender: TObject);
var
flag:boolean;
myvarp:integer;
begin
flag:=False;
repeat
flag:=test(myvarp);
Caption:=inttostr(myvarp);
application.ProcessMessages;
until Flag;
end;end.
在varp:=j;
下面写shouwmessage(inttostr(varp));
2、放一个label,在这个函数里面定义一个tmmer,然后ontmmer事件写label.caption=inttostr(varp);
var
j:integer;
begin
Result:=False;
For j:=0 to 10000 do
begin
varp:=j;
memo1.lines.add(inttostr(varp));
application.ProcessMessages;
end;
Result:=True;
end;
Function TForm1.test(var varp:integer):Boolean;
var
j:integer;
strlist : TStringList;
begin
Result:=False;
strList := TStringList.Create;
For j:=0 to 10000 do
begin
varp:=j;
strList.add(IntToStr(varp));
application.ProcessMessages;
end;
ListBox1.items := strList;
strList.Free;
Result:=True;
end;
unsigned 的回调/连接点吧.有点着边了
有什么办法在执行过程中不断返回变化值吗?主要目的是想监控此函数在执行过程中,内部值的变化返回给外部,以便外部可以知道此函数执行了多少进度?敬请高手帮忙