Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Таймер 
V
    Опции темы
maxim1000
Дата 24.1.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



Цитата(sim7 @ 24.1.2006, 18:04 Найти цитируемый пост)

не думаю, что такая программа может иметь практическое значение...

ну если потом пойти, например, в сторону нескольких событий, напоминалки, и вообще органайзера, то кто его знает smile


--------------------
qqq
PM WWW   Вверх
mr.Anderson
Дата 24.1.2006, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



Тогда лучше сделать наоборот - довести этот таймер до ума, а уж потом встроить его в мой проект "Ежедневник" (тут где-то темка с ним еще есть, я потом туда воткну ссыль на него). Вот так можно сделать. smile А пока моей целью будет каким-то Макаром вставить в мой таймер доли секунды...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Partizan
Дата 25.1.2006, 02:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 67



а какие проблемы smile
помоему в стандартном компоненте vcl у TTimer минимальное значение свойства interval == 30 ms


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
mr.Anderson
Дата 25.1.2006, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



Ну! А я говорю, что он отстает по времени. Неправильно работает, короче. Не "ритмично". Вот и мучаюсь.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Бегемот
Дата 25.1.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: нет
Всего: 3



sim7,вот тебе ещё повод подумать!

1. При установке времени отсчёта сделать переход по полям ввода с помощью стрелок! Причём, при переходе содержимое поля должно выделяться! Сделать это того, что бы, если вдруг решил подкорректировать, то не надо было бы беспокоить мышонка или гнать фокус через все компоненты!

2. Начинать отсчёт после ввода времени по нажатию Enter. Т.е если в поле “секунды” нажали Enter – начинаем отсчёт! Опять же для удобства!

3. Можно добавить к твоему таймеру возможность выключать комп! Будет очень полезно для тех, кто засыпает в обнимку с клавой! Ну, чего-то типа выбора, разбудить хозяина, крикнув из динамика что-нибудь ласковое, или же спокойненько выключить компьютер, не нарушая его сна.

4. Ну, и хотя бы десятые доли секунды в секундомере сделать просто необходимо!

Удачи! smile

PM MAIL   Вверх
mr.Anderson
Дата 25.1.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



Бегемот, пунктики 1-2 подумаю. 3 - понятия не имею, как это сделать. 4 - тоже самое. smile Но буду думать. Спасибо за предложения.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
mr.Anderson
Дата 26.1.2006, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



Так. С Энтером сделал. Таперича при нажатии Энтера в третьем поле (ввод секунд) - запускается таймер.
С пунктом 1 мучаюсь.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Spawn™Production®
Дата 26.1.2006, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: 6
Всего: 12



Цитата(sim7 @ 26.1.2006, 20:18 Найти цитируемый пост)

Так. С Энтером сделал. Таперича при нажатии Энтера в третьем поле (ввод секунд) - запускается таймер.

Можно это прикрутить и к другим полям...
Если после ввода секунд ты захотел подредактировать минуты или часы и отуда нажал Enter, то также всё должно запуститься.

Цитата(sim7 @ 25.1.2006, 20:37 Найти цитируемый пост)

4 - тоже самое.

Положи на форму Label1 и Timer1

Код

void __fastcall TForm1::FormCreate(TObject *Sender)
{
Timer1->Interval = 1;
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Word Year, Month, Day, Hour, Min, Sec, MSec;
TDateTime dtPresent = Time();
DecodeTime(dtPresent, Hour, Min, Sec, MSec);
Label1->Caption = IntToStr(Hour) + AnsiString(":") + IntToStr(Min) + AnsiString(":") + IntToStr(Sec) + AnsiString(", ") + IntToStr(MSec);
}
//---------------------------------------------------------------------------

Цитата(sim7 @ 25.1.2006, 20:37 Найти цитируемый пост)

3 - понятия не имею, как это сделать.

Можешь пока не спешить...
Впринципе, Windows98 выключается простой API функцией ExitWindows, а вот с XP дело хуже, там чтобы выключить, нужны привелегии... а с токенами работать сдохнешь smile
Я по жизии, в каком бы языке не сталкивался, использовал готовый код.


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
mr.Anderson
Дата 26.1.2006, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



Так-с. Сделал некоторые изменения. Что нового:

1. Обеспечен переход стрелочками из любого Edit'а в соседний.
2. По нажатию Enter'а на любом Edit'е запускается таймер.
3. При ошибке (ошибок две: пустые поля или нулевые значения во всех трех Edit'ах) выводится сообщение (это уже было) + устанавливается фокус в Edit1 (где устанавливаются часы).

Вот это все нововведения пока. С секундомером пока не получается. Работаю.

Ссыль: http://my-projects.narod.ru/timer1.5.rar


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Spawn™Production®
Дата 26.1.2006, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: 6
Всего: 12



Цитата(sim7 @ 26.1.2006, 21:58 Найти цитируемый пост)

Вот это все нововведения пока. С секундомером пока не получается. Работаю.

можно глянуть пост прямо над твоим smile

Цитата(sim7 @ 26.1.2006, 21:58 Найти цитируемый пост)

пустые поля или нулевые значения во всех трех Edit'ах

Я бы сделал проверку в событии Change: Если какое-либо поле пустует, то кнопка запуска не работает...


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
mr.Anderson
Дата 27.1.2006, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



УРРРАААААААААА!!!!!!! Я прямо весь в эмоциях! Секундомер работает, чтоб его! smile smile smile smile
Здорово! Spawn™Production®, ваш код только подал мне идею. smile Я, например, и не знал о функции DecodeTime. Я его малец переделал, и все стало полный чпок! smile
Но одна проблема осталась. Подскажите, почему при работе секундомера, связанного с системным временем, сама метка (которая и показывает числовое значение часов/минут/секунд/миллисекунд) подергивается? И как это убрать, а то очень раздражает!
Вот код собственно события OnTimer секундомера:
Код

 Word h,m,s,ms;
 AnsiString nh,nm,ns,nms;
 TDateTime system_time=Time();
 static TDateTime launch_time=Time();
 TDateTime real=system_time-launch_time;
 DecodeTime(real,h,m,s,ms);
 if(h<=9) nh="0"+IntToStr(h); else nh=h;
 if(m<=9) nm="0"+IntToStr(m); else nm=m;
 if(s<=9) ns="0"+IntToStr(s); else ns=s;
 if(ms<=9) nms="00"+IntToStr(ms);
  else if(ms<=99 && ms>9) nms="0"+IntToStr(ms);
   else nms=IntToStr(ms);

 Label8->Caption=nh+":"+nm+":"+ns+":"+nms;

Вот. Прошу пока не обращать внимания на не совсем корректную работу этого кода. Помогите плиз с вышезаданным вопросом про моргание.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Spawn™Production®
Дата 27.1.2006, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: 6
Всего: 12



Думаю придётся в раздел Boland'а лезть...
Проблема с миганием во всех языках, и, как мне кажется, от неё нет панацеи.
Мигает потому, что каждую миллисекунду идёт перерисовка контрола. Перерисовывается он несколько дольше, так что сам понимаешь.


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
mr.Anderson
Дата 27.1.2006, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



Ладно, тогда эту проблему отставили. Сейчас малец доделаю и выложу предварительную версию с "наполовину" работающим секундомером и списком нововведений.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Бегемот
Дата 27.1.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 26.1.2005
Где: На границе Европы и Азии

Репутация: нет
Всего: 3



sim7!
Цитата

Помогите плиз с вышезаданным вопросом про моргание.

Можно ли избавиться от мерцания Label’а я не знаю, а вот отучить от этой дурной привычки компонент имеющий Canvas можно! У той же формы есть канва, поэтому отображать работу секундомера без мерцания можно прямо на ней! Для этого тебе придётся кое-что добавить, и кое-что изменить.
Если в вкратце, то смысл такой: выводим текст на невидимой области, после чего копируем его на форму методом CopyRect! И всё!
В header-файле (Unit1.h) в секции private объяви глобальные переменные!
Код

   Graphics::TBitmap *TempCanvas;
   TRect FormRect;
   TRect TempRect;

В Unit1.cpp на FormCreate добавь следующий код:
Код

void __fastcall TForm1::FormCreate(TObject *Sender)
{
..............
// определяем ширину и высоту области на которую будем предварительно..
// ..выводить показания секундомера
   const TempCanvasWidth = 300;
   const TempCanvasHeight = 100;
// создание объекта
   TempCanvas = new Graphics::TBitmap();
// устанавливаем значения различных свойств объекта
   TempCanvas->Width = TempCanvasWidth;
   TempCanvas->Height = TempCanvasHeight;
   TempCanvas->Canvas->Font->Size = 36;
   TempCanvas->Canvas->Font->Name = "Times New Roman";
// прямоугольная область в которорую будем копировать время
   FormRect = Rect(100,100,TempCanvasWidth+100,TempCanvasHeight+100);
// прямоугольная область из которой будем копировать время
   TempRect = Rect(0,0,TempCanvasWidth,TempCanvasHeight);
// заливаем канву созданного объекта цветом формы
   TempCanvas->Canvas->Brush->Color = Form1->Color;
   TempCanvas->Canvas->FillRect(TempRect);
}

В обработчике события OnTimer вместо строки, в которой ты выводишь в Label, вставь следующий код:
Код

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
..............
// выводим на канву TempCanvas время
   TempCanvas->Canvas->TextOutA(0,0,nh + ":" + nm + ":" + ns + ":" + nms);
// копируем с канвы TempCanvas прямоугольную область TempRect на канву формы..
// ..в прямоугольную область FormRect!
   Canvas->CopyRect(FormRect, TempCanvas->Canvas, TempRect);
}

Ну, и при закрытии формы...
Код

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
// освобождаем выделенную память
   delete TempCanvas;
}


PM MAIL   Вверх
mr.Anderson
Дата 28.1.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 6
Всего: 128



Ох, друзья, да подождите вы меня незнакомым кодом заваливать... smile Мне еще надо все прошлое доделать, а уж потом и с мелочами разбираться....


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Тестирование программ"
mr.Anderson

Правила должны соблюдаться всеми без исключения.

  • Темы, в которых будут обнаружены нарушения, будут закрыты или удалены.
  • К пользователям, многократно нарушившим правила, будут применены отдельные санкции.

Для тех, кто создаёт темы:

В данном разделе запрещается размещать программы, которые в той или иной степени могут принести вред потенциальному тестеру программы (например, трояны, вирусы и т.д.)

  • Публикуя ссылку на программу, обязательно проверьте её работоспособность.
  • ОБЯЗАТЕЛЬНО: напишите название программы, а главное - её описание и приведите хотя бы один скриншот. Скриншот по размерам не более 500х500 пикселов, для скриншотов большего размера приводите ссылки на них.
  • Программа, которую Вы даёте на тестирование, должна быть откомпилирована, так как не каждый является программистом, да и мало кто будет ради тестирования устанавливать соответствующий софт.

Для тех, кто тестирует:

Описывая результаты тестирования программы, указывайте тип и версию ОС, а также характеристики компьютера и прочую информацию, которая может повлиять на работоспособность.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.Anderson.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разное тестирование | Следующая тема »


 




[ Время генерации скрипта: 0.0799 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.