unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Timer1: TTimer;
Label3: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ShowTime;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
min: integer;
sec: integer;
implementation
{$R *.dfm}
procedure ShowTime;
var
buf: string[20];
begin
if min < 10 then
buf := '0' + IntToStr(min) + ':'
else
buf := IntToStr(min) + ':';
if sec < 10 then
buf := buf + '0' + intToStr(sec)
else
buf := buf + IntToStr(sec);
Form1.Label3.Caption := buf;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
sec := sec – 1;
ShowTime;
if (min = 0) and (sec = 0) then
begin
Timer1.Enabled := False;
ShowMessage('Заданный интервал истек!');
Button1.Caption := 'Пуск';
Label3.Visible := False;
Label1.Visible := True;
Edit1.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
exit;
end;
if (sec = 0) and (min > 0) then
begin
sec := 60;
min := min – 1;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Form1.Timer1.Enabled then
begin
Timer1.Enabled := False;
Button1.Caption := 'Пуск';
Label3.Visible := False;
Label1.Visible := True;
Edit1.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
end
else
begin
min := StrToInt(Edit1.Text);
sec := StrToInt(Edit2.Text);
if (sec = 0) and (min = 0) then
begin
ShowMessage('Надо заать интервал!');
exit;
end;
Timer1.Enabled :=True;
Label1.Visible := False;
Edit1.Visible := False;
Label2.Visible := False;
Edit2.Visible := False;
Label3.Visible := True;
Button1.Caption := 'Стоп';
ShowTime;
end;
end;
end.
При компиляции, выдает ошибку
в
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Timer1: TTimer;
Label3: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ShowTime;
в процедуреprocedure ShowTime;
27 февраля 2010 в 11:04
"Ctrl-Shift-C"-закончить метод (если он описан – создать шаблон для реализации,если есть реализация – объявить метод)
27 февраля 2010 в 9:03
>>>нажать Ctrl+Shift+C
Если мне не изменяет память, это только для функций – членов класса.
27 февраля 2010 в 0:05
для того чтобы избежать ошибок в создании процедур, функций и т.д. то после того как объявили ее нажать Ctrl+Shift+C и процедура будет создана…
26 февраля 2010 в 0:02
Владимир Медведев вы правы..
Спасибо други и коллеги=))))
Ошибка была исправил
procedure TForm1.ShowTime;
var
buf: string[20];
begin
25 февраля 2010 в 23:02
Зачем вообще эта процедура? Используй FormatFloat…
25 февраля 2010 в 22:03
синтаксис обьявления класса:
type className = class (ancestorClass)
//memberList
end;
>>>TForm1 = class(TForm) а не нужна ;?
';' не нужна
25 февраля 2010 в 22:02
TForm1 = class(TForm) а не нужна ;?
25 февраля 2010 в 22:01
[#4] Данила Rat's Wolf Чикалов
>>>кавычки – procedure ShowTime();
Эти символы '(' и ')' теперь именуются кавычками?
25 февраля 2010 в 22:00
Роман Воробец прав. необходимо исправить
Procedure ShowTime;
на
Procedure TForm1.ShowTime;
А вообще неплохо бы в вопросе приводить текст ошибки:
[Error] Unit1.pas(20): Unsatisfied forward or external declaration: 'TForm1.ShowTime'
Для этого выделяеш эту надпись в окне messeges и жмеш Ctrrl+C, потом Ctrrl+V в текст вопроса.После этого вероятность получить ответ по сабжу значительно возрастает.
PS. Исправлять нужно только в разделе implementation. Должно получиться:
Procedure TForm1.ShowTime;
Var
buf: String[20];
Begin
If min < 10 Then
……………………………….
25 февраля 2010 в 22:00
нет, это как раз точно не обязательно. такая структура пригодится для вызова из другой формы – а когда форма одна, в этом нет смысла. хотя работать прога не перестанет
25 февраля 2010 в 21:05
когда писал на delphi, точно использовал и в функциях и в процедурах кавычки – procedure ShowTime(); – может, в этом проблема?
25 февраля 2010 в 21:02
В названии темы.
25 февраля 2010 в 20:05
procedure TForm1.ShowTime;
var
…