Go to file
Mark van Renswoude 943083ac00 Added readme for GitHub
Added gitignore for bin, lib and history folders
2016-02-07 14:25:00 +01:00
LuaBinaries Initial commit 2014-11-30 09:33:17 +00:00
UnitTests Added readme for GitHub 2016-02-07 14:25:00 +01:00
Lua.API.pas Renamed Lua to Lua.API 2016-02-07 10:58:56 +00:00
Lua.pas Actually included the rename which was supposed to happen in the last commit :) 2016-02-07 12:41:21 +00:00
README.md Added readme for GitHub 2016-02-07 14:25:00 +01:00

README.md

DelphiLua

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. Minimum version for the wrapper is probably 2010, due to anonymous functions and TRttiContext being used. I also know for sure that the code isn't 64-bits compatible yet.

Getting started

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!