我又一次陷入了这样一种情况,我已经花费了大量的时间来尝试根据我的需求自定义datasnap回调示例。
我是一名老派的面向对象编程员,我的“工具箱”中有几个非常庞大的对象层次结构,采用PODO风格:-),由于拥有这个伟大的datasnap特性,我想利用回调功能的力量。
但是-当我实现它时……它就会失败…(FASTMM4报告内存泄漏)。
请尝试创建一个简单的VCL datasnap服务器-TCP。 然后添加一个按钮和这个源代码...
只要您继续使用TJSONValue,它就可以正常工作...但是尝试切换注释的代码-您就会明白我的意思。
我当然可以将所有现有代码更改为JSON...但这显然是不可接受的。
是否有人知道如何使用BroadcastOBJECT或NotifyOBJECT?
问候 Bjarne
但是-当我实现它时……它就会失败…(FASTMM4报告内存泄漏)。
请尝试创建一个简单的VCL datasnap服务器-TCP。 然后添加一个按钮和这个源代码...
procedure TForm1.Button1Click(Sender: TObject);
var
// AObject : TObject;
aJSONVal : TJSONValue;
begin
// AObject := TObject.Create;
// ServerContainer1.DSServer1.BroadcastObject('SomeChannel','SomeCallbackID', AObject);
// AObject.Free;
aJSONVal := TJSONObject.Create;
ServerContainer1.DSServer1.BroadcastMessage('SomeChannel','SomeCallbackID',aJSONVal);
// aJSONVal.Free; // Mat pointed out that this is done by the broadcast.
end;
只要您继续使用TJSONValue,它就可以正常工作...但是尝试切换注释的代码-您就会明白我的意思。
我当然可以将所有现有代码更改为JSON...但这显然是不可接受的。
是否有人知道如何使用BroadcastOBJECT或NotifyOBJECT?
问候 Bjarne