形参?值参? mystringlist其实是一个对象指针 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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) 与值参对应的叫做 变量参数 (变参)就是函数定义中 有 VAR 的写在函数定义中的 叫做 形参,函数调用中的叫作 实参你到底问什么 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) //清楚了吧Form1: TForm1; //Form1并不是一个普通的变量//她其实是一个指针//只有创建实例之后才能确定地址或资源大小 我的意思是说因为在定义的时候没有var 所以点击按钮的时候不应该有值,可实际上却有值!不清楚!在定义的时候procedure (var XXXXXX) 和 procedure(XXXXX)不是不一样吗? procedure OpenIgs(var mystringlist:TStringList);//加上var.begin inc(aa); mystringlist.Text:=inttostr(aa);end; procedure OpenIgs(mystringlist:TStringList);var vNewStringList: TStringList;begin inc(aa); vNewStringList := TStringList.Create; vNewStringList.Text:=inttostr(aa); mystringlist := vNewStringList; //这样写,不知道你清楚不?end;她是指针她是指针她是指针她是指针她是指针她是指针她是指针她是指针她是指针她是指针她是指针她是指针你操作的是指针所指向的资源,不是指针地址指针地址没有改变,可内容改变了!再不清楚我就没辙了:( var Form1: TForm1;//..var vForm1: TForm1begin vForm1 := Form1; //难道你看见了两个窗体吗? vForm1.Caption := '难道Form1的Caption没有改变吗?';end; 这种样式是哪个控件实现的? 新年散分 如何在自己自定义的类里封装TADOQuery等类 控件的问题,不知道该怎么描述,高手进来。 连接远程sql server2000服务器所出现的几个问题 怎么控制TCheckListBox的滚动条位置以及里面相应的内容 有谁知道ActionList中的‘标准操作’是什么意思吗? 高手过来看看,菜鸟也来看看吧!!! 谁有Wise Installer 8.12的注册码?谢谢了! 难度挺高 问一下<<delphi5企业解决方案>>这本书怎样?我有点想买 www.myvc.net征集斑竹
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)
写在函数定义中的 叫做 形参,函数调用中的叫作 实参你到底问什么
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)
Form1: TForm1; //Form1并不是一个普通的变量//她其实是一个指针//只有创建实例之后才能确定地址或资源大小
在定义的时候procedure (var XXXXXX) 和 procedure(XXXXX)不是不一样吗?
begin inc(aa);
mystringlist.Text:=inttostr(aa);
end;
var
vNewStringList: TStringList;
begin
inc(aa);
vNewStringList := TStringList.Create;
vNewStringList.Text:=inttostr(aa);
mystringlist := vNewStringList; //这样写,不知道你清楚不?
end;她是指针
她是指针
她是指针
她是指针
她是指针
她是指针
她是指针
她是指针
她是指针
她是指针
她是指针
她是指针你操作的是指针所指向的资源,不是指针地址
指针地址没有改变,可内容改变了!再不清楚我就没辙了:(
Form1: TForm1;//..
var
vForm1: TForm1
begin
vForm1 := Form1; //难道你看见了两个窗体吗?
vForm1.Caption := '难道Form1的Caption没有改变吗?';
end;