Scopo
Mostra o nasconde un determinato comando contenuto nel CommandSet. Può essere utile per personalizzare l'interfaccia utente a seconda dello stato dell'applicazione, mostrando i comandi permessi all'utente in quel momento e nascondendo gli altri.
Sintassi
CommandSet.SetCommandVisible(index, visible)
Argomenti
| Index | E' un numero intero che rappresenta l'indice del comando all'interno del CommandSet. |
| Visible | True se il comando deve essere reso visibile, False altrimenti. |
Esempio di codice
// *****************************************************************
// Nell'evento di OnOpenPopup mostro un comando per ogni categoria
// trovata sul database, nascondendo gli eventuali comandi rimanenti
// *****************************************************************
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
}
}
// Nell'evento di OnOpenPopup mostro un comando per ogni categoria
// trovata sul database, nascondendo gli eventuali comandi rimanenti
// *****************************************************************
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
}
}
- Gli indici di posizione dell'oggetto Command all'interno del CommandSet vanno da 0 a GetCommandsCount - 1. E' possibile ottenere l'indice di un comando mediante la funzione GetIndex dell'oggetto Command.
- Nel caso di comandi contenuti all'interno di CommandSet visualizzati nella toolbar, è sufficiente che il campo sia disabilitato perché venga nascosto. In questo caso utilizzare la procedura SetCommandVisible non è sufficiente per mostrare all'utente l'oggetto Command, ma occorre ricorrere anche alla procedura SetCommandEnabled. Per nascondere un comando contenuto nella toolbar è quindi sufficiente disabilitarlo.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680
procedura