Gambas-it

Gambas3 => Programmazione => Topic aperto da: akrobaticone - 15 Marzo 2019, 10:56:04

Titolo: Timer inattività
Inserito da: akrobaticone - 15 Marzo 2019, 10:56:04
Ciao
Ho utilizzato Raspberry e un display touch per costruire una consolle sul quale gira il programmino Gambas
da un form principale che fa da menu si aprono altri form
Ciò che devo fare è creare un timer di inattività che, dopo un po di tempo che non si utilizza la consolle, fa ritornare il programma alla schermata iniziale di login
Userei un timer che viene resettato ogni volta che viene eseguita qualsiasi operazione sulla consolle
Quale può essere la via più semplice per rilevare gli eventi del programma, considerando che esso si svolge su più form?
Inserire una funzione Resetta_timer() in ogni evento di tutti gli oggetti di tutti i form mi sembra alquanto complicato.
Avete qualche idea?
Titolo: Re:Timer inattività
Inserito da: Gianluigi - 15 Marzo 2019, 11:09:04
Forse impostando un osservatore?
In questo campo vuott è il più esperto.
Mi sa che comunque dovrai inserire un bel po di controlli...
Titolo: Re:Timer inattività
Inserito da: dex - 15 Marzo 2019, 11:51:41
Ciao
avevo fatto una cosa simile per un salvaschermo personalizzato

ti basta una variabile integer dichiarata in un modulo. la variabile è quella che incrementi nel timer per esempio MyTim  dichiarata pubblica nel modulo M1.
e un'altra variabile sempre integer o nel modulo oppure nel form dove si trova il timer che Chiameremo TempoMax dove tu inserisci il valore massimo
nel timer metti una struttura if
Codice: [Seleziona]
If M1.Mytim = TempoMax Then
'esegui il tuo codice
else
inc M1.Mytim
End if

Nel main o in altri form intercetti i movimenti del mouse o della tastiera e ci metti M1.MyTim = 0

Praticamente resetti la variabile e il conto riparte, se non fai movimento quando M1.Mytim arriva a quel valore esegue


Titolo: Re:Timer inattività
Inserito da: akrobaticone - 15 Marzo 2019, 15:58:26
il timer è una buona soluzione
il problema è intecettare gli eventi nei form
l'evento mouse_move viene chiamato dal movimento del mouse con il tasto sinistro premuto
gli eventi click sono relativi agli oggetti che popolano il form
non ho ben chiaro come funziona la classe observer, cerco di documentarmi meglio
Grazie Dex e Gianluigi
Titolo: Re:Timer inattività
Inserito da: Gianluigi - 15 Marzo 2019, 16:47:57
Visto che il silente vuott è preso dalla macchina del tempo, dovresti allegare un progetto minimo che dia l'idea di cosa vuoi ottenere.
Così posso (possiamo) fare dei tentativi per aiutarti.
Titolo: Re:Timer inattività
Inserito da: dex - 15 Marzo 2019, 17:18:30
Quello è un mio vecchio progetto, avevo intercettato anche il solo movimento del mouse, ora non mi ricordo come, provo a vedere se trovo il vecchio codice
Titolo: Re:Timer inattività
Inserito da: akrobaticone - 15 Marzo 2019, 17:27:19
Visto che il silente vuott è preso dalla macchina del tempo, dovresti allegare un progetto minimo che dia l'idea di cosa vuoi ottenere.
Così posso (possiamo) fare dei tentativi per aiutarti.
Tra oggi e domani provo  a creare un progettino di esempio
Titolo: Re:Timer inattività
Inserito da: vuott - 15 Marzo 2019, 18:47:28
In questo campo vuott è il più esperto.

(https://www.widerview.it/wp-content/uploads/2018/08/Wider-View-Portfolio-Andrea-Romanzi-Stage-Music-1.gif)