zhude
27297
2006/11/24 11:50:38
谢谢 楼主
zbluecn
27293
2006/11/24 9:51:53
呵呵 载入的时候 把那些行去掉就可以了啊 LuaLoadBufferFromFile 这个的 使用的是 TStringList 这个方法比较笨, 暂时还没有想到其他的方法
zhude
27290
2006/11/24 1:08:43
再问一下楼主~~有没有什么手段能直接从指定的行开始执行脚本 比如说 A.LUA print("1"); print("2"); print("3"); print("4"); 能不能通过什么手段直接从 print("2"); 开始 而不是从头执行
zbluecn
27273
2006/11/23 8:45:31
这个是在lua 中的定义 #define luaL_dofile(L, fn) (luaL_loadfile(L, fn) || lua_pcall(L, 0, 0, 0)) 呵呵 没有什么不同 我写的比较复杂
zhude
27270
2006/11/22 23:20:53
请问一下楼上 你用的 LuaLoadBufferFromFile(l, 'luaapp.lua', 'code'); LuaPCall(L, 0, 0, 0); 和 lua_dofile(MYL,'luaapp.lua'); 有什么不同,谁更加好一些????????
zbluecn
27262
2006/11/22 10:39:52
我是这样写的 但是记得要带包编译. Lua --print(type(VCL)) frm=VCL.Form('LuafrmMain') frm:Show() DelphiAPP function luaopen_vcl(L: Plua_State): Integer; cdecl external 'vcl.dll'; //function luaopen_vclByDelphi(App: TApplication; Scr: TScreen; L: Plua_State): Integer; cdecl; external 'vcl.dll'; function LuaPrint(L: Plua_State): Integer; cdecl; var I, N: Integer; sResult: string; begin N := lua_gettop(L); for I := 1 to N do sResult := sResult + '|' + (lua_tostring(L, I)) + '|'; ShowMessage(sResult); Result := 0; end; procedure TfrmMain.FormCreate(Sender: TObject); begin L := lua_open; luaL_openlibs(L); lua_settop(L, 0); luaopen_vcl(L); // luaopen_vclByDelphi(Application, Screen, L); lua_settop(L, 0); Lua_Register(L, 'print', LuaPrint); end; procedure TfrmMain.btn1Click(Sender: TObject); begin LuaLoadBufferFromFile(l, 'luaapp.lua', 'code'); LuaPCall(L, 0, 0, 0); end;
zbluecn
27254
2006/11/21 19:00:12
对了2位, 给你们发mail怎么不回一下下阿
zbluecn
27253
2006/11/21 16:03:16
在LUA51 下 用require'vcl' t=VCL.XXXXX('Name')
zhude
27252
2006/11/21 14:36:55
unit Clmain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, lauxlib , lua,luaconf, lualib , LuaUtils ; function printf(L: Plua_State): Integer; cdecl; type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; Button1: TButton; Edit1: TEdit; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; MYL: Plua_State; function luaopen_vcl(L: Plua_State): Integer; cdecl; external 'vcl.dll'; implementation {$R *.dfm} procedure log(nr:string); begin Form1.Memo1.Lines.Add(nr); end; function printf(L: Plua_State): Integer; cdecl; var nr:pchar; begin nr:=lua_tostring(L, -1); //得到栈顶的值。 lua_pop(L,-1); //移除栈顶的值。 log(nr); result := 1; end; procedure TForm1.Button1Click(Sender: TObject); begin lua_close(MYL) ; MYL := lua_open(); luaopen_base(MYL); luaopen_table(MYL); luaopen_string(MYL); luaopen_math(MYL); luaopen_debug(MYL); luaopen_vcl(MYL); lua_register(MYL,'printf',printf) ; //注册函数 lua_register(MYL,'print',printf) ; //注册函数 lua_dofile(MYL,PChar(Edit1.Text)); end; procedure TForm1.FormCreate(Sender: TObject); begin MYL := lua_open(); luaopen_base(MYL); luaopen_table(MYL); luaopen_string(MYL); luaopen_math(MYL); luaopen_debug(MYL); luaopen_vcl(MYL); lua_register(MYL,'printf',printf) ; //注册函数 lua_register(MYL,'print',printf) ; //注册函数 end; end.
zhude
27251
2006/11/21 14:02:01
Lua 5.1.1 Copyright (C) 1994-2006 Lua.org, PUC-Rio > luaL_openlib "vcl.dll" stdin:1: attempt to call global 'luaL_openlib' (a nil value) stack traceback: stdin:1: in main chunk [C]: ? >
zhude
27250
2006/11/21 14:00:34
载入 VLC.DLL 的命令是什么????????? 我用 DOFILE 执行每一个DEMO 都会报错~~~
zbluecn
27237
2006/11/20 16:53:24
希望大家能够多多探讨
scottrayn
27235
2006/11/20 16:23:40
谢谢
第一页
上一页
下一页
最后页
有
13
条纪录 共1页
1
1
-
13