IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> CheckBox в анкете
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Помогите доделать, пожалуйста!

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

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

Например:
А=1
А+А=2
...


Прикрепленные файлы
Прикрепленный файл  Anketa.zip ( 203.05 килобайт ) Кол-во скачиваний: 289


--------------------
Чем больше я узнаю, тем больше понимаю, что ничего не знаю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


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;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 2:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name