XE5 TStringList

时间:2013-11-10 00:21:54

标签: android delphi delphi-xe5 tstringlist

我正在使用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)得到的。

有没有人有任何想法,这里发生了什么?

1 个答案:

答案 0 :(得分:0)

您展示的HandleEditButtons()代码无法以您声明的方式改变List。还有其他东西必须在未显示的代码中进行。