1 Star 0 Fork 0

JonK/cheat-engine

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
LuaTrackbar.pas 4.90 KB
一键复制 编辑 原始数据 按行查看 历史
Dark Byte 提交于 2020-12-11 06:39 +08:00 . dark mode support
unit LuaTrackbar;
{$mode delphi}
interface
uses
Classes, SysUtils, controls, comctrls, lua, lualib, lauxlib, betterControls;
procedure initializeLuaTrackbar;
implementation
uses luahandler, luaclass, luacaller, LuaWinControl;
//trackbar
function createTrackBar(L: Plua_State): integer; cdecl;
var
TrackBar: TTrackBar;
parameters: integer;
owner: TWincontrol;
begin
result:=0;
parameters:=lua_gettop(L);
if parameters>=1 then
owner:=lua_toceuserdata(L, -parameters)
else
owner:=nil;
lua_pop(L, lua_gettop(L));
TrackBar:=TTrackBar.Create(owner);
if owner<>nil then
TrackBar.Parent:=owner;
luaclass_newClass(L, TrackBar);
result:=1;
end;
function trackbar_getMax(L: PLua_State): integer; cdecl;
var
trackbar: Tcustomtrackbar;
begin
trackbar:=luaclass_getClassObject(L);
lua_pushinteger(L, trackbar.max);
result:=1;
end;
function trackbar_setMax(L: PLua_State): integer; cdecl;
var
trackbar: Tcustomtrackbar;
begin
result:=0;
trackbar:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
trackbar.max:=lua_tointeger(L,-1);
end;
function trackbar_getMin(L: PLua_State): integer; cdecl;
var
trackbar: Tcustomtrackbar;
begin
trackbar:=luaclass_getClassObject(L);
lua_pushinteger(L, trackbar.Min);
result:=1;
end;
function trackbar_setMin(L: PLua_State): integer; cdecl;
var
trackbar: Tcustomtrackbar;
begin
result:=0;
trackbar:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
trackbar.Min:=lua_tointeger(L,-1);
end;
function trackbar_getPosition(L: PLua_State): integer; cdecl;
var
trackbar: Tcustomtrackbar;
begin
trackbar:=luaclass_getClassObject(L);
lua_pushinteger(L, trackbar.Position);
result:=1;
end;
function trackbar_setPosition(L: PLua_State): integer; cdecl;
var
trackbar: Tcustomtrackbar;
begin
result:=0;
trackbar:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
trackbar.Position:=lua_tointeger(L,-1);
end;
function trackbar_getonChange(L: PLua_State): integer; cdecl;
var
c: TCustomTrackBar;
begin
c:=luaclass_getClassObject(L);
LuaCaller_pushMethodProperty(L, TMethod(c.OnChange), 'TNotifyEvent');
result:=1;
end;
function trackbar_setonChange(L: PLua_State): integer; cdecl;
var
control: TCustomTrackBar;
f: integer;
routine: string;
lc: TLuaCaller;
begin
result:=0;
control:=luaclass_getClassObject(L);
if lua_gettop(L)>=1 then
begin
CleanupLuaCall(tmethod(control.onChange));
control.onChange:=nil;
if lua_isfunction(L,-1) then
begin
routine:=Lua_ToString(L,-1);
f:=luaL_ref(L,LUA_REGISTRYINDEX);
lc:=TLuaCaller.create;
lc.luaroutineIndex:=f;
control.OnChange:=lc.NotifyEvent;
end
else
if lua_isstring(L,-1) then
begin
routine:=lua_tostring(L,-1);
lc:=TLuaCaller.create;
lc.luaroutine:=routine;
control.OnChange:=lc.NotifyEvent;
end;
end;
end;
procedure trackbar_addMetaData(L: PLua_state; metatable: integer; userdata: integer );
begin
wincontrol_addMetaData(L, metatable, userdata);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getMax', trackbar_getMax);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setMax', trackbar_setMax);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getMin', trackbar_getMin);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setMin', trackbar_setMin);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getPosition', trackbar_getPosition);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setPosition', trackbar_setPosition);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'setOnChange', trackbar_setonChange);
luaclass_addClassFunctionToTable(L, metatable, userdata, 'getOnChange', trackbar_getonChange);
luaclass_addPropertyToTable(L, metatable, userdata, 'Max', trackbar_getMax, trackbar_setMax);
luaclass_addPropertyToTable(L, metatable, userdata, 'Min', trackbar_getMin, trackbar_setMin);
luaclass_addPropertyToTable(L, metatable, userdata, 'Position', trackbar_getPosition, trackbar_setPosition);
luaclass_addPropertyToTable(L, metatable, userdata, 'OnChange', trackbar_getonChange, trackbar_setonChange);
end;
procedure initializeLuaTrackbar;
begin
lua_register(LuaVM, 'createTrackBar', createTrackBar);
lua_register(LuaVM, 'trackbar_getMax', trackbar_getMax);
lua_register(LuaVM, 'trackbar_setMax', trackbar_setMax);
lua_register(LuaVM, 'trackbar_getMin', trackbar_getMin);
lua_register(LuaVM, 'trackbar_setMin', trackbar_setMin);
lua_register(LuaVM, 'trackbar_getPosition', trackbar_getPosition);
lua_register(LuaVM, 'trackbar_setPosition', trackbar_setPosition);
lua_register(LuaVM, 'trackbar_onChange', trackbar_setonChange);
end;
initialization
luaclass_register(TCustomTrackbar, trackbar_addMetaData);
end.
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/JonDO/cheat-engine.git
git@gitee.com:JonDO/cheat-engine.git
JonDO
cheat-engine
cheat-engine
master

搜索帮助