Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi IInterface -> Variant (https://www.delphipraxis.net/9875-iinterface-variant.html)

Basic-Master 6. Okt 2003 19:50


IInterface -> Variant
 
Hi,
wie kann ich den Typ IInterface in den Typ Variant umwandeln? Ich versuche, ein Formular an eine Funktion per IInterface zu übergeben (das funktioniert), da ich aber die pas bzw. dcu-dateien von dem formular das per IInterface übergeben wird nicht benutzen will (das tool soll keine freeware sein), möchte ich die IInterface-Variable in den Typ variant umwandeln, um in der funktion wieder mit dem Formular zu arbeiten, ungefähr so:
Delphi-Quellcode:
procedure meineprozedur(Form:IInterface);
var V:Variant;
begin
v := form; //das funtzt bei mir zwar, aber dann kommt in der nächsten zeile n fehler...
v.memo1.text := 'meintext';
end;
hmm könnt ihr mir da wohl weiterhelfen?

negaH 6. Okt 2003 20:36

Re: IInterface -> Variant
 
Interfaces die über Variants und somit über späte Bindung verfügen sollen müssen von IDispatch abstammen.

Gruß Hagen

Basic-Master 7. Okt 2003 13:20

Re: IInterface -> Variant
 
Zitat:

Zitat von negaH
Interfaces die über Variants und somit über späte Bindung verfügen sollen müssen von IDispatch abstammen.

Gruß Hagen

hi,
hab deinen tip gerade ausprobiert, dann kommt allerdings in der runtime ne fehlermeldung "EIntfCastError - Schnittstelle nicht unterstützt"
hier mein testcode:
Delphi-Quellcode:
var V:variant;
    I:IDispatch;
begin
i := (form1 as idispatch);
v := i;
v.button1.caption := 'test';
end;
hmm wieso funtzt das net :|

Sanchez 7. Okt 2003 13:25

Re: IInterface -> Variant
 
implementiert form1 ein Interface, das von IDispatch abstammt oder IDispatch??

Ich denke du hast negaH falsch verstanden. Ein Typecast macht das nicht

Basic-Master 7. Okt 2003 13:41

Re: IInterface -> Variant
 
hi,
ich hab n einfaches IDispatch, das das formular in ne variable packt, bei der man allerdings keine extra unit braucht, z.b. wie beim webbrowser die property document...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 Uhr.

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