verzoegerung mit timer
-
Ich hoffe einer von Euch kann mir helfen.
Ich bekomme das einfach nicht hin.Es soll ein Zufallsbuchstabe in einem Label erscheinen.
!!! Das habe ich !!!
Nun soll eine Verzoegerung fuer die Ausgabe des Zufallsbuchstabens mit einem weiteren Timer erzeugt werden.
Die Verzoegerung soll etwa 1 bis 5 Sekunden dauern.
Nachfolgend habe ich den Code.
BITTE BITTE helft mir!!!!/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /* Verzoegerung von 1-5 Sekunden, bis der Buchstabe ins Label gestellt wird */ /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ class __Form1_declspec Form1 : public __Form1_Base { public: // add your public instance data here private: // add your private instance data here clock_t startZeit, stopZeit,z_Zeit; WULong timerTicks; protected: // add your protected instance data here }; // Code added here will be included at the top of the .CPP file // Include definitions for resources. #include "WRes.h" Form1::Form1() { } Form1::~Form1() { } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ WBool Form1::Schaltflaeche_1_Click( WObject * source, WEventData * event ) { WString sBuchstabe; char cBuchstabe; WDouble zufall; WULong zufall1; label_3->SetText( "" ); label_13->SetText( "" ); label_4->SetText( "" ); /*???????????????????????????????????????????????????????????????????????*/ /* ?????? Das ist mein Problemteil ????? */ /*???????????????????????????????????????????????????????????????????????*/ timerTicks = 0; z_Zeit = clock(); srand (z_Zeit); zufall1 = rand()%500; for(timerTicks=0;timerTicks<zufall1;timerTicks++) timer_1->Stop(); /*???????????????????????????????????????????????????????????????????????*/ timerTicks = 0; timer_2->Start( 100,0 ); startZeit = clock(); srand (clock()); zufall = rand(); cBuchstabe = ((int) zufall % 26); cBuchstabe = cBuchstabe + 'a'; sBuchstabe.Sprintf("%c", cBuchstabe); label_4->SetText( sBuchstabe); Textfeld_1->SetText( "" ); Textfeld_1->SetFocus( ); return FALSE; } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ WBool Form1::timer_1_Timer( WObject * source, WTimerEventData * event ) { timerTicks++; // Zaehler bei jedem Timer-Ereignis inkrementieren return FALSE; } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /* Reagieren auf eine Aenderung des Textfeld-Inhaltes */ /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ WBool Form1::Textfeld_1_Change( WObject * source, WEventData * event ) { WString text1, text2; WString string_diffZeit; WDouble diffZeit; text1 = Textfeld_1->GetText(); if (text1 == "") { return FALSE; } text2 = label_4->GetText(); // Entspricht der Inhalt des Textfeldes if (text1 == text2) // dem im Label 4? { // Ja! timer_2->Stop(); stopZeit = clock(); diffZeit = (stopZeit - startZeit); diffZeit = diffZeit / CLOCKS_PER_SEC; string_diffZeit.Sprintf("%4.2f",diffZeit); label_3->SetText( string_diffZeit ); diffZeit = timerTicks / 10.0; string_diffZeit.Sprintf("%4.2f",diffZeit); label_13->SetText( string_diffZeit ); } else // Entspricht der Inhalt des Textfeldes { // dem im Label 4? Textfeld_1->SetText( "" ); // Nein: Text löschen } return FALSE; } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ WBool Form1::timer_2_Timer( WObject * source, WTimerEventData * event ) { timerTicks++; return FALSE; }
Edit: Deinen Code zwischen die abschließende eckige Klammer und die neue beginnende schreiben, dann funktionieren die Code-Tags richtig.
[ Dieser Beitrag wurde am 24.02.2003 um 14:43 Uhr von Garrett editiert. ]
-
Hallo,
Standard C++ kennt keine Timer. Sehe ich das richtig, dass du mit dem Borland Builder arbeitest?
-
Ich arbeite mit Power ++ von Sybase