mystringlist其实是一个对象指针

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      stringlist1:tStringlist;
    begin
      stringlist1 := TStringList.Create;
      try
        ShowMessage(Format('%p', [Pointer(stringlist1)]));
        openIgs(stringlist1);
        ShowMessage(Format('%p', [Pointer(stringlist1)])); //地址确实没有变哦
        showmessage(stringlist1.Text);
      finally
        stringlist1.Free; //就算测试也要释放
      end;
    end;Format('%p', Pointer(mystringlist)
      

  2.   

    与值参对应的叫做 变量参数 (变参)就是函数定义中 有 VAR 的
    写在函数定义中的 叫做 形参,函数调用中的叫作 实参你到底问什么
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      stringlist1:tStringlist;
    begin
      stringlist1 := TStringList.Create;
      try
        ShowMessage(Format('%p', [Pointer(stringlist1)]));
        openIgs(stringlist1);
        ShowMessage(Format('%p', [Pointer(stringlist1)])); //地址确实没有变哦
        showmessage(stringlist1.Text);
      finally
        stringlist1.Free; //就算测试也要释放
      end;
    end;Format('%p', Pointer(mystringlist)
      

  4.   

    //清楚了吧
    Form1: TForm1; //Form1并不是一个普通的变量//她其实是一个指针//只有创建实例之后才能确定地址或资源大小
      

  5.   

    我的意思是说因为在定义的时候没有var 所以点击按钮的时候不应该有值,可实际上却有值!不清楚!
    在定义的时候procedure (var XXXXXX) 和 procedure(XXXXX)不是不一样吗?
      

  6.   

    procedure OpenIgs(var mystringlist:TStringList);//加上var.
    begin  inc(aa);
      mystringlist.Text:=inttostr(aa);
    end;
      

  7.   

    procedure OpenIgs(mystringlist:TStringList);
    var
      vNewStringList: TStringList;
    begin  
      inc(aa);
      vNewStringList := TStringList.Create;
      vNewStringList.Text:=inttostr(aa);
      mystringlist := vNewStringList; //这样写,不知道你清楚不?
    end;她是指针
    她是指针
    她是指针
    她是指针
    她是指针
    她是指针
    她是指针
    她是指针
    她是指针
    她是指针
    她是指针
    她是指针你操作的是指针所指向的资源,不是指针地址
    指针地址没有改变,可内容改变了!再不清楚我就没辙了:(
      

  8.   

    var
      Form1: TForm1;//..
    var
      vForm1: TForm1
    begin
      vForm1 := Form1; //难道你看见了两个窗体吗?
      vForm1.Caption := '难道Form1的Caption没有改变吗?';
    end;