1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Sleep.Function unter Delphi

Discussion in 'Programmieren' started by SourceLE, Mar 17, 2003.

Thread Status:
Not open for further replies.
  1. SourceLE

    SourceLE Kbyte

    ruckeln\' (meine noch schlimmer) am Anfang. Ich habe aber in einem anderen Programm gesehen das das auch flüssiger geht.

    Die Antwort wäre ein Grand Prix wert. Aber ich sehe schwarz ;-)

    MfG & CU
     
  2. SourceLE

    SourceLE Kbyte

    55 Millisekunden? Das ist ja ne Ewigkeit!!!! :-(
    Würde mich aber echt interessieren. Danke im Voraus.
     
  3. SourceLE

    SourceLE Kbyte

    Ja stimmt! Mein ich ja auch: Timer.Enabled := False. Der Haken ist nur das bei einem Neustart der Timer auf FALSE bleibt. Also muss zwangsläufig der Timer irgendwo wieder auf TRUE gesetzt werden.

    Bei Timer.Intervall := 0 ist das überflüssig.

    Zu guterletzt hab ich mich auch für die Enable-Version entschieden. Irgendwie scheint die Sicherer zu sein (sagt mir mein Bauch).

    Zu den Proceduren: Wenn der Timer nicht ausgeschaltet wird. Egal nun ob über Enable oder Interval, werden alle nachfolgenden Befehle ebenfalls in der Intervallzeit ausgeführt, d.h. irgenwie arbeitet der Timer Global ?!?

    Eigentl. sollte es aber so sein, dass nur die Befehle IN der Timer.Procedur dem entsprechend zeitverzögert ausgeführt werden sollten.

    Das lässt sich ganz leicht nachvollziehen. Schreib einfach eine Main. 2 Button die jeweils Form1 und Form 2 aufrufen. Schreib in Form1 igendeine Timer Procedure und in Form2 irgendwas anderes. Setze auf jede Form ein OkButton (FormX.Close).
    Starte die Main und teste das einfach mal aus. Du wirst sehen das Form2 dann ebenfalls mit der Timerzeit von Form1 arbeitet.
    [Diese Nachricht wurde von SourceLE am 18.03.2003 | 16:57 geändert.]
     
  4. taurus99

    taurus99 Byte

    Ich hab irgendwann mal gelesen, dass Windows eine "Reaktionszeit" von 55 Millisekunden hat. Ich hoffe ich find noch, wo es stand.

    ~Taurus
     
  5. Sumo

    Sumo Kbyte

    Da komm ich nicht ganz mit (Der Teil mit den Prozeduren). Aber der Timer sollte sich doch durch Timer.Enabled := False abschalten lassen. Bei mir jedenfalls funktioniert das. Das über Intervall := 0 sieht auch optisch nicht so schön aus :).

    Wenn das mit Delphi nicht funktionieren sollte, kann man es ja noch direkt über WinAPI probieren.
     
  6. SourceLE

    SourceLE Kbyte

    Danke für den Tipp! Was mich aber wundert ist, dass selbst unter DirectDraw der Laden anfänglich hängt. Mein Ziel ist es aber, genau das zu Verhindern. Das das geht, hab ich schon gesehen. Nur ist es mir ein Rätsel, wie. Ich hab das auch schon alles direkt in den Speicher geschickt, selbst da gibt es Aussetzer. Vielleicht muss man es auch in ASM machen. Und da würde die Laufzeit-Priorität (also dein Tipp) der Schlüssel sein. Ich geb Dir bescheid, wenns funzt.

    PS: Das alte Posting ist wech...

    Das Thema war dort, dass der Timer unter Delphi nur mittels TimerX.Interval := 0 (oder false) gestoppt werden konnte.
    Merkwürdig war aber das alle nachfolgenden (aufgerufenen) Proceduren die Timerzeit übernommen haben. Obwohl dieser aus der Laufzeit entfernt wurde (ohne TimerX.Interval := 0).

    Naja; ich habs dann halt selber gelöst; obwohl mir diese Variante eigentl. nicht gefällt.

    MfG & CU
     
  7. Sumo

    Sumo Kbyte

    Vielleicht durch ändern der Prozesspriorität?

    Mit den anderen Sachen kann ich leider nicht helfen. Ich hab nur so die Grundlagen von Delphi.

    edit:
    Ich kann das alte Post nicht mehr finden. Kann das sein?
    [Diese Nachricht wurde von Sumo am 17.03.2003 | 18:17 geändert.]
     
Thread Status:
Not open for further replies.

Share This Page