Condizioni di notifica
Al termine di una operazione di drag&drop generico in cui un oggetto è stato tirato su questo book 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 mm e relativa alla box su cui è avvenuto il drop. |
Y | E' la posizione Y espressa in mm e relativa alla box su cui è avvenuto il drop. |
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. |
Box ID | E' l'indice della box su cui è avvenuto il drop. E' possibile usare la funzione Me dell'oggetto Box per confrontare questo valore. |
Esempio di codice
// **********************************************************************************
// 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
set DocDNA := d.GetDNA()
//
this.Aggiorna()
}
}
//
// Sto spostando un icona...
if ToInteger(DragInfo) > ZERO
...
}
// 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
set DocDNA := d.GetDNA()
//
this.Aggiorna()
}
}
//
// Sto spostando un icona...
if ToInteger(DragInfo) > ZERO
...
}
- Durante la chiamata a questo evento il book è già posizionato in relazione alla box su cui è avvenuto il drop. E' quindi possibile leggere i valori delle colonne della master query del report per conoscere i dati relativi alla box coinvolta nel drag&drop.
- I dati dell'oggetto trascinato possono essere letti dal parametro DragInfo, oppure passati tramite la proprietà di applicazione ActivedDocument.
Ultima modifica: 23/03/2021 / Validità: da 8.5.3800