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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2008, 20:05   #1
Aboltus
Заблокирован
Пользователь
 
Регистрация: 28.07.2008
Сообщений: 20
По умолчанию Как сделать отсчет времени?

Кто знает пожалуйста напишите как сделать отсчет времени в обратном порядке. Я хочу в своей программе на кнопке сделать отсчет времени чтобы после окончания там допустим минуты совершалось действие. Но я уже придумал что там название кнопки будет прописываться вместе со временем(цифрмаи из поля ввода). Теперь не могу сделать так чтобы в поле ввода Edit шел отсчет времени ну то есть менялись цифры 60,59,58,57 ... .Помогите плиззз!(Таймерами пользоваться могу)
Aboltus вне форума Ответить с цитированием
Старый 29.07.2008, 20:19   #2
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Так если -
Цитата:
(Таймерами пользоваться могу)
В чем проблема? Отнимай в таймере от переменной-счетчика(изначально к примеру счетчик=60) единицу каждую секунду. И в том же таймере присваивай эдиту 'текст'+переменная-счетчик (сначала переведи число в строку - IntToStr). Как только переменная-счетчик стала равной нулю, останавливай счетчик и включай сирену.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 29.07.2008, 20:24   #3
Aboltus
Заблокирован
Пользователь
 
Регистрация: 28.07.2008
Сообщений: 20
По умолчанию

Плиззз напишите это в коде
Aboltus вне форума Ответить с цитированием
Старый 29.07.2008, 20:25   #4
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Лампочка

Вот навоял:
Код:
unit Tims;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
   Sek :Integer;
   MaxSek :Integer;
   Timer :TTimer;
   Procedure TimerOn(Sender :TObject);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Procedure TForm1.TimerOn(Sender :TObject);
Var T :Integer;
begin
 T := MaxSek-Sek;
 Button1.Caption := Format('Осталось - %d:%d', [T div 60, T mod 60]);
  Inc(Sek);
 If T<=0 then
 begin
 Button1.Caption := 'Выполнено';
 (Sender as TTimer).Enabled := False;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Sek := 0; //счётчик
 MaxSek := 12; //Время отсчёта в Секундах 120Сек=2Мин
 Timer :=TTimer.Create(Self);
 Timer.Interval:=1000;
 Timer.Enabled := False;
 Timer.OnTimer := TimerOn;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Timer.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Timer.Enabled := True;
end;

end.
Alter вне форума Ответить с цитированием
Старый 29.07.2008, 20:42   #5
Aboltus
Заблокирован
Пользователь
 
Регистрация: 28.07.2008
Сообщений: 20
По умолчанию

че то Borland Development Studio не принимает Procedure TForm1.TimerOn(Sender :TObject);
Aboltus вне форума Ответить с цитированием
Старый 29.07.2008, 20:44   #6
Aboltus
Заблокирован
Пользователь
 
Регистрация: 28.07.2008
Сообщений: 20
По умолчанию

в чем прикол?
Aboltus вне форума Ответить с цитированием
Старый 29.07.2008, 20:47   #7
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

в разделе Type пишешь
Код:
procedure TimerOn(Sender:TObject);
Манжосов Денис :) вне форума Ответить с цитированием
Старый 29.07.2008, 20:49   #8
Aboltus
Заблокирован
Пользователь
 
Регистрация: 28.07.2008
Сообщений: 20
По умолчанию

Спасибо Дениска!!!
Aboltus вне форума Ответить с цитированием
Старый 29.07.2008, 22:56   #9
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Цитата:
Сообщение от Aboltus Посмотреть сообщение
че то Borland Development Studio не принимает Procedure TForm1.TimerOn(Sender :TObject);
Если процедуры, функции, перемееные и прочее прописывается в:

Код:
type  
  TXxxx = class(TForm)   
    {здесь}
  private  
    {здесь}  
    { Private declarations }  
  public  
    {здесь}
    { Public declarations }  
  end;
то процедуры и функции и т.п. записывают так(приписывая класс в котором оно описанны):
Код:
function  TXxxx.XXX(A :Tx):Tx;
procedure TXxxx.XXXXX(A :Tx);
Я понятно объяснил?
Alter вне форума Ответить с цитированием
Старый 30.07.2008, 22:19   #10
Hassan
 
Регистрация: 05.07.2008
Сообщений: 3
По умолчанию

вот предлагаю вам вот :

Код:
 var Form1: TForm1;
  Seconds,Minutes,Hours:Integer;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Seconds:=Seconds-1;
if(seconds<0) Then
Begin
Minutes:=Minutes-1;
Seconds:=59;
end ;
if (minutes<0) Then
Begin
Hours:=Hours-1;
Minutes:=59;
end ;
If
((hours=0) And
(minutes = 0) And (seconds = 0))
Then Timer1.Enabled:=False;
Label1.Caption:=IntToStr(Seconds);
Label2.Caption:=IntToStr(Minutes);
Label3.Caption:=IntToStr(Hours);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Seconds:=5;   Minutes:=2; Hours:=1;
end;
если не понятно дайте знать.


________
А я предлагаю Вам код оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

И в будущем не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 24.05.2011 в 22:28.
Hassan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обратный отсчет в прогрессбар Stanislav Общие вопросы Delphi 3 09.01.2008 16:49
Как сделать имитацию хода даты и времени в программе? Bill Gates Общие вопросы Delphi 1 06.01.2008 15:21
Как сделать имитацию хода даты и времени в программе? Bill Gates Общие вопросы Delphi 1 05.01.2008 22:42
Отсчет времени в С Raptor Помощь студентам 13 29.12.2007 16:32
Как сделать отсчет дней от заданной даты в Excel? ru16 Microsoft Office Excel 1 22.11.2007 11:13