AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi OleVariant-Unterstützung in Delphi?
Thema durchsuchen
Ansicht
Themen-Optionen

OleVariant-Unterstützung in Delphi?

Ein Thema von DGL-luke · begonnen am 16. Mär 2007 · letzter Beitrag vom 23. Mär 2007
Antwort Antwort
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

OleVariant-Unterstützung in Delphi?

  Alt 16. Mär 2007, 23:18
Hallo,

welche Unit muss ich einbinden, um volle Unterastützung für OleVariants zu haben? Mir fehlen zum Beispiel "VariantInit" oder auch nur die OleVariant-Members, z.B. OleVariant.vt.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: OleVariant-Unterstützung in Delphi?

  Alt 16. Mär 2007, 23:20
War das nicht in der Unit Variants?

Gruss
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#3

Re: OleVariant-Unterstützung in Delphi?

  Alt 17. Mär 2007, 00:05
Ich glaube, in der gehts nur um die Delphi-Variants.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#4

Re: OleVariant-Unterstützung in Delphi?

  Alt 17. Mär 2007, 00:29
Unit ActiveX
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#5

Re: OleVariant-Unterstützung in Delphi?

  Alt 17. Mär 2007, 11:27
Dankesehr. Aber der Compiler zeigt mir die Member einer OleVariant-Variable immer noch nicht an...
Lukas Erlacher
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: OleVariant-Unterstützung in Delphi?

  Alt 17. Mär 2007, 11:30
Zitat:
Dankesehr. Aber der Compiler zeigt mir die Member einer OleVariant-Variable immer noch nicht an...
Das macht er auch nicht. Die Auswertung geschiet erst zur Laufzeit durch das (COM-)Objekt.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: OleVariant-Unterstützung in Delphi?

  Alt 17. Mär 2007, 11:31
OK, danke.
Lukas Erlacher
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: OleVariant-Unterstützung in Delphi?

  Alt 21. Mär 2007, 16:34
So... kann es sein, dass man gewisse Member eines OleVariants heraus-boolesch-operieren muss? Hab einen flüchtigen Blick auf google codesearch geworfen, und dabei unter anderem das gefunden:

Code:
if (VT_DISPATCH==V_VT(&vDocID))
Wie mach ich das in Delphi? Es geht um IAccessible.accNavigate und den OleVariant, der mir da rausgeliefert wird.
Lukas Erlacher
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#9

Re: OleVariant-Unterstützung in Delphi?

  Alt 23. Mär 2007, 15:48
Hallo,

ich habe inzwischen auch die C-Makros gefunden, die "V_VT(X)" definieren. abhängig von bestimmten Compiler-charakteristika (?) ist das entweder einfach

Code:
((X)->vt)
was natürlich zu einem spontanten "Häääää? Warum funktioniert mein Code nicht?!" führt, oder

Code:
((X)->__VARIANT_NAME_1.__VARIANT_NAME_2.vt)
Was zu einem noch größeren "Häääääää?" führt.

Kann mir denn niemand helfen?

Hier nochmal das komplette:

Code:
#define V_UNION(X,Y) ((X)->__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.Y)
        #define V_VT(X) ((X)->__VARIANT_NAME_1.__VARIANT_NAME_2.vt)
        #else
        #define V_UNION(X,Y) ((X)->Y)
        #define V_VT(X) ((X)->vt)
(Google Codesearch nach "V_VT", erste ergebnisse)
Lukas Erlacher
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: OleVariant-Unterstützung in Delphi?

  Alt 23. Mär 2007, 16:31
Die Funktion 'VarType' ist dein Freund. Ein Variant ist eigentlich ein 'Variant Record', aber Delphi kapselt das sehr schön.

Du kannst auch direkt auf die Member zugreifen, dazu musst du das Variant (glaube ich) nach TVarRec typecasten...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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