2008-10-05 20:45
大家都知道D2009提供的ObjAuto.pas是一个半成品,只能取方法,不能取参数。但是其实这些功能都是可以实现的
我在此做个补完,供 Delphi6~Delphi2009使用,同时添加了编译预处理,供各个不同版本的Delphi兼容编译
特地做了个D7下的Demo,老版本的Delphi一样可以使用。
有需要的请去我的论坛下载, 点击进入
|
2008-09-29 21:16
鉴于某人说Delphi的反射不能传入或传出类,我在此纠正一下这个说法,下面的代码可以证实,类可以传入传出。
由于我已经把D2009的反射单元移去D2007,因此就不用D2009了,所以代码中暂时不考虑Unicode的问题。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ObjAutoX, StdCtrls;
type
{$MethodInfo ON}
TTest=class(TPersistent)
public
procedure Call(s: string; |
2008-09-29 10:08
说这个问题前,请大家先参考李维先生的文章:《Tiburon遊記3 動手建立一個DataSnap JSON伺服器吧》
http://gordonliwei.spaces.live.com/blog/cns!CCE1F10BD8108687!2365.entry
文章中明确的说了,“對於需要輸出服務給用戶端的類別,資料模組或是遠端資料模組,必須使用新的編譯器指令{$MethodInfo ON}和{$MethodInfo OFF}包圍類別宣告。”
MethodInfo开关真的是新的编译器指令吗?前天我的论坛上出现一个关于D2009的元信息的讨论,也暴出了这个秘密,帖子见链接:http://mydelphi.5d6d |
2008-09-28 21:39
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ObjAuto, StdCtrls;
type
{$MethodInfo ON}
TTestCall = class(TPersistent)
public
function Add(X,Y: integer): integer;
procedure Msg(s: string);
end;
{$MethodInfo OFF}
TForm1 = class(TForm)
Button1: TButton;
Button |
2008-09-25 17:17
这是受某官方人员之命研究的,恩。。很好很强大。。
首先从System32下找到DBXClientDriver120.bpl
然后从CodeGear Shared\RAD Studio\Shared Assemblies\6.0目录下找到Borland.Data.DBXClientDriver.dll和Borland.Data.DbxCommonDriver.dll
最后再从Shared Document内找到dbxdrivers.ini和dbxconnections.ini
把这五个文件复制出来。
然后在需要部 |
2008-09-25 16:07
自从Delphi2009添加了JSON这个特性之后,相信很多人都对它十分感兴趣吧,我抽了个空做一个小小的Demo,演示了JSON传递数据的情况。
首先建立一个Server,放入DSServer, DSServerClass, TCPServerTransport各一个,然后把DSServerClass和TCPServerTransport关联到DSServer。再放入ADOConnection, ADOQuery, DataSetProvider, ClientDataSet各一个,做好关联。这些组件将完成生成XML数据的作用。
做好后界面如图所示:
|
2008-09-17 12:34
public string GetCompactFrameworkVersion()
{
string ver = System.Environment.Version.ToString();
string verStr = "Unknown";
switch (ver)
|
2008-09-14 14:56
这篇文章是解答CnPack论坛上某位同志的问题,由于CnPack组件包未提供CB2007下的安装包,从CB6移植安装包也是直接报错,因此我稍作研究,并且试图把cnPack组件包安装到CB2007下。
下面是安装的过程:
一、配置环境
1) 在include path中,添加$(BDS)\include\vcl
2) 在Library path中,添加$(BDS)\include\vcl和$(BDS)\lib\release,另外,把CnPack组件包下Source目录也配进去,包括Source下的子目录,也一并配置。
3) |
2008-09-09 09:55
当Delphi支持了Unicode,它将会变成什么样子呢?
我的看法如下:
1. 开发变得复杂了,因为要更多的考虑编码问题
2. 绝大多数控件都需要修改,以使其能适应Delphi2009
3. 多国语言的软件得到了较好的支持
第一点和第二点,相信很多人都有体会了,原本在Delphi2007上通顺利编译通过的项目,放到Delphi2009上就要进行很大的改动。特别是API的调用,MessageBoxA改成MessageBoxW之类,会让原本简单的程序变得很复杂。
我在论坛上承接移植控件的项目时,已经有很深的体会。比如说 str: array[0..15] of Char,原 |
2008-09-03 18:25
这是一个功能类似于DelForEx的代码排列工具,能快速的将代码进行排列,基本功能已实现,正进一步开发中。
或许试图修改过DelForEx的人都知道,其实它的开源是假的,那个最关键的DelForDll.dll没有源码。尝试将其移植到Delphi2009时,却发现有一个导出方法的参数是TStringList。当场吐血,Delphi2009中的TStringList是Unicode的,传入Ansi的TStringList就变成乱码,而且也未找到将TStringList转换回Ansi的方法。
其实在我写这篇文章时,已经找到了相关的方法了,把Delphi2007的RTL拿来用就行,但是我没有这么做。一方面是因 |
|
|
rarnu
男, 23岁
上海 杨浦区
上次登录: 11小时前
加为好友
|