Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

[Как] включить таймер на форме в делфи?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> [Как] включить таймер на форме в делфи?
Имя
Сообщение << Старые топики   Новые топики >>
[Как] включить таймер на форме в делфи? - 2007-08-28 11:11:36.600000   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333

Мне нужно чтобы при попадании в форму включался таймер какой должен быть код?


procedure TForm1.FormShow(Sender: TObject);
begin
Timer1//а что писать дальше незнаю.
end;

мне подсказали что нужно писать: Enabeld:=true;
но при компиляции никакого таймера не видно мне нужно чтобы видно было часы.
Post #: 1
RE: [Как] включить таймер на форме в делфи? - 2007-08-28 12:04:56.390000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
quote:

ORIGINAL: BOND07

Мне нужно чтобы при попадании в форму включался таймер какой должен быть код?


procedure TForm1.FormShow(Sender: TObject);
begin
Timer1//а что писать дальше незнаю.
end;

мне подсказали что нужно писать: Enabeld:=true;
но при компиляции никакого таймера не видно мне нужно чтобы видно было часы.

Таймер - невизуальный компонент.
Часы - ручками.
Или использовать сторонние компоненты, например из набора Jedi
Post #: 2
RE: [Как] включить таймер на форме в делфи? - 2007-08-28 13:33:27.606666   
5_nix

Сообщений: 231
Оценки: 0
Присоединился: 2007-02-26 00:43:17.386666
quote:

Мне нужно чтобы при попадании в форму включался таймер какой должен быть код?
Напиши поподробнее, что значит "при попадании в форму"?
 
Попробую угадать ход твоих мыслей:
1. Тебе надо сделать программу, в которой при наведении курсора на форму начинал бы отсчитывать таймер. Если тебе надо, что бы таймер включался, когда курсор попадал на форму, то конструкция :procedure TForm1.FormShow(Sender: TObject); begin &nbsp; ... end; совершенно неправильная, т.к. таймер будет включаться всегда, когда форма будет активна, в независимости от того, есть на ней курсор или нет.
Попробуй использовать конструкцию: procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, &nbsp; Y: Integer); begin &nbsp; timer1.Enabled:=true; end; , причем в свойствах компанента Timer, в еnabled = false.
 
2. Тебе надо сделать программу, которая при включении показывала на форме часы. Тогда следует использовать такой код:procedure TForm1.Timer1Timer(Sender: TObject); begin &nbsp; label1.Caption:=timetostr(time); end;  (Конструкция "TForm1.Timer1Timer" вызывается двойным нажатием на компонент Timer), причем в свойствах компанента Timer, в еnabled = true.
 
 
Если я что-то не понял, опиши свою проблему поподробнее.
Post #: 3
RE: [Как] включить таймер на форме в делфи? - 2007-08-30 14:23:51.613333   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333
2-ой способ ближе. Мне нужно чтобы при попадании на форму шло время как в часах, только начиная с нуля типа секундомера.
Post #: 4
RE: [Как] включить таймер на форме в делфи? - 2007-08-31 09:33:31.310000   
5_nix

Сообщений: 231
Оценки: 0
Присоединился: 2007-02-26 00:43:17.386666
Если тебе нужен просто таймер, который начинает отсчет от 00:00:00 тогда можно использрвать вот такой код:
procedure TForm1.Timer1Timer(Sender: TObject); var &nbsp; hh,mm,ss:integer; begin // ss - секунды // mm - минуты // hh -&nbsp;часы &nbsp; ss:=ss+1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;прибавляем 1 к сек &nbsp; label1.Caption:=inttostr(ss);&nbsp;&nbsp;&nbsp;&nbsp; // выводим сек на метку №1 &nbsp; if ss=60 then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;если сек&nbsp;= 60&nbsp;то &nbsp; begin &nbsp;&nbsp;&nbsp; ss:=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;обнуляем сек &nbsp;&nbsp;&nbsp; mm:=mm+1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // прибавляем 1 к&nbsp;мин &nbsp;&nbsp;&nbsp; label2.Caption:=inttostr(mm);&nbsp;&nbsp; // выводим мин на метку №2 &nbsp;&nbsp;&nbsp; if mm=60 then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;если мин&nbsp;= 60&nbsp;то &nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mm:=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // обнуляем&nbsp;мин &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hh:=hh+1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // прибавляем 1 к&nbsp;часам &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; label3.Caption:=inttostr(hh); // выводим&nbsp;часы на метку №3 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if hh=24 then&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;если часы&nbsp;= 24&nbsp;то &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss:=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;обнуляем сек &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mm:=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // обнуляем&nbsp;мин &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hh:=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // обнуляем&nbsp;часы &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp; end; &nbsp; end; end; Минуты и секунды оканчиваются на 60, а затем идет 1. Если не нравится, можешь переработать, чтобы минуты и секунды оканчивались на 59, а затем шел 0. С часами та же ситуация, но оканчиваются они на 24.
Post #: 5
RE: [Как] включить таймер на форме в делфи? - 2007-08-31 10:19:30.833333   
Повелитель ботов

Сообщений: 49
Оценки: 0
Присоединился: 2007-07-17 13:56:27.460000
Детский сад реално…
Post #: 6
RE: [Как] включить таймер на форме в делфи? - 2007-08-31 12:22:16.343333   
5_nix

Сообщений: 231
Оценки: 0
Присоединился: 2007-02-26 00:43:17.386666
quote:

Детский сад реално…
Кому нужно твое сообщение. Оно не несет ни какой информации по теме. Если нечего написать, то лучше промолчи.
Post #: 7
RE: [Как] включить таймер на форме в делфи? - 2007-08-31 13:05:37.113333   
redsh

Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
По-моему, не очень надёжно включать таймер по попаданию в форму мыша, лучше по тику таймера проверять находится ли мыша в пределах формы и окно формы активно. Проверить, что форма - активное окно можно так (портируйте это на свой паскаль, я его не знаю :))

if (Form1->Handle == GetForegroundWindow()) { … }
Post #: 8
RE: [Как] включить таймер на форме в делфи? - 2007-08-31 19:37:39.063333   
BOND07

Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333

quote:

ORIGINAL: 5_nix

Если тебе нужен просто таймер, который начинает отсчет от 00:00:00 тогда можно использрвать вот такой код:
procedure TForm1.Timer1Timer(Sender: TObject); var hh,mm,ss:integer; begin // ss - секунды // mm - минуты // hh - часы ss:=ss+1;                         // прибавляем 1 к сек label1.Caption:=inttostr(ss);     // выводим сек на метку №1 if ss=60 then                     // если сек = 60 то begin    ss:=0;                          // обнуляем сек    mm:=mm+1;                       // прибавляем 1 к мин    label2.Caption:=inttostr(mm);   // выводим мин на метку №2    if mm=60 then                   // если мин = 60 то    begin      mm:=0;                        // обнуляем мин      hh:=hh+1;                     // прибавляем 1 к часам      label3.Caption:=inttostr(hh); // выводим часы на метку №3      if hh=24 then                 // если часы = 24 то      begin        ss:=0;                      // обнуляем сек        mm:=0;                      // обнуляем мин        hh:=0;                      // обнуляем часы      end;    end; end; end; Минуты и секунды оканчиваются на 60, а затем идет 1. Если не нравится, можешь переработать, чтобы минуты и секунды оканчивались на 59, а затем шел 0. С часами та же ситуация, но оканчиваются они на 24.


Спасибо большое сейчас получилось.
Дело в том что я пишу игру чтото типа "программист"
и мне было нужно чтобы шло время и шли дни теперь получилось.
Post #: 9
RE: [Как] включить таймер на форме в делфи? - 2007-09-01 18:11:23.780000   
5_nix

Сообщений: 231
Оценки: 0
Присоединился: 2007-02-26 00:43:17.386666
Пользуйся на здоровье
Post #: 10
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> [Как] включить таймер на форме в делфи?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.