如题:如何获取过程或函数中的动态变化值,如下例:
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.

解决方案 »

  1.   

    1、
    在varp:=j; 
    下面写shouwmessage(inttostr(varp));
    2、放一个label,在这个函数里面定义一个tmmer,然后ontmmer事件写label.caption=inttostr(varp);
      

  2.   

    你用个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; 
      

  3.   

    在窗体上放一个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; 
      

  4.   

    假设test函数是三层结构体系中服务端接口提供的一个函数,我在本地客户要获取test(var varp:integer) 中动态变化的值,也就这个意思吧
      

  5.   

    同志们,不要再在函数里加控件来达到显示目的了,如上已经说明很清楚了。不过还是要多些大家的热情帮助
     unsigned 的回调/连接点吧.有点着边了
      

  6.   

    假设test函数是三层结构体系中服务端接口提供的一个函数,我在本地客户要获取test(var varp:integer) 中动态变化的值,也就这个意思吧 
    有什么办法在执行过程中不断返回变化值吗?主要目的是想监控此函数在执行过程中,内部值的变化返回给外部,以便外部可以知道此函数执行了多少进度?敬请高手帮忙