Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/ActiveX/Code Generators/Pascal    [ Add a report in this area ]  
Report #:  46774   Status: Open
Incorrect code produced when importing ActiveX
Project:  Delphi Build #:  Version 11.0.26
Version:    11.0 Submitted By:   David Butler
Report Type:  Basic functionality failure Date Reported:  5/30/2007 3:44:51 AM
Severity:    Commonly encountered problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    All platforms Internal Tracking #:   262140
Resolution: Need More Info (Resolution Comments) Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: None
Description
When importing a ActiveX control the following incorrect warning is placed in the code:

{ Warning: The property XXXX has a setter and a getter whose types do not match. Delphi was unable to generate a property of this sort and so is using a Variant as a passthrough. }

The getter and setter for XXXX does in fact have the same type (WideString).

Delphi 4 produces the correct TLB file for the same ActiveX control.

Delphi 2007 code:

var
  InterfaceVariant: OleVariant;
begin
  InterfaceVariant := DefaultInterface;
  InterfaceVariant.XXXX := Param2;
end;

Delphi 4 code:

  ControlInterface.XXXX[Param1] := Param2;

when the Delphi 2007 code is changed to:

  DefaultInterface.XXXX[Param1] := Param2;

the ActiveX component works correctly.
Steps to Reproduce:
None
Workarounds
Manually change the TLB.pas file as mentioned above.
Attachment
None
Comments

Craig Farrell at 5/30/2007 12:08:36 PM -
If the OCX is a somewhat common one can you add it's name here? Does it happen to have a trial version that can be downloaded?

Server Response from: ETNACODE01