- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, uPSComponent, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
PSScript1: TPSScript;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure PSScript1Compile(Sender: TPSScript);
procedure PSScript1Execute(Sender: TPSScript);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
KOMPILJACIJA: BOOLEAN;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
VAR
Q2: LONGINT;
begin
IF PARAMSTR(1)='' THEN BEGIN
SHOWMESSAGE('не задан выполняемый скрипт в командной строке');
CLOSE;//тут не срабатывает
END;
end;
procedure TForm1.Button1Click(Sender: TObject);
VAR
Q5: ANSISTRING;
Q2,W2: LONGINT;
begin
Q2:=SYSUTILS.FILEOPEN(PARAMSTR(1),fmOpenRead);
W2:=SYSUTILS.FILESEEK(Q2,0,2);
SYSUTILS.FILESEEK(Q2,0,0);
SETLENGTH(Q5,W2);
SYSUTILS.FILEREAD(Q2,Q5[1],W2);
SYSUTILS.FILECLOSE(Q2);
SHOWMESSAGE(Q5);
PSSCRIPT1.SCRIPT.TEXT:=Q5;
//PSSCRIPT1.Script.LoadFromFile(PARAMSTR(1)); //загрузка файла напрямую, с ней тоже не работает
KOMPILJACIJA:=PSSCRIPT1.COMPILE;
end;
procedure TForm1.PSScript1Compile(Sender: TPSScript);
VAR
Z2: LONGINT;
Z5,R5: ANSISTRING;
begin
IF KOMPILJACIJA=FALSE THEN R5:='не ';
SHOWMESSAGE(R5+'скомпилировалось');
Z5:='Сообщения компилятора:'+#13#10;
FOR Z2:=0 TO PSSCRIPT1.CompilerMessageCount -1 DO
Z5:=Z5+PSSCRIPT1.CompilerMessages[Z2].MessageToString+#13#10;
SHOWMESSAGE(Z5);
IF PSSCRIPT1.EXECUTE=FALSE THEN SHOWMESSAGE('не запустилось :(');
end;
procedure TForm1.PSScript1Execute(Sender: TPSScript);
begin
SHOWMESSAGE('запустилось, хрен знает что и где');
end;
end.
Файл 1.pp
- Код: Выделить всё
USES
SYSUTILS;
BEGIN
WRITELN('111111111111 ');
SYSUTILS.EXECUTEPROCESS('/usr/bin/klickety',''); //КДЕшная игрушка
END.
Файл 2.pp
- Код: Выделить всё
begin end.
Команды в консоли:
- Код: Выделить всё
$ ./project1 1.pp
$ ./project1 2.pp
Должно выполняться после клика на кнопку. Эффект нулевой: и не компилируется и никаких ошибок компиляции не выдаёт. Как же заставить паскаль скрипт работать?