Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зависание таймера 
:(
    Опции темы
Simon14
Дата 8.5.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



У меня появилась проблемка мож кто подскажет изза чего ето может быть. Есть таймер который выполняет функцию отображения времени и изменения позици в прогрес бар и проверка на Edit1KeyPress. вот и в условиях проверки необходимо запустить MediaPlayer при нажатии на кнопу таймер запускаеться а при последуюшем нажатии притормажуеться  если зажать кнопку то таймер остонавливаетьсь на время а потом время скачком наростает, при удалении запуска MediaPlayer  все работает нормально.Каковы возможные причины. Зарание спасибо  
PM MAIL   Вверх
Данкинг
Дата 8.5.2009, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Мало что понял, но подумал про Application->ProcessMessages. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
artsb
Дата 8.5.2009, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Simon14, вы какие обработчики событий юзаете? Давайте код. Хотя бы часть.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Simon14
Дата 8.5.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



вот код 
Код

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
n++;
Timer1->Enabled=true;
Timer3->Enabled=true;
q = StrToFloat (Edit2->Text);
Timer1->Enabled =true;    // Таимер включен
Timer1->Interval = 10;    // Интервал 1 сек
if(Key == panel2_text[1])

{
 i++;
 Label10->Visible = false;
 Label11->Visible = true;
 prav++;
 Label6->Caption = "0" + FloatToStr(prav);
 panel1_text += panel2_text[1];
 panel2_text.Delete(1,1);
 Panel1->Caption = panel1_text;
 Panel2->Caption = panel2_text;
  }
 else
 {

 Label11->Visible = false;
 Label10->Visible = true;
neprav ++;
Button2->Click();
MediaPlayer2->FileName= ExtractFilePath(ExtractFileDir(Application->ExeName))+"\\Sound\\Ow - Vinni-Pooh.mp3"; // БезMediaPlayerработает
MediaPlayer2->Open();
MediaPlayer2->Play();
Label7->Caption = "0" + FloatToStr(neprav);
     }
  Form4->Button1->Click();
  Form5->Button1->Click();
  Form6->Button1->Click();
  if (RichEdit1->Text.Length()==i-1)
{Edit1->Enabled=false;
Timer1->Enabled=false;
N9->Click();
}
else
{
} 

Код

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   if (ProgressBar1->Position != 0)
ProgressBar1->Position--;
   if ( sec < 59)
sec++;
else
{
sec = 0;
if ( min < 59 )
min++;
else
{
min = 0;
hou++;
Label5->Caption = IntToStr(hou);
}
if ( min<= 59 )
Label1->Caption = "0" + IntToStr(min);
else
Label1->Caption = IntToStr(min);
Label4->Visible = ! Label4->Visible;
}
if ( sec <= 59 )
Label2->Caption = "0" + IntToStr(sec);
else
Label2->Caption = IntToStr(sec);
  if ( Form2->CheckBox1->Checked==true)
{
  if (hou == q)  // условие

 {
Label9->Visible =true;
Label9->Caption=b;
Timer1->Enabled =false;   //Таймер выключен
Label2->Caption="00";  //присвоить 00
Edit1->Enabled=false;


 ShowMessage(" Время вышло");
 }
 else
  {



   } }
   else {}

}

PM MAIL   Вверх
artsb
Дата 8.5.2009, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Simon14 @  8.5.2009,  16:20 Найти цитируемый пост)
Timer1->Interval = 10;    // Интервал 1 сек

Неа.
Код

Timer1->Interval = 1000;    // Интервал 1 сек


Simon14, я спрашивал про обработчики кнопки smile


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Simon14
Дата 8.5.2009, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



я не могу понять за что вы говорите что за обработчики кнопки можно пример обработчика
PM MAIL   Вверх
Dmi3ev
Дата 8.5.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Цитата

я не могу понять за что вы говорите что за обработчики кнопки можно пример обработчика 

код, который написан на событие, в данном случае на нажатие (это и есть обработчик какого-либо события)


--------------------

PM MAIL   Вверх
Simon14
Дата 8.5.2009, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



при нажатии на клавишу клавиатуры производиться проверка на соответствие Символа в поле Рanel с нажатым символом на клавеатуре
if(Key == panel2_text[1])
ну и выполнение последуюших действий 
Код

{
 i++;
 
 prav++;
 panel1_text += panel2_text[1];
 panel2_text.Delete(1,1);
 Panel1->Caption = panel1_text;
 Panel2->Caption = panel2_text;
  }
 else
 {
neprav ++;
Button2->Click();
MediaPlayer2->FileName= ExtractFilePath(ExtractFileDir(Application->ExeName))+"\\Sound\\Ow - Vinni-Pooh.mp3"; // БезMediaPlayerработает
MediaPlayer2->Open();
MediaPlayer2->Play();
else
{
} 

если я вас правельно понял
PM MAIL   Вверх
Dmi3ev
Дата 8.5.2009, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Simon14, ты издеваешься?
Цитата

при нажатии на кнопу таймер запускаеться а при последуюшем нажатии притормажуеться  если зажать кнопку то таймер остонавливаетьсь на время а потом время скачком наростает

короче, отредактируй свое предыдущее сообщение и выложи весь юнит... так будет проще...


--------------------

PM MAIL   Вверх
Simon14
Дата 9.5.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



при нажатии на клавишу клавиатуры производиться запуск таймера и проверка на соответствие Символа в поле Рanel с нажатым символом на клавеатуре 
Код

Timer1->Enabled=true;

if(Key == panel2_text[1])
ну и выполнение последуюших действий 
{
 i++;
 
 prav++;
 panel1_text += panel2_text[1];
 panel2_text.Delete(1,1);
 Panel1->Caption = panel1_text;
 Panel2->Caption = panel2_text;
  }
 else
 {
neprav ++;
Button2->Click();
MediaPlayer2->FileName= ExtractFilePath(ExtractFileDir(Application->ExeName))+"\\Sound\\Ow - Vinni-Pooh.mp3"; // БезMediaPlayerработает

MediaPlayer2->Open();
MediaPlayer2->Play();
else
{
} 

при повторном нажатии на кнопку клавиатуры таймер почемуто притормажует а при удержании кнопки время перестает идти при оттпускании кнопки скачком наростает 
вот код на таймере
Код

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
   if (ProgressBar1->Position != 0)
ProgressBar1->Position--;
   if ( sec < 59)
sec++;
else
{
sec = 0;
if ( min < 59 )
min++;
else
{
min = 0;
hou++;
Label5->Caption = IntToStr(hou);
}
if ( min<= 59 )
Label1->Caption = "0" + IntToStr(min);
else
Label1->Caption = IntToStr(min);
Label4->Visible = ! Label4->Visible;
}
if ( sec <= 59 )
Label2->Caption = "0" + IntToStr(sec);
else
Label2->Caption = IntToStr(sec);
  if ( Form2->CheckBox1->Checked==true)
{
  if (hou == q)  // условие

 {
Timer1->Enabled =false;   //Таймер выключен
Label2->Caption="00";  //присвоить 00
Edit1->Enabled=false;


 ShowMessage(" Время вышло");
 }
 else
  {



   } }
   else {}

}
 
вроде все
PM MAIL   Вверх
artsb
Дата 9.5.2009, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Simon14 @  9.5.2009,  11:47 Найти цитируемый пост)
при нажатии на клавишу клавиатуры 

Вот. Теперь стало ясней. smile А то вы писали про какую-то кнопку. А что за кнопка не понятно. Как я понял вы делаете что-то типа стамины smile

Для начала, попробуйте вместо OnKeyPress воспользоваться OnKeyDown и OnKeyUp.

Это сообщение отредактировал(а) artsb - 9.5.2009, 23:06


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Simon14
Дата 14.5.2009, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



На OnKeyDown  без изменений а на OnKeyUp проверка не работает

PM MAIL   Вверх
artsb
Дата 14.5.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Simon14 @  14.5.2009,  12:52 Найти цитируемый пост)
на OnKeyUp проверка не работает

Что именно не работает? Кстати, вы используете обработчик формы? Может лучше хук поставить... На форуме обсуждалось.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Simon14
Дата 14.5.2009, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



проверка нажатого символа, и определенного cимвола в тексте. как я понял ето обработчик if(Key == panel2_text[1])

Это сообщение отредактировал(а) Simon14 - 16.5.2009, 11:26
PM MAIL   Вверх
froex
Дата 14.5.2009, 22:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я один не понимаю, что пишет Simon14? Я про пунктуацию - чего-то не могу связать слова :\
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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