Odwołanie do ręcznie stworzonego obiektu

0

Help me!

Mam taką funkcję

function TForm1.make(ile:integer):integer;
begin
for i:=0 to ile do
begin
l:=l+22;
inc(u);
nm:='kwota' + inttostr(u);
Edit := TEdit.Create(Self);
Edit.Parent := Self;
Edit.Name:=nm;
Edit.Text:='0';
Edit.Visible:=true;
Edit.Left:=50;
Edit.Top:=l;
end;
end;

tworzę tutaj np. 34 obiekty Edit

Jak zapisać do zmiennej wartość kwota23.Text,
wcześniej jej nie deklarując?

0

jest coś jak Components[Index], wykorzystując pętle i odpowiednie tagi można to spokojnie zrobić (kodu nie podam za nic, pomyśl jak zrobić, poza tym było na forum kilkaset takich pytań)

0

Mozna takze nieco prosciej (przynajmniej ja tak wole)

Tworzenie

Var
TablicaObiektow: Array of TEdit;
Ile, i: integer;
begin
SetLength (TablicaObiektow, ile-1);
for i=0 to ile-1 do
begin
TablicaObiektow[i] := TEdit.Create(Self);
end;
end;

Zczytywanie danych

Var
Tekst: = String;
For i := 0 to ile - 1 do
begin
Tekst := Teskt + ' ' + TablicaObiektow[i].Text;
end;

Przerob to na swoje potrzeby tylko pamietaj aby przy wyjsciu z programu np na (bodajze) OnClose formatki zlikwidowac komponennty np przez Free (zalecane) po czym zwolnij caly array. No i oczywiscie inicjalizuj swoje komponenty po utworzeniu.

0

A oto jeszcze jeden sposób:

TEdit(FindComponent('Kwota32')).Text := 'hello';

0

A czy w tym celu nie treba nadac nazwy takiemu komponentowi po stworzeniu??? Konkretnie np NowyKomponent.Name := 'Kwota10'

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