
Delphi TStrings赋值问题
procedureTForm1.FormCreate(Sender:TObject);vara:TStrings;begina:=combobox1.Items;end;...
procedure TForm1.FormCreate(Sender: TObject);
var
a:TStrings;
begin
a:=combobox1.Items;
end;
为什么combobox1列表值赋值给a时是地址传递,我动态改变combobox1里的值后,a的值也改变了。
我想这应该是地址传递吧,我现在想值传递,把combobox1里的值一些赋给a后,更改combobox1里的值,a的值不改变. 展开
var
a:TStrings;
begin
a:=combobox1.Items;
end;
为什么combobox1列表值赋值给a时是地址传递,我动态改变combobox1里的值后,a的值也改变了。
我想这应该是地址传递吧,我现在想值传递,把combobox1里的值一些赋给a后,更改combobox1里的值,a的值不改变. 展开
3个回答
展开全部
是的,是传地址,实际上是个指针。
你需要传值的时候,可以使用text属性,这样:
a.text:=combobox1.Items.text;
你需要传值的时候,可以使用text属性,这样:
a.text:=combobox1.Items.text;
展开全部
对象引用的实质就是指针,所以是传地址的,要想实现传值,并且传值后互不影响,就新建一个对象的,用其“克隆”方法吧
var
a: TStrings;
begin
a := TStringList.Create;
a.Assign(ComboBox1.Items);//这里将ComboBox11中的给克隆到a了
end;
var
a: TStrings;
begin
a := TStringList.Create;
a.Assign(ComboBox1.Items);//这里将ComboBox11中的给克隆到a了
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的是对象引用,就是传递地址
代码改一下,用个新的对象加载数据
procedure TForm1.FormCreate(Sender: TObject);
var
a:TStrings;
begin
a := TStringList.Create;
a.AddStrings(combobox1.Items);
end;
代码改一下,用个新的对象加载数据
procedure TForm1.FormCreate(Sender: TObject);
var
a:TStrings;
begin
a := TStringList.Create;
a.AddStrings(combobox1.Items);
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询