Sleep num_sec.
forse con wait
Public Sub Form_Open()
Me.show
Wait 0.1
' Blocca l'oggetto:
Object.Lock(Button1)
Wait 4 ' Si resta in attesa per 4 secondi
' Passati i 4 secondi, l'oggetto viene sbloccato:
Object.Unlock(Button1)
Print " Sono passati 4 secondi."
End
Public Sub Button1_Click()
If Object.IsLocked(Button1) Then Return ' Fa sì che durante l'attesa l'evento si "scarichi" nel vuoto...
Me.Background = Color.Red
End
il blocco è riferito solo all'interfaccia grafica, in background lavora un timer che periodicamente fa la scansione via seriale di dispositivi esterniQuindi, ti riferisci esclusivamente al blocco operativo del tuo programma fino alla raggiungimento del Time-out.
in sostanza viene premuto un tasto start che fa partire un ciclo macchina e l'operatore non deve più interagire con l'interfaccia grafica fino a fine ciclo
potrei semplicemente mettre la proprietà enable a false su tutti i controlli del form, ma cercavo qualche cosa di più elegante
X-Object.Enabled=FalseSe ti dovessi trovare con più Form aperte nel tuo programma, la migliore metodologia sarebbe quella di accedere alle Form in via modale, di modo che Gambas renda inattiva la Form padre, fino a quando il controllo, rimanendo alla Form Figlio ed eventualmente ad altre successive dipendenti, non ritorni alla detta Form padre.
Se invece vuoi bloccare tutti gli oggetti contenuti nella Form, non devi fare altro, secondo me, di eseguire un sempliceCodice: [Seleziona]per ciascun oggetto della Form ed aspettare la fine del tempo d'attesa. Ripristinare poi, a fine attesa, tutti gli oggetti invalidati.X-Object.Enabled=False
Ricorda che, se la Form disponesse anche di una barra di meù, di invalidare tutti i menù contenuti in essa.
:ciao: