Sleep.Function unter Delphi

Dieses Thema im Forum "Programmieren" wurde erstellt von SourceLE, 17. März 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. SourceLE

    SourceLE Kbyte

    Registriert seit:
    4. November 2002
    Beiträge:
    488
    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

    Registriert seit:
    4. November 2002
    Beiträge:
    488
    55 Millisekunden? Das ist ja ne Ewigkeit!!!! :-(
    Würde mich aber echt interessieren. Danke im Voraus.
     
  3. SourceLE

    SourceLE Kbyte

    Registriert seit:
    4. November 2002
    Beiträge:
    488
    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

    Registriert seit:
    2. März 2001
    Beiträge:
    114
    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

    Registriert seit:
    30. August 2000
    Beiträge:
    178
    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

    Registriert seit:
    4. November 2002
    Beiträge:
    488
    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

    Registriert seit:
    30. August 2000
    Beiträge:
    178
    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.]
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen