Помощь - Поиск - Пользователи - Календарь
Полная версия: CheckBox в анкете
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
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;

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