Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datendefinition (https://www.delphipraxis.net/148957-datendefinition.html)

Berni68 11. Mär 2010 09:52


Datendefinition
 
Hallo zusammen,

bei der Umstellung eines Programmes auf eine neue OLE-Server Version erhalte ich beim kompilieren den Fehler:

[DCC Fehler] AdeskApprentice.pas(223): E2010 Inkompatible Typen: 'ActiveX.IPictureDisp' und 'Inventor_TLB.IPictureDisp'

bei:
Delphi-Quellcode:
SetOlePicture(Thumb, doc.Thumbnail);

In AxtiveX ist:
Delphi-Quellcode:
   {$EXTERNALSYM IPictureDisp}
  IPictureDisp = interface(IDispatch)
    ['{7BF80981-BF32-101A-8BBB-00AA00300CAB}']
  end;
in der neuen importierten .tlb ist:
Delphi-Quellcode:
const
  IID_IPictureDisp: TGUID = '{7BF80981-BF32-101A-8BBB-00AA00300CAB}';

type
  IPictureDisp = interface;

// *********************************************************************//
// Interface: IPictureDisp
// Flags:    (4096) Dispatchable
// GUID:     {7BF80981-BF32-101A-8BBB-00AA00300CAB}
// *********************************************************************//
  IPictureDisp = interface(IDispatch)
    ['{7BF80981-BF32-101A-8BBB-00AA00300CAB}']
  end;
d.h. IPictureDisp ist hier auch deklariert.

In der alten .tlb der Vorgängerversion war in der uses Klausel ActiveX mit eingebunden
so dass diese Definition gilt.

Meine Frage ist nun:
Wie kann ich nun erreichen, daß die Dinger formal kompatibel sind
(Müssen sie ja eigentlich sein, da die TGUID die gleiche ist)

Berni68 11. Mär 2010 10:18

Re: Datendefinition
 
Der naheliegende Aufruf:

SetOlePicture(Thumb, ActiveX.IPictureDisp(doc.Thumbnail));

das Ding also zu konvertieren, geht und scheint auch zu funktionieren.

Find ich allerdings unschön. Gibt es da nicht bessere Möglichkeiten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz