我正在使用Delphi专业版来开发XE5应用程序。这个应用是在我的搭载安卓4.1.2的Galaxy S3手机上运行的。我可能不明白,TStringList是如何工作的。这就是我正在尝试的
在我的FireMonkey移动表单中,我有4个命名的TEdits : edt1,edt2,edt3,edt4
首先我创建列表: TStringList
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
List := TStringList.Create;
for i := 1 to 4 do List.Add(IntToStr(i));
end;有一个明显的结构1 2 3 4。然后我删除了第二项:
procedure TForm1.btnDeleteItem;
begin
List.BeginUpdate;
List.Delete(1);
List.EndUpdate;
end;在此过程列表具有结构1 3 4之后。问题随之而来的下一个过程-在这里我尝试复制数据从列表到我的编辑,所以edt1包含列表,edt2包含List1,...下面是执行此操作的代码:
procedure TForm1.HandleEditButtons(Sender: TObject);
var i: Integer;
aEdt: TEdit;
begin
for i := 1 to 4 do
begin
aEdt := FindComponent('edt'+IntToStr(i)) as TEdit;
if (aEdt <> nil) then
if (i <= List.Count) then aEdt.Text := List[i-1]
else aEdt.Text := '';
end;
end;在这个过程之后,列表具有结构1 2 3,所以在我看来,当使用过程btnDeleteItem时,最后一项是从列表中删除的。我在这里介绍的列表结构是通过在过程之间使用Memo1.Lines.Add(List.Text)获得的。
有没有人知道这里发生了什么?
发布于 2013-11-10 08:29:00
您所展示的HandleEditButtons()代码不可能像您声称的那样改变您的List。在你没有展示的代码中,一定还有其他的东西在发生。
https://stackoverflow.com/questions/19884808
复制相似问题