【发布时间】:2021-11-15 17:56:42
【问题描述】:
这个问题已经被问过了,但我仍然找不到一个好的方法。我刚刚制作了一个组件,它只是在 TForm 上绘制了一些东西。基本上它与 FMX 或 VCL 的代码完全相同,但在 fmx 上使用 FMX.form 而在 vcl 上使用 VCL.form。
- 如何使我的组件与这两个框架兼容?理想情况下,我不想拆分单元(例如一个 FMX.myunit.pas 和一个 VCL.myUnit.pas)
- 如何使我的组件仅针对
VCL project显示在工具面板中或仅针对FMX project或针对both projects? - 如何在我的 dpr/dproj 中说我的项目使用 VCL 或 FMX 框架?一个项目能否同时使用 Framework、VCL 和 FMX?
- 对于 fmx 组件,为什么我需要先做
RegisterComponents('myGroup', [TMyControl]);后跟RegisterFmxClasses([TMyControl]);(在我看到的所有示例中都是这样的)。
【问题讨论】:
-
不是您基本问题的答案,但是... 组件不会直接在表单上绘制。组件在自己的窗口中绘制,该窗口是 TForm 或其他容器的子窗口。
-
使用条件编译并包含文件。例如,查看ICS source code 以了解它是如何完成的。
-
@AndreasRejbrand 你真的认为我不知道吗?
-
@fpiette:我想你已经知道了,但是你的第一条评论不是很准确,所以为了其他人阅读这个 Q 的利益,我添加了一些细节。
-
"在 TForm 上画一些东西。基本上是完全相同的代码.."。也许您可以在此处发布该代码,以便有人为您制定解决方案?
标签: delphi firemonkey vcl