[Как] включить таймер на форме в делфи?
Пользователи, просматривающие топик: 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; но при компиляции никакого таймера не видно мне нужно чтобы видно было часы.
|
|
|
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
|
|
|
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
...
end; совершенно неправильная, т.к. таймер будет включаться всегда, когда форма будет активна, в независимости от того, есть на ней курсор или нет. Попробуй использовать конструкцию: procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
timer1.Enabled:=true;
end;
, причем в свойствах компанента Timer, в еnabled = false. 2. Тебе надо сделать программу, которая при включении показывала на форме часы. Тогда следует использовать такой код:procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Caption:=timetostr(time);
end;
(Конструкция "TForm1.Timer1Timer" вызывается двойным нажатием на компонент Timer), причем в свойствах компанента Timer, в еnabled = true. Если я что-то не понял, опиши свою проблему поподробнее.
|
|
|
RE: [Как] включить таймер на форме в делфи? - 2007-08-30 14:23:51.613333
|
|
|
BOND07
Сообщений: 175
Оценки: 0
Присоединился: 2007-07-05 10:49:35.983333
|
2-ой способ ближе. Мне нужно чтобы при попадании на форму шло время как в часах, только начиная с нуля типа секундомера.
|
|
|
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
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.
|
|
|
RE: [Как] включить таймер на форме в делфи? - 2007-08-31 10:19:30.833333
|
|
|
Повелитель ботов
Сообщений: 49
Оценки: 0
Присоединился: 2007-07-17 13:56:27.460000
|
Детский сад реално…
|
|
|
RE: [Как] включить таймер на форме в делфи? - 2007-08-31 12:22:16.343333
|
|
|
5_nix
Сообщений: 231
Оценки: 0
Присоединился: 2007-02-26 00:43:17.386666
|
quote:
Детский сад реално… Кому нужно твое сообщение. Оно не несет ни какой информации по теме. Если нечего написать, то лучше промолчи.
|
|
|
RE: [Как] включить таймер на форме в делфи? - 2007-08-31 13:05:37.113333
|
|
|
redsh
Сообщений: 338
Оценки: 0
Присоединился: 2007-06-17 22:35:25.540000
|
По-моему, не очень надёжно включать таймер по попаданию в форму мыша, лучше по тику таймера проверять находится ли мыша в пределах формы и окно формы активно. Проверить, что форма - активное окно можно так (портируйте это на свой паскаль, я его не знаю :)) if (Form1->Handle == GetForegroundWindow()) { … }
|
|
|
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. Спасибо большое сейчас получилось. Дело в том что я пишу игру чтото типа "программист" и мне было нужно чтобы шло время и шли дни теперь получилось.
|
|
|
RE: [Как] включить таймер на форме в делфи? - 2007-09-01 18:11:23.780000
|
|
|
5_nix
Сообщений: 231
Оценки: 0
Присоединился: 2007-02-26 00:43:17.386666
|
Пользуйся на здоровье
|
|
|
|
|