1 Star 0 Fork 0

phy0292/cheat-engine

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
LuaCustomControl.pas 1.93 KB
一键复制 编辑 原始数据 按行查看 历史
cheat-engine 提交于 2019-12-20 00:49 +08:00 . Fix registry issues
unit LuaCustomControl;
{$mode delphi}
interface
uses
Classes, SysUtils, Controls, lua, lualib, lauxlib;
procedure customcontrol_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
procedure initializeLuaCustomControl;
implementation
uses luahandler, luaclass, LuaWinControl, LuaCaller;
function customControl_getCanvas(L: PLua_State): integer; cdecl;
var
parameters: integer;
c: TCustomControl;
i: integer;
begin
c:=luaclass_getClassObject(L);
if c.Canvas.handle=0 then
i:=c.Canvas.Pixels[0,0];
luaclass_newClass(L, c.Canvas);
result:=1;
end;
function customControl_getOnPaint(L: PLua_State): integer; cdecl;
var
c: TCustomControl;
begin
c:=luaclass_getClassObject(L);
LuaCaller_pushMethodProperty(L, TMethod(c.OnPaint), 'TNotifyEvent');
result:=1;
end;
function customControl_setOnPaint(L: PLua_State): integer; cdecl;
var
c: TCustomControl;
m: tmethod;
begin
if lua_gettop(L)>=1 then
begin
c:=luaclass_getClassObject(L);
m:=tmethod(c.OnPaint);
LuaCaller_setMethodProperty(L, m, 'TNotifyEvent', lua_gettop(L));
c.OnPaint:=tnotifyevent(m);
end;
result:=0;
end;
procedure customcontrol_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
begin
wincontrol_addMetaData(L, metatable, userdata);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getCanvas', customControl_getCanvas);
luaclass_addPropertyToTable(L, metatable, userdata, 'Canvas', customControl_getCanvas, nil);
luaclass_addPropertyToTable(L, metatable, userdata, 'OnPaint', customControl_getOnPaint, customControl_setOnPaint);
end;
procedure initializeLuaCustomControl;
begin
lua_register(LuaVM, 'customControl_getCanvas', customControl_getCanvas);
lua_register(LuaVM, 'customcontrol_getCanvas', customControl_getCanvas);
end;
initialization
luaclass_register(TCustomControl, customcontrol_addMetaData);
end.
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/phy0292/cheat-engine.git
git@gitee.com:phy0292/cheat-engine.git
phy0292
cheat-engine
cheat-engine
master

搜索帮助