.net用户控件可以用作delphi VCL Forms项目中的控件?在设计时调整它们的大小,并至少通过强类型输入或至少通过调用类似Invoke的方法来调用其方法。
我研究了COM技术,但是这对我来说很难。我希望.net有一种更方便的方式来进行delphi互操作。
谢谢。
最佳答案
至少有一种方法,那就是将.NET运行时托管到Delphi应用程序中。
您可以签出JCL classes,其中包含执行此托管的代码。
完成此操作后,可以通过使用属性标记控件类来确保它们为ComVisible:
[ComVisible]
public class SomeControl : UserControl
然后,您将不得不从Delphi构造控件,如何通过我们创建自己的包装器时不知道的JCL系统执行此操作。您应该在这里真正查看JCL类以获得更多详细信息。
但是,存在一些问题:
调整大小并不总是有效,有时您必须在Delphi中处理调整大小的事件,然后手动要求.NET控件相应地调整大小
在文本框之间进行制表并不总是可行的,特别是Delphi代码似乎将整个.NET控件视为黑盒,并且会在其中进行制表,而不是在其中进行制表,而不是在其中进行制表,除非在某些情况下会这样做。
Keyboart快捷键(例如,Alt + O表示打开)不起作用,因为Delphi正在拾取这些快捷键,并且不了解.NET控件具有此类功能
.NET代码的异常将作为外部异常从.NET代码冒泡到Delphi代码中,并且所有异常详细信息在此过程中都丢失了。这是Delphi编译器注入的COM OleVariant包装器生成的代码,无法正确处理。
我会认真考虑您是否真的想要这个。从Delphi代码中打开.NET窗口要容易得多,而且这样做的行为也更加可预测。
关于.net - 有什么方法可以创建.net用户控件,以便在delphi表单上使用它们?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17270049/