Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Syndicate

A timer that does not stop program

This topic is 5194 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am building a program in c++ that takes Morse code input from a mouse (left click short -- right click long ) and translates it into text -> output to screen . I want to make a timer that is off to the side of the Windows Form and counts down from 10 to 0. Each time a button is clicked the timer is reset. When Zero is reached (b/c no buttons pressed in x amount of time) I would like the timer to make a function call or pass a value to the Decode() function that takes all inputs from the mouse ( shorts and longs ex : dataArray[.--.-]) and translate them. I have the Decode() working and when a string ''trans'' is passed it takes everything out of dataArray and prints that letter to the screen. The problem is the timer. I can''t get the timer to count down and let the program still take inputs from the mouse. Also when I try to set the text of the timeBoxlable to the int if the timer and it give me "can not convert type int to System string __gc* " error .. // int x; for (x=10; x>0; x--) { textBoxlable->Text = x; } // Thank you, Syndicate

Share this post


Link to post
Share on other sites
Advertisement
If you are using MFC (which it looks like your not but i''m gonna tell you anyway ) then you can use the SetTimer function... This function allows you to callback a function after a specified period of time, once the time is up a WM_TIMER message is sent to your window.

There may be something similar in the .NET windows programming, but i don''t know much about that.

As for your error of not being able to convert from an int to string... you''ll need to do this:


for (x=10; x>0; x--)
{
textBoxlable->Text = Convert::ToString(x);
}

Share this post


Link to post
Share on other sites
You could try multithreading:


#include <process.h>

int counter = 10;

int isProgramFinished = 0;

void CountDown(void *pParam);

void main(void)
{
threadID = _beginthread(CountDown, 0, NULL);

DoMainLoopUntilExit();

isProgramFinished = 1;
}

void CountDown(void *pParam)
{
while(!isProgramFinished)
{
for( ; counter >= 0; counter--)
Sleep(100); // Wait 100 milliseconds & don''t waste CPU time


ConvertCode();

counter = 10;
}
}

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!