Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2011, 12:32   #1
Deis
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 37
Восклицание Вопрос про воиспроизведение *.wav

Блин, я тупой как сделать в моём коде так, чтобы когда таймер закончил отсчитывать время, выходило соощение "ваше время истекло" и воспроизводился звук в формате .wav (C++ Builder 6)

выкладываю весь код, мало ли кому понадобится!
Код:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
short h, m, s;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   Timer1->Enabled = false; // настройка таймера
   Timer1->Interval = 1000; // период сигналов от таймера 1 сек
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 {
   if(MaskEdit1 -> Text == "  ")
   MessageBox(NULL,"Вы ввели часы не правильно. Часы вводяться в формате, пример: 00, 01, 22. Если этого не сделать, возможно неправильная работа программы.","Ошибка в поле часы",MB_OK);
   if(MaskEdit2 -> Text == "  ")
   MessageBox(NULL,"Вы ввели минуты не правильно. Минуты вводяться в формате, пример: 00, 01, 22. Если этого не сделать, возможно неправильная работа программы.","Ошибка в поле минуты",MB_OK);
   if(MaskEdit3 -> Text == "  ")
   MessageBox(NULL,"Вы ввели секунды не правильно. Секунды вводяться в формате, пример: 00, 01, 22. Если этого не сделать, возможно неправильная работа программы.","Ошибка в поле секунды",MB_OK);

 }
if ( ! Timer1->Enabled )
   {
      Timer1->Enabled = true; // запустить таймер
      Button1->Caption = "Стоп";
      Button2->Enabled = false;
    }
    else
     {
       Timer1->Enabled = false; // остановить таймер
       Button1->Caption = "Пуск";
       Button2->Enabled = true;
     }
h = StrToInt( MaskEdit1 -> Text );
m = StrToInt( MaskEdit2 -> Text );
s = StrToInt( MaskEdit3 -> Text );

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if ( s >= 1 )
 {
 s--;
 }
 else if ( s <= 0 )
  {
  s = 59;
  s--;
  if ( m >= 1 )
    {
    m--;
     }
     else if ( m <= 0 )
      {
      m = 59;
      if ( h >= 1 )
        {
        h--;
      }
      else if ( h <= 0 )
       {
        h = 23;
        m = 59;
        s = 59;
  }
}
}
Label1 -> Caption = IntToStr( h );
Label2 -> Caption = IntToStr( m );
Label3 -> Caption = IntToStr( s );        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
h = 0;
m = 0;
s = 0;
Label1->Caption = "00";
Label2->Caption = "00";
Label3->Caption = "00";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MaskEdit1Change(TObject *Sender)
{
 MaskEdit1 -> EditMask = "!99;1; " ;
 if(isdigit(MaskEdit1->Text.c_str()[0])==0) MaskEdit1->Text = "";
 //Ввод только цифр. Максимальное значение 99
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MaskEdit2Change(TObject *Sender)
{
 MaskEdit2 -> EditMask = "!99;1; " ;
 if(isdigit(MaskEdit2->Text.c_str()[0])==0) MaskEdit2->Text = "";
 //Ввод только цифр. Максимальное значение 99
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MaskEdit3Change(TObject *Sender)
{
 MaskEdit3 -> EditMask = "!99;1; " ;
 if(isdigit(MaskEdit3->Text.c_str()[0])==0) MaskEdit3->Text = "";
 //Ввод только цифр. Максимальное значение 99
}
//---------------------------------------------------------------------------

Последний раз редактировалось Deis; 18.03.2011 в 13:31.
Deis вне форума Ответить с цитированием
Старый 18.03.2011, 14:29   #2
Voxa7
Пользователь
 
Регистрация: 17.05.2010
Сообщений: 59
По умолчанию

Вводи глобальную переменную time и делай ей time++ в таймере, когда time == size, (где size это нужное время в секундах) тогда timer1->enabled = false; showmessage("время истекло")
Voxa7 вне форума Ответить с цитированием
Старый 18.03.2011, 15:21   #3
Deis
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 37
По умолчанию

Voxa7, ты не понял. Пользователь вводит в Макс эдиты нужное ему время(часы, минуты, секунды). Пользователь жмёт на кнопку пуск(батон 1), время начинается отчитываться в обратном отсчёте. Так вот вопрос в том как сделать, так когда отсчёт закончился (у меня в проге он не заканчивается(тоже хз как)), выходило сообщение о том что отсчёт закончился и воиспроизводился звуковой сигнал в формате .wav. Желательно, если тебе не лень напиши это под мою прогу (кодом), а то у меня крышняк вообще едит от этого курсовика. Спасибо заранее!
Deis вне форума Ответить с цитированием
Старый 18.03.2011, 17:43   #4
Voxa7
Пользователь
 
Регистрация: 17.05.2010
Сообщений: 59
По умолчанию

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 {
   if(MaskEdit1 -> Text == "  ")
   MessageBox(NULL,"Вы ввели часы не правильно. Часы вводяться в формате, пример: 00, 01, 22. Если этого не сделать, возможно неправильная работа программы.","Ошибка в поле часы",MB_OK);
   if(MaskEdit2 -> Text == "  ")
   MessageBox(NULL,"Вы ввели минуты не правильно. Минуты вводяться в формате, пример: 00, 01, 22. Если этого не сделать, возможно неправильная работа программы.","Ошибка в поле минуты",MB_OK);
   if(MaskEdit3 -> Text == "  ")
   MessageBox(NULL,"Вы ввели секунды не правильно. Секунды вводяться в формате, пример: 00, 01, 22. Если этого не сделать, возможно неправильная работа программы.","Ошибка в поле секунды",MB_OK);

 }
if ( ! Timer1->Enabled )
   {
      Timer1->Enabled = true; // запустить таймер
      Button1->Caption = "Стоп";
      Button2->Enabled = false;
    }
    else
     {
       Timer1->Enabled = false; // остановить таймер
       Button1->Caption = "Пуск";
       Button2->Enabled = true;
     }
h = StrToInt( MaskEdit1 -> Text );
m = StrToInt( MaskEdit2 -> Text );
s = StrToInt( MaskEdit3 -> Text );
time = s+m*60+h*3600;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if (time <=0) 
{
  ShowMessage("Время истекло");
  s = 0;
  m = 0;
  h = 0;
  Timer1->Enabled = false;
}
else
{
  time--;
  s = time;
  h = s/(3600);
  s = s - h*3600;
  m = s/60;
  s = s - m*60;
}
Label1 -> Caption = IntToStr( h );
Label2 -> Caption = IntToStr( m );
Label3 -> Caption = IntToStr( s );        
}
думаю так должно работать
Voxa7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про MaskEdit и воиспроизведение *.wav Deis C++ Builder 4 20.04.2011 20:07
Вопрос про MaskEdit и воиспроизведение *.wav в C++ Builder 6 Deis Помощь студентам 0 11.03.2011 22:33
Вопрос про Свойство Visible и про иконки в imagelist Kappi4 Компоненты Delphi 2 21.05.2010 13:10
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24