Announcement

Collapse
No announcement yet.

timer

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • timer

    hi leute

    für folgendes problem finde
    ich keine lösung:

    in der timer-komponente rufe ich eine procedure auf,
    in der eine datenbank aktualisiert wird.

    zu beginn möchte ich auf dem zugehörigen formular buttons und menüpunkte deaktivieren,
    damit nicht weitere datendatenbank-jobs (manuell) gestartet oder bearbeitet werden.

    dazu setze ich zunächst die buttons ... auf enabled := false, anschließend wird der timer
    auf enabled := false gesetzt.

    wenn ich nun eine test-procedure aufrufe, die nur einen sleep-befehl ausführt, und anschließend
    die buttons ... wieder auf enabled setze am ende des timer-events, gibt es keinerlei
    probleme.

    wenn ich aber die eigentliche procedure zur db-aktualisierung ( datetime-gesteuert) aufrufe,
    werden zwar die buttons ... auf enabled := false gesetzt, ihre oberfläche wird aber nicht
    aktualisiert, d.h. die buttons lassen sich zwar bis zum verlassen des timer-events nicht mehr
    drücken, aber man sieht es ihnen nicht an, daß sie disabled sind.

    wer weis, was da vor sich geht und wie ich das problem lösen kann?

    danke

  • #2
    Hi,

    füge einfach nach dem Disablen der Buttons und dem Start der eigentlichen Routine ein Application.ProcessMmessages ein.

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      hallo falk,

      vielen dank für deine prompte reaktion.

      der befehl application.processmessages löst das problem aber leider nicht.
      füge ich diesen befehl ein, fängt der timer schon wieder an zu laufen, während der job, der die datenbank aktualisiert, noch läuft.
      genau das aber muß ich vermeiden, da sonst der zweite joblauf den ersten ablöst, noch bevor der erste fertig ist.

      so gesehen scheint es sich um ein problem zu handeln, welches wohl mit der thread-problematik zusammenhängt

      gruß plu

      Comment


      • #4
        Moin plug,<br>dann setzte doch TTimer.Enabled während die Datenbank aktualisiert wird auf False und anschließend wieder auf True.<br>Jens Schuman

        Comment

        Working...
        X