首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XE5 TStringList

XE5 TStringList
EN

Stack Overflow用户
提问于 2013-11-10 08:21:54
回答 1查看 477关注 0票数 0

我正在使用Delphi专业版来开发XE5应用程序。这个应用是在我的搭载安卓4.1.2的Galaxy S3手机上运行的。我可能不明白,TStringList是如何工作的。这就是我正在尝试的

在我的FireMonkey移动表单中,我有4个命名的TEdits : edt1,edt2,edt3,edt4

首先我创建列表: TStringList

代码语言:javascript
复制
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。然后我删除了第二项:

代码语言:javascript
复制
procedure TForm1.btnDeleteItem;
begin
  List.BeginUpdate;
  List.Delete(1);
  List.EndUpdate;
end;

在此过程列表具有结构1 3 4之后。问题随之而来的下一个过程-在这里我尝试复制数据从列表到我的编辑,所以edt1包含列表,edt2包含List1,...下面是执行此操作的代码:

代码语言:javascript
复制
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)获得的。

有没有人知道这里发生了什么?

EN

回答 1

Stack Overflow用户

发布于 2013-11-10 08:29:00

您所展示的HandleEditButtons()代码不可能像您声称的那样改变您的List。在你没有展示的代码中,一定还有其他的东西在发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19884808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档