Visual Basic: Programm mit Endlosschleife
Ich habe eine Analoguhr in Visual Basic geschrieben. Um die Zeiger immer wieder auszurichten habe ich eine Endlosschleife benutzt. Das Problem dabei ist, das, aufgrund dieser Endlosschleife mein Betriebssystem immer nach einer kurzen Zeit sagt "Uhr.exe reagiert nicht" und sich die Zeiger dadurch nicht mehr weiterbewegen. Wie kann man dieses Problem lösen?
Hallo *rumkugeln*,
du darfst einfach keine Endlosschleife benutzen, du könntest aber die Zeiger jede Sekunde weiterbewegen, wäre also keine Endlosschleife.
Kannst es ja mal so probieren, oder du zeigst uns den Code, dann kann man es besser nachvollziehen.
Benutz am besten einen Timer, den Intervall setzt du auf 1000 (=1 Sekunde)
ak
du darfst einfach keine Endlosschleife benutzen, du könntest aber die Zeiger jede Sekunde weiterbewegen, wäre also keine Endlosschleife.
Kannst es ja mal so probieren, oder du zeigst uns den Code, dann kann man es besser nachvollziehen.
Benutz am besten einen Timer, den Intervall setzt du auf 1000 (=1 Sekunde)
ak
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »andreaskeil« (2. Dezember 2008, 16:12)
Danke für die schnelle Antwort, aber leider habe ich keine Ahnung von Timern, ich weiß nicht wie man sie benutzt. Ich würde mich freuen, wenn mir das jemand erklären könnte.
Danke hab ich grade selbst herausgefunden. Vielen Dank trotzdem!
Danke hab ich grade selbst herausgefunden. Vielen Dank trotzdem!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »*rumkugeln*« (2. Dezember 2008, 16:26)
Erstmal eine grundsätzliche Frage: mit welcher VB Version programmierst du?
Dann: Du ziehst einen Timer aus der ToolBox auf deine Form. Dann doppelklickst du auf den Timer. Es öffnet sich die Codeansicht mit der Timer1_Tick-Sub.
Da kannst du den ganzen Code reinschreiben, den du zum Anzeigen von deinen Zeigern brauchst. Den Interval kannst du entweder im Eigenschaftenfenster einstellen oder per Code (in der Form1_Load-Sub):
ak
Dann: Du ziehst einen Timer aus der ToolBox auf deine Form. Dann doppelklickst du auf den Timer. Es öffnet sich die Codeansicht mit der Timer1_Tick-Sub.
Da kannst du den ganzen Code reinschreiben, den du zum Anzeigen von deinen Zeigern brauchst. Den Interval kannst du entweder im Eigenschaftenfenster einstellen oder per Code (in der Form1_Load-Sub):
|
|
Quellcode |
1 |
Timer1.Interval = 1000 ' der Zeitabstand in der dein Code ausgeführt werden soll in Millisekunden |
ak
okki
unregistriert
http://msdn.microsoft.com/en-us/library/…mers.timer.aspx
auf der seite gibts ein beispiel für vb.
lg falko
auf der seite gibts ein beispiel für vb.
lg falko
Du solltest dich aber nicht alleine auf nen Timer verlassen...
Den kann man zwar sehr genau auf die 1/1000 sec einstellen, jedoch wird der vom System erzeugt.
Soll heisen, im Günstigsten Fall ist der der Timer wirklich genau so schnell wie 1s(1000ms) ...
aber nicht im normalen Betrieb. der Timer wird durch andere Systemlasten ausgebremst und so ist er meist Langsammer ... mal mehr mal weniger ... aber immer langsammer ... je nach dem welche systemlast du hast.
Ich würde dir empfehlen, den Timer zwar zu benutzen, da er selber wenig resourcen verschlingt, aber aller 5-10 min einen abgleich mit der Systemuhr über Time() und Date() zu machen ... sonst kann es passieren, das deine Uhr bei rechenintesiven Programmen um einiges nachgeht.
Den kann man zwar sehr genau auf die 1/1000 sec einstellen, jedoch wird der vom System erzeugt.
Soll heisen, im Günstigsten Fall ist der der Timer wirklich genau so schnell wie 1s(1000ms) ...
aber nicht im normalen Betrieb. der Timer wird durch andere Systemlasten ausgebremst und so ist er meist Langsammer ... mal mehr mal weniger ... aber immer langsammer ... je nach dem welche systemlast du hast.
Ich würde dir empfehlen, den Timer zwar zu benutzen, da er selber wenig resourcen verschlingt, aber aller 5-10 min einen abgleich mit der Systemuhr über Time() und Date() zu machen ... sonst kann es passieren, das deine Uhr bei rechenintesiven Programmen um einiges nachgeht.
95% aller Computerfehler entstehen in dem Raum zwischen Tastatur und Rückenlehne !!!
Analoge Uhr
hi *rumkugeln*
um Tipps & tricks über Visual Basic zum bekommen schau mal da:
www.vbarchiv.de
www.vbfun.de
www.activevb.de
und siehe da es gibt sogar ein Tipps über dein Problem:
http://www.vb-fun.de/cgi-bin/loadframe.p…s/tip0350.shtml
Gruß
jogi08
um Tipps & tricks über Visual Basic zum bekommen schau mal da:
www.vbarchiv.de
www.vbfun.de
www.activevb.de
und siehe da es gibt sogar ein Tipps über dein Problem:
http://www.vb-fun.de/cgi-bin/loadframe.p…s/tip0350.shtml
Gruß
jogi08
Abgleich nach bestimmter Zeit ist unnötig!
Hallo ihr!
das mit dem Timer ist eine gute Idee. Ich habe eine ergänzung dazu:
Nicht einmalig die Zeit mit Time() eintragen und dann hochzählen, das führt manchmal ziemlich schnell zu großen Abweichungen.
Geh einfach hin und schreib beim Timerevent die Zeit jedesmal mit Time() in das Feld. Dann hast du ganz sicher bei jedem Timerevent die aktuelle Zeit und brauchst dir auch bei rechenintensiven Programmen im Hintergrund keine Gedanken machen, ob die Uhr im Moment aktuell ist.
Gruß Manuel
das mit dem Timer ist eine gute Idee. Ich habe eine ergänzung dazu:
Nicht einmalig die Zeit mit Time() eintragen und dann hochzählen, das führt manchmal ziemlich schnell zu großen Abweichungen.
Geh einfach hin und schreib beim Timerevent die Zeit jedesmal mit Time() in das Feld. Dann hast du ganz sicher bei jedem Timerevent die aktuelle Zeit und brauchst dir auch bei rechenintensiven Programmen im Hintergrund keine Gedanken machen, ob die Uhr im Moment aktuell ist.
Gruß Manuel
Man muss nicht alles wissen, aber man muss wissen, wo man die Antworten her kriegen kann.
Ähnliche Themen
-
Sonstige Programmiersprachen »-
Analoguhr in Visual Basic
(20. November 2008, 08:52)
-
Sonstige Programmiersprachen »-
Visual Basic
(6. März 2005, 16:16)
-
PHP »-
windows programiersprache
(8. April 2003, 19:55)
-
Archiv: Software »-
Komfortableres Programm für Programmierung???
(15. Februar 2003, 11:36)


