Condizioni di notifica
Questo evento viene notificato dal book quando la posizione o le dimensioni di una box trasformabile del book vengono modificate dall'utente.
Utilizzo consigliato
L'evento di OnBoxTransform viene normalmente utilizzato quando si vuol permettere all'utente di muovere e/o ridimensionare una o più box in un book. L'evento viene notificato quando una box trasformabile viene spostata o ridimensionata.
Affinché la box sia trasformabile occorre che la proprietà CanTransform della box sia impostata a True. E' anche possibile comunicare a design-time che la box è trasformabile attivando il corrispondente flag nella videata delle proprietà della box.
Argomenti
Box ID | E' un numero intero che identifica univocamente la box che è stata spostata e/o ridimensionata. E' possibile utilizzare la funzione Me della box per effettuare i confronti |
New X | E' un numero decimale che contiene la nuova coordinata X (Left) della box in mm. Tale valore è relativo all'oggetto che contiene la box (pagina o sezione) |
New Y | E' un numero decimale che contiene la nuova coordinata Y (Top) della box in mm. Tale valore è relativo all'oggetto che contiene la box (pagina o sezione) |
New Width | E' un numero decimale che contiene la nuova larghezza della box in mm |
New Height | E' un numero decimale che contiene la nuova altezza della box in mm |
Cancel | E' un parametro booleano di input/output che può essere impostato a True per annullare l'operazione effettuata dall'utente e ripristinare automaticamente le dimensioni e coordinate della box |
Esempio di codice
// *****************************************************
// Fired when a box's dimensions or position are changed
// *****************************************************
event BookDD.BookDD.OnBoxTransform(
int BoxID // Box that have been changed. Use the Me property of th...
float NewX //
float NewY //
float NewWidth //
float NewHeight //
inout boolean Cancel // Set to TRUE to cancel the box change
)
{
int IDPezzoDaAggiornare = 0 //
//
// Se esce dalla pagina... annullo l'operazione
if NewX + NewWidth > BookDD.PageBody.Width OR NewX < ZERO OR NewY +
NewHeight > BookDD.PageBody.Height OR NewY < ZERO
{
Cancel := True
return
}
//
// Mi posiziono sulla riga della box modificata e recupero l'ID del pezzo da
// aggiornare
BookDD.ShowDragBox()
IDPezzoDaAggiornare := BookDD.IDPezzo
//
// Aggiorno le coordinate e le dimensioni della box modificata
update Pezzi
set Left := NewX
set Top := NewY
set Width := NewWidth
set Height := NewHeight
where
ID = IDPezzoDaAggiornare
}
// Fired when a box's dimensions or position are changed
// *****************************************************
event BookDD.BookDD.OnBoxTransform(
int BoxID // Box that have been changed. Use the Me property of th...
float NewX //
float NewY //
float NewWidth //
float NewHeight //
inout boolean Cancel // Set to TRUE to cancel the box change
)
{
int IDPezzoDaAggiornare = 0 //
//
// Se esce dalla pagina... annullo l'operazione
if NewX + NewWidth > BookDD.PageBody.Width OR NewX < ZERO OR NewY +
NewHeight > BookDD.PageBody.Height OR NewY < ZERO
{
Cancel := True
return
}
//
// Mi posiziono sulla riga della box modificata e recupero l'ID del pezzo da
// aggiornare
BookDD.ShowDragBox()
IDPezzoDaAggiornare := BookDD.IDPezzo
//
// Aggiorno le coordinate e le dimensioni della box modificata
update Pezzi
set Left := NewX
set Top := NewY
set Width := NewWidth
set Height := NewHeight
where
ID = IDPezzoDaAggiornare
}
- Qualora una delle coordinate o dimensioni non sia stata modificata il valore dell'argomento risulterà uguale al valore corrente della box. Per esempio se la larghezza della box non è cambiata il valore del parametro NewWidth coinciderà con la larghezza della box.
- E' possibile utilizzare la procedura ShowDragBox per spostare le query del book alla posizione che avevano quando la box modificata è stata formattata e stampata. In questo modo è possibile leggere i valori delle colonne delle query del book per ottenere informazioni circa la box modificata.
Ultima modifica: 25/10/2016 / Validità: da 6.5.2680