46 / 20 / 5
Регистрация: 29.12.2015
Сообщений: 1,771
1

PascalScript в Lasarus

03.04.2016, 12:52. Показов 3777. Ответов 4
Метки нет (Все метки)

Добрый день. Может ктонибудь детально расказать как работать с PascalScript
Собственно что мне необходимо:
В отдельном скрипте паскаль запускать процедуры и функции.
К примеру скрипт
Pascal
1
2
3
4
5
6
7
8
9
10
11
var
//Здесь свои переменные объявляешь
//Свои функции и процедуры
begin
//А сдесь непосредственно код который будет выполнятся в своей программе. Например не только использовать функции и прпоцедуры которые есть в скрипте но и вызов функций и процедур которые есть в делфи.
end.
//К приеру скрипт работы с  цветом
Var Clr1:TColor;
begin
clr1 := RGB(120, 120, 120);
end.
А также о возможностях использовать события в паскале
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2016, 12:52
Ответы с готовыми решениями:

БД в lasarus
Здраствуйте. Извините если тема уже была. В принцыпе была но у меня чуть другое. Может ли кто...

Lasarus в школе
В школах ввели СПО, поэтому программирование изучаем на Lasarus. Я учитель информатики, язык изучаю...

Кодировка путей и текста Lasarus
Может кто помочь с кодировками. Вечно в лазарусе как не попытаешься открыть файл то в ответ получаю...

OPC-client для Lasarus
Добрый день, господа форум! Возникла необходимость в OPC-клиенте. В Delphi пользовался библиотекой...

4
1 / 1 / 0
Регистрация: 12.05.2016
Сообщений: 6
12.05.2016, 17:21 2
Вот лови пример использования скриптов реальном проекте ...
(Судя по коду ты чем-то похожим занимаешься )

"Лаборатория распознавания образов"
Тема проекта тут Серия проектов "Дополнение к реальности "
0
46 / 20 / 5
Регистрация: 29.12.2015
Сообщений: 1,771
21.05.2016, 05:26  [ТС] 3
Цитата Сообщение от Alex_Kir_2016 Посмотреть сообщение
Вот лови пример использования скриптов реальном проекте ...
(Судя по коду ты чем-то похожим занимаешься )
Мне нужно чтобы в скрипте можно было использовать функции некоторых модулей Lazarus'а
А пример не запускается
mf.pas(1097,30) Error: Illegal type conversion: "TMainForm" to "LongInt"
mf.pas(1102,52) Error: Illegal type conversion: "TMainForm" to "LongInt"
0
1 / 1 / 0
Регистрация: 12.05.2016
Сообщений: 6
26.05.2016, 17:47 4
А пример не запускается
Видимо сказываются различия в версиях Лазаруса (текущая 1.4.2 а тот проект собирался кажется еще в 1.2.6 )

Вот еще один мой проект с использованием скриптов ...
MidAsm

Добавлено через 52 минуты
...
Главное просмотри как обеспечивается вызов внешних функции ...

А вообще все просто ...
Кидаешь на форму PSScript
в событиях компонента прописываешь onCompile в PSScript1Compile
и пишешь что-то вроде этого кода
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, uPSComponent, Forms, Controls, Graphics, Dialogs,
  Buttons, StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    PSScript1: TPSScript;
    procedure Button1Click(Sender: TObject);
    procedure PSScript1Compile(Sender: TPSScript);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
procedure MSG(S:String);
begin
ShowMessage(S);
end;
 
procedure TForm1.PSScript1Compile(Sender: TPSScript);
begin
  PSScript1.AddFunction(@MSG ,'procedure MSG(S:String);');// Почти любая процедура или функция ...
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  PSScript1.Script:='Begin msg(#39+'TEST'+#39); end.';
if   PSScript1.Compile then if  PSScript1.Running then ShowMessage('OK');
end;
 
end.
Есть способы передать переменные но смысла в этом немного
гораздо проще использовать для установки параметров и получения результатов внешние процедуры и функции
(что-то роде SetParam и GetResult )
Зы
В коде возможно есть мелкие ляпы (чтобы проверить нужно перезагружать комп ) но суть именно такая
0
46 / 20 / 5
Регистрация: 29.12.2015
Сообщений: 1,771
26.05.2016, 19:43  [ТС] 5
Alex_Kir_2016, Спасибо но мне бы еще способ вызова стандавртных процедур которые в модуле graphic есть. Неужели их все прописывать нужно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2016, 19:43
Помогаю со студенческими работами здесь

Вызов ShowMessage из DLL в Lasarus
Переношу DLL проект с Делфи на Лазаря, столкнулся с такой проблемой. Лазарус не видит окна...

Сохранения компонента в файл и загрузка из файла без использовании WinApi Lasarus
Собственно вопрос. Как можно полностью сохранить все параметры компонента и загрузить их из файла...

Разработать приложение в среде Lasarus для проверки решений задач заданного вида
Разработать приложение в среде Lasarus для проверки решений задач следующего вида: Петя записал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru