我正在開發Lazarus 1.2.4/FreePascal 2.6.4中的「PL/SQL Developer」IDE(來自Allround Automations)的插件。該插件是一個x86 DLL。PopupMenu在DLL中不顯示
到目前爲止一切工作都很好,除了一件事。這裏的設置:
- 我有一個
TForm
與TTreeView
並在其上一個TPopupMenu
組件。 TPopupMenu
組件被分配給TTreeView.PopupMenu
屬性。TPopupMenu
組件具有創建的非零數量的菜單項和屬性AutoPopup := true
,TrackButton := tbRightButton
集。
而這裏的問題... 當窗體在運行時顯示和樹視圖是右鍵單擊:
- 彈出菜單中並沒有得到明顯的。
- 然而,彈出菜單的
OnPopup
事件被執行。
我試着用簡約的方式做這個 - 一個只有一個導出的DLL,它帶有一個樹形視圖和一個彈出菜單,然後運行proc。通過Win的rundll32.exe
。相同的結果 - 沒有彈出式菜單。
如果我從獨立的Win應用程序嘗試相同的設置(表單+ treeview + popupmenu),它可以正常工作 - 顯示彈出式菜單。
對此有何幫助?
可能會或可能不會涉及到它: 的PL/SQL Developer的捆綁式「插件演示2 /德爾福」做的Application.Handle := IDE_GetAppHandle;
的分配新建分配FY(與IDE_GetAppHandle
是從PLSQL開發IDE的回調函數),我可以」在FPC中做,因爲TApplication
類沒有Handle
屬性。
對此也有幫助嗎?
(小細節是LCL,不是FCL。FCL是custapp這樣的單元) –
作爲一個Oracle開發者,我沒有區分組件/單元庫的不同風格;這對我來說只是一堆帕斯卡單位,對不起。 :-)感謝您的發現。 – nop77svk