Estoy buscando un buen motor de scripting gratuito para Delphi. Quiero agregar scripts a una aplicación para que pueda escribir pequeños scripts de prueba. Específicamente necesito:¿Hay un buen script de Pascal para Delphi?
- Pascal-como sintaxis
- actual (Miré a RemObjects Pascal Scripting pero es "obsoleta", según un anuncio que vi).
No necesito soporte de idioma completo, solo lo básico. Vi esto: https://stackoverflow.com/questions/226135/scripting-library-for-delphi, pero supongo que las cosas han cambiado un poco desde entonces.
Todo lo que quiero ser capaz de hacer es añadir un componente del memorándum a mi programa, y en tiempo de ejecución añadir un fragmento de la fuente a la nota y haga clic en un botón de marcha. Quiero que el script pueda acceder a las variables y funciones de mi aplicación.
¿Cuál es el camino más fácil para lograr esto? El programa de ejemplo sigue.
program Project31;
uses
Forms,
Unit36 in 'Unit36.pas' {Form36};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm36, Form36);
Application.Run;
end.
.
unit Unit36;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm36 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form36: TForm36;
implementation
{$R *.dfm}
procedure RoutineInMyApplication ;
begin
ShowMessage ('Hello from my Application') ;
end ;
procedure TForm36.Button1Click(Sender: TObject);
begin
//ExecuteScript (Memo1.Lines) ;
end ;
end.
.
object Form36: TForm36
Left = 0
Top = 0
Caption = 'Form36'
ClientHeight = 174
ClientWidth = 391
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 300
Top = 72
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
object Memo1: TMemo
Left = 8
Top = 21
Width = 241
Height = 145
Lines.Strings = (
'begin'
'ShowMessage ('#39'Hello world'#39') ;'
'CallSomehow (RoutineInMyApplication) ;'
'end.'
' ')
TabOrder = 1
end
end
Todavía prefiero personalmente PascalScript. La falta de compatibilidad con el compilador Delphi de 64 bits podría ser la debilidad, pero cuando utilizas el compilador Delphi de 32 bits (la compatibilidad está actualmente con Delphi XE2), estarás bien, creo. Actualmente, PascalScript tiene baja prioridad en la corrección de errores (principalmente para problemas encontrados para el compilador de 64 bits), pero no significa que no sea estable para 32 bits. Proyectos como InnoSetup lo usan y todavía está vivo. Después de una búsqueda muy rápida, no creo que haya una alternativa gratuita en la misma calidad probada. – TLama
Gracias @TLama. Lo había instalado para D2006 y XE1, pero no instaló ningún D10 BPL, el ReadMe.html era un enlace inactivo, el archivo de la última entrada changes.txt era "NUEVO Soporte para Borland Developer Studio 2006", así que no estaba t seguro. Voy a mirar de nuevo. Me interesaría ver qué implicaría la ejecución de mi aplicación de muestra si tiene el tiempo y el software instalado. – rossmcm
No tomaría ese archivo ['changelog.txt'] (https://github.com/remobjects/pascalscript/blob/master/Source/changelog.txt) demasiado en serio. Hubo ['many commits'] (https://github.com/remobjects/pascalscript/commits/master) desde la última vez que se registró en ese archivo, por lo que diría que simplemente se detuvieron para iniciar sesión en ese archivo. – TLama