IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Composant PascalScript : divers problèmes


Sujet :

Lazarus Pascal

  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 343
    Points : 536
    Points
    536
    Billets dans le blog
    2
    Par défaut Composant PascalScript : divers problèmes
    Bjr à vous,

    J'utilise les composants PascalScript dans un de mes projets.

    Ajout de fonctions personnalisées: OK
    Compilation et Lancement d'un script: OK

    Je bute sur plusieurs problèmes:
    - Dans le composant PSScriptDebugger: PSScriptDebugger1.Exec.Stop n'arrête pas le script (exemple: une boucle infinie dans le script). Je dois flinguer l'application;
    - Je suis obligé de lancer le script pour accéder à la liste des fonctions disponibles
    - Dans l'événement OnSelectionChange de la TListBox lsbPSFunctions qui contient la liste des fonctions personnalisées, événement censé afficher l'aide en ligne d'une fonction, je tombe sur une erreur 'This function can be only called within the OnUses event'


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    procedure TCdrCalculette.DisplayHelpForProc(const MyProc: TPSRegProc);
    var
      p: LongInt;
    begin
      memoHelp.Clear;
      memoHelp.Lines.Add(MyProc.Name);
      p := MyProc.Decl.ParamCount;
      // ...
    end;         
    procedure TCdrCalculette.lsbPSFunctionsSelectionChange(Sender: TObject; User: boolean);
    var
      MyProc: TPSRegProc;
    begin
      ShowMessage('DisplayHelpForProc()');
      //try
        MyProc := PSScriptDebugger1.Comp.GetRegProc(lsbPSFunctions.ItemIndex);
        DisplayHelpForProc(MyProc);
      //except
      //end;
    end;
    La documentation est très lacunaire à ce sujet.

    PS: L'insertion d'images dans le présent éditeur de commentaires DVP nécessite Flash et fonctionne de manière erratique
    Images attachées Images attachées  

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2013
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2013
    Messages : 343
    Points : 536
    Points
    536
    Billets dans le blog
    2
    Par défaut
    Aucune réponse à ce post depuis 15 mois...

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par JP CASSOU Voir le message
    Aucune réponse à ce post depuis 15 mois...
    Bonjour ! Je suppose que personne ici ne connaît la solution à votre problème, faute d'utiliser les composants en question. J'avoue que pour ma part je ne les connais pas et que, soit dit en passant, je n'ai jamais trop bien compris à quoi servent les scripts en Pascal (je veux dire, quel genre d'utilisation on peut en faire).

    Je crois qu'il ne vous reste plus qu'à nous faire un tutoriel.

    Quant à votre question, peut-être pourrait-on aller la poser directement à l'auteur du projet, sur sa page GitHub ?

    Bon courage !
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    Citation Envoyé par JP CASSOU Voir le message
    Aucune réponse à ce post depuis 15 mois...
    sans code source complet ou projet de test il est difficile de répondre surtout si l'on utilise pas les composants. On ne peut pas facilement reconstituer tout un projet pour reproduire tes problèmes avec des composants que l'on ne connaît pas et d'après les petits morceaux de code que tu nous mets

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    as tu essayé avec un pause plutot qu'un stop

    a priori dans le source de pascalscript le stop n'est pas la pour interrompre le traitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TPSDebugExec.Stop;
    begin
      FDebugMode := dmRun;
      inherited Stop;
    end;
    et dans son parent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TPSExec.Stop;
    begin
      if FStatus = isRunning then
        FStatus := isLoaded
      else if FStatus = isPaused then
      begin
        FStatus := isLoaded;
        FStack.Clear;
        FTempVars.Clear;
      end;
    end;
    si tu regarde le pause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TPSExec.Pause;
    begin
      if FStatus = isRunning then
        FStatus := isPaused;
    end;
    et son enfant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TPSDebugExec.Pause;
    begin
      FDebugMode := dmPaused;
    end;
    Fait une pause et un stop ... je pense que ton processus seras remis a zero
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  6. #6
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    hello,
    Citation Envoyé par JP CASSOU Voir le message
    - Dans l'événement OnSelectionChange de la TListBox lsbPSFunctions qui contient la liste des fonctions personnalisées, événement censé afficher l'aide en ligne d'une fonction, je tombe sur une erreur 'This function can be only called within the OnUses event'
    pour ce problème voir ici

    To extend the compiler, you must assign a function to the OnUses event handler of the compiler object. I assigned the function ExtendCompiler, shown below, on line 10 of the CompileScript function shown above. The OnUses event handler is called by the compiler during compilation and will cause compilation to fails if it returns false. I’m not sure why it is designed this way but trying to extend the compiler from outside the OnUses event handler will result in an exception.
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo