2

我可以得到一个小代码示例来使用 DDE 作为服务器吗?我知道如何使用客户端部分,但无法将我的应用程序设置为充当服务器并接收数据。

4

2 回答 2

2

在您的 Delphi 安装中查看名为 DDEDemo 的文件夹。这是 Delphi 用来附带的一个 DDE 项目(我不是 100% 确定它仍然包含在内,但请看一看)。该演示包括一个 DDE 客户端和服务器。

编辑 - 试试这个链接以获得一些示例代码。

于 2011-02-26T07:55:11.727 回答
2

使用 DDE 服务器非常简单,您甚至不需要示例代码。您可以在 Delphi 表单设计器中的设计时执行此操作:

创建一个发送数据的服务器:

  1. 将 TDDEServerConv 和 TDDEServerItem 拖放到表单或数据模块上。
  2. 将服务器项连接到服务器会话(使用对象检查器设置 DDEServerItem1.ServerConv=DdeServerConv1,有一个下拉列表,但双击它就足够了)。
  3. 将 DDEServerItem.Text 值设置为某个有效的文本值(即“A”)

要接收数据,您可能需要由 DDE 客户端执行的宏,这些宏将数据传递到服务器。为此,您使用 DdeServerConv.OnExecuteMacro 事件。尝试将参数 Msg:TStrings 转储到这样的备忘录中:

  Memo1.Lines.Assign(Msg); 

现在保存并运行您的项目。

要在 excel 中测试它,请输入:

=Project1|DdeServerConv1!DdeServerItem1

excel dde ​​客户端语法部分是应用程序名称后跟竖线、对话名称、后跟感叹号、然后是项目名称。

您将在 Excel 中看到值(A,或您放入项目的 Text 属性中的任何内容)。

这是一个工作的单项 DDE 服务器,无需您编写任何代码。

我通常发现我在运行时创建对话和项目,而不是在设计时,在对我更有用的真实场景中。

对于较旧的(非 unicode)Delphi 版本,还有一个名为 Django 的全功能商业产品,它对 DDE 工作有很大帮助。

我想您也可能正在寻找有关如何在 delphi 端编写“DDE Poke”命令处理程序的信息。我没有演示。我试过了,很明显的事情对我来说不太合适(你服务器上的项目有一个 OnPoke 事件,我写了一个简单的客户端,称为 PokeData,但它不起作用)。

于 2011-02-27T00:54:31.190 回答