Zmieniane numeru buttonu petla for

0

Witam!

Szukalem dosyc dlugo czegos podobnego na tym forum i niestety nie znalazlem... jesli to juz bylo prosze o odeslanie mnie do odpowiedniego tematu.

Mam taki problem w delphi:
nie wiem jak zrobic abym mogl zmieniac rozne parametry np buttonow w
nastepujacy sposob:
for i:=1 to 4 do button(i tutaj wlasnie nr buttona ktorym chce teraz operwac
i ktory jest w danej chwili rowny zmiennej i ).caption:=i;

0
TButton(FindComponent('Button'+IntToStr(I))).Caption:=':-)';
0

Albo umieścić buttony w tablicy i się do nich odwoływać

0

Możesz też zrobić coś takiego: w Button'ach zmienić pole Tag (np na wartość 1), dzięki temu pogrupujesz wszystkie, a potem:

//Ten przykład wymaga Formy z kilkoma Button'ami, tym, które chcesz uwzględnić, zmień Tag na wartość 1.

var i:integer;
begin
for i:=0 to ComponentCount-1 do
  if (Components[i] is TButton) and (Components[i].Tag=1) then
    (Components[i] as TButton).Caption:=inttostr(i);
end;
0

Albo umieścić buttony w tablicy i się do nich odwoływać

Nie widzę potrzeby gdyż Szymek podał już rozwiązanie - ale gdybyś tak chciał to też żaden problem. Tworzysz A: Array of TButton; i przypisujesz

A[4] := Button4;

Pamiętaj, że nie kopiujesz klas tylko wskaźniki do nich.

0

Podał, ale w jego rozwiązaniu buttony muszą się kolejno nazywać: Button1, Button2 itd...

0

A czy nie o to chodziło?

0

Wow..jestem zaskoczony tym, ze tak szybko dostalem odpowiedz. Oto mi wlasnie chodzilo - dzieki wielkie!

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