主要用于没有使用clxbase7集成开发环境的cbx应用开发者。
1、 在普通的delphi7中建立xo首先是打开file ->new ,选择dll wizard,新建一个dll,修改,dpr的内容如下
library adosvr; //这个名称就是xo的名称
uses
SysUtils,
Classes;
begin
end.
2、然后加入xo的祖先单元uEntityRoot in '../../../CBX/Apps/Units/uEntityRoot.pas' {EntityRoot: TDataModule},代码就成了
library xodemo;
uses
SysUtils,
Classes,
uEntityRoot in '../../CBX/Apps/Units/uEntityRoot.pas' {EntityRoot: TDataModule};
{$E xo}
begin
end.
3、创建xo的核心模块demoxo,file->new ->other ,选xodemo页,选EntityRoot,继承这个单元,并命名为xoado,因为我要使用ado的数据连接组件,故这样命名。同时修改窗口名为demoxo ,这个名称是在ao中调用时ro组件中要设置的服务名。注意这个名称一定要记住。修改project options ,runtime packages 选择 build with runtime packages,add d:/cbx/sdk/lib/AppSvrRT.dcp ,设置search path D:/CBX/SDK/Lib ,设置 output direxctory D:/CBX/SDK/__Deploy 到这里xo的设置工作就完成了。
4、修改 xoado单元的代码
unit xoado;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEntityRoot, HTTPApp;
type
Tdemoxo = class(TEntityRoot)
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
demoxo: Tdemoxo;
implementation
{$R *.dfm}
procedure Tdemoxo.DataModuleCreate(Sender: TObject);
begin
inherited;
end;
end.
以上是生成的代码,在xo中需要进行改造,修改后的代码如下
unit xoado;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uEntityRoot, HTTPApp;
type
Tdemoxo = class(TEntityRoot)
procedure DataModuleCreate(Sender: TObject);
private
protected
class function GetLocalData: TEntityLocalData; override;
public
procedure InitEntity(SubKey: integer; Data: string); override;
end;
function GetModClass: TEntityClass;
implementation
exports
GetModClass;
var
LocalData: TEntityLocalData;
function GetModClass: TEntityClass;
begin
Result := Tdemoxo;
end;
{$R *.dfm}
class function Tdemoxo.GetLocalData: TEntityLocalData;
begin
Result := LocalData;
end;
procedure Tdemoxo.InitEntity(SubKey: integer; Data: string);
begin
inherited;
end;
initialization
Tdemoxo.CreateLocalData(LocalData);
finalization
FreeAndNil(LocalData);
end.
5、在xodemo的窗口增加数据库连接组件和 datasetprovider ,增加完后一个最简单的xo就算完成了。
编译后使用console发布到cbx应用服务器。