Delphi - pytanie odnośnie checkboxow


(mohames) #1

Witam, mam program w którym znajduje się 30 checkboxów. W każdym z nich muszę sprawdzać wartość, a gdy wartość jest spełniona ma coś przypisać do tablicy. Pytanie brzmi, czy jest jakaś mozliwość aby to zrobić w pętli? coś ala CheckboxQ gdzie Q = 0..30


(floyd) #2

Oczywiście, że jest to możliwe. Każdy checkbox musi mieć tę samą nazwę z indexem - checkbox(0), checkbox(1) .itd. Najprościej otrzymywać takie checkboxy metodą kopiuj-->wklej. Kolejne indexy dodane zostaną automatycznie.

Potem tworzysz pętlę w której sprawdzasz wartości poszczególnych checkoboxów instrukcją 'if'.


(mohames) #3

nie do końca rozumiem. Checkboxy owszem, mają indeksy, ale nie takie checkbox(0), checkbox(1), tylko checkbox1, checkbox2.

for i:=1 to 3 do

Checkbox1.Checked=true;

Jakbym miał niby to przerobić, żeby to działało?


(floyd) #4

checkbox1, checkbox2 to są różne nazwy, nawet jeśli występują tu cyfry, a nie ta sama nazwa z różnymi indexami.Tak jak napisałem wcześniej skopiuj takiego checkbox1, a potem wklej, to program powinien się zapytać czy utworzyć nową nazwę, jęśli nie, to nadane zostaną indexy:

checkbox1(0), checkbox1(1) itd. oczywiście nazwę(name) można sobie zmienić na dowolną. indexy można też wprowadzać ręcznie we właściwościach checkboxa. jeżeli nazwy będą z indeksowane to będzie można pisać:

for i:=1 to 3 do

Checkbox1(i).Checked=true;


(Simplex111) #5

Krótko:

for i:= 1 to 3 do

  (FindComponent('CheckBox' + IntToStr(i)) as TCheckBox).Checked:= true;

(mohames) #6

Dzięki wielkie ;d teraz to zrozumiałem :slight_smile: