CZ On Idle

CZIdle IconKomponenta pro detekci stavů nečinnosti.

S touto komponentou můžete snadno implementovat různé "OnIdle" události a tak přesunout část kódu Vaší aplikace na dobu, kdy aplikace nic jiného nedělá, při nízkém vytížení CPU nebo při nečinnosti uživatele.

Vlastnosti:

  • Detekce různých druhů nečinnosti. Lze zvolit detekci nečinnosti aplikace, nízkého vytížení CPU, uživatelské nečinnosti nebo libovolné kombinace těchto tří stavů. Každý z těchto stavů nečinnosti má vlastní OnIdle událost (OnAppIdle, OnCPUIdle, OnUserIdle).
  • Efektivní s malými nároky. Tato komponenta nepoužívá žádné objekty TTimer. Navíc jsou systémové zdroje potřebné pro různé typy detekce alokovány a uvolňovány dynamicky podle aktuálního nastavení detekce.
  • Další nastavení. Můžete nastavit rychlost detekce (property CheckInterval), prodlevu před vyvoláním události OnIdle, požadované max. zatížení CPU pro vyvolání OnCPUIdle. Události OnIdle mohou být po dobu trvání podmínek stavu nečinnosti potlačeny (jinak jsou události OnIdle vyvolávány periodicky dokud trvají podmínky daného stavu nečinnosti).

 

Události OnIdle:

  • OnAppIdle. Toto je výchozí událost nečinnosti aplikace tak, jak je definována ve "Forms.pas" v TApplication.OnIdle. Je volána vždy, když ve frontě zpráv aplikace není žádná jiná zpráva ke zpracování, což je obecně dosti často. Nejlepší využití této události je pro krátká, rychlá volání jako například obnovení Labelů či jiných prvků uživatelského rozhraní.
  • OnCPUIdle. Tato událost je vyvolána při poklesu celkového zatížení CPU pod předem nastavenou mez (v procentech) či případně je vyvolána až po uplynutí zvolené prodlevy, po kterou je stále splněna podmínka zatížení CPU).
  • OnUserIdle. Tato událost je vyvolána po uplynutí nastavené doby, po kterou je uživatel aplikace nečinný (nepřichází žádný vstup z myši ani z klávesnice). Nepoužívá žádná API volání SetWindowHook() pro detekci už. vstupu.

 

Podporované verze Delphi: D5 - DXE2

  

    stáhnout CZ On Idle zdarmaPas file iconZdrojový kód přiložen

    Manuál

 

Pokud chcete, můžete přispět na další vývoj: