Problem z pętlą dla kilku pól edit.

0

Witam. Dla przykładu zamieszczam specjalnie prosty kod dzięki, któremu łatwiej będzie zrozumieć o co mi chodzi. Na formie mamy 6 pól edit i jeden przycisk. 5 pól edit zawiera jakiś tekst/liczbę, a 6 pole jest puste. Po kliknięciu na przycisk program ma połączyć tekst/liczby z 5 pól do pola 6, dając jeden długi ciąg liter/liczb. A także zamiast tych 5 editów spróbować wstawić CheckBoxy.

Jeżeli zastosujemy taki kod:

 
procedure TForm1.Button1Click(Sender: TObject);
 begin
  Edit6.Text:=Edit6.Text+Edit1.Text;
  Edit6.Text:=Edit6.Text+Edit2.Text;
  Edit6.Text:=Edit6.Text+Edit3.Text;
  Edit6.Text:=Edit6.Text+Edit4.Text;
  Edit6.Text:=Edit6.Text+Edit5.Text;
 end; 

Wszystko oczywiście działa poprawnie, ale nie zadowala mnie taki kod w szczególności jak by miało być tych pól z tysiąc. Tak więc przy zastosowaniu pętli for, albo obojętnie czego chcę uzyskać kod mniej więcej taki, ale niestety nie działa:

 
procedure TForm1.Button1Click(Sender: TObject);
 var i:integer;
begin
 for i:=1 to 5 do
 begin
  Edit6.Text:=Edit6.Text+Edit[i].Text;
 end;
end;

Błąd jaki się pojawia to:
[Error] Unit1.pas(37): Undeclared identifier: 'Edit'

1

sezon zaliczeń? prawie identyczne: http://4programmers.net/Forum/Newbie/104488-przypisanie_zmiennej_wartosci_z_edit_za_pomoca_tablicy pod względem mechanizmu działania... :)

Nie możesz stosować takiego dziwadła:

Edit[i].Text;

Jak to zrobić, zobacz w wątku, którego link podałem :]

0

No i dziękuję bardzo, wszystko działa aż miło popatrzeć :) Że sam nie trafiłem na ten temat no.

for i:=1 to 5 do
 begin
   Edit6.Text:=Edit6.Text+TEdit(FindComponent('Edit' + IntToStr(i))).Text;
 end;

Dzięki, pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1