Condizioni di notifica
Questo evento viene notificato dal pannello quando un campo che poteva essere attivato viene attivato. Questo può avvenire quando:
- L'utente clicca su un campo che ha un visual style con hyperlink attivo.
- L'utente fa doppio click sul campo e al campo era stata asssociata una procedura
- L'utente preme il bottone di attivazione del campo.
- L'utente preme il bottone F2 e al campo era stata asssociata una procedura.
Utilizzo consigliato
Normalmente non è necessario utilizzare questo evento perchè è più pratico associare al click sul campo un oggetto di attivazione (procedura, form o command set) a design time. Tuttavia può essere utile quando molti campi del pannello devono essere gestiti in modo uniforme (vedi esempio seguente).
Nota bene: la sola implementazione di questo evento non rende attivabili i campi di pannello. Perchè un campo di pannello sia attivabile è possibile associare ad esso una procedura, oppure uno stile visuale con flag Hyperlink attivo.
Argomenti
Field Index | E' un numero intero che rappresenta il campo del pannello che è stato attivato. Deve essere confrontato con la proprietà Me del campo di pannello. |
Cancel | Può essere impostato a True per annullare l'attivazione dell'oggetto di attivazione eventualmente legato al campo di pannello. |
Esempio di codice
// *******************************
// Fired when a field is activated
// *******************************
event Orologio.Ora.OnActivateField(
int FieldIndex //
inout boolean Cancel //
)
{
int ora = 0 // L'ora premuta da 0 a 12
//
// Calcolo l'ora premuta dall'utente. Per farlo considero
// che tutti i campi hanno un identificativo crescente...
ora := Column - Ora.Label1.Me() + ONE
//
// Produco il risultato per l'utente
if ora = Ora.Ora
{
Ora.Ora := ToInteger(Random(??) * C12) + ONE
EsempiAM.MessageBox(MSG Bravo Prova Questa)
}
else
{
EsempiAM.MessageBox(MSG Cliccato +c ToString(ora) +c C, riprova.)
}
}
// Fired when a field is activated
// *******************************
event Orologio.Ora.OnActivateField(
int FieldIndex //
inout boolean Cancel //
)
{
int ora = 0 // L'ora premuta da 0 a 12
//
// Calcolo l'ora premuta dall'utente. Per farlo considero
// che tutti i campi hanno un identificativo crescente...
ora := Column - Ora.Label1.Me() + ONE
//
// Produco il risultato per l'utente
if ora = Ora.Ora
{
Ora.Ora := ToInteger(Random(??) * C12) + ONE
EsempiAM.MessageBox(MSG Bravo Prova Questa)
}
else
{
EsempiAM.MessageBox(MSG Cliccato +c ToString(ora) +c C, riprova.)
}
}
- Da utilizzare solo per gestire i casi speciali come da esempio.
- Se il campo attivato possiede uno stile visuale di tipo hyperlink ma nessuno oggetto di attivazione il sistema utilizza il testo contenuto nel campo come link a cui ridirigere il browser. Se, però, il parametro Cancel dell'evento OnActivateField viene impostato a True, tale gestione viene interrotta.
Ultima modifica: 06/10/2021 / Validità: da 6.5.2680