摘要: 原文:http://www.spring4d.org/spring4d-in-action/nullable-types/08年,Allen Bauer 写了 “Nullable” . 这个有趣的东西没有被纳入 Delphi RTL,但它在Spring4D有一段时间了。那么,什么是nullable类型,它又应该在什么时候使用呢?让我们从下面的一个示例得到答案。// uses Spring;TPerson = classprivatefBirthDate: Nullable<TDateTime>;publicproperty BirthDate: Nullable<TDateT 阅读全文
posted @ 2012-03-21 23:44 zzzl 阅读(651) 评论(0) 推荐(0) 编辑
摘要: 不知从什么时候开始,如果在文章标题中只提及一个技术术语,一般就默认表示它是用在.net中的技术了。所以我不得不在标题上加一个 Delphi 字样。先为用 Delphi 的朋友简单介绍下 delegate,如果你用过 c# 什么的,就可以跳过这部分了。delegate 就象个封装了函数指针的对象,用 delegate 对象“指向”一个函数,或事件句柄,然后在程序的其它地方调用它。虽然这种用法不很直观,也一时难以想到什么情况下需要这样干,但这种方法看起来很灵活。更进一步,如果一个 delegate 对象能够“指向”多个函数,然后在调用时,可以一次性调用所有它所指向的函数,就可以更灵活了。这有点类似 阅读全文
posted @ 2011-10-06 23:39 zzzl 阅读(2116) 评论(4) 推荐(3) 编辑
摘要: 接口很简单,就一个 extract() ,用于提取指定区域的图片到 TMemoryStream, 同时生成相应的 bmp 头部。这个类使用 TFileStream 从原始文件加载位图,所以位图是没有加载到内存的,从而可以快速从大图中提取子图。unit modelUnit; interface uses Windows, SysUtils, Classes; type CBitmapExtract=class private fFS: TFileStream; fBFH: TBitmapFileHeader; fBIH: TBitma... 阅读全文
posted @ 2011-09-08 18:45 zzzl 阅读(750) 评论(0) 推荐(0) 编辑
摘要: XE2诚意十足,更新内容还是挺多的,随便挑几个讲讲。TOSVersion增加了一个记录类型:TOSVersion,看名字就知道它和版本功能有关,这比之前的函数好用多了,其实以前也没必要有它,这回是跨平台了才需要它。它可以获知当前运行环境是 x86,还是 x64,是 windows,还是 mac,并且还能得到操作系统的具体版本号,还可以方便的判断当前版本是否高于某个版本。它还有个叫 ToString() 的方法,它返回的结果符合直觉,就是一个格式化过的版本信息文本,而不是象以往 vcl 中的 ToString() 那样返回一个坑爹的类名称,比如在我的机子上是这样 Windows 7 (Versi 阅读全文
posted @ 2011-09-06 10:10 zzzl 阅读(4046) 评论(11) 推荐(4) 编辑
摘要: XE2 有了 FireMonkey 框架,它不同于 VCL ,以往的数据感知控件不能放在它上面,所以 XE2 提供了 LiveBindings 功能作为替代方案。另外它也是个通用的基础设施,同样可用于传统的VCL 这里用一个极简化的例子说明它的意图,在窗体上放一个 edit 和一个 label,找到 label 的 LiveBindings 属性,选 New LiveBinding... ,再选择 TBindExpression 然后设置属性如图所示 这样就把 edit 的 text 属性和 label 的 caption 属性绑定起来了,不用写任何代码。运行后,会看到 label 的内容.. 阅读全文
posted @ 2011-09-03 23:34 zzzl 阅读(5535) 评论(7) 推荐(3) 编辑