DEFCOLORINDICATOR
Consente di definire un Gauge, ovvero un indicatore che, data una scala con una escursione massima definita, visualizza graficamente il valore rilevato.
Può essere utilizzato per la realizzazione di cruscotti aziendali dove vengono mostrati graficamente i valori in tempo reale.
Consente inoltre di visualizzare il controllo in forma lineare (orizzontale o verticale) impostandone tutti i parametri utili, compreso lo stile per definire il colore di ogni singolo elemento del controllo.
Parametri
| Parametro | Definizione | I/O | Versione traduttore | SMP | |
|---|---|---|---|---|---|
| NOME | Intero | ||||
| ID | Stringa | ||||
| POS | |||||
| DIM | |||||
| STRUTTURA | Stringa | ||||
| ORIENTAMENTO | |||||
| SPAZIATURA | Double | ||||
| STILE | Stringa | ||||
| VARSTILE | Stringa | ||||
| VARVALORE | Stringa | ||||
| VARVISIBILE | Stringa | ||||
| VARFORMA | Stringa | ||||
| RANGE | |||||
| GRID | |||||
| STACK | |||||
| EXPANDER | |||||
| DOCK | |||||
| PERSONALIZZABILE | Intero | ||||
| LINKTO |
NOME
Consente di definire il nome del controllo.
ID
Definisce la variabile o la costante di programma che contiene l'identificatore univoco del controllo.
Viene utilizzato dall'ambiente per gestire le personalizzazioni effettuate durante l'esecuzione del programma.
POS
Posizionamento del controllo.
Consente di indicare la riga e la colonna. Per entrambi è possibile specificare l'unità di misura.
POS[RigaVid [UnitàMisura], ColonnaVid [UnitàMisura]]
L'unità di misura può essere: 'C' per il posizionamento a caratteri e 'P' per il posizionamento in pixel. L'indicazione è opzionale, se omesso si assume 'C' come default.
DIM
Dimensione del controllo.
Consente di indicare l'altezza e la larghezza. Per entrambi è possibile specificare l'unità di misura.
DIM[Altezza [UnitàMisura], Larghezza [UnitàMisura]]
L'unità di misura può essere: 'C' per il posizionamento a caratteri e 'P' per il posizionamento in pixel. L'indicazione è opzionale, se omesso si assume 'C' come default.
STRUTTURA
Identifica il nome della struttura dinamica che dovrà fungere da base dati per l'indicatore, come per i grafici e per la listbox il ColorIndicator necessità di una struttura dinamica associata definita integralmente dal programmatore BC. La struttura gestisce l'autoaggiornamento del controllo, ogni modifica effettuata su di essa si riflette automaticamente sul controllo a video. Ad ogni riga della struttura dinamica corrisponde una unità dell'indicatore di colore all'interno del rettangolo definito dalle coordinate POS e DIM. NomeStrutturaDinamica: Può essere una variabile o una costante di tipo alfanumerico.
ORIENTAMENTO
Permette di definire l'orientamento con cui disegnare il controllo. <tabella> Valore Descrizione [ORIZZONTALE] Il controllo segue uno schema orizzontale [VERTICALE] Il controllo segue uno schema verticale </tabella>
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
VERTICALE | Verticale |
ORIZZONTALE | Orizzontale |
SPAZIATURA
Indica la spaziatura tra un indicatore di colore e l'altro espresso in pixel. ValoreSpaziatura: Può essere indicato con una costante oppure mediante una variabile.
STILE
Dello stile verrà considerato solo l'attributo COLORESFONDO.
VARSTILE
[VarValoreStile] Nome del campo sulla struttura contente il nome dello stile (precedentemente definito con DEFSTYLE) associato al range.
Dello stile verrà considerato solo l'attributo COLORESFONDO
VARVALORE
[VariabileValore] Nome del campo sulla struttura contenente il valore dell'indicatore.
In base a questo valore verrà variato l'effetto grafico (Acceso, Spento, Flash)
VARVISIBILE
[VariabileVisibile] Nome del campo sulla struttura che indica se l'indicatore disegnato è visibile o meno.
Se non visibile viene lasciato uno spazio bianco.
VARFORMA
[VariabileForma Nome del campo sulla struttura che indica la forma con cui viene disegnato l'indicatore. <tabella> Valore Descrizione 0 (zero) Gli elementi del controllo assumono una forma circolare 1 (zero) Gli elementi del controllo assumono una forma rettangolare </tabella>
RANGE
SPENTO[ VARMIN[VarValoreMinimoRange] _ VARMAX[VarValoreMinimoRange] ] _ ACCESO[ VARMIN[VarValoreMinimoRange] _ VARMAX[VarValoreMinimoRange] ] _ FLASH[ VARMIN[VarValoreMinimoRange] _ VARMAX[VarValoreMinimoRange] ] Indicazione dei range per cui l'unità dell'indicatore deve risultare spenta, accesa o lampeggiante.
EXPANDER
Attached Property per pannello di tipo Expander
DOCK
Consente di indicare se l'oggetto deve occupare tutto lo spazio del DockPanel in verticale e/o in orizzontale (possono essere indicati entrambi).
PERSONALIZZABILE
Definisce se l'oggetto grafico è personalizzabile dall'utente in fase di runtime. Attached Property - (Input) - (Disponibile da BC/X v. 22.0) GRID[ COL[] RIGA[] COLSPAN[] RIGASPAN[] COLDIN[] RIGADIN[] ] oppure STACK[ [VERTICALE] [ORIZZONTALE] [ESTESO] ] oppure EXPANDER[ [VERTICALE] [ORIZZONTALE] [POSINFO] ] oppure DOCK[ [VERTICALE] [ORIZZONTALE] ] Le Attached Property di un oggetto inserito all'interno di un pannello definiscono le modalità di visualizzazione dell'oggetto nel pannello e definiscono il comportamento da adottare quando sono modificate a run-time le dimensioni della videata (conseguentemente le dimensioni del pannello contenitore, conseguentemente quelle del controllo). Se l'oggetto viene definito all'interno di un pannello contenitore di tipo Grid è OBBLIGATORIO definire le sue Attached Property; se l'oggetto viene definito all'interno di un pannello di tipo Expander/Stack/Dock NON E' OBBLIGATORIO definire le sue Attached Property. Esempio di utilizzo dei Gauge (indicatore di colore)
Parametro con valori ammessi, si possono utilizzare i seguenti valori:
| Valore | Descrizione |
|---|---|
0 | No |
1 | Si |
LINKTO
[ ID[IdentificativoControllo] PRINCIPALE[FlagSiNo] ] Permette di creare un legame tra due controlli esistenti all'interno della stessa videata.
Esempi
Definizione semplice
SHARED DIM VarStyle[STRING]
SHARED DIM VarVis[INT]
SHARED DIM VarShape[INT]
SHARED DIM Value[DOUBLE]
SHARED DIM MinOffValue[INT]
SHARED DIM MaxOffValue[INT]
SHARED DIM MinOnValue[INT]
SHARED DIM MaxOnValue[INT]
SHARED DIM MinFlashValue[INT]
SHARED DIM MaxFlashValue[INT]
SHARED DIM Structure[STRING] = "COLORSTRUCT"
SHARED DIM newValue[DOUBLE]
...
'@DEFVID DIM[20,70] NOME[Videata] ID["VIDEATA"] TIT["Titolo Videata"] TOOLBAR[IDTOOLBAR["TOOLBAR"]]
'@DEFTOOLBAR IDTOOLBAR["TOOLBAR"] _
BOTTONE[IDBOTTONE["SYS_EXIT"] AZIONE[Exit()]] _
BOTTONE[IDBOTTONE["SYS_EXIT_ESC"] AZIONE[Exit()] INVISIBILE[1]]
'@DEFCOLORINDICATOR NOME[COLORINDICATOR] POS[1,1] DIM[1,1] STRUTTURA[Structure] _
ORIENTAMENTO[VERTICALE] SPAZIATURA[5] _
VARSTILE["VarStyle"] VARVALORE["Value"] _
VARVISIBILE["VarVis"] VARFORMA["VarShape"] _
RANGE[SPENTO[VARMIN["MinOffValue"] VARMAX["MaxOffValue"]] _
ACCESO[VARMIN["MinOnValue"] VARMAX["MaxOnValue"]] _
FLASH[VARMIN["MinFlashValue"] VARMAX["MaxFlashValue"]]] _
GRID[COL[1] RIGA[2]]
'@DEFTIMER SECONDI[1] AZIONE[GoSub Refresh]
'@RUNVID
...
'@SRP Load()
' Definizione stili
'@DEFSTYLE STILE["ROSSO"] COLORESFONDO[255, 0, 0]
'@DEFSTYLE STILE["VERDE"] COLORESFONDO[0, 255, 0]
'@DEFSTYLE STILE["BLU"] COLORESFONDO[0, 0, 255]
' Definizione Struttura
GoSub DefStructure
Return
...
'@SRP Exit()
'@EXITWINDOW
Return
...
'@SR DefStructure
' Definizione struttura
'@DEFDYNSTRUCT STRUTTURA[Structure] CAMPI[VarStyle, VarVis, VarShape, Value, _
MinOffValue, MaxOffValue, _
MinFlashValue, MaxFlashValue, _
MinOnValue, MaxOnValue]
' Pulizia struttura
'@ZAPDYNSTRUCT STRUTTURA[Structure]
' Popolamento variabili struttura
VarStyle="ROSSO":VarVis=1:VarShape=0:Value=0
MinOffValue=0:MaxOffValue=20
MinFlashValue=20:MaxFlashValue=28
MinOnValue=28:MaxOnValue=30
' Popolamento struttura
'@ADDDYNSTRUCT STRUTTURA[Structure] CAMPI[VarStyle, VarVis, VarShape, Value, _
MinOffValue, MaxOffValue, _
MinFlashValue, MaxFlashValue, _
MinOnValue, MaxOnValue]
' Popolamento variabili struttura
VarStyle="VERDE":VarVis=1:VarShape=0:Value=0
MinOffValue=0:MaxOffValue=10
MinFlashValue=10:MaxFlashValue=18
MinOffValue=18:MaxOnValue=20
' Popolamento struttura
'@ADDDYNSTRUCT STRUTTURA[Structure] CAMPI[VarStyle, VarVis, VarShape, Value, _
MinOffValue, MaxOffValue, _
MinFlashValue, MaxFlashValue, _
MinOnValue, MaxOnValue]
' Popolamento variabili struttura
VarStyle="BLU":VarVis=1:VarShape=0:Value=0
MinOffValue=0:MaxOffValue=0
MinFlashValue=0:MaxFlashValue=8
MinOnValue=8:MaxOnValue=10
' Popolamento struttura
'@ADDDYNSTRUCT STRUTTURA[Structure] CAMPI[VarStyle, VarVis, VarShape, Value, _
MinOffValue, MaxOffValue, _
MinFlashValue, MaxFlashValue, _
MinOnValue, MaxOnValue]
Return
...
'@SR Refresh
' Verifica raggiungimento valore massimo di Value
If Value=30 Then
' Azzeramento valore
Value=0
EndIf
' Incremento valore e impostazioni variabili
Value = Value + 1
newValue = Value
' Modifica campo degli elementi della struttura
'@SETDYNSTRUCTFIELD STRUTTURA[Structure] ELEMENTO[1] TIPOVAR[1] CAMPO["Value"] VALNUM[newValue]
'@SETDYNSTRUCTFIELD STRUTTURA[Structure] ELEMENTO[2] TIPOVAR[1] CAMPO["Value"] VALNUM[newValue]
'@SETDYNSTRUCTFIELD STRUTTURA[Structure] ELEMENTO[3] TIPOVAR[1] CAMPO["Value"] VALNUM[newValue]
Return