DA EventRespository的应用
关于DA的事件的应用于理解 例子 FIleextendedtransfer 客户端 向服务器端提交 服务端时候,服务端可以同时让事件进行触发的操作。 事件触发以后,会向自己或者其他的客户端执行特殊的 客户端的部分的指令,如 download.... 服务器端是被动触发,触发后执行客户端指令。 比较有意思。 我们还可以对照聊天的例子。 httpchat的例子 { 服务端的代码} procedure TChatServerService.Talk(const Message: String); var ev: IChatEvents_Writer; begin ev := (EventRepository as IChatEvents_Writer); ev.ExcludeSender := False; //不包含自己,也就是session执行的时候,让发送指令的该客户也执行 ev.Message(session.SessionID, Session['nick'], '', Message); //该部分的指令会在客户端执行相应的方法 end; { 客户端的代码} procedure TSuperTCPChannelChat_ClientMainForm.Message(const From, Target, Message: string); var Data: array of string; begin SetLength(Data, 3); Data[0] := From; Data[1] := Target; Data[2] := Message; SendMessage(Handle, WM_USER, Longint(stMessage), Longint(Data)); end;