programmatori Delphi Caro,Timer One-Shot
Sto cercando aiuto come scrivere un timer one-shot (No GUI, in modo da VCL Timer fuori questione) ...
Mi spiego ancora un po.
Nel mio codice (che spiega con temporizzatore VCL ma in questo particolare progetto non ho forme):
- chiamata una
procedure
che inviano un carattere sopra porta seriale - abilitare un timer con una quantità X di
Interval
In OnTimer
evento:
ho un codice che inviano un carattere quindi disattivare ° Il timer stesso non verrà mai più eseguito.
Il problema è che ho bisogno di rendere dinamica la creazione di questi timer. Ho pensato alla funzione SetTimer()
quindi KillTimer()
nell'evento "OnTimer" per disabilitarla (liberarla).
È un buon modo (sicuro)?
Grazie!
Ho creato ['qualcosa di simile] (http://stackoverflow.com/q/10468787/960757) qualche tempo fa. Il tuo approccio sembra buono, ma tieni presente che se inizierai più di un timer alla volta, dovrai distinguere, quale di essi ha attivato quel timeout se usi un proc callback comune per tutti loro. – TLama
Ho letto che la funzione 'SetTimer()' puoi mettere un "ID univoco" al timer e uccidere con i loro ID – ELCouz
Sì, questo è quello che sto facendo in quel codice. Sto memorizzando una raccolta di ID timer e procedure che devono essere eseguite quando scade l'intervallo del timer. Quando succede, cerco in quella raccolta un oggetto per ID di un timer che è scaduto e, se viene trovato, uccido il timer, eseguo quella procedura ed elimina l'elemento trovato dalla raccolta. – TLama