Министерство образования Российской Федерации
Дальневосточный Государственный Технический Университет
(ДВПИ имени В.В.Куйбышева)
Отчёт
по 2 лабораторной работе
на тему:
Изучение основ программирования Borland Delphi
Выполнил(и) студент(ы): группы Р-4011
Проверил:
Владивосток
2006
1. Содержание
1. Содержание…………………………………………………………………………..…………….2
2. Введение……………………………………………………………………………………………3
3. Описание работы программы……………………………………………………...……………4
4. Программный код…………………………………………………………………………………6
2. Введение
В данной лабораторной работе рассматриваются простые операторы на примере программы «Таймер».
Программа позволяет вести обратный отсчет для введенного интервала времени (часы, минуты, секунды).
3. Описание работы программы
Рассмотрим программу «Таймер». На рисунке показана главная форма приложения:
На форме расположены следующие компоненты:
· Label (Label1) (метка) служит для вставки в определенном месте формы фиксированной строки текста (не более 255 символов), который не может быть изменен пользователем программы. Необходимая строка текста помещается в свойство Caption данного компонента;
· Edit (Edit1) (поле редактирования) служит для отображения на форме редактируемой строки текста, т.е. пользователь может исправить отображаемый в данном компоненте текст, либо внести в поле собственную строку текста длиной не более 255 символов. Отображаемый в компоненте текст храниться в свойстве Text;
· Button (Button1, Button2, Button3, Button4, Button5) создает кнопку, которая представляет собой командную кнопку;
· GroupBox (GroupBox1) , этот элемент служит для объединения элементов , типа RadioButton иCheckBox, в функциональную группу;
· RadioButton (RadioButton1, RadioButton2) , в данной программе этот элемент позволят выбрать размерности вводимой величины;
· Timer (Timer1, Timer2) обеспечивает генерацию последовательности событий и служат для временной привязки программы;
· ProgressBar (ProgressBar1) данный элемент служит для наглядности работы разработанного приложения;
Работа «Таймера»:
Перед запуском таймера необходимо ввести числовое значение времени. При правильном вводе нужного интервала времени и нажатии кнопки «СТАРТ» таймер начинает обработку событий с учётом введённой информации; на окне приложения появляются дополнительные кнопки обработки событий:
СТОП - останавливает «Таймер», обнуляет «оставшееся время» и обнуляет полосочку ProgressBar .
ПАУЗА – (на самом деле это не одна, а две кнопки, появляющиеся поочерёдно, в зависимости от количества нажатий по ним) приостанавливается работа «Таймера», т.е. замирает ProgressBar и замираетпоказатель оставшегося времени. При повторном нажатии работа «Таймера» возобновляется (не со значений которые приложение имело в момент запуска, а с тех значений, которые оно имело на момент приостановки).
4. Программный код
unit laboratornaya2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Timer1: TTimer;
GroupBox1: TGroupBox;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button3: TButton;
Button4: TButton;
Timer2: TTimer;
Label1: TLabel;
Button5: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
объявляем необходимые переменные
var
Form1: TForm1;
ost:integer; k: integer;
implementation
{$R *.DFM}
нажатие на кнопку "Пуск(Пререзапуск)"
procedure TForm1.Button1Click(Sender: TObject);
присваиваем переменным тип, в зависимости от задач, которые они будут выполнять
var a : string; t: integer ;
begin
ProgressBar1.Max:=0;
присваиваем переменной значения из текстового поля
a:=edit1.text ;
t:=StrToIntDef(a,-1);
провеяем, не ввел ли пользователь некорректные значения
if t<1 then begin
beep;beep;beep;
edit1.setfocus;
end else begin
ProgressBar1.visible:=true;
button5.Visible := true;
button3.Visible := true;
if radiobutton1.checked then k:=1;
if radiobutton2.checked then k:=60;
Timer1.Interval:=t*1000*k;
ost:=timer1.Interval;
включаем компонент "Timer1" и "Timer2"
Timer2.enabled:=true ;
Timer1.enabled:=true ;
ProgressBar1.Max:=t*k;
ProgressBar1.Enabled:=True;
label1.Caption := FloatToStrF(t*k,ffNumber,7,0);;
end;
end;
нажатие кнопки "Закрыть программу"
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var i : integer;
begin
button5.Visible := false;
button4.Visible := false;
button3.Visible := false;
Timer1.enabled:=false;
Timer2.enabled:=false;
label1.Caption:='0';
ProgressBar1.StepBy(1);
beep;
end;
Обработка события генерируемого таймером
procedure TForm1.Button3Click(Sender: TObject);
begin
Timer1.enabled:=false;
Timer2.enabled:=false;
beep;
button3.visible:= false;
button4.Visible:= true;
end;
Обработка события, вспомогательным таймером
procedure TForm1.Timer2Timer(Sender: TObject);
var ost2:real;
begin
ost:=ost-timer2.interval;
ost2:=ost/1000 ;
if ost2<1 then timer2.Enabled :=false;
ProgressBar1.StepBy(1);
Вывод оставшегося интервала
label1.Caption:=FloatToStrF(ost2,ffNumber,7,0);
end;
procedure TForm1.Button4Click(Sender: TObject);
var d: string; dd : integer;
begin
d:=Label1.caption;
dd:=StrToIntDef(d,-1);
if dd<1 then begin
Timer1.enabled:=false;
Timer2.enabled:=false;
beep;
end else begin
timer1.Interval :=dd*1000;
Timer2.enabled:=true ;
Timer1.enabled:=true ;
end;
button4.visible:= false;
button3.Visible:= true;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
ProgressBar1.visible:=false;
button5.Visible := false;
button4.Visible := false;
button3.Visible := false;
Timer1.enabled:=false;
Timer2.enabled:=false;
label1.caption:='0';
//ProgressBar1.Max:=0;
beep;
end;
end.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.