Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.12.2008, 12:33
kaizer131 kaizer131 вне форума
Начинающий
 
Регистрация: 01.11.2008
Сообщения: 112
Репутация: 10
По умолчанию таймер

Вопрос такой , при появлении формы таймер на ней начинает отсчитывать время прошедшее с ее появления, процесс отображается в двух Label (min и sec) при закрытии формы таймер останавливается .
Как сделать чтоб значение на котором остановился таймер можно было отобразить на новой форме, появляющейся после закрытия старой, и в последствии вывести конечные значения всех таймеров на одной форме?
Вроде изложил суть кто может что посоветовать?
Ответить с цитированием
  #2  
Старый 02.12.2008, 12:52
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию

ты про TTimer из палитры system?
__________________
Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит
Прапор: вы не попали ни один раз.
Программист: Пули вылетели, проблемы у вас.
Ответить с цитированием
  #3  
Старый 02.12.2008, 14:12
kaizer131 kaizer131 вне форума
Начинающий
 
Регистрация: 01.11.2008
Сообщения: 112
Репутация: 10
По умолчанию

Да именно про него
Ответить с цитированием
  #4  
Старый 02.12.2008, 14:49
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию

Цитата:
Сообщение от kaizer131
при появлении формы таймер на ней начинает отсчитывать время прошедшее с ее появления
Таймер начинает действовать с момента его создания или если свойство enabled := true. Это же компонент посмотри процедуру TTimer.Create
т.е. сперва создается приложение пото креится форма потом креится компоненты на ней, а потом она отображается. В момент создания компонента TTimer и начиниется отсчет времени.
Цитата:
Сообщение от kaizer131
при закрытии формы таймер останавливается .
Таймер останавливается если свойство enabled := false или дестроится компонент (или форма которая является родителем для компонента). т.е. если у тебя при закрытии происходит дестрой формы или выход из приложения, то компонент уничтожается. Если просто закрывается, а потом опять открываешь, то время отсчитывается постоянно. Но это в том случае если на этапе компиляции у тебя создается форма с таймером и вызываешь ты ее методом
Код:
xfrom.Show;
// или 
if xform.ShowModal = mrOk then...

Цитата:
Сообщение от kaizer131
Как сделать чтоб значение на котором остановился таймер можно было отобразить на новой форме
Если у тебя таймер содержиться на форма xform1 например. То просто на закрытие формы (Close) повесь это
Код:
xform1.timer1.enabled := false;
и у тебя остановиться счетчик. А на показ (Show) повесь это
Код:
xform1.timer1.enabled := true;

и тогда на лейбелах будет отображаться последние время перед тем как закроешь форму.
__________________
Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит
Прапор: вы не попали ни один раз.
Программист: Пули вылетели, проблемы у вас.
Ответить с цитированием
  #5  
Старый 02.12.2008, 15:18
kaizer131 kaizer131 вне форума
Начинающий
 
Регистрация: 01.11.2008
Сообщения: 112
Репутация: 10
По умолчанию

Да , счетчик запускается и останавливается свойством enabled это верно. Но главное, на новой форме необходимо показать не сам счетчик(тк там будет новый счетчик, с новым отсчетом времени ) а именно время на котором он остановился, отобразить это допустим в лейбле на новой форме (старую закрыли close), а в конце создаем что то пипа таблицы рекордов, отображая там значения таймеров
Ответить с цитированием
  #6  
Старый 02.12.2008, 15:48
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию

Цитата:
Сообщение от kaizer131
Но главное, на новой форме необходимо показать не сам счетчик(тк там будет новый счетчик, с новым отсчетом времени ) а именно время на котором он остановился

создай на главной форме или в модуле переменные и передавай туда а потом бери от туда
вариант 1
Код:
 //при открытии новой формы
 label1.caption := oldFrom.label1.caption; // секунды
 label2.caption := oldFrom.label2.caption; // милисекунды
вариант 2
Код:
//при закрытии старой формы
// dm - датамодуль переменные param1 и param2 : string
dm.param1 := label1.caption;
dm.param2 := label2.caption;

// при открытии нового окна.
label1.caption := dm.param1;
label2.caption := dm.param2;
__________________
Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит
Прапор: вы не попали ни один раз.
Программист: Пули вылетели, проблемы у вас.
Ответить с цитированием
  #7  
Старый 02.12.2008, 15:48
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию

Цитата:
Сообщение от kaizer131
Но главное, на новой форме необходимо показать не сам счетчик(тк там будет новый счетчик, с новым отсчетом времени ) а именно время на котором он остановился

создай на главной форме или в модуле переменные и передавай туда а потом бери от туда
вариант 1
Код:
 //при открытии новой формы
 label1.caption := oldFrom.label1.caption; // секунды
 label2.caption := oldFrom.label2.caption; // милисекунды
вариант 2
Код:
//при закрытии старой формы
// dm - датамодуль переменные param1 и param2 : string
dm.param1 := label1.caption;
dm.param2 := label2.caption;

// при открытии нового окна.
label1.caption := dm.param1;
label2.caption := dm.param2;
__________________
Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит
Прапор: вы не попали ни один раз.
Программист: Пули вылетели, проблемы у вас.
Ответить с цитированием
  #8  
Старый 03.12.2008, 08:43
Аватар для adidas
adidas adidas вне форума
Новичок
 
Регистрация: 24.03.2008
Адрес: Украина
Сообщения: 61
Версия Delphi: XE
Репутация: 10
По умолчанию

Не буду создавать еще одну тему, в этой задам свой вопрос. Задали написать программу, которая будет отсчитывать время до часа Х. Допустим, до Нового Года. Желательно, чтобы отображалось в программе сколько осталось дней, часов и минут. Заранее благодарен.
Ответить с цитированием
  #9  
Старый 03.12.2008, 10:13
dmdx dmdx вне форума
Начинающий
 
Регистрация: 24.05.2008
Адрес: Москва
Сообщения: 133
Репутация: 15
По умолчанию

Цитата:
Сообщение от adidas
Не буду создавать еще одну тему, в этой задам свой вопрос. Задали написать программу, которая будет отсчитывать время до часа Х. Допустим, до Нового Года. Желательно, чтобы отображалось в программе сколько осталось дней, часов и минут. Заранее благодарен.

что то вроде этого но в днях, а вот чтобы часы и минуты там надо исползовать полный формат даты
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
 NewYear: TDateTime;
begin
 newYear := StrToDate('01.01.2009');
 label1.Caption := DateToStr(NewYear - Now);

end;
__________________
Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит
Прапор: вы не попали ни один раз.
Программист: Пули вылетели, проблемы у вас.
Ответить с цитированием
  #10  
Старый 04.12.2008, 11:42
kaizer131 kaizer131 вне форума
Начинающий
 
Регистрация: 01.11.2008
Сообщения: 112
Репутация: 10
По умолчанию

в разделе var обьявляю
dm : Tdatamodule;

при закрытии старой формы на строку

dm.param1 := label1.caption;
( вместо param1 задаю свой ) компилятор выдает ошибку, кто знает почему
Ответить с цитированием
  #11  
Старый 04.12.2008, 11:43
kaizer131 kaizer131 вне форума
Начинающий
 
Регистрация: 01.11.2008
Сообщения: 112
Репутация: 10
По умолчанию

в разделе var обьявляю
dm : Tdatamodule;

при закрытии старой формы на строку

dm.param1 := label1.caption;
( вместо param1 задаю свой ) компилятор выдает ошибку, кто знает почему
Ответить с цитированием
  #12  
Старый 04.12.2008, 11:43
kaizer131 kaizer131 вне форума
Начинающий
 
Регистрация: 01.11.2008
Сообщения: 112
Репутация: 10
По умолчанию

в разделе var обьявляю
dm : Tdatamodule;

при закрытии старой формы на строку

dm.param1 := label1.caption;
( вместо param1 задаю свой ) компилятор выдает ошибку, кто знает почему
Ответить с цитированием
  #13  
Старый 04.12.2008, 15:49
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Не датамодуль а запись. Надо так:
Код:
...

type TMinSec=record
         param1, param2 : string;
       end;
var  dm : TMinSec;

...
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием
  #14  
Старый 07.12.2008, 10:40
kaizer131 kaizer131 вне форума
Начинающий
 
Регистрация: 01.11.2008
Сообщения: 112
Репутация: 10
По умолчанию

Не пашет
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter