Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 28 su 28
  1. #21
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    Beh il concetto per ora è questo:

    - Io scrivo varie procedure/funzioni in un file di testo
    - Il mio componente analizza il testo e crea internamente degli oggetti suoi per gestire tutto
    -Da codice delphi come ultimo passo dico al mio componente di eseguire un certo metodo.

    Esempio:
    questo è il codice che scrivo nella mia solita TMemo
    codice:
    procedure Main;
    begin
       ShowMessage( "HelloWorld" );
    end;
    
    procedure Pippo;
    vari 
       i   : integer;
    begin
       while i < 3 do
       begin
          ShowMessage( "HelloWorld" );
          i   := i + 1;
       end;
    end;
    
    function Pluto: integer;
    begin
       Result   := 5 + ( 4 + 6 ) / 2 - 3; 
    end;
    
    function Topolino: integer;
    begin
       Pippo;
       Result   := Pluto + 1;
    end;
    Da delphi poi faccio una chiamata tipo questa:
    codice:
       liValore   := miooggettointerprete.ExecuteFunction( 'Topolino' );
    A questo punto, se volessi cambiare il risultato che restituisce la funzione 'Topolino', mi basta modificare il codice nella TMemo per ottenere un risultato diverso, senza dover toccare una riga del codice delphi

  2. #22
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Mi sono espresso male: questo è chiaro.
    Non mi è chiaro un caso concreto nel quale ciò abbia una sua utilità pratica (in realtà mi vengono in mente le regole di un configuratore tecnico-commerciale, ma non molto di più).

    Comunque... prosegui su questa strada, magari ne viene fuori qualcosa di interessante

  3. #23
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    Beh un esempio che posso farti è questo:
    io ho un pirometro che rileva la temperatura di un certo materiale.
    Una volta rilevata la temperatura, questa arriva a un mio sistema che, in base a certe regole, decide se salvarlo a database come dato buono o scartarlo per poi ripetere la misurazione.

    Ora, visto che è capitato spesso di dover rivedere questa logica di validità/invalidità, è pesante dover ricompilare l'applicativo ogni volta e doverlo reinstallare in impianto.

    Mettendo questa logica esternamente invece mi basta cambiare questa ed il gioco è fatto

  4. #24
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Originariamente inviato da Jey
    Beh un esempio che posso farti è questo:
    io ho un pirometro che rileva la temperatura di un certo materiale.
    Una volta rilevata la temperatura, questa arriva a un mio sistema che, in base a certe regole, decide se salvarlo a database come dato buono o scartarlo per poi ripetere la misurazione.

    Ora, visto che è capitato spesso di dover rivedere questa logica di validità/invalidità, è pesante dover ricompilare l'applicativo ogni volta e doverlo reinstallare in impianto.

    Mettendo questa logica esternamente invece mi basta cambiare questa ed il gioco è fatto
    è molto simile all'esempio che mi è venuto in mente (le regole) ed ha un suo "perchè"

  5. #25
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Potrei sbagliarmi, ma sembra che questo sia quello che stai cercando di ottenere...
    Ho fatto una semplice ricerca su Google e non l'ho mai utilizzata, ma mi pare almeno il caso di darci un'occhio prima di cominciare a implementare una versione completa e usabile...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #26
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    Non so se avevo trovato anch'io questo engine o qualcosa di simile.
    Ma non mi piaceva il modo di usare i metodi dei miei oggetti delphi, che anche in questo engine sembra essere lo stesso.

    Ogni metodo doveva essere "registrato" per essere così visibile nello script.
    Io invece passo direttamente la mia variabile delphi al mio componente e lui ha completo accesso ad essa, ai suoi metodi, alle sue proprietà e variabili.

    In questo modo, se implementassi un nuovo metodo in un mio oggetto, questo sarà subito visibile anche nello script, senza che io lo abbia registrato.
    Inoltre avevo problemi ad accedere a variabili del mio codice delphi ( tipo un button nella form ) e questo mi limitava parecchio.

    L'unico problema rimangono i metodi protected
    Per il resto riesco già a fare praticamente tutto

  7. #27
    Utente bannato
    Registrato dal
    Dec 2012
    Messaggi
    679
    Bhè diciamo che di script pascal like ce ne sono parecchi, anche storici, come quelli http://jvcl.delphi-jedi.org/JvInterpreter.htm (e gratuiti), ma l'approccio di Jey comunque è interessante.
    Purtroppo sono travolto dai clienti e mi tocca lavorare (maledette email), ma prima o poi auspico di aver tempo di approfondire.

  8. #28
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    Beh io per ora, per non dovermi cambiare la dichiarazione dei metodi delle mie classi e rimanendo con la speranza di trovare una soluzione, ho fatto qualcosa tipo questa:

    codice:
    TMioOggetto = class;
    
    TMioOggettoDiSupporto = class
    private
       owner : TMioOggetto;
    public
       procedure miometodopublic;
    end;
    
    TMioOggetto = class
    private
       supporto  : TMioOggettoDiSupporto;
    protected
       procedure miometodoprotected;
    end;
    
    implementation
    
    TMioOggetto.miometodoprotected;
    begin
       ShowMessage( 'Hello World' );
    end;
    
    TMioOggettoDiSupporto.miometodopublic;
    begin
       owner.miometodoprotected;
    end;
    A questo punto passo al mio componente una variabile di tipo TMioOggettoDiSupporto e chiamo i suoi metodi.
    Il problema così è risolto, ma se devo fare così faccio prima a rendere public i metodi di TMioOggetto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.