Condizioni di notifica
Al termine di una operazione di drag&drop generico in cui un oggetto è stato tirato su questo pannello con successo, esso notifica questo evento per permettere di gestire i dati trascinati.
Utilizzo consigliato
Questo evento deve essere usato per gestire il risultato dell'operazione di drag & drop. Se non si implementa questo evento, nella versione attuale il framework non esegue alcuna azione di default.
Argomenti
DragInfo | E' un parametro di tipo stringa, valorizzato dall'evento OnGenericDrag, che indica i dati coinvolti nell'operazione di drag&drop. |
Cancel | E' un parametro di uscita di tipo booleano che può essere impostato a True per impedire l'azione di default del framework. Anche se il pannello non ha alcuna azione di default, si consiglia di impostare il parametro a True nel caso che il drop sia gestito dall'evento. |
Button | Rappresenta il bottone del mouse con cui è stata effettuata l'operazione di drag & drop. I possibili valori sono elencati nella lista MouseButtons. |
X | E' la posizione X, espressa in pixel e relativa al pannello, in cui è avvenuto il drop dell'oggetto. |
Y | E' la posizione Y, espressa in pixel e relativa al pannello, in cui è avvenuto il drop dell'oggetto. |
XB | E' la posizione X, espressa in pixel e relativa al browser, in cui è avvenuto il drop dell'oggetto. |
YB | E' la posizione Y, espressa in pixel e relativa al browser, in cui è avvenuto il drop dell'oggetto. |
Column | E' l'indice del campo su cui stato trascinato l'oggetto. Usa la funzione Me dell'oggetto campo per confrontare il valore di questo argomento. Può valere -1 se il drop è avvenuto al di fuori dei campi. |
Row | E' il numero della riga del pannello su cui è avvenuto il drop. Può valere da zero a VisibleRows-1, oppure -1 se il drop è avvenuto al di fuori dei campi. |
Document | E' il documento sotteso alla riga su cui è stato trascinato l'oggetto. Può essere NullObject se l'oggetto è stato trascinato al di fuori dei campi, oppure su una riga vuota, oppure se il pannello non è DO. |
Esempio di codice
NOTA: l'esempio riportato è quello relativo al book in quanto l'uso dell'evento è analogo.
// **********************************************************************************
// Evento notificato dal book quando l'utente esegue un operazione di drop su di esso
// **********************************************************************************
event Desktop.LibroDesktop.OnGenericDrop(
string DragInfo //
inout boolean Cancel //
int Button //
float X //
float Y //
int XB //
int YB //
int BoxID //
)
{
// Mi è stato tirato sopra un documento...
if NOT(ActivedDocument IS Null Object)
{
// Sopra al desktop, creo icona
if BoxID = LibroDesktop.SfondoDesktop.Me()
{
IDDocument d := ActivedDocument // Actived Document
IDDocumentStructure ds := d.GetStructure() // d.Get Structure ()
string icon := Replace(ds.Icon, C16, C32) // Replace (ds.Icon, C16, C32)
int newx := X - Offset Icona
int newy := Y - Offset Icona
//
newx := newx - newx % Larghezza griglia X + Offset Bordo
newy := newy - newy % Larghezza griglia Y + Offset Bordo
//
// Creo l'icona nel desktop
insert values into Desktop
set Descrizione := d.GetName(ZERO)
set Tooltip := d.GetName(ONE)
set Immagine := icon
set IDImpiegato := Webtop.DatiSessione.IDImpiegato
set PosY := newy
set PosX := newx
// **********************************************************************************
// Evento notificato dal book quando l'utente esegue un operazione di drop su di esso
// **********************************************************************************
event Desktop.LibroDesktop.OnGenericDrop(
string DragInfo //
inout boolean Cancel //
int Button //
float X //
float Y //
int XB //
int YB //
int BoxID //
)
{
// Mi è stato tirato sopra un documento...
if NOT(ActivedDocument IS Null Object)
{
// Sopra al desktop, creo icona
if BoxID = LibroDesktop.SfondoDesktop.Me()
{
IDDocument d := ActivedDocument // Actived Document
IDDocumentStructure ds := d.GetStructure() // d.Get Structure ()
string icon := Replace(ds.Icon, C16, C32) // Replace (ds.Icon, C16, C32)
int newx := X - Offset Icona
int newy := Y - Offset Icona
//
newx := newx - newx % Larghezza griglia X + Offset Bordo
newy := newy - newy % Larghezza griglia Y + Offset Bordo
//
// Creo l'icona nel desktop
insert values into Desktop
set Descrizione := d.GetName(ZERO)
set Tooltip := d.GetName(ONE)
set Immagine := icon
set IDImpiegato := Webtop.DatiSessione.IDImpiegato
set PosY := newy
set PosX := newx
- Durante la chiamata a questo evento il pannello NON è stato posizionato sulla riga in fase di drop, quindi è necessario leggere i dati della riga coinvolta nel drop usando i parametri Column, Row o Document.
- I dati dell'oggetto trascinato possono essere letti dal parametro DragInfo, oppure passati tramite la proprietà di applicazione ActivedDocument.
Ultima modifica: 25/10/2016 / Validità: da 8.5.3800