Mark van Renswoude
Example for issue #2
|3 years ago|
|UnitTests||3 years ago|
|.gitignore||6 years ago|
|Lua.API.pas||6 years ago|
|Lua.pas||3 years ago|
|README.md||7 years ago|
definitely not the most creative project name
This project consists of two parts: a straight-up conversion of the LuaBinaries 5.2 C headers to Delphi, and the TLua class to make integrating Lua with Delphi projects easier.
A note on compatibility
It's been tested and developed on Delphi XE2 32-bits and 64-bits. Minimum version for the wrapper is probably 2010, due to anonymous functions and TRttiContext being used.
Download lua-5.2.4_Win32_bin.zip or lua-5.2.4_Win64_bin.zip from LuaBinaries and extract lua52.dll.
If you're just interested in the API, the Lua manual is the best place to start.
For the wrapper, take a look at the unit tests in TestWrapper.pas. Be sure to copy Lua52.dll into the output path if you're gonna run the unit tests or your own project.
A very, very simple example
Load a script from a string, passing two variables A and B and having the script sum them up into variable C.
var lua: TLua; returnValue: Integer; begin lua := TLua.Create; try lua.SetGlobalVariable('A', 5); lua.SetGlobalVariable('B', 10); lua.LoadFromString('C = A + B'); returnValue := lua.GetGlobalVariable('C').AsInteger; finally FreeAndNil(lua); end; end;
...of course, you can do much more exciting things like calling Delphi functions from Lua or vice versa. Check out the Call and RegisterFunction(s) methods. Have fun!