形参?值参? 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; INDY9->INDY10代码转换问题。。 主窗口与子窗口的问题 开发完成端口。WSAID_ACCEPTEX 怎么定义啊? 关于TStrings的疑问???? XML中传送JPG图象 异想天开的问题? 一个关于Query的小问题,请指点! 关于转换数据库的问题? 用shellexecute如何打开一个exe文件???? 如何把扫描枪的数据读到Edit里,另外扫描枪需要什么驱动吗?万分感激!!!!!!!!! (再问) 问一下<<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;