
Borland(Delphi/BCB...)
文章平均质量分 80
猛禽
Python爱好者。这个人很菜,除了BUG,什么都没有留下。
展开
-
我观MIDAS
我观MIDAS 刚看到DFW的达人王兄的《对Borland 和 N-TIER的牢骚》,发现今天的BLOG有内容可写了:P 非常同意现在的系分、高手都很热衷于赶时髦,或曰“浮躁”。我也见过非常非常之多人是在为了三层而三层,把简单的问题复杂化,把没必要做成三层的应用特地改成三层,结果得不偿失,事倍功半。 但对王兄后面的一些技术性分析,我觉得还是有值得商榷之处。 首先,李维所说的:DCOM 的连接速度较原创 2004-06-23 16:14:00 · 4507 阅读 · 2 评论 -
用Delphi实现动态代理(1):概述
用Delphi实现动态代理(1):概述 [Mental Studio]猛禽[Blog]一、问题所谓动态代理(Dynamic Proxy),要先从GoF的Proxy模式说起。假设有一个IFoo接口:{$M+} IFoo = Interface( IInterface ) [{3A85E46D-F3D4-4D9C-A06C-4E7C1BAC9361}]原创 2005-02-28 11:36:00 · 5356 阅读 · 1 评论 -
用Delphi实现动态代理(2):设计说明
用Delphi实现动态代理(2):设计说明 [Mental Studio]猛禽[Blog]在上篇《用Delphi实现动态代理(1):概述》中,对动态代理作了一个概要的说明,比如为什么需要这样的动态代理,它有什么用等。本篇将对我实现的这个动态代理的设计思路作一下介绍。 一、设计目标如上篇中这幅动态代理结构图所示:大致的设计目标有以下几项: TMDynam原创 2005-03-05 10:19:00 · 6225 阅读 · 11 评论 -
DLL、BPL与字符串传递
在我开发基于动态代理的轻量容器过程中,动态装入外部的客户自定义接口/类/组件功能是一个必要的组成部分。对于应该选择用DLL还是BPL来作为自定义组件的实现方式一直不能确定。在反复的试验过程中,发现了一些其中的技术细节,特别是在用字符串类型作为参数或返回值的情况下。凡是用DELPHI开发过DLL的,都知道DELPHI的DLL向导生成的代码中,在DLL Project Source一开头就有一原创 2005-04-25 13:33:00 · 5881 阅读 · 3 评论 -
在BCB中使用DUnit
因为最近在用BCB写一个程序,而C++的测试框架没有什么好用的:CppUnit(GUI)只支持VC(现在好像也支持XWIN,不过没试过),boost的测试框架只有命令行。而我在DELPHI下用DUnit习惯了,所以就想到在BCB里使用DUnit,经过一番尝试,终于取得了成功。虽然说BCB和DELPHI都是基于VCL,但C++毕竟还是与DELPHI不同的,本文将按DUnit文档中所说的那个最简单的例原创 2005-11-04 10:18:00 · 5495 阅读 · 3 评论 -
Ubuntu 5.1下安装Kylix3
首先要安装好Ubuntu——废话。然后,就是装Kylix3。为了保险起见,我是在root用户下安装的,可能用sudo方式也可以。另,据说需要在英文方式下安装,所以我切换到英文状态下装的——即使是装成中文的Ubuntu也可以在登录前选择语言——没试过在中文方式下安装行不行。 据我的经验是,在ubuntu 5.1下直接安装Kylix3会报错:libgtk版本不对。解决办法当然就是装一个对的版本原创 2006-03-20 17:18:00 · 8005 阅读 · 2 评论 -
Turbo还是那个Turbo吗?
美国当地时间9月5日(北京时间9月6日),从Borland分拆出来的开发工具部分DevCo历时近半年,终于推出了一系列以Turbo命名的产品。这个系列被称为:Turbo Explorer包括四个产品:Turbo Delphi, Turbo C++, Turbo Delphi.net, Turbo C#。每个产品包括两个版本:Professional版和Explorer版,其中Explore原创 2006-09-07 10:37:00 · 10005 阅读 · 35 评论 -
[小工具](10+2)*5
原创 2007-07-18 20:35:00 · 5025 阅读 · 2 评论 -
在TCX中使用SQLite3
我早就鼓吹过:SQLite是最好的本地文件型数据库。在Windows下,它只要一个几百K的DLL就可以驱动,管理工具也只是一 个几百K的EXE程序就行了。相比之下,ACCESS庞大得令人生厌,即使是一个OLE-DB驱动也有至少10M以上的size,更不用说Foxpro, Paradox……那一大堆的表文件了。当然,SQLite的性能还不能跟那个BT的BerkeleyDB相比——BDB根本不能算原创 2007-05-15 10:06:00 · 13918 阅读 · 6 评论 -
在VCL应用中运用MVC模式
[Mental Studio]猛禽[Blog](这篇文章始作于两年前,当时本来是想以我为备份自己的BLOG而写的一个小程序为例来说明我的这一想法。不过因为那个程序缺乏通用性,后来没有再去完善它,结果 这篇文章也就被放下了。然后又有很长一段时间忙于别的事情,没有接触原生应用开发。直到最近才因为在研究SQLite时,写了个简单的程序,并且在其中运用了两 年前的这一思路,故决定以新程序为例把这篇原创 2007-08-17 11:26:00 · 8346 阅读 · 11 评论 -
创建一个MDB文件
昨天令狐说需要用到Access数据库,又不想装Office,在群里征求办法。我建议的办法是用DELPHI/BCB自带的SQL Explorer通过BDE over ODBC连接Access数据库,这样就可以修改库结构,及使用SQL语句进行大部分数据库操作。但是有一个问题就是不能创建一个空的数据库文件,只能连接已有的MDB文件。不过这个问题好解决,用ADOX不过是几行代码的问题,如果会V原创 2007-06-14 10:55:00 · 8714 阅读 · 3 评论 -
用RTTI处理程序配置信息
一般来说,程序多少都会有一些自己的配置信息要保存,不论是通常用的保存到INI还是注册表,或者是XML甚至YAML,总归是要写不少代码处理的。问题的麻烦在于,程序中实现操作配置信息通常并不需要关注它是保存在什么地方,以什么格式保存,但是传统的方法不论是调用TIniFile还是TRegistry或者是DOM,都是需要开发者花一些时间精力浪费在这上面。我前一阵写个小程序,不高兴弄配置这些麻烦事,原创 2009-04-27 16:15:00 · 3392 阅读 · 5 评论 -
试了一把PCRE
虽然我在C++里用正则表达式已经有一些年头了,不过一直都是用的boost里那个库。坦白说,不是很好用。虽然我很早就知道PCRE,但一直都以为这是一个为PHP开发的库。实在是火星人啊。囧前两天在推土上提起这事时,火炬向我推荐说PCRE比boost里那个正则库好用,于是试了一下,结果可耻滴发现BCB自带了PCRE,只不过没有在文档里提到罢了。不过PCRE是一个C语言的库,用起来不够方便。虽原创 2009-07-13 09:54:00 · 4554 阅读 · 2 评论 -
关于用Delphi实现动态代理
本来想上周末没能用DELPHI实现动态代理就算了,可是这几天却始终放不下这个想法,这实在是一个太美妙的想法了。而且在认真看了VCL对SOAP的实现后,现在至少有九成的把握可以实现这样一个动态代理。那么动态代理有什么用?这要先从GoF的Proxy模式说起。假设有下面这样一个接口及其实现: 现在,如果你是这个接口的用户,而这个接口及其实现者提供了一个: Foo : IFoo;原创 2005-02-03 14:42:00 · 5430 阅读 · 0 评论 -
用DELPHI的RTTI实现数据集的简单对象化
用DELPHI的RTTI实现数据集的简单对象化 [Mental Studio]猛禽[Blog]在《强大的DELPHI RTTI--兼谈需要了解多种开发语言》一文中,我说了一下我用DELPHI的RTTI实现了数据集的简单对象化。本文将详细介绍一下我的实现方法。 首先从一个简单的例子说起:假设有一个ADODataSet控件,连接罗斯文数据库,SQL为: select * from原创 2005-01-31 11:22:00 · 9192 阅读 · 14 评论 -
用DELPHI的RTTI实现对象的XML持久化
用DELPHI的RTTI实现对象的XML持久化 [Mental Studio]猛禽[Blog]去年我花了很多时间尝试用DELPHI进行基于XML的WEB应用开发。起初的设想是很美好的,但结果做出来的东西很简陋。一部分原因就在于XML到Object之间的数据绑定实现太麻烦(另一部分是因为对XSLT不熟,学习它花了很多时间)。 之前我一直是用DELPHI提供的XML Data bind原创 2005-01-31 11:24:00 · 5284 阅读 · 5 评论 -
Web 应用的执行过程 -- 谈谈 WAD/CGI/ISAPI 的区别
Web 应用的执行过程 -- 谈谈 WAD/CGI/ISAPI 的区别 Borland 在 Delphi/C++ Builder 中提供了多种类型的 Web 应用开发,其中最常用的应该是用于调试的 Web App Debugger 应用(WAD应用)和在 Windows/IIS 平台下运行的 CGI/ISAPI 。虽然从理论上说,这几种类型的 Web 应用程序原创 2002-08-19 16:50:00 · 3840 阅读 · 0 评论 -
Delphi中的线程类--之(3)
Delphi中的线程类 猛禽[Mental Studio]http://mental.mentsu.com 之三说完构造函数,再来看析构函数:destructor TThread.Destroy;begin if (FThreadID begin Terminate; if FCreateSuspended then原创 2003-12-02 22:00:00 · 4961 阅读 · 0 评论 -
Delphi中的线程类--之(4)
Delphi中的线程类 猛禽[Mental Studio]http://mental.mentsu.com 之四临界区(CriticalSection)则是一项共享数据访问保护的技术。它其实也是相当于一个全局的布尔变量。但对它的操作有所不同,它只有两个操作:Enter和Leave,同样可以把它的两个状态当作True和False,分别表示现在是否处于临界区中。这两个操作也原创 2003-12-02 22:00:00 · 4282 阅读 · 1 评论 -
关于用 C++Builder 进行 MIDAS 应用开发的讨论
914事件发生的那天,Ben_Ladan(兰企鹅)兄在 优快云 的 BCB 版发了一个贴,问起一个关于用 BCB 进行 MIDAS 开发的问题。刚好这个问题是我会的,因为一年多前(准确的说是2001年9月4日) luhongjun(过江项羽)兄曾在 BCB 版发过一个关于 MIDAS 开发的贴子,其中就有类似的问题,当年解决项羽兄的两个问题也是 BCB 版的高人:holyfire(^@L原创 2002-09-25 09:55:00 · 4944 阅读 · 3 评论 -
Delphi 6 Update 2 的意义
DELPHI 6.02 抢先研究 -- BizSnap/SOAP/WebService 之四 -- 补丁2#的意义 Borland发布了C++ Builder 6以及Delphi 6的第二个补丁。这是一个对Delphi 6来说,非常重要的一个补丁,不但修正了Delphi 6中一些问题,还在很大程度上增强了Delphi 6的功能,特别是在SOAP/Web Se原创 2002-04-15 09:41:00 · 4051 阅读 · 0 评论 -
Delphi中的线程类--之(5,大结局)
Delphi中的线程类 猛禽[Mental Studio]http://mental.mentsu.com 之五(大结局)回到前面CheckSynchronize,见下面的代码:function CheckSynchronize(Timeout: Integer = 0): Boolean;var SyncProc: PSyncProc; LocalSy原创 2003-12-02 22:00:00 · 4262 阅读 · 0 评论 -
Delphi中的线程类--之(1)
Delphi中的线程类 猛禽[Mental Studio]http://mental.mentsu.com( 之一)Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的原创 2003-12-02 10:02:00 · 5163 阅读 · 0 评论 -
Delphi中的线程类--之(2)
Delphi中的线程类 猛禽[Mental Studio]http://mental.mentsu.com 之二首先就是构造函数:constructor TThread.Create(CreateSuspended: Boolean);begin inherited Create; AddThread; FSuspended := Create原创 2003-12-02 22:00:00 · 5754 阅读 · 0 评论 -
传说中的DELPHI9--DiamondBack
昨天在MSN上碰到现在深圳的老朋友“太可怕”,他告诉我今年的BorCon上将会有DELPHI 9的正式消息,并发给了我这个:《Come to BorCon 2004 (US) to see the next Delphi release! - by John Kaster》。但是很遗憾,距离BorCon 2004还有23天,我用GOOGLE搜了一下,没有找到比BDN上这篇东东更多的内容,看来一原创 2004-08-19 13:01:00 · 13842 阅读 · 34 评论 -
软件的版本更新检查实现
软件的自动更新检查 [Mental Studio]猛禽[Blog]还是在“PIA-MyPhotoGallery”中,为了能让使用者及时知道软件的更新版本发布,我增加了自动更新检查功能。鉴于这种功能具有很好的实用价值,所以写本文说明此功能的实现。要实现更新检查,需要解决两个方面的问题:1、通过Internet获取最新发布的版本号;2、取得当前程序的版本,并与取得的最新版本相比原创 2004-10-31 20:18:00 · 6110 阅读 · 0 评论 -
Delphi线程类的使用(1)
Delphi线程类的使用 猛禽[Mental Studio](个人专栏)(BLOG)http://mental.mentsu.com 去年底我写过一篇文章《Delphi中的线程类、2、3、4、5》(在本文中称之为“前文”),剖析了TThread类的实现细节,分析了使用TThread类时需要注意的一些问题。估计那篇文章还是太过于理论化,没有结合实际应用,所以再写了这篇文章来做一个原创 2004-11-29 19:29:00 · 10477 阅读 · 5 评论 -
强大的DELPHI RTTI--兼谈需要了解多种开发语言
风焱在《“18般武艺”?》中说到他碰上的被多种语言纠缠的问题。我在回复里说: 很多语言只要能看懂几分就行了,没必要每一种都精通 但是如果只会很少的一两种语言也是不行的。因为看了一些关于JAVA的反射技术的应用,忽然想到DELPHI的RTTI也很强,于是试着拿数据集下手,用RTTI来实现它的对象化。用了两个晚上时间就搞定了(要不是因为开始时搞错对象--基类用了TObject,其实应该是用TPer原创 2005-01-27 11:27:00 · 14021 阅读 · 19 评论 -
简单的Delphi对象管理器
原理很简单,就是创建的对象放到一个池里,暂时不释放,再分配的时候可以重用。对于需要反复大量创建删除同一个类的对象时,或是创建对象成本很高的情况下,这个东东有一定的作用。原创 2010-08-17 15:58:00 · 3153 阅读 · 0 评论