Scripts di esempio

Collapse
This is a sticky topic.
X
X
 
  • Ora
  • Show
Clear All
new posts
  • Apocalips
    Senior Member

    • May 2011
    • 2630

    #151
    Originariamente Scritto da nevada
    ... appena clicco mi compaiono in sequenza 5 diverse finestre con errori di Access Violation nel modulo FiutoPro.exe agli indirizzi 00B13E70 e 000002AC
    a me compare lo stesso identico errore 2 volte di seguito prima di aprirsi l\'editor.

    WIN8 64 bit.
    ....non si desidera ciò che è facile ottenere (Ovidio)....

    Comment

    • Francario Massimiliano
      Administrator
      • Jul 2008
      • 1033

      #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:

      Codice:
      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
      Manuale di beeTrader
      Manuale di Fiuto Beta

      Comment

      • nevada
        Junior Member

        • Apr 2013
        • 13

        #153
        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.
        Un investitore che ha tutte le risposte, non ha capito la domanda.
        Un saluto a tutti da Renato (Skype nevada1969)

        Comment

        • chrisbasetta
          Senior Member
          • Aug 2008
          • 693

          #154
          Originariamente Scritto da Francario Massimiliano
          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:

          Codice:
          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
          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...

          Comment

          • Francario Massimiliano
            Administrator
            • Jul 2008
            • 1033

            #155
            Originariamente Scritto da chrisbasetta
            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...
            Salve,
            ecco le risposte.

            1. Supponiamo di avere questa procedura "Test" da qualche parte nel nostro codice:
            Codice:
            SUB Test()
                A = 1 
            END SUB
            Se vogliamo richiamare questa procedura dobbiamo usare il seguente codice:
            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:
            Codice:
            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:

            Codice:
            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
            Manuale di beeTrader
            Manuale di Fiuto Beta

            Comment

            • chrisbasetta
              Senior Member
              • Aug 2008
              • 693

              #156
              Ottimo Max!
              Grazie ancora...faccio delle prove così allora...

              Comment

              • chrisbasetta
                Senior Member
                • Aug 2008
                • 693

                #157
                Ciao max...
                so che sarai impegnatissimo...ma ho notato che la libreria Extctrl da ancora errore... solo per ricordartelo eventualmente per la prossima release

                Comment

                • Apocalips
                  Senior Member

                  • May 2011
                  • 2630

                  #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)....

                  Comment

                  Working...