

You can write your custom interface(s) using. NET, the Hydra IDE integration provides sophisticated support for converting interface declarations between the two development platforms. To enable this communication across the boundaries of Delphi and. Plugins can implement interfaces to expose the functionality they are providing, just as the host can implement interfaces to make itself accessible to any plugin that is active.

This communication is handled with the use of custom interfaces that can be implemented on the plugin, the host, or both, allowing the two to call each other. While Hydra's base library provides implementations for the most general tasks involved while working with plugins (for example embedding a visual plugin into your form), most non-trivial applications will need some application-specific communication between hosts and plugins. That said, you are familiar with the difference between commas and semi-colons in formal parameter lists and so it should not come as too much of a surprise to see the same distinction drawn here.Passing Interfaces between Host and Plugins Programming by significant punctuation is never much fun. This is quite a nuance, the changing of a comma to a semi-colon. Thus I conclude that this is an XE2 generics compiler bug.Īnyway, here's a workaround for Delphi XE2: However, the fix I describe there is fine for XE3 and later, but that program below does not compile in XE2. The original question had a problem which I identified (see below). Why is this not working? What am I doing wrong? Is this not possible in Delphi? It should be correct, since the wanted Type 'IKeyStorageObject' has the parent type IStorageObject.

What I think is, that the compiler is not recognizing that Parameter T of the Class 'TKeyObjectStorage' correctly. Project22.dpr(11): E2514 Type parameter 'T' must support interface 'IStorageObject' The compiler error for 'TKeyObjectStorage' is: TImplementingClass = class(TInterfacedObject, IKeyStorageObject) TKeyObjectStorage> = class(TObjectStorage) IKeyStorageObject = interface(IStorageObject) The following code reproduces the error: program Project22 I am currently stuck with a compiling error, no one in our company can help and I am sadly not finding the correct search patterns for SO or google.Īs code I am using 2 Interfaces, inherited and 2 Classes, inherited.
