Помощь - Поиск - Пользователи - Календарь
Полная версия: CheckBox в анкете
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
GrabbeR
Помогите доделать, пожалуйста!

1. Объявляем переменную типа byte;
2. При выборе любого чекбокса увеличивать ее на 1
3. Если чекбокс не выбран то соответственно +0 (не прибавлять)
4. Общие чекбоксы в переменную не записывать
5. Button2 - обнуление всех чекбоксов (якобы новая страница)
6. Button1 - показать результат (сумму всех значений для каждого чекбокса)

Что-то типа flag:=flag+1;

Например:
А=1
А+А=2
...
IUnknown
procedure TForm1.Button2Click(Sender: TObject);
var s, i : Integer;
begin
s := 0;
for i := 1 to 96 do
begin
if (i mod 16 <> 0) and
(FindComponent('Checkbox'+Inttostr(i)) as TCheckBox).Checked
then Inc(s);
end;
ShowMessage('Total = ' + IntToStr(s));
end;


Обнуление - либо аналогично, в цикле сбрасывать все чекбоксы от 1 до 96, либо гораздо более быстрым циклом:
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
for i := 1 to 6 do
begin
(FindComponent('Checkbox'+Inttostr(16 * i)) as TCheckBox).Checked := false;
end;
end;


Кстати,
   for i:=1 to 15 do
if CheckBox16.checked then
TCheckbox(FindComponent('Checkbox'+Inttostr(i))).checked:=true else
TCheckbox(FindComponent('Checkbox'+Inttostr(i))).checked:=false;
делать не обязательно. Можно сделать проще:
   for i:=1 to 15 do
TCheckbox(FindComponent('Checkbox'+Inttostr(i))).checked := CheckBox16.checked;

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.