私は再び、datasnapコールバックサンプルを自分のニーズに合わせてカスタマイズしようと猥褻な時間を費やしている状況にあります。私は古い学校のOOPプログラマーであり、「ツールボックス」PODOスタイルにいくつかの非常に大きなオブジェクト階層があります:-) ..そしてこの素晴らしいデータスナップ機能を持っているので、コールバックの力を利用したいと思います。
しかし-私がそれを実装するとき...それは単に失敗します...(FASTMM4はmemリークを報告します)。
単純なVCLデータスナップサーバー(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