Condizioni di notifica
Ogni nodo possiede due diversi stati: aperto e chiuso. Quando un nodo è aperto viene mostrata l'icona - (che permette di chiuderlo), il nome e tutti i sottonodi in esso contenuto; quando un nodo è chiuso viene mostrata solo l'icona + (che permette di aprirlo) ed il nome. L'evento OnChangeExpandDoc viene notificato dall'albero quando l'utente preme l'icona mostrata accanto al nome del nodo stesso che permette di modificarne lo stato di apertura/chiusura.
Utilizzo consigliato
L'evento di OnChangeExpandDoc può essere utilizzato, per esempio, per impedire che un particolare nodo venga espanso. Per fare questo è sufficiente gestire l'evento e valorizzare il parameto Cancel a True quando viene espanso un nodo che non può essere espanso. Può anche essere utilizato per aprire un solo nodo alla volta. Nell'evento si può memorizzare il documento corrispondente all'ultimo nodo espanso e ad ogni nuova espansione si chiude il nodo espanso precedentemente. In questo modo l'utente vede sempre e solo un nodo aperto. Può anche essere utilizzato per memorizzare su database lo stato di apertura/chiusura dei vari nodi presenti nell'albero. Quando l'utente tornerà sull'albero il sistema potrebbe mostrarlo così come l'utente l'ha lasciato l'ultima volta che l'ha visto.
Argomenti
Documento | E' il documento che è stato aperto o chiuso. Il parametro è di tipo IDDocument e può essere castato al tipo corretto qualora sia necessario estrarne informazioni proprie della classe che estende IDDocument. |
Collapsed | E' un valore booleano che indica se il nodo è stato chiuso (True) o aperto (False). |
Cancel | E' un parametro di uscita booleano. Se viene impostato a True l'operazione di apertura/chiusura viene annullata. |
Esempio di codice
// Evento notificato dall'albero al cambiamento dello stato di
// apertura/chiusura di un nodo
// ****************************************************************************
event FileSystem.FSTree.OnChangeExpandDoc(
IDDocument Documento // E' il documento che è stato espanso o collassato...
boolean Collapsed // Indica se il nodo è stato chiuso (True) o aperto...
inout boolean Cancel // Impostando a True questo parametro si annulla la...
)
{
// Se sono il nodo principale
if Documento.Parent IS Null Object
{
// Impedisco che mi chiudano
Cancel := True
}
}
- Attenzione: L'evento viene notificato solo se il nodo è stato aperto/chiuso dall'utente mediante click sull'apposita immagine mostrata accanto al nodo. Se un nodo viene aperto o chiuso da codice, tramite le procedure ExpandDoc o ExpandNodesByLevel, l'evento non viene notificato.
Ultima modifica: 25/10/2016 / Validità: da 8.1.3650