Buongiorno,
vorrei poter chiudere un sinottico aperto come "modale" con un comando da basic script.
Ho provato utilizzando la funzione Closesynoptic() ma non la riconosce, probabilmente non è utilizzabile in WinCE.
Esiste un altro modo per chiudere il sinottico attivo alla fine dello script?
Grazie per la cortesia e cordiali saluti.
Chiudere sinottico con Basic Script
-
- Moderatore
- Posts: 1702
- Joined: 29/10/2010, 10:09
- Contact:
Re: Chiudere sinottico con Basic Script
Salve,
la funzione "CloseSynoptic()" funziona correttamente anche nella piattaforma CE, ad esempio questo script locale nel popup, lo chiude dopo 8 secondi:
Option Explicit
Public Sub OnTimer()
TimeElapsed = TimeElapsed + 1
If TimeElapsed > 8 Then
TimeElapsed = 0
CloseSynoptic()
End If
End Sub
"TimeElapsed" è una variabile locale del sinottico di tipo byte
la funzione "CloseSynoptic()" funziona correttamente anche nella piattaforma CE, ad esempio questo script locale nel popup, lo chiude dopo 8 secondi:
Option Explicit
Public Sub OnTimer()
TimeElapsed = TimeElapsed + 1
If TimeElapsed > 8 Then
TimeElapsed = 0
CloseSynoptic()
End If
End Sub
"TimeElapsed" è una variabile locale del sinottico di tipo byte
-
- Posts: 34
- Joined: 05/05/2019, 14:40
Re: Chiudere sinottico con Basic Script
Buongiorno,
vi ringrazio per la risposta, però ho provato anche copiando ed incollando l'esempio che mi avete dato, ma non riesco ancora a far riconoscere la funzione CloseSynoptic(), non riesco a capire dove commetto l'errore. Se vi invio il progetto potreste dirmi dove sto sbagliando?
Ringrazio per la cortesia e cordialmente saluto.
vi ringrazio per la risposta, però ho provato anche copiando ed incollando l'esempio che mi avete dato, ma non riesco ancora a far riconoscere la funzione CloseSynoptic(), non riesco a capire dove commetto l'errore. Se vi invio il progetto potreste dirmi dove sto sbagliando?
Ringrazio per la cortesia e cordialmente saluto.
-
- Moderatore
- Posts: 1702
- Joined: 29/10/2010, 10:09
- Contact:
Re: Chiudere sinottico con Basic Script
si certo,
invii pure il progetto in uno zip a support@pixsys.net
invii pure il progetto in uno zip a support@pixsys.net
-
- Moderatore
- Posts: 1702
- Joined: 29/10/2010, 10:09
- Contact:
Re: Chiudere sinottico con Basic Script
Grazie per aver inviato il progetto.
Da una prima analisi il problema credo derivi dal fato che lo script è di tipo "globale" e non locale sul sinottico, per cui il comando CloseSynoptic() non funziona. Purtroppo questo comando non prevede argomenti (cioè il sinottico da chiudere) perciò una soluzione è spostare questo script localmente nel sinottico (o il popup) che lo avvia.
Per fare ciò la prima cosa da fare è abilitare la possibilità di inserire script locali nel progetto. Per fare ciò:
- chiudere il progetto Movicon
- entrare nella cartella del progetto e cerca il file "nomeprogetto".costraints
- aprire tale file con un editor di testo
- cercare la voce <AllowScriptInScreen>0</AllowScriptInScreen> e portare il valore a 1 --> <AllowScriptInScreen>1</AllowScriptInScreen>
- salvare e chiudere il file
- riaprire il progetto Movicon
A questo punto sul sinottico desiderato sarà possibile inserire codice script selezionando il pulsante desiderato e usando l'evento "Click": Una alternativa possibile da provare nè che nello script globale, invece di usare il comando CloseSynoptic() si usi quello per cambiare (caricare) un sinottico diverso con questi comandi:
SetVariableValue("_SysVar_:ScreenToLoad", IDSinottico)
'Wait 1
SetVariableValue("_SysVar_:StrobeLoadScreen", 1)
'Wait 1
Questi comandi prevedono che ogni sinottico esistente nel progetto abbia un proprio ID univoco (che si passerà alla variabile IDSinottico):
Da una prima analisi il problema credo derivi dal fato che lo script è di tipo "globale" e non locale sul sinottico, per cui il comando CloseSynoptic() non funziona. Purtroppo questo comando non prevede argomenti (cioè il sinottico da chiudere) perciò una soluzione è spostare questo script localmente nel sinottico (o il popup) che lo avvia.
Per fare ciò la prima cosa da fare è abilitare la possibilità di inserire script locali nel progetto. Per fare ciò:
- chiudere il progetto Movicon
- entrare nella cartella del progetto e cerca il file "nomeprogetto".costraints
- aprire tale file con un editor di testo
- cercare la voce <AllowScriptInScreen>0</AllowScriptInScreen> e portare il valore a 1 --> <AllowScriptInScreen>1</AllowScriptInScreen>
- salvare e chiudere il file
- riaprire il progetto Movicon
A questo punto sul sinottico desiderato sarà possibile inserire codice script selezionando il pulsante desiderato e usando l'evento "Click": Una alternativa possibile da provare nè che nello script globale, invece di usare il comando CloseSynoptic() si usi quello per cambiare (caricare) un sinottico diverso con questi comandi:
SetVariableValue("_SysVar_:ScreenToLoad", IDSinottico)
'Wait 1
SetVariableValue("_SysVar_:StrobeLoadScreen", 1)
'Wait 1
Questi comandi prevedono che ogni sinottico esistente nel progetto abbia un proprio ID univoco (che si passerà alla variabile IDSinottico):
You do not have the required permissions to view the files attached to this post.
-
- Posts: 34
- Joined: 05/05/2019, 14:40
Re: Chiudere sinottico con Basic Script
Buongiorno,
Per prima cosa vi ringrazio moltissimo della risposta, che mi è stata di grande aiuto soprattutto per poter associare uno script ad un sinottico o ad un pulsante.
Ho provato con il primo metodo e purtroppo al primo tentativo non mi funzionava. In pratica la funzione CloseSynoptic() riuscivo ad usarla solo all'interno di uno script associato al sinottico che volevo chiudere e non se contenuta in uno script associato al pulsante. Per farla funzionare ho creato uno script su "evento variabile" associato al sinottico da chiudere che, quando la variabile assume valore True modificata all'interno dello script globale, chiama la funzione CloseSynoptic() e chiude il sinottico.
Il secondo metodo funziona senza problemi a patto che il sinottico da chiudere non sia aperto come "Modale" atrimenti rimane sempre in primo piano.
Vi ringrazio ancora per l'aiuto e cordialmente saluto.
Per prima cosa vi ringrazio moltissimo della risposta, che mi è stata di grande aiuto soprattutto per poter associare uno script ad un sinottico o ad un pulsante.
Ho provato con il primo metodo e purtroppo al primo tentativo non mi funzionava. In pratica la funzione CloseSynoptic() riuscivo ad usarla solo all'interno di uno script associato al sinottico che volevo chiudere e non se contenuta in uno script associato al pulsante. Per farla funzionare ho creato uno script su "evento variabile" associato al sinottico da chiudere che, quando la variabile assume valore True modificata all'interno dello script globale, chiama la funzione CloseSynoptic() e chiude il sinottico.
Il secondo metodo funziona senza problemi a patto che il sinottico da chiudere non sia aperto come "Modale" atrimenti rimane sempre in primo piano.
Vi ringrazio ancora per l'aiuto e cordialmente saluto.