singlepost

В чем ошибка? << На главную или назад  

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;

80 ответов в теме “В чем ошибка?”

  1. 13
    Руслан Калашников ответил:

    "Ctrl-Shift-C"-закончить метод (если он описан – создать шаблон для реализации,если есть реализация – объявить метод)

  2. 12
    Владимир Медведев ответил:

    >>>нажать Ctrl+Shift+C
    Если мне не изменяет память, это только для функций – членов класса.

  3. 11
    Руслан Калашников ответил:

    для того чтобы избежать ошибок в создании процедур, функций и т.д. то после того как объявили ее нажать Ctrl+Shift+C и процедура будет создана…

  4. 10
    Алексей Порынов ответил:

    Владимир Медведев вы правы..
    Спасибо други и коллеги=))))
    Ошибка была исправил
    procedure TForm1.ShowTime;
    var
    buf: string[20];
    begin

  5. 9
    Дмитрий Михайлов ответил:

    Зачем вообще эта процедура? Используй FormatFloat…

  6. 8
    Владимир Медведев ответил:

    синтаксис обьявления класса:
    type className = class (ancestorClass)
    //memberList
    end;

    >>>TForm1 = class(TForm) а не нужна ;?
    ';' не нужна

  7. 7
    Dani Nnnichhh ответил:

    TForm1 = class(TForm) а не нужна ;?

  8. 6
    Владимир Медведев ответил:

    [#4] Данила Rat's Wolf Чикалов
    >>>кавычки – procedure ShowTime();
    Эти символы '(' и ')' теперь именуются кавычками?

  9. 5
    Владимир Медведев ответил:

    Роман Воробец прав. необходимо исправить
    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
    ……………………………….

  10. 4
    Данила Чикалов ответил:

    нет, это как раз точно не обязательно. такая структура пригодится для вызова из другой формы – а когда форма одна, в этом нет смысла. хотя работать прога не перестанет :)

  11. 3
    Данила Чикалов ответил:

    когда писал на delphi, точно использовал и в функциях и в процедурах кавычки – procedure ShowTime(); – может, в этом проблема?

  12. 2
    Алексей Злобин ответил:

    В названии темы.

  13. 1
    Роман Воробец ответил:

    procedure TForm1.ShowTime;
    var

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.