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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2009, 15:28   #1
mish@
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 78
Радость Таймер на delphi

Привет всем!!!не можете ли вы подсказать как зделать самый элементарный таймер который будет работать на время указанное в исходнике. и по окончанию этого времени остановил какоенибудь деиствие. таимер без всяких форм эидитов и т.д
mish@ вне форума Ответить с цитированием
Старый 13.04.2009, 15:45   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Внизу этой страницы есть "Похожие темы".
Смотрел ?
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 13.04.2009, 15:46   #3
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию

Код:
unit Unit1;

interface

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

const
  TimerID = WM_USER + 1;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    procedure WMTimer(var Msg: TWMTimer); message WM_TIMER;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  n: Integer = 0;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetTimer(Handle, TimerID, 1000, nil);
end;

procedure TForm1.WMTimer(var Msg: TWMTimer);
begin
  if Msg.TimerID = TimerID then

    if n <> 10 then
    begin
      Inc(n);
      Caption := Format('Таймер запущен. %d', [n]);
    end
    else
    begin
      KillTimer(Handle, TimerID);
      Caption := 'Таймер остановлен';
    end;

end;

end.
NieL вне форума Ответить с цитированием
Старый 15.01.2010, 03:05   #4
Lifefine
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 93
По умолчанию

Цитата:
Сообщение от NieL Посмотреть сообщение
Код:
unit Unit1;

interface

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

const
  TimerID = WM_USER + 1;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    procedure WMTimer(var Msg: TWMTimer); message WM_TIMER;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  n: Integer = 0;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetTimer(Handle, TimerID, 1000, nil);
end;

procedure TForm1.WMTimer(var Msg: TWMTimer);
begin
  if Msg.TimerID = TimerID then

    if n <> 10 then
    begin
      Inc(n);
      Caption := Format('Таймер запущен. %d', [n]);
    end
    else
    begin
      KillTimer(Handle, TimerID);
      Caption := 'Таймер остановлен';
    end;

end;

end.
а откуда это взять
Код:
  procedure WMTimer(var Msg: TWMTimer); message WM_TIMER;
. Заранее большое спасибо!
Lifefine вне форума Ответить с цитированием
Старый 15.01.2010, 03:12   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
а откуда это взять
представляете самим написать

Цитата:
Код:
const
  TimerID = WM_USER + 1;
вообще то это не сообщение так что не нужно WM_USER привлекать.
любой ID пишем.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.01.2010, 03:16   #6
Lifefine
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 93
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
представляете самим написать


вообще то это не сообщение так что не нужно WM_USER привлекать.
любой ID пишем.
Это обычная процедура?
Lifefine вне форума Ответить с цитированием
Старый 15.01.2010, 03:17   #7
Lifefine
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 93
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
представляете самим написать


вообще то это не сообщение так что не нужно WM_USER привлекать.
любой ID пишем.
а куда выводит таймер? я вижу что
Код:
 Caption := Format('Таймер запущен. %d', [n]);
нет компонента Label
Lifefine вне форума Ответить с цитированием
Старый 15.01.2010, 03:21   #8
Lifefine
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 93
По умолчанию

Все сработало)))
Lifefine вне форума Ответить с цитированием
Старый 15.01.2010, 03:24   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
а куда выводит таймер?
Код:
procedure TForm1.WMTimer(var Msg: TWMTimer);
begin
  if Msg.TimerID = TimerID then

    if n <> 10 then
    begin
      Inc(n);
      Caption := Format('Таймер запущен. %d', [n]);
    end
    else
    begin
      KillTimer(Handle, TimerID);
      Caption := 'Таймер остановлен';
    end;

end;
итого получаем Self.Caption
то есть в заголовок формы
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.01.2010, 03:28   #10
Lifefine
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 93
По умолчанию

Код:
procedure TForm1.WMTimer(var Msg: TWMTimer);
begin
  if Msg.TimerID = TimerID then

    if n <> 10 then
    begin
      Inc(n);
      Label2.Caption := Format('Таймер запущен. %d', [n]);
    end
    else
    begin
      KillTimer(Handle, TimerID);
     Label2.Caption := 'Таймер остановлен';
    end;

end;
Спасибо! Я вывожу ответ на Label2
Lifefine вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таймер Михаил Юрьевич Общие вопросы Delphi 1 16.07.2008 08:46
таймер Романнн Общие вопросы Delphi 19 19.12.2007 15:33
таймер darkcoder Общие вопросы Delphi 5 06.12.2007 06:14
Таймер Stanislav Общие вопросы Delphi 3 26.11.2007 06:52
Таймер. Flash_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 30 22.01.2007 12:59