Sign in Join
Wiki copytemporary

Pascal Script: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11**Pascal Script** is an [[Object Pascal]]/[[Delphi]]/[[Lazarus]]-compatible interpreter with bytecode compiler that delivers a [[PascalScript|scripting]] environment for application programs.
22
33It currently works in [[Portal:Mac|macOS]], [[Portal:Windows|Windows]] and [[Portal:Linux|Linux on 32-bit and 64-bit]] [x86](/wiki-category/x86), [[PowerPC]] and [[ARM]] processors.
44
55It was created and is maintained by Carlo Kok and is copyrighted by [RemObjects software](http://www.remobjects.com) as freeware with full source available.
66
77The fixing of a few incompatibilities between ROPS (RemObjects Pascal Script) and Free Pascal 2.0.1 was made by Bogusław Brandys with a great help of many developers from \#fpc and \#lazarus-ide IRC channels. Thank You.
88
99Its main characteristics are :
1010
1111- almost all Object Pascal syntax supported
1212- Delphi/Lazarus classes supported (however cannot be declared inside of script)
1313- can create fully workable GUI forms with components
1414- easily import new classes into script engine
1515
1616The download contains the components package for Delphi (various versions) and Lazarus + a few samples for Delphi (which may or may not work under Free Pascal+ Lazarus). It is work in progress...
1717
1818This component is now designed for cross-platform applications, however limited to 32-bit Intel platform only. I'd like to make it work on PowerPC and 64-bit architectures someday. (Note: The current version seems to support 64-bit machines, according to RemObjects.)
1919
2020## Screenshots
2121
2222Here are some screenshots how it looks under Lazarus:
2323
24-Image:Rops_linux.png\|under Linux Image:Rops_windows.png\|under Windows Image:maXbox_mini_LAZARUS.png\|under Windows Image:Pascal Script for Lazarus 2 on Mac.png\|macOS Mojave
24+![](/wiki-images/0/0f/Rops_linux.png)
25+
26+under Linux
27+
28+![](/wiki-images/6/65/Rops_windows.png)
29+
30+under Windows
31+
32+![](/wiki-images/6/67/MaXbox_mini_LAZARUS.png)
33+
34+under Windows
35+
36+![](/wiki-images/6/6d/Pascal_Script_for_Lazarus_2_on_Mac.png)
37+
38+macOS Mojave
2539
2640## License
2741
2842BSD like, see [[Pascal Script/License|full text]].
2943
3044## Download
3145
3246- From RemObjects (FPC + Lazarus is supported)
3347
3448
3549This is the main page of RemObjects [Pascal Script distribution](http://www.remobjects.com/ps.aspx). There are download links for binary packages.
3650
3751- New repository: <https://github.com/remobjects/pascalscript> <git://github.com/remobjects/pascalscript.git>
3852- **In newer Lazarus versions Pascal Script is included as a standard component.**
3953
4054## Change Log
4155
4256- Version 1.0 2005/10/21
4357- ("Official" support of FPC, as seen on 2006/07/21)
4458
4559### Dependencies / System Requirements
4660
4761- None
4862- Status: Beta (ToDo: update info)
4963- Issues: (ToDo: update info)
5064- Needs testing on Windows.
5165- Needs testing on Linux.
5266- Almost working ;-)
5367
5468### Installation
5569
5670- Create the directory lazarus\components\pascalscript
5771- Unzip files into the directory
5872- Open lazarus
5973- Open the package pascalscript.lpk with Component/Open package file (.lpk)
6074- Click on Compile
6175- Click on Install
6276
6377### Compilation errors
6478
6579When compiling to install the package, the compiler will stumble on two lines in uPSR_forms.pas:
6680
6781``` pascal
6882RegisterMethod(@TAPPLICATION.HELPCOMMAND, 'HELPCOMMAND'); // <-- this one
6983RegisterMethod(@TAPPLICATION.HELPCONTEXT, 'HELPCONTEXT');
7084RegisterMethod(@TAPPLICATION.HELPJUMP, 'HELPJUMP'); // <-- and that one
7185```
7286
7387Simply comment out the lines. These methods are not yet implemented in the LCL.
7488
7589## Usage
7690
7791Drop the PascalScript component on a form and a few plugins. (TODO:finish)
7892
7993If you get the error "Fatal: Can't find unit uPSCompiler used by ...", open up the pascalscript package, and under the "more" options, select "add to project".
8094
8195See the example projects.
8296
8397See also these [articles](https://github.com/remobjects/pascalscript/wiki) from RemObjects.
8498
8599## Example application
86100
87101Sample small console mode interpreter application: [[Pascal Script Examples|Pascal Script Examples (psce)]]
88102
89103Sample components Demo with Lazarus GUI: [[http://sourceforge.net/projects/maxbox/files/Lazarus/PASCALSCRIPT LAZARUS.zip/download]]
90104
91105## History
92106
93107Pascal Script started out in 2001 with CajScript 1.0, which was soon superseded by CajScript 2.0 (later called Innerfuse Pascal Script 2.0). Version 2.0 interpreted scripts while it ran them, which had the disadvantage that every piece of code had to be reparsed every time the script engine went over it. With Pascal Script 3.0, this was changed to a new model, where the compiler and runtime were completely separated from each other and used a custom byte code format to represent the compiled script. This compiled script only contained the bare minimum that was required to execute the code. Later, when Carlo Kok joined RemObjects, it was renamed RemObjects Pascal Script and is now being maintained by RemObjects Software.
94108
95109One prominent use of Pascal Script is the Open Source InnoSetup project. InnoSetup is a widely used setup engine that uses Pascal Script as scripting engine to provide advanced scripting abilities during installation and uninstallation. Using Pascal Script, users can customize almost all parts of the setup, add new wizard pages, call into dlls to add advanced features and provide custom behavior and install conditions.
96110
97111## See also
98112
99113- [RemObjects Pascal Script page](https://www.remobjects.com/ps.aspx)
100114- [[Pascal Script tab]]
101115
102116---
103117*From the Free Pascal wiki, page "Pascal Script", as it stood on 2019-12-10 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
104118Category: Pascal Script

Back to history