Finestre di dialogo
Dettagli da pag.67 di Linguaggio.pdf.
Messaggio semplice[edit]
call MESSAGE("Ciao") from GESECRAN
call MESSAGE("Ciao\Ciao su seconda riga") from GESECRAN
che si appoggia su Infbox
ma scrive il messaggio nella traccia se eseguito in modalità batch.
Oppure (deprecato)
Infbox "Ciao"
Input da utente[edit]
La chiamata che si può usare è Call SAICAR (...) From GESECRAN
Pur non avendo il sorgente ho visto che funziona così (alcuni parametri non li ho capiti):
Local Integer OK Local Char YINPUT(250) Local Char YTIT(30) : YTIT='Titolo finestrella' Local Char YTITCAMPO(30): YTITCAMPO='Nome campo da inserire' Local Char YTYP(30) : YTYP = 'Tipo_dato' #vedi funzione GESATY Local Integere YLEN : YLEN =30 #Lunghezza del campo se necessaria (in realtà taglia l'input se più lungo, senza avvisare) Call SAICAR (YINPUT, YTIT, YTITCAMPO, YTYP,1,YLEN,"",OK) From GESECRAN Infbox YINPUT
Esempio con tipo oggetto
Local Integer OK Local Char YINPUT(250) Local Char YTIT(30) : YTIT='Inserisci valore' Local Char YTITCAMPO(30): YTITCAMPO='Nuovo valore' Local Char YOBJ(30) : YOBJ = 'BPC' Call SAICAR (YINPUT, YTIT, YTITCAMPO, YOBJ,0,0,"",OK) From GESECRAN Infbox YINPUT
Esempio veloce che ho trovato provando (non ho il sorgente GESECRAN...) con menu
Local Integer OK Local Char YINPUT(250) Local Char YTIT(30) : YTIT='Inserisci tipo proposta' Local Char YTITCAMPO(30): YTITCAMPO='Nuovo tipo proposta' Local Char YOBJ(30) : YOBJ = 'M' Call SAICAR (YINPUT, YTIT, YTITCAMPO, YOBJ,250,0,"",OK) From GESECRAN Infbox YINPUT
Esempio con semplice stringa
Local Integer OK Local Char YINPUT(250) Local Char YTIT(30) : YTIT='Inserisci stringa' Local Char YTITCAMPO(30): YTITCAMPO='Stringa' Local Char YOBJ(30) : YOBJ = 'A' Call SAICAR (YINPUT, YTIT, YTITCAMPO, YOBJ,1,30,"",OK) From GESECRAN
Yes/No boxes[edit]
Local Integer YN : YN = 2 :# By default points on Yes Call OUINON("Attention:\Do you want to continue?", YN) From GESECRAN If YN=1 : Infbox "HAI CLICCATO NO" : Endif If YN=2 : Infbox "HAI CLICCATO SI" : Endif
che internamente fa (non usare e notare i codici 1/2 invertiti)
Local Libelle REP Qstbox mess(2, 5, 1) - nomap Using [L]REP Case [L]REP When 1: Infbox "HAI CLICCATO SI" When 2: Infbox "HAI CLICCATO NO" Endcase
Ok/Cancel boxes[edit]
Local Integer OKCAN : OKCAN = 2:# Ok Call AVERTIR(“Warning:\All records will be deleted”, OKCAN) From GESECRAN
oppure (deprecato)
Local Libelle REP Wrnbox "Attenzione: proseguire?" Using [L]REP Case [L]REP When 1: Infbox "HAI CLICCATO Ok" When 2: Infbox "HAI CLICCATO Annulla" Endcase
Messaggio di attesa[edit]
Per aprire un messaggio di attesa all'inizio di una serie di azioni:
Call TEMPON ("Azione in corso...") From GESECRAN
per chiudere il messaggio
Call TEMPOFF From GESECRAN
Error / warning[edit]
Call ERREUR(MESSAGGIO) From GESECRAN Call ERREURT(MESSAGGIO, TIPO) From GESECRAN #con temporizzazione Call ERRTIT(MESSAGGIO, TITOLO) From GESECRAN Call ERRTITT(MESSAGGIO, TITOLO) From GESECRAN #con temporizzazione Call ERREND (MESSAGGIO) From GESECRAN #per errori gravi
- TIPO può essere 0 (Informazione) o 1 (Errore)
- Attenzione: se il parametro MESSAGGIO è vuoto, l’avviso di errore non compare.
GTIMOUT=15 # timeout di 15 secondi Call ERRTITT("Errore", "Mio titolo") From GESECRAN
Deprecati:
Errbox "Error message"
messaggio di errore
Endbox "Error end message"
da usare solo in casi gravi in cui va interrotto il programma (vedere help nel file chm)
Note[edit]
- La variabile GTIMOUT si può utilizzare per temporizzare il messaggio.
- Per mettere il testo su più righe come separatore utilizzare
\
. - per andare a capo:
"testo"+chr$(13)+chr$(10)
- per aggiungere una barra inversa (
\
backslash) a doppi apici, barra inversa, tab o Carriage Return:escJson(STRINGA)
; il contrario conunescjson
- per sostituire caratteri da codifica 8 byte a 7 byte (senza caratteri con accenti particolari):
ctrans(STRINGA)
- esempio
ctrans("èéìàùò") #"eeiauo"
- esempio
- per sostituire dei caratteri con quelli specificati:
ctrans(STRINGA, caratteri_da_togliere, caratteri_da_mettere)
(vedi anche replace)- esempio per sostituire le vocali con un numero corrispondente
ctrans("facciamo un test di sostituzione","aeiou","12345") #ritorna: "f.cc..m.w.nwt.stwd.ws.st.t.z..n."
- esempio per sostituire le vocali con un numero corrispondente