【发布时间】:2018-03-22 08:04:07
【问题描述】:
我已经为 IDE 编写了一些组件,它们看起来都是这样的:
unit xxx;
interface
uses
System.Classes, System.SysUtils;
type
TMyClass = class(TComponent)
//code...
end;
implementation
end.
这样我可以在 VCL 和 FMX 上使用它们;换句话说,我可以制作一个 VCL win 程序和一个使用我的组件的 FMX Android 应用程序。你看不到的代码是类的实现,但这并不重要。
- 当我开始一个 VCL 项目时,我可以拖放我的组件并使用它们。
- 当我启动 FMX win32 项目时,我可以拖放我的组件并使用它们。如果我将平台切换到 Android,组件仍然存在,我可以成功编译。顺便说一句,我无法拖放组件。为什么?
在第 2 点中,我的意思是在 FMX win32 下我有这样的组件:
如果我改变平台(比如 android)我会得到这个
我做错了什么?我进入了 IDE > Tools > Options > Library 并为每个平台添加了 IDE 可以在其中找到带有源代码的 .pas 的路径。有什么想法吗?
奇怪的是,在 FMX 下,如果我想用我的组件创建一个 Android 应用程序,我必须将平台更改为 win32,拖放组件,然后再改回 Android。该组件在 android 上也能很好地工作。
【问题讨论】:
-
我的意思是
TLang组件 -
将数值类实现为非可视组件仍然是一个巨大的错误。通过从
TObject派生来解决您的所有问题。 -
你在使用Views吗?您是将组件放到主视图还是 Android 视图上?此外,您应该使用
ComponentPlatforms属性标记您的组件,以便 IDE 知道您的组件实际支持的平台。
标签: delphi