Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 13:21   #1
Merlin88
 
Регистрация: 27.03.2013
Сообщений: 6
По умолчанию Компонент Timer в программе тесте

Помогите пожалуйста!!! Я написал программу тест, теперь нужно поставить таймер с обратным отсчётом времени. Когда время закончится надо чтобы программа выдала сообщение ваше время истекло и вывел результат
Вот код но таймер не виден
procedure TForm2.FormCreate(Sender: TObject);
var
i:integer;
begin
i:=300000;
Timer1.Enabled:=true;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
var
i:integer;
begin
i:=i-1;
if i=0 then
begin
Timer1.Enabled:=false;
ShowMessage('Ваше время истекло');
Button1.Click;
end;
end;

end.
как сделать так чтобы таймер был виден после запуска теста

Последний раз редактировалось Merlin88; 27.03.2013 в 14:11.
Merlin88 вне форума Ответить с цитированием
Старый 27.03.2013, 13:45   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

и что не получается то? Не можете таймер мышкой перетащить на форму?
Или не знаете, как таймеру временной интервал задать/таймер запустить?
Или не знаете, как обратный отсчёт организовать?
Или не знаете, как сообщение выдать - ваше время истекло?

в чём сложность то?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.03.2013, 14:02   #3
Merlin88
 
Регистрация: 27.03.2013
Сообщений: 6
По умолчанию

какой код написать чтобы всё работало
Merlin88 вне форума Ответить с цитированием
Старый 27.03.2013, 14:47   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

пример

исходники: TmerBackExample.rar

исполняемый файл: TmerBackExample_exe.rar

суть (код):
Код:
type
  TForm3 = class(TForm)
    Timer1: TTimer;
    lbQuestion: TLabel;
    edAnswer: TEdit;
    btCheckAnswer: TButton;
    lbTimeRemain: TLabel;
    btStart: TButton;
    procedure btStartClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ShowRemainTime;
    procedure Timer1Timer(Sender: TObject);
    procedure btCheckAnswerClick(Sender: TObject);
  private
    FinishTime : TDateTime;
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation
uses DateUtils;

{$R *.dfm}

procedure TForm3.ShowRemainTime;
var dDiff : TTime;
begin
  dDiff := FinishTime - now();
  lbTimeRemain.Caption := TimeToStr(dDiff);
end;

procedure TForm3.Timer1Timer(Sender: TObject);
begin
  if now()<FinishTime then
    ShowRemainTime
  else begin {баста! время истекло}
     Timer1.Enabled := false;
     btCheckAnswer.Enabled := false;
     lbTimeRemain.Caption := 'Ваше время истекло!';
     ShowMessage('Ответ не был дан!');
  end;

end;

procedure TForm3.btCheckAnswerClick(Sender: TObject);
begin
  Timer1.Enabled := false;
  btCheckAnswer.Enabled := false;
  btCheckAnswer.Visible := false;
  if trim(edAnswer.Text)='6' then begin
    lbTimeRemain.Font.Color := clGreen;
    lbTimeRemain.Caption := 'ПРАВИЛЬНО!'
  end
  else
    lbTimeRemain.Caption := 'НЕВЕРНО :(!!'
end;

procedure TForm3.btStartClick(Sender: TObject);

begin
  btStart.Enabled := false;
  lbQuestion.Visible := true;
  edAnswer.Visible := true;
  btCheckAnswer.Visible := true;
  FinishTime := now();
  {время на тест 2 минуты 15 секунд}
  FinishTime := IncMinute(FinishTime, 0); {0 минут  - тут можно поставить столько минут, сколько надо}
  FinishTime := IncSecond(FinishTime, 15); {15 секунд}
  ShowRemainTime;
  lbTimeRemain.Visible := true;
  Timer1.Interval := 1000; {каждую секунду обновлять время}
  Timer1.Enabled := true; {запустили таймер}
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
  Timer1.Enabled := false;
  lbQuestion.Visible := false;
  edAnswer.Visible := false;
  lbTimeRemain.Visible := false;
  btCheckAnswer.Visible := false;
end;


end.

Последний раз редактировалось Serge_Bliznykov; 27.03.2013 в 14:50.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Просьба помочь с условием в тесте. Ветас Помощь студентам 0 26.12.2010 20:19
Ошибка в тесте grom333 Помощь студентам 1 09.04.2010 16:57
Обработчик ответа в тесте [pascal] kakawkin Помощь студентам 1 25.11.2009 22:34
Компонент наподобие Listview в программе Молескинсофт Clone Remover 2.8 Ecosasha Компоненты Delphi 3 04.08.2009 15:02
где найти стандартный компонент Timer AndreiFX Microsoft Office Excel 2 17.11.2008 08:53