第一个步骤:
procedure TestOne(List : TStringList);
var
TempList : TStringList;
begin
TempList := TStringList.Create;
TempList.Add('Test');
List := TempList;
TempList.Free;
end;
procedure TForm1.Button1Click(Sender : TObject);
var
aList : TStringList;
begin
aList := TStringList.Create;
TestOne(aList);
Memo1.Lines := aList;
end;
当我点击按钮时,备忘录没有显示任何内容,断点显示该过程没有执行此行:
List := TempList;
我修改了该程序:
procedure TestTwo(List : TStringList);
var
TempList : TStringList;
begin
TempList := TStringList.Create;
TempList.Add('Test');
List.Text := TempList.Text;
//or
List.Assign(TempList);
//List := TempList;
TempList.Free;
end;
这一次它工作了。
那么为什么不能使用List := TempList;
呢?
Memo1.Lines
的赋值可以正常工作,而其他的却不行。这种不一致性可能是导致最初产生这个问题的混淆的原因。 - Rob Kennedy