unit sek_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Shape1: TShape;
Timer1: TTimer;
Edit1: TEdit;
Edit2: TEdit;
Label7: TLabel;
Label8: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure SowTime;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
hour, min, sec, timer : integer;// часы, мин, сек
// Сигнал от таймера
procedure TForm1.Timer1Timer(Sender: TObject);
begin
dec(timer);
min:= (timer – (timer div 3600)*3600) div 60;
sec:= timer mod 60;
Label1.Caption:=inttostr(timer div 3600)+'÷.'+inttostr(min)+'мин.'
+inttostr(sec)+'сек.';
if timer = 0 then
SowTime
end;
procedure TForm1.SowTime;
begin
if hour = 24 then hour := 0;
// минуты и секунды выводим двумя цифрами
if sec < 10 then
Label3.Caption := '0' + IntToStr(sec)
else
Label3.Caption := IntToStr(sec);
if min < 10 then
Label2.Caption := '0' + IntToStr(min)
else
Label2.Caption := IntToStr(min);
if hour < 10 then
Label1.Caption := '0' + IntToStr(hour)
else
Label1.Caption := IntToStr(hour);
end;
// Щелчек на кнопке пуск\стоп
procedure TForm1.Button1Click(Sender: TObject);
begin
if Timer1.Enabled then
begin
// Счет времени
Timer1.Enabled := False; // Остановить секундомер
Button1.Caption := 'Пуск';
Button2.Enabled := True; // Кнопка Сброс доступна
end
else begin
Timer1.Enabled:= true;
if timer = 0 then
begin
timer:= strtoint(Edit1.Text)*3600;
timer:= timer + strtoint(Edit2.Text)*60;
begin
// Секундомер стоит
Timer1.Enabled := True;// Пуск таймера
Button1.Caption := 'Стоп';
Button2.Enabled := False; // Кнопка Сброс не доступна
end;
end;
end;
// Щелчек на кнопки сброс
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Emabled := false;
// Индикатор в исходном состоянии
Edit1.Text := '0';
Edit2.Text := '0';
Label1.Caption := '00';
Label2.Caption := '00';
Label3.Caption := '00';
end;
end;
end.
Ребята, помогите разобраться с алгоритмом и найти ошибки. Пытаюсь написать самостоятельно таймер обратного отсчета. Конечно я изобритаю велоспед, но всетаки… Я только учусь и пытаюсь разобраться, но похоже ничего не выходит. Только одно исправишь, другое вылезает. Может есть другой вариант написания или укажите на мои ошибки. Компилирую и вылезает следующие.
Ошибки:
procedure TForm1.Button2Click(Sender: TObject);
[Error] sek_.pas(107): Statement expected but 'PROCEDURE' found
[Error] sek_.pas(109): Undeclared identifier: 'Emabled'
[Error] sek_.pas(117): '.' expected but ';' found
Есть идеи?
1 марта 2010 в 21:01
по-моему в самой посленей процедуре один end; лишний,
а вот здсь:
// Счет времени
Timer1.Enabled := False; // Остановить секундомер
Button1.Caption := 'Пуск';
Button2.Enabled := True; // Кнопка Сброс доступна
end
else begin
Timer1.Enabled:= true;
if timer = 0 then
begin
timer:= strtoint(Edit1.Text)*3600;
timer:= timer + strtoint(Edit2.Text)*60;
begin
// Секундомер стоит
Timer1.Enabled := True; // Пуск таймера
Button1.Caption := 'Стоп';
Button2.Enabled := False; // Кнопка Сброс не доступна
end;
end;
end;
у тебя либо непрописна процедура или второ бегин лишний, который стоит перед //Секундомер стоит, он как раз тебе эту ошибку выдал [Error] sek_.pas(107): Statement expected but 'PROCEDURE' found, что касается ошибки [Error] sek_.pas(109): Undeclared identifier: 'Emabled', то 'Emabled' пишется через n.
1 марта 2010 в 21:00
баланс begin-end-ов, остальное – всё компилятор написал
1 марта 2010 в 20:04
.Как зачем..таймер не работает..сбрасываю все по нолям..
1 марта 2010 в 20:02
в коде, где "// Щелчек на кнопки сброс" слово Emabled. Зачем оно тебе?