Difference between revisions of "Gestione Bottoni"
| Line 112: | Line 112: | ||
Return</pre> | Return</pre> | ||
| − | = | + | = Azioni campo = |
Variabili coinvolte | Variabili coinvolte | ||
Revision as of 16:06, 2 July 2019
...appunti...
Finestre
Gestione tipica
Altro esempio da qualche sorgente SUB*.src:
Finestra
$APRES_CHOI Case REPONSE When GSTACRE : Gosub CREATE : #Créer When GSTAANU : Gosub ANNUL : #Supprimer When GSTAENR : Gosub MODIF : #Enregistrer When GSTARET : If REP="C" | REP="D" : Gosub CREATE Elsif REP="M" : Gosub MODIF Endif When Default Endcase Return
oppure
$APRES_CHOI
Case REPONSE
When GSTARET :
Case GREP
When "C", "D" : REPONSE = GSTACRE
When "M" : REPONSE = GSTAENR
Endcase
Endcase
#
Case REPONSE
...
$CHOIX Case REPONSE When GSTARET, GSTAOK : Gosub ENREG When GSTAEND, GSTAESC : FIN=1 Endcase Return
Dialog box
$AP_CHOIX Case REPONSE When GSTARET : Gosub VALID When GSTAEND, GSTAESC : Gosub CONFIRME When Default Endcase Return
Pulsanti standard
Talvolta ci sono dei problemi con l'attivazione/disattivazione dei pulsanti standard.
Con le istruzioni enable e disable seguite dal codice del pulsante possiamo gestire la cosa mano.
I codici sono memorizzati in alcune variabili globali.
Enable GSTACRE #abilito il pulsante Crea Disable GSTAENR #disabilito il pulsante Registra
In azioni oggetto
Per bottoni: SETBOUT(per disattivarli, CHAINE), AVANTBOUT (prime dell'esecuzione, variabile BOUT), EXEBOUT (dopo l'esecuzione, variabile BOUT)
Per menu: SETBOUT(per disattivarli, CHMEN), AVANTBOUT (prime dell'esecuzione, variabile BOUT), STATUT(dopo l'esecuzione, variabile BOUT)
Per pulsanti standard:
- AVANT_XXX (AVANT_NEW, AVANT_END, XXX è il codice standard)
- XXX dopo l'esecuzione (NEW, END, S, C,...)
Per pulsanti specifici:
- AVANTBOUT (dove la variabile BOUT contiene il codice)
- EXEBOUT dopo l'esecuzione (dove la variabile BOUT contiene il codice)
Per togliere un pulsante da programma specifico:
Call VIREBOUT (CHAINE, LISTA) From GOBJET
- CHAINE : variable char, lista di bottoni disponibili (viene definita nel programma GOBJET)
- LISTA : value char, lista di bottoni da cancellare
Questi i valori dei bottoni:
- C - Crea
- D – Duplica
- M - Salva
- A - Elimina
- F - FINE
- H – CAMBIAMENTO CODICE lettere aggiornate: bottoni standard
- J – Allegati
- K - Commenti
- E - Stampa
- L – Lista
- R - Selezione
- 0 - PRIMO
- 9 - ULTIMO
- da 1 a 8 : bottoni standard
- da a a z : bottoni specifici
- @ - PROPRIETA’
- > - Successivo
- < - Precedente
Esempio: togliere il bottone Crea e attivare il pulsante registrare
$SETBOUT Call VIREBOUT (CHAINE, "C") From GOBJET #togliere il bottone Crea REP = "M" : # attivazione del bottone REGISTRARE # attivazione di una riga menu con codice i (di default le sottorighe dei menu NON sono attive) CHMEN += "i" Return
Azioni campo
Variabili coinvolte
GREP, GBOUT1..20, GBOUTS, GBOUTA, GBOUTI
GREP:
- vuoto: nessun bottone selezionato
- A : annulla
- C : creazione
- D : duplicazione
- M : modifica
Altro
vedi anche Aggiungere un bottone che apre un oggetto
Videate
Pulsante contestuale su riga di un riquadro
I pulsanti di riquadro possibili sono 20, la cui etichetta è contenuta nelle variabili globali GBOUT1, GBOUT2 ...GBOUT20
Per aggiungere un pulsante contestuale su riga di un riquadro:
- selezionare tra i campi della videata il campo numeratore di riga, spesso NBLIG
- impostare un'azione Bottone (dalla 2 in poi, la prima libera); l'azione può essere sia SPE che un'azione vera e propria
- validare la videata
- aprire il sorgente corrispondente: se è di tipo SPE troverai aggiunto un
Subprog B2_NBLIGdove scrivere il codice da eseguire alla selezione del menu appena creato
Disattivazione
Attivare l'evento di riga "Init Bottone" sempre sul campo numeratore di riga (NBLIG).
Dentro il Subprog IB_NBLIG che verrà creato nel sorgente azzerare la variabile corrispondente
Subprog IB_NBLIG Raz GBOUT2 #disattivo il pulsante 2 GBOUT3='bla bla' # attivo il pulsante 3 con eticheta 'bla bla' end