用Remote Data Module做数据模块时怎么捕捉连接到服务器的客户端数量?我在窗体里定义了一个函数和一个全局变量
iClient:Integer;procedure TForm1.UpdateClient(Inc:Integer);
begin
iClient:=iClient+Inc
Label2.Caption:=IntToStr(Inc);
end;Data Module的Create事件里调用了这个函数
...
implementation
uses Unit1;
...
procedure TSERVER.RemoteDataModuleCreate(Sender: TObject);
begin
Form1.UpdateClient(1);
end;服务器会死掉,这是怎么回事。
而且把这两段代码去掉就能正常运行。
请高手指教
iClient:Integer;procedure TForm1.UpdateClient(Inc:Integer);
begin
iClient:=iClient+Inc
Label2.Caption:=IntToStr(Inc);
end;Data Module的Create事件里调用了这个函数
...
implementation
uses Unit1;
...
procedure TSERVER.RemoteDataModuleCreate(Sender: TObject);
begin
Form1.UpdateClient(1);
end;服务器会死掉,这是怎么回事。
而且把这两段代码去掉就能正常运行。
请高手指教
应该使用一个全局变量g_count来记录,
在OnCreate事件里,InterlockedIncrement(g_count)
在OnDestroy事件里, InterlockedDecrement(g_count)
然后可以在application的idle事件里处理g_count
'然后可以在application的idle事件里处理g_count'
application的idle事件在哪里找
在OnCreate事件里,g_count+1
在OnDestroy事件里,g_count-1
建议楼主看一个delphi5/6的开发指南!
那我用Timer控件来不停的检测这个全局变量么,
还是有别的方法来动态实时刷新这个记数变量。
uses Unit1;
var
LockCount:TMultiReadExclusiveWriteSynchronizer;
...
procedure TSERVER.RemoteDataModuleCreate(Sender: TObject);
begin
LockCount.BeginWrite;
Form1.UpdateClient(1);
LockCount.EndWrite;
end;
initialization
LockCount:=TMultiReadExclusiveWriteSynchronizer.Create;
finalization
LockCount.Free;
再请教,如何得到连接的客户端名称呢?
还有一个问题,如果我想知道连接到每个 RemoteDataModule 的连接数,有办法吗?