Przypisanie zmiennej wartości z edit za pomocą tablicy

0

Mam tablice tab składająca się 10 elementów.
Jeśli pierwszy element jest 1 wówczas
zmienna1 przyjmuje wartość z edita1.

Jak uprościć ten kod ?

if tab[1] = 1 then zmienna1 := edit1.text;
if tab[1] = 2 then zmienna1 := edit2.text;

if tab[2] = 1 then zmienna2 := edit1.text;
if tab[2] = 2 then zmienna2 := edit2.text;

if tab[3] = 1 then zmienna3 := edit1.text;
if tab[3] = 2 then zmienna3 := edit2.text;

itd. do tab[10]

Następnie do memo wpisuję zmienna+zmienna2+zmienna3

0
Bruno(M) napisał(a)

Następnie do memo wpisuję zmienna+zmienna2+zmienna3
Czy dobrze zrozumiałem, że do Memo1 zapisujesz łańcuch zależny od tego co masz w editach? Jeśli nie, to rozjaśnij to trochę :)

var
   zmienna, x : integer;
begin
   for x := 1 to 10 do
      if tab[x] = 1 then zmienna := zmienna + Edit1.Text
         else
            zmienna := zmienna + Edit2.Text;
   
   Memo1.Lines.Add(zmienna);
end;
0

zamiast 10 zmiennych, zadeklaruj jeszcze jedną tablice

var
Zmienne: array [1..10] of Integer;
I: Integer;

for I := 1 to 10 do
Zmienne[I] := FindComponent('Edit' + Tab[I]).Text;

Możesz tak robić dla dużej ilośći zmiennych, a kod się nie rozrośnie

0

Fajnie, że TomRiddle pomagasz, ale jak ktoś pisze w Newbie i pyta o podstawy to nie sugeruj mu błędnego kodu. Powinno być chyba raczek coś w stylu poniżej, a nie to co zaproponowałeś:

var
  I : integer;
  Tab, Zmienne : array[1..10] of Integer;
begin
  // Tutaj ustawienie wartości tablicy Tab, a później...
  for I := 1 to 10 do
    Zmienne[I] := StrToInt(TEdit(FindComponent('Edit' + IntToStr(Tab[I]))).Text);
  //...
end;

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