关于 Remobjecs在DLL接收消息异常的问题?
时间:2011-12-04
来源:互联网
type
TSuperClientForm = class(TForm, IChatEvents)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label3: TLabel;
LabelState: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
Label4: TLabel;
Label9: TLabel;
Label11: TLabel;
Label12: TLabel;
edUsers: TListBox;
SendButton: TButton;
LogonButton: TButton;
LogoffButton: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
EditServerIP: TEdit;
EditServerPort: TEdit;
EditAgentCode: TEdit;
EditQueueList: TEdit;
EditLoginTime: TEdit;
EditRestTypeCode: TEdit;
EditUserCode: TEdit;
RadioButton1: TRadioButton;
RadioButtonAuto: TRadioButton;
ListView1: TListView;
edText: TMemo;
EditReqReason: TEdit;
Memo1: TMemo;
Memo2: TMemo;
ROMessage: TROBinMessage;
ROChannel: TROSuperTCPChannel;
RORemoteService: TRORemoteService;
ROEventReceiver: TROEventReceiver;
cdsCustomers: TClientDataSet;
dsCustomers: TDataSource;
RODataSnapConnection1: TRODataSnapConnection;
HTTPChannel: TROWinInetHTTPChannel;
ConnectButton: TBitBtn;
DisconnectButton: TBitBtn;
ROBinMessage: TROBinMessage;
gProducts: TDBGrid;
Panel1: TPanel;
ButtonOK: TButton;
Button1: TButton;
Label13: TLabel;
Edit1: TEdit;
procedure FormDestroy(Sender: TObject);
procedure SendButtonClick(Sender: TObject);
procedure LogonButtonClick(Sender: TObject);
procedure LogoffButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure EditQueueListChange(Sender: TObject);
procedure EditLoginTimeChange(Sender: TObject);
procedure EditRestTypeCodeChange(Sender: TObject);
procedure EditUserCodeChange(Sender: TObject);
procedure RadioButtonAutoClick(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure EditReqReasonChange(Sender: TObject);
procedure EditServerIPChange(Sender: TObject);
procedure ButtonOKClick(Sender: TObject);
procedure DisconnectButtonClick(Sender: TObject);
procedure ConnectButtonClick(Sender: TObject);
procedure ApplyUpdatesButtonClick(Sender: TObject);
procedure OnEnableApplyUpdates(DataSet: TDataSet);
procedure cdsCustomersAfterEdit(DataSet: TDataSet);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
FSendMsg,aUserName: string;
FMessageServer: TMessageServer;
FConnected: Boolean;
lLogin: ILoginService;
lChat: IChatServerService;
{ Private declarations }
procedure MakeReqMessage;
public
//注册EVENT,在单独的程序中正常,但在DLL中不能正常返回
procedure Message(const From: Widestring; const Target: Widestring;
const Message: Widestring);
procedure UserLogin(const Nickname: Widestring);
procedure UserLogout(const Nickname: Widestring);
procedure ShutdownServer;
procedure DecodeMsg(aMsg: string);
//收到消息
procedure SyncCall(var Msg: TMessage); message WM_USER;
property MessageServer: TMessageServer write FMessageServer;
end;
TSyncType = (stMessage, stUserLogin, stUserLogout);
TStringArray = array of Widestring;
实现部分
lLogin := CoLoginService.Create(ROMessage, ROChannel);
lChat := CoChatServerService.Create(ROMessage, ROChannel);
ROEventReceiver.RegisterEventHandlers([EID_ChatEvents], [Self]);
ROEventReceiver.Activate;
在单独的程序每次调用LLogin和LChat,procedure Message 都能被解发并返回值。但被这些同样的代码和窗体弄到一个DLL中,一点变化都没有,就会出现procedure Message 无法被触发的情况! 搞了两天了没解决,谢谢大家了!
作者: liuhengwinner 发布时间: 2011-12-04
这个程序就是RemObjects的 Super Tcp Chat 改的,结构没什么变化!
作者: liuhengwinner 发布时间: 2011-12-04
你想实现什么功能来着

作者: sgzhou12345 发布时间: 2011-12-04
我只是搞不懂为什么单独的程序接收事件正常,封装进DLL就不行啦! ROEventReceiver.RegisterEventHandlers([EID_ChatEvents], [Self]); 这句就把接收事件的对象赋给RoEventReceiver, 接收事件的窗体实现了IChatEvents这个接口,然后收到事件后会解发 procedure Message(const From: Widestring; const Target: Widestring;
const Message: Widestring);
const Message: Widestring);
作者: liuhengwinner 发布时间: 2011-12-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28