Zmienna jako nazwa kontrolki

0

Witam !

Mam pytanie na które sam nie potrafię odpowiedzieć.

Mianowicie czy można uzależnić nazwy kontrolek np. Edit1, Edit2 .. itd
od zmiennej.

Obrazowo mówiąc chciałbym aby nazwa każdej z kontrolek Edit powstała
w zależności od zmiennej 'i' , która może przyjmować wartości
od 1 do n

Nie wiem czy się jasno wyraziłem ?

Tymczasem!

0

Alez oczywiscie!
Nie wiem, czy Cie dobrze zrozumialem, ale chodzi Ci chyba o:

procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
begin
I := 2503;
Edit1.Name := 'Edit' + IntToStr(I);
end;

0

Nie do końca, gdyż to co napisałeś jest oczywiste ! Natomiast mnie
interesuje, czy mogę edytować kolejne kontrolki Edit w
pętli a ich nazwy zmeniałyby się w zalezności od zmiennej 'I'
np.

For I:=1 to 10 do
begin
Edit[I].text:='xxxxx'; //z tym że ta linia jest niepoprawna
........
end;

0

A mozesz napisac do czego to ma sluzyc?
Mam wrazenie, ze mozna to rozwiazac jakos inaczej. Niestety siedze teraz w szkole i na moim kompie Delphi padlo, i nie moge sprawdzic co i jak.
Nie pamietam tez czy wlasciwosc Name nie jest czasem tylko do odczytu... hm.. nie pamietam :-/
Napisz cos wiecej to moze cos poradzimy.

0

Nie do końca, gdyż to co napisałeś jest oczywiste ! Natomiast mnie
interesuje, czy mogę edytować kolejne kontrolki Edit w
pętli a ich nazwy zmeniałyby się w zalezności od zmiennej 'I'
np.

For I:=1 to 10 do
begin
Edit[I].text:='xxxxx'; //z tym że ta linia jest niepoprawna
........
end;

Pisze z glowy, moga byc bledy

for i:=0 to Pred(Form1.ComponentCount) do
if Form1.Components[i] is TEdit then
(Form1.Components[i] as TEdit).Text:='xxx';

jesli musisz rozrozniac Edity (np rozne Text dla roznych Editow) uzyj wlasiwosci Tag.

0

Dzięki za podpowiedzi, ale to chyba nie to.

Co do pytania pomocniczego MatroX'a

Do czego to ma służyć ?

Do edycji dużej ilości różnych kontrolek typu Edit.text i dlatego
chciałem wykorzystać pętlę. Do każdej kontrolki wpisywane maja być różne dane !

0

Do edycji dużej ilości różnych kontrolek typu Edit.text i dlatego
chciałem wykorzystać pętlę. Do każdej kontrolki wpisywane maja być różne dane !

No to w czym problem? Powiedzmy ze dane do wpisania masz w tablicy Dane[0..LiczbaEditow-1]. Kazdemu Editowi nadajesz inna wartosc wlasciwosci Tag od zera do liczbaEditow-1.

i potem

for i:=0 to Pred(Form1.ComponentCount) do
if Form1.Components[i] is TEdit then
(Form1.Components[i] as TEdit).Text:=Dane[Form1.Components[1].Tag];

Mozesz tez zrobic tak (stworzyc Edity dynamicznie)

var
Pola : array [0..15] of TEdit;

w OnCreate formy

for i:=0 to 15 do
begin
Pola[i]:=TEdit.Create; albo Create(Self) , nie pamietam
Pola[i].Left:=
Pola[i].Top:=
i ustawiasz wszystkie potzrben wlasciwosci

a potem tam gdzie trzeba dajesz petelke i odwolujesz sie Pola[i]

PS. Nie zapomnij o zwolnieniu Edytow przy zamykaniu Formy!!!

0

Dzięki pq !!!!

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