Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
66
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

Var // раздел переменных модуля Unit1

X:Integer; // объявление внешней переменнойX- загадываемое число

procedure TForm1.Edit1Change(Sender: TObject); // изменение поля Edit1

Varv,e:Integer;//v‑ значения числа после перевода,e‑ код ошибки (0-нет)

Begin Val(Edit1.Text,v,e); // перевод числа из поля Edit1.Text в V (п. 1.7.5)

Button1.Enabled:=e=0; // условие доступности Button1

Button2.Enabled:=False; // блокировка кнопки Button2 (Попытка)

Edit2.Enabled:=e=0 // условие доступности поляEdit2

end;

procedure TForm1.Edit2Change(Sender: TObject); // изменение поля Edit2

Varv,e:Integer; //v‑ значения числа после перевода,e‑ код ошибки (0-нет)

Begin

Val(Edit2.Text,v,e); // перевод числа из поляEdit2.TextвV

Button2.Enabled:=e=0; // условие доступностиButton2

end;

procedure TForm1.Button1Click(Sender:TObject);//кнопка «Загадай число»

varv,e:Integer; //v‑ значения числа после перевода,e‑ код ошибки (0-нет)

begin Val(Edit1.Text,v,e); // перевод числа из поля Edit1.Text в V

Randomize;X:=random(v); // формирование случайного числаX

Edit1.Enabled:=False; Button2.Enabled:=True; Edit2.Enabled := True;

Edit2.SetFocus; // установка фокуса на полеEdit2

End;

procedure TForm1.Button2Click(Sender: TObject); // кнопка «Попытка»

Varv,e:Integer; //v‑ значения числа после перевода,e‑ код ошибки (0-нет)

Begin Val(Edit2.Text,v,e); // перевод числа из поля Edit2.Text в V

If v>X then Edit3.text:='Перелет' else

If v<X then Edit3.text:='Недолет' else Edit3.text:='Вы угадали';

Edit4.Text:=IntToStr(StrToInt(Edit4.Text)+1);//число попыток увеличить на 1

Edit2.SetFocus; // установка фокуса на поле Edit2

end;

procedure TForm1.Button3Click(Sender: TObject); //кнопка «Очистить»

begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:='0';

Edit1.Enabled:=True; // разблокировка поля ввода числаN

Button1.Enabled:=False; // блокировка кнопки «Загадай число»

Button2.Enabled:=False; // блокировка кнопки «Попытка»

Edit1.SetFocus; // установка фокуса на полеEdit1

X:= 0 // загадываемое число первоначально равно нулю

end;

procedure TForm1.Button4Click(Sender: TObject); // кнопка «Выход»

begin Close; end;

Для формы в качестве обработчика события OnActivate укажем имя процедуры Button3Click ‑ обработки события OnClick кнопки Очистить.

8.1.2. Секундомер (Delphi)

Составим программу вывода секундомера (рис. 8.1.2.1).

Рис. 8.1.2.1. Вид формы

Разместим компоненты на форме. Зададим для таймера значение свой­ст­ву Interval, например, 100 миллисекунд (точность секундомера).

Приведем тексты процедур программы.

Var // раздел переменных модуля Unit1

h,m:Integer; i,s:real; // внешние переменные

procedure TForm1.Button1Click(Sender: TObject); // кнопка «Старт»

begin Timer1.Enabled:=True; // запускаем таймер

i:=Timer1.Interval/1000; // значение точности измерения

Button1.Enabled:=False; Button2.Enabled:=True; Button3.Enabled:=False;

end;

procedure TForm1.Button2Click(Sender: TObject); // кнопка «Финиш»

begin Timer1.Enabled:=False; // останавливаем таймер

Button1.Enabled:=True; Button2.Enabled:=False; Button3.Enabled:=True;

end;

procedure TForm1.Button3Click(Sender: TObject); // кнопка «Сброс»

beginh:=0;m:=0;s:=0; // сброс значений счетчиков часов, минут, секунд

label1.Caption:=IntToStr(h); label2.Caption:=IntToStr(m);

label3.Caption:=FloatToStr(s);

Button1.Enabled:=True; Button2.Enabled:=False; Button3.Enabled:=False;

end;

procedure TForm1.Button4Click(Sender: TObject); // кнопка «Выход»

begin Form1.Close end;

procedure TForm1.Timer1Timer(Sender: TObject); // обработка таймера begin s:=s+i; // увеличение числа секунд

if s>=60 then begin s:=0; m:=m+1; if m>=60 then begin m:=0;h:=h+1; end end;

label1.Caption:=IntToStr(h); label2.Caption:=IntToStr(m);

label3.Caption:=FloatToStr(s); // вывод числа часов, минут и секунд

end;

Для формы в качестве обработчика события OnActivateукажем имя процедурыButton3Click‑ обработки событияOnClickкнопкиСброс.