1. Объявляем переменную типа byte; 2. При выборе любого чекбокса увеличивать ее на 1 3. Если чекбокс не выбран то соответственно +0 (не прибавлять) 4. Общие чекбоксы в переменную не записывать 5. Button2 - обнуление всех чекбоксов (якобы новая страница) 6. Button1 - показать результат (сумму всех значений для каждого чекбокса)
Что-то типа flag:=flag+1;
Например: А=1 А+А=2 ...
IUnknown
15.03.2012 18:48
procedure TForm1.Button2Click(Sender: TObject);
var s, i : Integer;
begin
s := 0;
for i := 1to96dobeginif (i mod16 <> 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;
beginfor i := 1to6dobegin
(FindComponent('Checkbox'+Inttostr(16 * i)) as TCheckBox).Checked := false;
end;
end;
Кстати,
for i:=1to15doif CheckBox16.checked then
TCheckbox(FindComponent('Checkbox'+Inttostr(i))).checked:=true else
TCheckbox(FindComponent('Checkbox'+Inttostr(i))).checked:=false;
делать не обязательно. Можно сделать проще:
for i:=1to15do
TCheckbox(FindComponent('Checkbox'+Inttostr(i))).checked := CheckBox16.checked;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.