Differenze tra le versioni di "WAIT"

Da Gambas-it.org - Wikipedia.
Riga 11: Riga 11:
  
 
La parola chiave '''WAIT''' può essere seguita da un valore numerico decimale (es.: 0.1 oppure 1 oppure anche 10) che indica i secondi di attesa che vogliamo impostare. Nel caso ''n'' assuma valore 1 il programma attenderà 1 secondo prima di eseguire le istruzioni successive. Analogamente se ''n'' vale 0.1 o 10 saranno attesi 0.1 o 10 secondi.  
 
La parola chiave '''WAIT''' può essere seguita da un valore numerico decimale (es.: 0.1 oppure 1 oppure anche 10) che indica i secondi di attesa che vogliamo impostare. Nel caso ''n'' assuma valore 1 il programma attenderà 1 secondo prima di eseguire le istruzioni successive. Analogamente se ''n'' vale 0.1 o 10 saranno attesi 0.1 o 10 secondi.  
La specificazione di un valore di attesa modifica anche l'esecuzione del comando: infatti, oltre ad aggiornare l'interfaccia grafica e ad attendere per un determinato lasso di tempo, Gambas gestisce anche gli eventi della tastiera e del mouse, permettendo quindi all'utente di interagire con il programma. Al riguardo e più in generale, paragonando le parole-chiavi ''Wait'' e ''Sleep'', il ''runtime'' con ''Wait'' prosegue, mentre con ''Sleep'' si arresta.
+
La specificazione di un valore di attesa modifica anche l'esecuzione del comando: infatti, oltre ad aggiornare l'interfaccia grafica e ad attendere per un determinato lasso di tempo, Gambas gestisce anche gli eventi della tastiera e del mouse, permettendo quindi all'utente di interagire con il programma.
 +
 
 +
Al riguardo e più in generale, paragonando le parole-chiavi ''Wait'' e ''Sleep'', il ''runtime'' con ''Wait'' prosegue, mentre con ''Sleep'' si arresta.
  
 
----
 
----
Riga 38: Riga 40:
 
   Dim fl As File
 
   Dim fl As File
 
    
 
    
  dev = "/dev/stdout"
+
  dev = "/dev/console"
 
 
  Shell "echo '<FONT Color=gray>''password''</font>' | sudo -S chmod 666 " & dev <B><FONT Color=#B22222>Wait</font></b>  <FONT Color=gray>' ''Resta in attesa, finché il cambio dei permessi del file-device non è completato''</font>
 
 
 
  fl = Open dev For Write
 
 
    
 
    
  Write #fl, "testo qualsiasi"
+
  Shell "echo '<FONT Color=gray>''password''</font>' | sudo -S chmod 666 " & dev <B><FONT Color=#B22222>Wait</font></b>  <FONT Color=gray>' ''Resta in attesa, finché il cambio dei permessi del file-device non è completato''</font>
 
    
 
    
  fl.Close
+
  Print "\n\nFile-device '"; dev; "' accessibile: "; Access(dev)
 
    
 
    
 
  '''End'''
 
  '''End'''

Versione delle 06:31, 19 ago 2020

Il comando WAIT serve ad indicare a Gambas di fermare l'esecuzione dell'applicazione in attesa di un evento. La sintassi è:

<<codice 1>>
WAIT [n]
<<codice 2>>

Se n è specificato, WAIT attende n secondi prima di proseguire con l'esecuzione delle istruzioni contenute in <<codice 2>>.


In genere WAIT è utilizzato per attendere l'esecuzione di un evento. Inserito in qualunque parte del programma, ferma l'esecuzione dello stesso ed aggiorna l'interfaccia grafica (l'aggiornamento dell'interfaccia è inserita in un ciclo di operazioni che l'interprete esegue ad intervalli regolari).

La parola chiave WAIT può essere seguita da un valore numerico decimale (es.: 0.1 oppure 1 oppure anche 10) che indica i secondi di attesa che vogliamo impostare. Nel caso n assuma valore 1 il programma attenderà 1 secondo prima di eseguire le istruzioni successive. Analogamente se n vale 0.1 o 10 saranno attesi 0.1 o 10 secondi. La specificazione di un valore di attesa modifica anche l'esecuzione del comando: infatti, oltre ad aggiornare l'interfaccia grafica e ad attendere per un determinato lasso di tempo, Gambas gestisce anche gli eventi della tastiera e del mouse, permettendo quindi all'utente di interagire con il programma.

Al riguardo e più in generale, paragonando le parole-chiavi Wait e Sleep, il runtime con Wait prosegue, mentre con Sleep si arresta.



Esempio 1 - Attesa prima della visione di un messaggio (riga di comando)

PUBLIC SUB Main()
  WAIT 1
  PRINT "Gambas è il migliore!"
END


Spiegazione

L'esempio molto semplice è eseguito sul codice di un programma da riga di comando. Si noti come WAIT fa in modo che quando il programma viene lanciato attende un secondo prima di mostrare il messaggio "Gambas è il migliore!".


Attesa del completamento di un comando

La parola-chave Wait - priva di valore numerico di attesa - può essere utilizzata anche per attendere che l'operazione, che un comando - lanciato con Shell o Exec - deve svolgere, sia completata, prima di passare alla riga successiva del codice.

Mostriamo un esempio, nel quale si cambieranno i permessi del file-device protetto "/dev/stdout" prima che questo possa essere aperto in scrittura:

Public Sub Main()
 
 Dim dev As String
 Dim fl As File
 
 dev = "/dev/console"
  
 Shell "echo 'password' | sudo -S chmod 666 " & dev Wait   ' Resta in attesa, finché il cambio dei permessi del file-device non è completato
  
 Print "\n\nFile-device '"; dev; "' accessibile: "; Access(dev)
  
End