Array in eine Variable vom Typ Variant speichern

Hallo.

Ich habe das Problem, dass ich einer Funktion eines OLE-Objects einen Integer-Array übergeben muss, die Funktion aber nur eine Variable vom Typ Variant akzeptiert.

In VB kann ich dies ganz einfach mit folgendem Code realisieren:

Dim varArray As Variant
varArray = Array (1,2,3)

Kennt jemand eine Lösung, wie dies in Delphi umzusetzten ist?

Ich habe es schon mit VarArrayOf () versucht, aber die Ole-Funktion akzeptiert diesen Typ nicht.

Begriffe wie VarArrayCreate(), OleVariant, PSafeArray können dir in diesen Fall vielleicht weiter helfen.
Bsp:

Function UebertragungUeberVariant : OleVariant;
var
A: Variant;
begin
A := VarArrayCreate([0, 4], varVariant);
A[0] := 1;
A[1] := 1234.5678;
A[2] := ‚Hallo Welt‘;
A[3] := True;
A[4] := VarArrayOf([1, 10, 100, 1000]);

// Zuweisung
Result := A;
end;

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen Dank, hat super funktioniert.

Scheinbar unterscheidet Delphi, wie das Array definiert wurde.

mit varArray: Array of Variant hat es nicht funktioniert
mit A := VarArrayCreate (0,2, varVariant) hat es funktioniert

Man lernt doch nie aus.

Schön, wenn ich dir weiter helfen kann.
Das habe ich auch damals von den andern gelernt :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]