Einzelnen Beitrag anzeigen

Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#7

Re: OnIdle wird immer wieder ausgeführt

  Alt 4. Jul 2005, 13:36
Also:
1. OnIdle Event der Applikation mit nem Handler versehen.
2. Im OnIdle Handler die variable Done auf true setzen, das verhindert, daß OnIdle immer wieder aufgerufen wird.
3. im OnIdle deinen Timer neu starten (Timer.Enabled:=False; Timer.Enabled:=True) .. dann fängt er neu an zu zählen.
4. Im OnTimer event des Timers dann die MainForm minimieren und den Timer disablen.

Jetzt sollte eigentlich nach jeder Aktion des Nutzers die OnIdle gerufen werden und nur wenn er zwischendurch nix macht wird die OnIdle dann nicht mehr gerufen (weil immer nur einmal gerufen wird durch das Done:=True). Wenn jetzt dein Timer losschlägt wird die Form minimiert, aber nur einmal, da er danach ausgeschaltet ist. Durch das reinitialisieren des Timers im OnIdle wird verhindert, daß er ständig losschlägt, sondern nur, wenn OnIdle länger als das eingestellte Intervall nicht aufgerufen wurde.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat