ein pause machen



  • hi,
    ich bin quasi ein programmier anfänger und würde gerne eure hilfe in anspruch nehmen.
    und zwar brauch ich folgendes: im grunde suche ich nur einen befehl, der den nächsten befehl erst nach einer gewissen zeit ausführt. gibt's sowas?
    thx



  • Sleep(ms);

    ms=Millisek.



  • sleep() 😉 (je nach System könnte der auch usleep() oder Sleep() heißen)



  • eclDelay(unsigned int DelayInMilliseconds, bool InterruptWholeProgram = false)	{
    	if(InterruptWholeProgram)	{
    	// If the user wants to halt the whole program during the method...
    		::Sleep(DelayInMilliseconds);
    		Application->ProcessMessages();
    	}	else	{
    
    		// If the user just wants the method which had called eclDelay to halt...
    		int DelayStartTime = GetTickCount();
    		while(int(GetTickCount() - DelayStartTime) < DelayInMilliseconds)
    			Application->ProcessMessages();
    		}
    	}
    }
    


  • also ich hab des jetzt in folgenden programmiertext eingebunden:

    while(Form1->ClientWidth - 73 >= Image1->Left)
            {
            Image1->Left = Image1->Left + 1;
            Sleep(200);
            }
    

    und naja, er macht dann gar nix mehr...
    ohne Sleep(); gehts

    achja: hab den c++builder 5



  • evtl mal mit Application->ProcessMessages(); probieren! Einfach hinter dein Sleep haun.



  • was macht das?
    naja, is egal. hauptsache es funzt ^^



  • Das Problem hätte sich ergeben, wenn du dir mal meine Funktion angeschaut hättest ...

    Was das macht? Schau dir den Namen der Funktion an und denk mal scharf nach ...



  • du musst windows nachrichten zum neuzeichnen des fensters verarbeiten...sonst wirst du nie eine änderung des fensters sehen, wenn nichts aktualsiert wird.
    so einfach ist das 🙂

    MfG RadiatioN


Log in to reply