Delphi CreateOleObject 事件

2023-12-11

有一段代码:

var 
myobject: OleVariant;
begin
 myobject := CreateOleObject('SomeNamespace.SomeClass');
end;

该 COM 对象具有事件(例如 OnClick)。我应该如何在不导入 TLB 的情况下连接到这些事件?


您正在使用 COM 后期绑定,因此您需要编写大量代码来处理事件吗?如果你了解 COM,这个任务并不困难,基本上你需要遵循以下步骤。

  • 创建一个派生自的新对象(类)TInterfacedObject实现IDispatch
  • 实施Invoke()你的新类的功能
  • 查询连接点容器(IConnectionpointContainer)和所需的连接点。
  • 使用下沉连接点IConnectionPointContainer.FindConnectionPoint
  • 最后执行IConnectionPoint.Advise()使用你的实现 这IDispatch

您可以在这些链接上找到此实现的示例

  • 如何使用使用 createoleobject 创建的对象事件罢工>
  • Delphi 5 运行 powerpoint(使用带有事件的后期绑定对象的示例)罢工>
  • Delphi 5运行powerpoint(使用带有事件的后期绑定对象的示例)

尝试这些链接以获取有关 COM、后期绑定和事件的更多信息

  • Delphi COM 编程中的自动化
  • 支持 Delphi 中的自动化事件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi CreateOleObject 事件 的相关文章

  • Magento 从 Observer 重定向始终有效

    我无法从观察者在 Magento 中创建工作重定向 据我所知 有很多事件都获得了响应对象 在 observer目的 另一种方法是使用类似的东西 Mage app gt getResponse gt setRedirect Mage getU
  • 使用 Delphi 10.2.1 Tokyo 的模态 Android 对话框

    我有以下用于在 Android 上显示模式消息的 Delphi 代码 该代码在 10 1 Berlin 上运行良好 但在 Delphi 10 2 1 Tokyo 上停止运行 此过程现在会挂起 Android 应用程序 procedure c
  • 阻止 GWT 中的事件冒泡

    我有以下代码片段 changeTextArea 是一个 TextArea 对象 changeTextArea addKeyboardListener new KeyboardListenerAdapter public void onKey
  • Delphi + Synapse:如何检查我是否仍然连接

    我在用TTCPBlockSocket http synapse ararat cz doc help blcksock TTCPBlockSocket html对于 TCP IP 应用程序 问题是我无法确定连接何时丢失 GetLastErr
  • 是否可以获取绑定到 jQuery 元素的事件列表?

    正如问题所说 我需要绑定到特定元素的事件列表 我的意思是像单击 鼠标悬停等事件在 dom 加载时绑定到该元素 愚蠢 示例 element click function stuff element mouseover function stu
  • 使用 Javascript 跟踪 HTML 元素的显示变化

    假设我有一个给定的 HTML 元素 例如 div div 在该元素内部 可能会发生很多事情 这些事情会改变该元素的某些显示配置 例如其高度或固定位置 我是否可以跟踪与该元素的显示相关的任何更改 当元素更改任何显示变量时是否会触发一般事件 只
  • 使用远程数据编写 Android、iPad、iPhone 客户端的技术

    我需要探索世界 你写了一个杀手级应用程序 但你有 Android iPhone iPad 客户端吗 我的问题是 1 向这些设备发送数据的最佳方式是什么 按照建议进行肥皂和休息here https stackoverflow com ques
  • 跨浏览器相当于explicitOriginalTarget事件参数

    有谁知道跨浏览器等价于explicitOriginalTarget事件参数 该参数是 Mozilla 特定的 它为我提供了导致模糊的元素 假设我的页面上有一个文本输入和一个链接 文本输入具有焦点 如果我点击链接 文本输入的模糊事件会通过ex
  • Android中如何检测程序的终止?

    当 Windows 程序终止时 它会调用事件处理程序 例如 OnClose OnDestroy 和析构函数 Destroy 当我想保存一些 INI 设置时 这些地方就是我要保存的地方 我为所有这些事件编写了事件处理程序 但当我终止程序时它们
  • 通过“修改日期”确定文件夹中的哪个文件是最新的?

    我需要扫描特定文件夹中的最新文件 基本上检查修改日期以查看哪个是最新的 但请记住这些文件具有随机名称 这是我到目前为止得到的 procedure TForm1 Button1Click Sender TObject begin ftp Ho
  • COM+ 应用程序死锁故障排除

    我正在尝试对间歇性死锁的 COM 应用程序进行故障排除 上次锁定时 我能够获取 dllhost 进程的用户模式转储并使用 WinDbg 对其进行分析 检查完所有线程和锁后 一切都归结为该线程拥有的关键部分 ChildEBP RetAddr
  • 如何从窗体单元外部访问delphi控件?

    我试图从如下定义的过程中调用计时器的 Enabled 属性 procedure Slide Form TForm Show Boolean 并且没有固定的形式名称 例如 Form2 Timer 将表单的单位放入使用列表后 这可以工作 For
  • 在 C++ 中不使用 CLSID 和注册表即可获取 COM 对象的 DLL 文件

    是否可以在不使用 CLSID 和注册表查找的情况下获取已加载 COM 对象的 DLL 文件名 我有一个IUnknown或者就我而言IBaseFilter接口指针 现在我想获取创建此 COM 对象的 DLL 文件名 我可以使用对象点地址来反向
  • 从不同的形式调用过程

    我正在使用 Lazarus 我有一个名为TForm1单元名称为 Unit 1 在这里我有一个名为mergeDATfile a shortint 这会产生一些东西 顺便说一句 我必须创建另一个名为TForm2里面有按钮 Button1 当它被
  • Firebird 或 NexusDB

    我知道有很多与 Delphi 数据库相关的问题 但我只考虑这两个数据库 我需要查询大约 100 000 条记录 根据您的经验 哪个更快 作为嵌入式 as C S Thanks 我还没用过 Nexus tbh 但我经常使用 Firebird
  • 如何使用 IdTCPClient 等待来自服务器的字符串?

    我的 IdTelnet indy 10 1 有问题 我无法以 Unicode 模式从服务器读取数据 现在我想用 IdTCPClient 编写 telnet 终端 服务器有时发送一行 有时发送越来越多的行 但发送之间没有固定的时间 现在我的问
  • 在 XMLDocument 中使用 DocumentElement 时发生访问冲突

    当我尝试使用时 我总是遇到访问冲突DocumentElement of the XMLDocument 我创造XMLDocument基于某些文件的存在 错误信息 项目project1 exe引发异常类EAccessViolation 消息
  • 在该对象调用的事件期间销毁该对象

    我有一个按钮 它的 OnClick 事件调用一个销毁按钮的过程 但随后 线程 想要返回到 OnClick 事件 并且我遇到了访问冲突 我完全被难住了 您需要在按钮的所有代码执行完毕后销毁该按钮 执行此操作的标准方法是将用户定义的消息发布到表
  • 在 tlistbox 中绘制缩略图

    在 DelphiXE 中 我使用 tFileOpenDialog 选择一个文件夹 然后在 tListBox 中列出该文件夹中的所有 jpg 文件 我允许将列表项拖放到列表中进行自定义排序 以便稍后按顺序显示它们 我希望能够在文件名旁边绘制图
  • 如何知道 .keyup() 是否是字符键(jQuery)

    如何知道 keyup 是否是字符键 jQuery input keyup function if key is a character such as a b A b c 5 3 2 etc not enter key or shift o

随机推荐

  • 根据给定的顺序对数据框进行排序[重复]

    这个问题在这里已经有答案了 可能是一个简单的问题 我有一个data frame 样本名称 因子水平以及因子水平的重复 df lt data frame name c DP A DP B PA A PA B PA C level c DP D
  • 如何在核心数据中存储图像

    我是 iOS 新手 我一直在尝试制作一个应用程序 将从相机捕获的图像存储到CoreData 我现在知道如何存储数据NSStrings NSDate和其他类型但难以存储图像 我读过很多文章说必须将其写入磁盘并写入文件 但我似乎无法理解 以下代
  • codeigniter 设置会话变量,但变量不起作用

    使用在 WAMP 上本地运行的 codeigniter 并处理会话 我尝试了默认会话处理程序 数据库会话 本机会话和现在的数据库会话 它们都会导致同样的问题 而我一生都无法弄清楚 问题是我正在尝试使用变量设置会话变量 我已经确认了该变量并已
  • 从 sqlite3 检索图像并在 Kivy 图像小部件中显示 - ValueError

    要求 我正在尝试从数据库检索图像并将该图像设置为 kivy 图像小部件 此操作会引发 ValueError 不确定原因 欢迎任何意见 数据库 Sqlite3 表名称 用户 列 用户 ID 用户名 用户图像 def populate fiel
  • 如何禁用 DIV 元素及其内部的所有内容[重复]

    这个问题在这里已经有答案了 我需要使用 Javascript 禁用 DIV 及其所有内容 我可以发誓做一个简单的 div 以前为我工作过 但由于某种原因它不再工作了 我不明白为什么 在 IE10 中 文本 Click Me 不会变灰 并且单
  • C++11 可变参数模板和逗号分隔表达式的等效性

    在可变参数模板中 运算符将参数包扩展为一系列逗号分隔的参数 以最简单的形式 我的问题是 为什么为多个逗号分隔的参数调用 some function 有效 而使用 运算符调用它却不起作用 我正在谈论这段代码 template
  • 为什么 Google Play 商店请求的权限不在我的清单中?

    我认为这可能与 ManifestMerger 有关 My AndroidManifest xml权限
  • 如何在所有驱动器的所有目录中搜索 .txt 文件?

    我使用此代码搜索所有驱动器中的所有目录以搜索所有 txt 文件 public List
  • 防止使用浏览器url直接访问图像

    我有一个名为 的文件夹Images 该文件夹包含用户个人资料图片 现在 用户只需将图像 URL 复制到浏览器即可随时查看自己的图像 这样他还可以看到其他用户的个人资料照片 我想要实现的是 用户应该只能通过我网站上的 PHP 页面看到他的个人
  • 使用 git (dokku) 部署时出错 - 超时/管道损坏

    我在 digital ocean 上使用 dokku 一段时间了 没有任何问题 我现在在利用以下命令部署到 dokku 时遇到问题 git remote add dokku dokku some ip myapp git push dokk
  • 迭代构造函数链

    假设我有这样的事情 function A function B B prototype Object create A prototype function C C prototype Object create B prototype v
  • 如何在移动浏览器上使用 PHP 强制下载文件?

    我想编写一个 php 脚本来在移动浏览器上下载一些文件 扩展名 apk dcm pdf zip 等 我已经编写了一个 php 代码来下载这些文件 它在所有浏览器 不是移动浏览器 上运行良好 但我使用 HTC 手机尝试过 它试图打开文件而不是
  • TextView 动态填充并截断最后一行文本

    我不确定它只是 最后一行 但我们有一个应用程序 它有一个带有 fill parent 宽度 wrap content 高度的 TextView 文本是从 Java 代码动态放入其中的 尽管布局中有足够的空间 文本的最后一行根本没有显示 它位
  • 您可以拥有与多个数据库关联的 DbContext 吗?

    我有一个用户数据库 其中包含所有用户信息以及应用程序权限等 如果我有一个如上所述的通用数据库 然后每个 Web 应用程序都有其他数据库 我可以链接数据库以使用 Fluent 建立两个数据库之间的关系API优先还是代码优先 没有那么优雅的方法
  • 是否可以仅通过客户端发送电子邮件? [复制]

    这个问题在这里已经有答案了 我需要在使用 Vue js 的前端应用程序中发送电子邮件 我想知道是否可以仅使用 Javascript 发送邮件 或者我是否需要服务器端语言 谢谢你 不 您不能直接使用 JavaScript 发送电子邮件 但是您
  • 检查 java.lang.Double 是否相等的高性能方法

    检查双精度值是否相等的最有效方法是什么 我明白那个 double a 0 00023d double b 0 00029d boolean eq a b is slow 所以我正在使用 double epsilon 0 00000001d
  • C++ 变体类成员通过引用存储

    我正在尝试使用 std variant 进行实验 我将 std variant 存储为类的成员 在下面的代码中 如果变体按值存储 则一切正常 但如果变体按引用存储 则不起作用 对于向量情况 以及自定义对象 这是为什么 include
  • PostgreSQL:如何返回与找到的行相关的行(相对结果)?

    如果我的例子没有意义 请原谅 我将尝试使用一种简化的方式来鼓励更多的参与 考虑如下表 dt mnth foo 2012 12 01 December 2012 08 01 August 2012 07 01 July 2012 06 01
  • python 太多静态嵌套块

    我正在尝试将包含相同数量项目的超过 21 个列表写入文本文件中的列 import random a b q for i in range 200 a append random gauss 10 0 1 b append random 20
  • Delphi CreateOleObject 事件

    有一段代码 var myobject OleVariant begin myobject CreateOleObject SomeNamespace SomeClass end 该 COM 对象具有事件 例如 OnClick 我应该如何在不