Inhalte eines Ordners prüfen
-
if (Query1->Fields->Fields[9]->AsString == "ISDN") { Timer1->OnTimer = Timer1Timer; }void __fastcall TForm1::Timer1Timer(TObject *Sender) { Timer1->Enabled=false; Memo1->Lines->SaveToFile("C:\\T_ISDN\\"+Query1->Fields->Fields[0]->AsString+"_nerv.gtw"); Memo1->Lines->Clear(); Timer1->Enabled=true; }so hab ich das nach deiner Aussage müsste er ja jetzt jedsmal 3000msec warten und dann alles eintragen wie vorher macht er aber net.
-
Mein Programm muss aber warten 3 sec nach dem ersten durchlauf
bevor meine 2ter schleifendurchlauf anfängt muss es 3sec warten koste was es wolle nur es darf nicht so sleepen dann ist es ja im tray und überlastet alles
-
Wieso, er macht doch das was du ihm sagst.
OnTimer ausgelöst:
Timer1->Enabled=false;//Timer anhalten Memo1->Lines->SaveToFile("C:\\T_ISDN\\"+Query1->Fields->Fields[0]->AsString+"_nerv.gtw");//Inhalt von Memo1 speichern Memo1->Lines->Clear();//Memo1 löschen (d.h. wenn du es nicht innerhalb von 3 Sek wieder füllst speichert er ein leeres Memo) Timer1->Enabled=true;//Timer wieder neu starten
-
Ja dann kann ich nunmal nix mit dem Timer anfangen
er soll einfach nur am Ender der Schleife 3Sekunden warten bis er wieder anfängt checkt ihrs net der timer timt zawr blöde rum hält aber meine schleife net davon ab weiter zu machen !!!
-
Will doch nur das einfachste von der welt
WENN 3 SEKUNDEN VERGANGEN MACH WEITER

kann doch net sein das es so eine Funktion in c++ nicht gibt???
Sleep(3000); ist schon fast perfekt nur das das programm nicht mehr reagiert ist voll bekloppt

-
Dann musst du dir vielleicht mal überlegen, ob du deine Schleife überhaupt brauchst ???
Mach das was in deiner Schleife passiert im OnTimer Ereignis ....
-
Du hast doch einen konzeptionellen Fehler!
er soll einfach nur am Ender der Schleife 3Sekunden warten bis er wieder anfängt checkt ihrs net der timer timt zawr blöde rum hält aber meine schleife net davon ab weiter zu machen !!!
Und -sorry- Schreibe ohne Dialekt mit Satzzeichen, dann kann man die Texte auch verstehen
-
war klar das sowas kommen muss..
Ich habe es auch nochmal versucht nach der anderen Methode die ganze Schleife als Timer zu nehmen
ButtonKlick = Ontimer Start
und im Ontimer hatte ich alles drinne nur leider hat er nicht 1x was gemacht
die idee hört sich ja nicht schlecht anam anfang bevor die schleife beginnt setz er den timer zurück und am ende startet er ihn wieder nur leider gings net

also somit kann mir keiner mit dem Problem helfen ?
Es gibt also definitiv keine Funktion âla sleep die nicht rumnervt.
-
Nochmal sorry -> Du hast ein Fehler in deinem Konzept der Programmierung in Zusammenarbeit mit dem Timer.
Der Timer wird alle x Sekunden ausgelöst und würde etwas im OnTimer erledigen. Also musst du das was alle x-Sekunden erledigt werden soll da rein programmieren. Wenn du dein
Memo1->Lines->SaveToFile("C:\\T_ISDN\\"+Query1->Fields->Fields[0]->AsString+"_nerv.gtw");//Inhalt von Memo1 speichernIn den OnTimer schreibst, wird es alle x gespeichert.
-
Wie gesagt ich hatte das schon bemerkt aber ich sage nochmal
ich habe dann alles in den OnTimer reingeschrieben...den per Buttonklick starten lassen
den intervall auf 3sec
vor anfang der schleife im Timer dannfalse
... Schleife....
true
so dachte ich würde er alle x Sek die schleife wiederholen nur nicht passierte

-
Dann wirst du einen allg. unbekannten Spezialtimer haben.
-
kannst du mir mal deine icq nummer geben dann lässt sich das besser klären besprechen ?
-
Was für ein Gespräch... Lege ein Timer-Objekt auf der Form an. Ruf den Eigenschaftsdialog auf und bei den Ereignissen findest du 'OnTimer'. Nun noch ein Doppelklick, und du hast die Timer Funktion, in die du deine Funktion schreiben musst.
Edit: Die 'Schleife' läuft über den Timer, wird also alle x Millisekunden aufgerufen.
Edit2: Ich würde auch mal ganz gerne wissen, wofür das eigentlich gut sein soll? Ich meine die Aufgabenstellung.
-
Ich habe kein "icq"
-
die ganze schleife in den Timer reinzuschreiben ist auch quatsch wie mir gerade auffällt....
da er in den 3sekunden die ganze schleife abarbeitet also alles quatsch bisher Timer kann ich so immoment nicht verweden

denn er soll ja 3sekunden warten bis einen neue Datei erzeugt wird und nicht alle in den 3 sekunden abarbeiten k.a aber timer scheint für mich nicht zu funktionierne werde mich morgen dran setzt habe heute die schnauze voll
-
azad187 schrieb:
... habe heute die schnauze voll
Nicht nur du ...
-
Du hast noch nicht verstanden, das du die Schleife rausnehmen musst, und das was in der Schleife passiert in den Timer setzt.
Der Timer speichert dann alle 3 Sekunden dein Memo.Im Timer fragst du dann ab, ob schon alles gespeichert ist.
Wenn nein: Timer weiterlaufen lassen.
Wenn ja: Timer anhalten.
-
Ich kriegs aber nicht hin muss da morgen nochmal nachschauen habe doch schon alles probiert es ist aber bei mir ziemlich verschachtelte viele schleifen + if abfragen in einer

-
Also ich habe bisher noch nicht mit Timern in C++ gearbeitet, aber nach dem Fred sollte ich es (auswendig) können.
Mach's dir doch nicht so schwer. Nimm den Timer mit dem entsprechenden Ereignis (OnTimer) lass ihn mit Deinem Button loslaufen und schreib erstmal was simples wie einen MsgDlg rein, der dann alle x-Sekunden losgeht.
Wenn das klappt, siehst Du schonmal, das und wie der Timer funktioniert. Dann kannst Du Deine Logik dort rein packen.
Es ist wahrscheinlich sinnvoll das nicht über Strg+C, Strg+V zu tun, sondern über den kleinen Umweg eines BAP sich über den genauen Ablauf nochmal klar zu werden und diesen dann neu aufzubauen.
Ewig verschachtelt und kompliziert wird's bei mir immer dann, wenn ich den Ablauf (im Vorfeld) nicht hinreichend erfaßt habe.
-
Leider habe ich mir vorher keine Gedanken über das Programm gemacht und nach der Methode Vom-Hirn-Ins-Terminal gearbeitet

Naja ein neuer Tag.. mal gucken ob ich es heute gerafft bekomme