我的一片天

我的一片天
posts - 27, comments - 12, trackbacks - 0, articles - 16
   :: 首页 :: 新随笔 :: 联系 ::  :: 管理

2011年6月28日

     摘要: 建立带返回值的Server端的ActiveX  阅读全文

posted @ 2011-06-28 22:24 xyz 阅读(310) | 评论 (0)编辑 收藏

2011年6月2日

posted @ 2011-06-02 11:52 xyz 阅读(518) | 评论 (0)编辑 收藏

2011年5月26日

     摘要: 直接生成HTML文件,用TABLE,TR,TD标签作为列,最后把文件扩展名存成XLS,直接点击就可以在装了EXCEL的系统下打开。
这种方式生成的文件也支持公式的使用。跟在EXCEL的用法一样。
  阅读全文

posted @ 2011-05-26 09:44 xyz 阅读(546) | 评论 (0)编辑 收藏

2010年5月16日

     摘要: 我们之前学习的内容都是调用lua脚本中的函数,那怎么调用主程序中的函数啊。好,我们就来谈谈。
根据教材,lua是能跟主程序进行双向的调用的,但是主程序提供给lua调用的接口函数必须按照lua的标准来定义。
这个定义格式就是
function AppFunctionApi(LL: Plua_State): Integer; cdecl;
并且要用lua的函数注册这个API,那在lua的脚本中就可以调用它了。

我们继续修改我们的test.lua脚本,如下
--test.lua
y=0
function add(x)
z=testAppApi("a1","a2","a3") --增加了主程序的Api函数,我们传入3个字符串的参数
y=y+x+z
return y
end

下面我们在主程序中准备迎接lua调用的到来。注意,lua是大小写敏感的,因此要注意大小写哦
function AppApi(vL: Plua_State): Integer; cdecl;  阅读全文

posted @ 2010-05-16 01:59 xyz 阅读(1234) | 评论 (0)编辑 收藏

2010年5月15日

     摘要: 对lua的使用有初步的了解后,我们稍微增加脚本里函数的复杂元素。
根据lua的教材,lua脚本中的变量除了用local定义外,全部变量都具有全局性,我们来尝试使用全局的特性。
照旧,先修改我们的lua脚本test.lua。
-- test.lua
y=0 --初始化y,不然会提示错误的,因为y的类型未决定
function add(x)
y=y+x
return y
end


上面的脚本很简单,就是对传入的x值进行累加并返回累加后的值

好了~~,上一篇千里之始足中代码可以完全不用修改哦,运行看看。是不是发现总是返回100啊!原因是我们是在button的事件里启用lua后执行完脚本的函数就关闭了,因此我们需要把lua的指针(代码中的L)放到Private中。
private
{ Private declarations }
L: Plua_State;

为了方面我们后续的不断扩展功能,我们把初始化放到一个butto  阅读全文

posted @ 2010-05-15 23:23 xyz 阅读(2052) | 评论 (0)编辑 收藏

     摘要: 经过瞎子摸象篇,我们已经对lua有了初步感受。下面就开始我们的千里之行了。
下面我们尝试调用带参数的lua脚本函数。把之前的test.lua的内容做一下变动。
--test.lua
function add(x)
x=x+100
return x
end

把传入的数加100后返回。
把button事件里的代码修改成以下的内容
var

L: Plua_State; //lua的引用类型,所有的lua方法都要用到这个

begin

L := lua_open; //建立一个lua的引用
lua_baselibopen(L); //引入lua的基础库函数
luaL_loadfile(L, 'test.lua'); //载入我们的lua脚本
lua_resume(L,0); //解析脚本到lua

lua_getglobal(L, 'add');   阅读全文

posted @ 2010-05-15 22:56 xyz 阅读(999) | 评论 (3)编辑 收藏

     摘要: 以前早就听说过lua,只是因为用不上就一直没涉及。最近考虑到可能用到,就学一学啦~
新手上路,自然是先看教材,吸取高人的经验。本人的原则是,首先要能让最简单的例程运行起来。


此教材是我学习lua的过程,希望对同样初次接触lua的人有所帮助,对于高手就一笑而过吧。

DELPHI要支持lua,先要下载lua的支持库,我是下载lua4delphi.zip来用的
把文件解压到一个目录,新建立的项目也存入这个目录.。当然你把它们放在另外的目录也可以,但是要把这个目录加到DELPHI的搜素目录里,还有把lua.dll复制到项目的目录里(必须依靠这个dll文件).

先看一个超简单lua的脚本test.lua

--注释是用双减号开始的,www.cnitblog.com/xkz
function add()
m="Yeah~~"
return m
end

上面是定义了一个lua的函数,返回m的串.我们就是要在delphi中调用这个函数来显示这个串. 阅读全文

posted @ 2010-05-15 18:57 xyz 阅读(2767) | 评论 (2)编辑 收藏

2009年11月29日

     摘要: TRect(x1,y1,x2,y2)所框选的范围

宽度w=x2-x1

高度h=y2-y1



在范围内最右的X坐标值=x1+宽度w-1=x2-1

在范围内做下的Y坐标值=y1+宽度w-1=y2-1



因此范围值中的x2和y2所在的区域是不属于框选的范围内的。



比如 (1,1) ~ (100,80) 的Rect范围,框选的范围为 x=1~99,y=1~79
  阅读全文

posted @ 2009-11-29 20:16 xyz 阅读(274) | 评论 (0)编辑 收藏

2009年10月26日

posted @ 2009-10-26 01:58 xyz 阅读(1415) | 评论 (0)编辑 收藏

2009年10月16日

posted @ 2009-10-16 16:31 xyz 阅读(279) | 评论 (0)编辑 收藏