【发布时间】:2014-07-05 12:27:49
【问题描述】:
我正在为 Lazarus 1.2.4/FreePascal 2.6.4 中的“PL/SQL Developer”IDE(来自 Allround Automations)开发一个插件。该插件是一个 x86 DLL。
到目前为止,一切都运行良好,除了一件事。这是设置:
- 我有一个
TForm,上面有一个TTreeView和一个TPopupMenu组件。 -
TPopupMenu组件分配给TTreeView.PopupMenu属性。 -
TPopupMenu组件创建了非零菜单项,并设置了属性AutoPopup := true、TrackButton := tbRightButton。
这就是问题所在... 当窗体在运行时显示并右键单击树视图时:
- 弹出菜单不可见。
- 然而,弹出菜单的
OnPopup事件被执行。
我尝试以简约的方式执行此操作 - 一个只有一个导出的 DLL,它使用树视图和弹出菜单生成表单,然后运行 proc。通过 Win 的rundll32.exe。相同的结果 - 没有弹出菜单。
如果我在独立的 Win 应用程序中尝试相同的设置(form+treeview+popupmenu),它可以正常工作 - 弹出菜单出现。
有什么帮助吗?
可能与它相关,也可能不相关:
PL/SQL Developer 捆绑的“plugin demo 2 / Delphi”分配了Application.Handle := IDE_GetAppHandle;(IDE_GetAppHandle 是 PLSQL Developer IDE 的回调函数),这是我在 FPC 中无法做到的,因为TApplication类没有Handle 属性。
这方面也有帮助吗?
【问题讨论】:
标签: dll freepascal lazarus