Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
procedure TForm1.FormCreate (Sender: TObject);
Begin
s:= False;
end;
procedure TForm1.CheckBox1Click (Sender: TObject);
var Index, i, num: Integer;
e: Boolean;
Begin
if s then Exit; {Если программа снова вызовет процедуру обработки, будет выполнен оператор Exit – немедленный выход из процедуры}
s:= True;
for Index: = 0 to 4 do {Оператор break прерывает выполнение цикла}
if Sender = Controls[i] then break; {Определяется, какой флажок был переключен}
{Когда выполнение цикла завершается, значение переменной Index соответствует переключенному флажку}
{Если значение свойства Checked (Установлен) равно False (Нет), флажок сброшен, а если True (Да) – установлен. Номер флажка в массиве определяется переменной Index}
if not (Controls[Index] as TCheckBox).Checked
then (Controls[Index] as TCheckBox).Checked:= True {Условие выполнено, если флажок сейчас сброшен, т.е. до щелчка он был установлен}
else {Программирование изменения состояния «дополнительных флажков». Текущий флажок уже переключен}
Begin
num:= Index + 1; {Переключение двух следующих флажков}
if Index = 4 then num:= 0; {Изменение состояния нулевого флажка}
{Состояние флажка надо поменять на противоположное}
(Controls[num] as TCheckBox).Checked:= not (Controls[num] as CheckBox).Checked;
{Выполнение проверки на выход за пределы массива}
num:= num + 1; if Index = 3 then num:= 0;
(Controls[num] as TCheckBox).Checked:= not (Controls[num] as CheckBox).Checked;
end;
e:= True; {Головоломка решена, если установлены все пять флажков}
for i:= 0 to 4 do
e:= e and (Controls[i] as TCheckBox).Checked;
{После цикла значение останется равным True, если все флажки установлены}
if e then {Головоломка решена}
for i:= 0 to 4 do
Begin
(Controls[i] as TCheckBox).Caption:= ‘Победа!’;
(Controls[i] as TCheckBox).Enabled:= False; {Отключение флажков}
end;
s:= False;
end;
Дата публикования: 2014-11-02; Прочитано: 267 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!