如何获取过程或函数中的动态变化值

liangyong007a 2008-11-07 02:50:07
如题:如何获取过程或函数中的动态变化值,如下例:
test(var varp:integer)
想在函数运行过程中,动态取出varp的值,如何实现?
完整例子如下:
unit Unit1;

interface

uses
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.
...全文
177 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangyong007a 2008-11-08
  • 打赏
  • 举报
回复
假设test函数是三层结构体系中服务端接口提供的一个函数,我在本地客户要获取test(var varp:integer) 中动态变化的值,也就这个意思吧
有什么办法在执行过程中不断返回变化值吗?主要目的是想监控此函数在执行过程中,内部值的变化返回给外部,以便外部可以知道此函数执行了多少进度?

敬请高手帮忙
liangyong007a 2008-11-07
  • 打赏
  • 举报
回复
同志们,不要再在函数里加控件来达到显示目的了,如上已经说明很清楚了。不过还是要多些大家的热情帮助
unsigned 的回调/连接点吧.有点着边了
liangyong007a 2008-11-07
  • 打赏
  • 举报
回复
假设test函数是三层结构体系中服务端接口提供的一个函数,我在本地客户要获取test(var varp:integer) 中动态变化的值,也就这个意思吧
僵哥 2008-11-07
  • 打赏
  • 举报
回复
加回调/连接点吧.
fangsp 2008-11-07
  • 打赏
  • 举报
回复
在窗体上放一个ListBox
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;
liangyong007a 2008-11-07
  • 打赏
  • 举报
回复
如上,放控件显示?如果我把这个函数放在接口中远程访问,这种方法恐怕不行吧?
hongqi162 2008-11-07
  • 打赏
  • 举报
回复
你用个memo来显示不行么?不清楚你要怎么看

Function TForm1.test(var varp:integer):Boolean; 
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;
panrongzeng 2008-11-07
  • 打赏
  • 举报
回复
1、
在varp:=j;
下面写shouwmessage(inttostr(varp));
2、放一个label,在这个函数里面定义一个tmmer,然后ontmmer事件写label.caption=inttostr(varp);

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧