English
Instant Developer Foundation Documentazione
  • Reference Librerie
  • Oggetti UI
  • Libreria Command Set

On Open Popup

evento copia link

Condizioni di notifica

Questo evento viene notificato dal CommandSet quando viene mostrato all'utente come un menu popup, condizione che si verifica nei seguenti casi:

  • l'utente seleziona un comando della toolbar collegato ad un CommandSet che ha il flag "popup" abilitato.
  • viene utilizzata la procedura OpenPopup per visualizzare un menu popup di fianco ad un determinato campo di pannello.
  • l'utente fa click con il tasto destro su un albero che ha un CommandSet collegato.
  • l'utente attiva un campo di pannello che ha come oggetto di attivazione un Command Set.

Utilizzo consigliato

L'evento di OnOpenPopup può essere utilizzato per personalizzare il menu popup mostrato all'utente, modificando le proprietà degli oggetti Command in esso contenuti. Uno degli utilizzi possibili è quello di abilitare/disabilitare i comandi del CommandSet a seconda dello stato dell'applicazione, un altro è quello di modificare i Command in modo tale da realizzare un menu totalmente dinamico, la cui struttura non è nota in fase di progettazione.

Argomenti

Direction E' un parametro di output che può essere impostato ad uno dei valori della lista PopupDirections per scegliere la posizione del menu popup rispetto all'oggetto che lo ha attivato.
Cancel Se impostato a True annulla la visualizzazione del popup.

Esempio di codice

// ***********************************************************
// Nell'evento di onpopup mostro un comando per ogni categoria
// trovata sul database, nascondendo i comandi che avanzano.
// ***********************************************************

event Prodotti.Impostacategoria.OnOpenPopup(
  inout int Direction  // Indicates where to show the popup...
  inout boolean Cancel // When set to TRUE, the popup menu is not shown
)
{
  int Idx = 0 // Indice del comando correntemente in valutazione
  // 
  // Per ogni categoria presente nel sistema imposto un comando

  for each row
  {
    select
      IdcategoriaCategorie := Idcategoria
      NomeCategoriaCategorie := NomeCategoria
    from
      Categorie // Master Table
    // 
    record Categorie
      int Idcategoria      // 
      string NomeCategoria // 
    // 
    Impostacategoria.SetCommandVisible(Idx, True)
    Impostacategoria.SetCommandEnabled(Idx, True)
    // 
    Impostacategoria.SetCommandCode(Idx, ToString(Categorie.Idcategoria))
    Impostacategoria.SetCommandCaption(Idx, ToString(Categorie.NomeCategoria))
    Impostacategoria.SetCommandIcon(Idx, Convert(ToImage(Categoria)))
    // 
    Idx := Idx + ONE
    // 
    // Se il command set è già pieno mi fermo

    if Idx = Impostacategoria.GetCommandsCount()
    {
      break
    }
  }
  // 
  // Se non tutti i comandi sono stati impostati rendo invisibili i rimanenti

  while Idx < Impostacategoria.GetCommandsCount()
  {
    Impostacategoria.SetCommandVisible(Idx, False)
    Impostacategoria.SetCommandEnabled(Idx, False)
    // 
    Idx := Idx + ONE
  }
}
  • Se il menù popup è collegato ad un albero, per sapere da quale nodo è stato attivato il menù è possibile utilizzare la proprietà ActiveDocument in caso di albero DO oppure la funzione GetActiveNode in caso di albero DB.
  • Se il menù popup è collegato ad un campo di pannello, per sapere da quale campo è stato attivato il menù è possibile utilizzare la proprietà ActivatedField e ActivatedPanel dell'oggetto form.

Ultima modifica: 23/03/2021 / Validità: da 6.5.2680

Vedi Anche

  • Open Popup (procedura)
  • Popup Directions (lista valori)
  • Get Active Node (funzione)
  • Activated Panel (proprietà)
  • Activated Field (proprietà)
  • Active Document (proprietà)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum