Discussione: Scripts di esempio
-
13-05-13, 16:27 #151
-
13-05-13, 23:43 #152
Gli errori di Access Violation non dovrebbero mai verificarsi.
Chiedo ad entrambi, se possibile, di riprodurre il problema ed inviare il file di Log di FiutoPRO (Barra del menù principale di FiutoPRO -> Utilities -> File di log -> Invia file di log al supporto tecnico).
Per quanto riguarda il problema relativo ad ExtCtrls, verrà risolto nella prossima release di FiutoPRO.
Tornando alla discussione relativa all'utilizzo dei timer, il modo più semplice per fare funzionare il sistema è quello di includere il codice all'interno di una funzione/procedura, e dall'evento del timer richiamare la funzione/procedura appena creata.
Nell'evento del timer, è buona norma disabilitare e riabilitare il timer prima dell'esecuzione del codice vero e proprio, in modo da evitare di trovarsi con segnalazioni di eventi dei timer accodate all'infinito se il tempo di esecuzione è maggiore dell'intervallo del timer stesso. Il codice vero e proprio andrebbe anche inserito in un blocco try...catch...end try, per assicurarsi che anche in caso di errore il timer venga effettivamente riattivato. In questo modo l'intervallo del timer non è rispettato perfettamente, ma si evitano i possibili errori di stack-overflow.
Il codice dell'evento di un timer dovrebbe assomigliare a questo:
SUB Timer1Timer(Sender AS TObject) Timer1.Enabled = false Try ' Codice da eseguire allo scadere dell'intervallo del timer Catch ' Codice per la gestione degli errori End Try Timer1.Enabled = true END SUB
Max Francario
-
14-05-13, 09:27 #153
- Data Registrazione
- Apr 2013
- Messaggi
- 13
Salve Massimiliano, ho ppena inviato il file di log, come prima cosa dopo aver ricevuto i 5 errori di access violation aprendo l'editor di script.
grazie
Renato.
-
14-05-13, 11:00 #154
- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
Grazie come sempre Max!
Allora non vedo l'ora che esca la nuova release
Nel frattempo però perndo spunto per chiederti un altro paio di cosette:
1. Dici "includere il codice all'interno di una funzione/procedura, e dall'evento del timer richiamare la funzione/procedura appena creata"...
Questa è una cosa che ancora non sono riuscito a fare...con che comando richiamo una procedura specifica all'interno di un'altra procedura?
2. Ho notato che se creo una procedura, devo sempre dichiarare le variabili al suo interno, ma immagino che ci sia un modo per condividere la variabili tra una procedura e l'altra...
-
14-05-13, 11:47 #155
Salve,
ecco le risposte.
1. Supponiamo di avere questa procedura "Test" da qualche parte nel nostro codice:
SUB Test() A = 1 END SUB
Se vogliamo richiamare questa procedura dobbiamo usare il seguente codice:
.... ' Qui c'e' il codice prima della chiamata alla procedura Test Test() .... ' Qui c'e' il codice dopo la chiamata alla procedura Test
La cosa potrebbe complicarsi se la procedura Test fosse implementata in un file diverso da quello dove la si vuole utilizzare. In questo caso, la procedura Test deve essere dichiarata come pubblica:
PUBLIC SUB Test() A = 1 END SUB
Nel file dove si vuole richiamare la procedura Test è necessario includere il file dove quella procedura viene utilizzata nella clausola USES.
2. La domanda si riferisce allo "scope" delle variabili e delle funzioni/procedure, cioè al loro ciclo di vita ed al loro livello di visibilità. Normalmente le funzioni/procedure hanno necessità sia di variabili locali (cioè dichiarate direttamente all'interno della funzione/procedura stessa) sia di variabili non locali (cioè dichiarate all'esterno della funzione/procedura). Ecco un esempio:
DIM NonLocale As Integer ' Dichiarazione di una variabile visibile a livello di file PUBLIC Globale ' Dichiarazione di una variabile globale, visibile in tutti i file SUB Test() ' Dichiarazione di una variabile locale, visibile solo a livello di procedura/funzione DIM Locale As Integer .... ' Utilizzo di tutte le variabili disponibili NonLocale = NonLocale + Locale Globale = Locale + 1 .... END SUB ' Questo non e' corretto perche' la variabile Locale non esiste al di fuori della procedura Test Locale = 1 ' Queste invece sono corrette perche' entrambe le variabili sono visibili in questo punto del file NonLocale = 2 Globale = 3
Max Francario
-
14-05-13, 11:56 #156
- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
Ottimo Max!
Grazie ancora...faccio delle prove così allora...
-
19-09-13, 13:40 #157
- Data Registrazione
- Aug 2008
- Località
- Edolo (BS)
- Messaggi
- 693
Ciao max...
so che sarai impegnatissimo...ma ho notato che la libreria Extctrl da ancora errore... solo per ricordartelo eventualmente per la prossima release
-
02-12-13, 23:50 #158
Ciao Chrisbasetta
come procede lo studio dello scripting di Fiutopro?
hai mandato in esecuzione in real qualche codice oppure sei in paper ?
te lo chiedo per avere conferma se di fatto è sufficentemente stabile e quindi affidabile per la messa a mercato in real.
grazie
Apo....non si desidera ciò che è facile ottenere (Ovidio)....