我正在使用Delphi XE5 Professional开发Android App。应用程序正在我的带有Android 4.1.2的Galaxy S3手机上运行。我可能不明白,TStringList是如何工作的。这是我正在尝试的
在我的FireMonkey移动表单中,我有4个TEdits,名为:edt1,edt2,edt3,edt4
首先我创建List: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;
此程序后,List具有结构[1 3 4]。问题来自下一个程序 - 这里我尝试将数据从List复制到我的编辑,因此edt1包含List [0],edt2包含List [1],...这是代码:
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;
在这个程序之后,List有结构[1 2 3]所以在我看来,当用程序btnDeleteItem时,最后一项来自List Deleted。我在这里介绍的List的结构是通过在程序之间使用Memo1.Lines.Add(List.Text)得到的。
有没有人有任何想法,这里发生了什么?
答案 0 :(得分:0)
您展示的HandleEditButtons()
代码无法以您声明的方式改变List
。还有其他东西必须在未显示的代码中进行。