Я использую Delphi XE5 Professional для разработки приложения для Android. Приложение работает на моем телефоне Galaxy S3 с Android 4.1.2. Я, наверное, не понимаю, как работает TStringList. Вот что я пытаюсь
В моей мобильной форме FireMonkey у меня есть 4 TEdit с именами: 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]. Затем я удаляю 2-й элемент:
procedure TForm1.btnDeleteItem;
begin
List.BeginUpdate;
List.Delete(1);
List.EndUpdate;
end;
После этой процедуры List имеет структуру [1 3 4]. Проблемы возникают со следующей процедурой - здесь я пытаюсь скопировать данные из списка в свои правки, поэтому 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) между процедурами.
Кто-нибудь знает, что здесь происходит?