Announcement

Collapse
No announcement yet.

Array zu OLEVariant konvertierung, von VB zu Delphi...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Array zu OLEVariant konvertierung, von VB zu Delphi...

    Hallo,

    Ich soll einen VB Code nach Delphi5 konvertieren, und habe Probleme beim
    Parameter konvertieren:
    Das ganze sieht folgendermaßen aus:
    <PRE>
    ---------
    VB-
    dim os as Object
    dim rc as integer
    dim nummer(1) as long // long-array -> eigentliches problem
    dim wert as string

    set os=CreateObject(...)
    os.GetTextValue( "Feld", nummer, wert)

    Delphi5-
    var
    v: Variant;
    ov1, ov2, ov3 : OleVariant;

    v := CreateOLEObject( ...
    ov1 := 'Feld';
    ov2 := ???;
    ov3 := ' ';
    os.GetTextValue( ov1, ov2, ov3 );
    ---------
    </PRE>
    Wie kann ich ein Array of long als OLEVariant übergeben?
    DCOMKosch S.346 hat mir leider nicht geholfen, ich bekomme immer
    "$80020005 Typenkonflikt", zefix.

    Danke im Voraus, Grüße
    Ralf

  • #2
    Hallo,

    warum muss das eigene Delphi-Programm über die späte Bindung auf das COM-Objekt zugreifen? Wenn die Typbibliothek des COM-Objekts importiert wird, hätte man die exakte Syntax der vom Objekt erwarteten Parameter für diese Interface-Methode.

    Was passiert, wenn das 2. Beispiel auf der Seite 350 (VarArrayCreate und VarArrayRef) nachgebaut wird

    Comment


    • #3
      Klasse! Vielen Dank Herr Kosch! *verbeug*

      VarArrayRef wars...
      Die späte Bindung musste sein, weil die Typbibliothek nur interfaces und keine Klasse zur Verfügung stellt.
      Die Methode sieht dort übrigens folgendermaßen aus:
      <PRE>

      function GetTextValue(const pszKey:WideString; lArray:OleVariant; out pszValue: WideString):Smallint; safecall;

      </PRE>
      ..und das hat uns hier natürlich nicht viel weiter geholfen...

      Nochmals vielen Dank für die prompte Antwort!

      Viele Grüße
      Ral

      Comment

      Working...
      X