English
Instant Developer Foundation Documentazione
  • Estensibilità
  • Libreria
  • INDE Extension
  • Oggetti
  • Avanzate

Update Object

procedura copia link

Scopo

Copia le proprietà di un oggetto in un altro oggetto (tranne il GUID). Questa operazione corrisponde all'operazione di Drag & Drop di un Visual Style su un'altro Visual Style che imposta il secondo Visual Style uguale al primo.

Sintassi

INDE.UpdateObject(id oggetto, id oggetto sorgente, id transazione)

Argomenti

ID Oggetto Puntatore dell'oggetto da modificare
ID Oggetto Sorgente Puntatore dell'oggetto da cui leggere i valori
ID Transazione Numero della transazione in cui effettuare la modifica

Esempio di codice

// ****************************************************************************
// Evento notificato al documento quando l'utente esegue una operazione di drop
// di un documento su questo documento, in un albero con drag & drop attivo
// ****************************************************************************

event OggettoBase.OnDrop(
  IDDocument SourceDocument // Documento tirato su questo documento
  boolean ShiftKey          // Vero se l'utente teneva premuto il tasto Sh...
  boolean AltKey            // Vero se l'utente teneva premuto il tasto Al...
  boolean ControlKey        // Vero se l'utente teneva premuto il tasto Co...
  inout boolean Cancel      // Se lo si imposta a True si impedisce l'esec...
)
{
  Transazione trans = null // 
  // 
  try
  {
    Documento doc = null   // 
    OggettoBase obj = null // 
    // 
    obj := OggettoBase.Cast(SourceDocument)
    doc := obj.GetDocument()
    // 
    // Inizio una nuova transazione

    trans := doc.BeginTransaction(FormatMessage(Drop |1 su |2, Nome, obj.
      Nome, ??, ??, ??))
    // 
    // Se gli oggetti sono dello stesso tipo

    if obj.Tipo = Tipo
    {
      // Copio le proprietà dell'oggetto tirato nell'oggetto su cui ho tirato
      EsempiMS.INDE.UpdateObject(Puntatore, obj.Puntatore, trans.ID)
    }
    else
    {
      // Effettuo un D&D tra i due oggetti
      EsempiMS.INDE.ObjDrop(Puntatore, obj.Puntatore, If(ShiftKey, Shift
         , ZERO) | If(ControlKey, Control, ZERO) | If(AltKey, Alt, ZERO),
         trans.ID)
    }
    // 
    trans.Commit()
    // 
    // Aggiorno gli oggetti da INDE

    this.LoadChildrenFromINDE()
    obj := OggettoBase.Cast(obj.Parent)
    obj.LoadChildrenFromINDE()
  }
  catch
  {
    trans.Rollback()
  }
}
  • Le modifiche fatte fuori transazione non cambiano lo stato del documento; perciò se il documento era non modificato alla chiusura non verrebbe chiesto all'utente di salvare.
  • In caso di modifica fuori transazione il sistema di Team Working non viene attivato.
  • Se i puntatori passati come parametri non corrispondono entrambi ad oggetti presenti nel progetto aperto verrà generata un'eccezione.

Ultima modifica: 28/05/2009 / Validità: da 7.5.3400

Vedi Anche

  • Obj Drop (procedura)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum